diff --git a/assets/css/admin/entity-selector.css b/assets/css/admin/entity-selector.css index cf50f09..837e7df 100644 --- a/assets/css/admin/entity-selector.css +++ b/assets/css/admin/entity-selector.css @@ -1,2 +1,2 @@ -@keyframes spin{from{transform:rotate(0deg)}to{transform:rotate(360deg)}}.target-conditions-trait,.target-conditions-trait *,.entity-selector-trait,.entity-selector-trait *,.method-dropdown-menu,.method-dropdown-menu *,.target-preview-popover,.target-preview-popover *{border-style:solid;border-width:0;border-color:#dee2e6}.form-group:has(.entity-selector-trait),.form-group:has(.target-conditions-trait),.form-group:has(.condition-trait){display:block}.form-group:has(.entity-selector-trait)>.control-label,.form-group:has(.target-conditions-trait)>.control-label,.form-group:has(.condition-trait)>.control-label{display:none}.form-group:has(.entity-selector-trait)>.col-lg-8,.form-group:has(.target-conditions-trait)>.col-lg-8,.form-group:has(.condition-trait)>.col-lg-8{width:100%;max-width:100%;padding-left:1rem;padding-right:1rem;flex:0 0 100% !important}.form-group.condition-trait-fullwidth{display:block}.form-group.condition-trait-fullwidth>.control-label{display:none}.form-group.condition-trait-fullwidth>.col-lg-8{width:100%;max-width:100%;padding-left:1rem;padding-right:1rem;flex:0 0 100% !important}.panel:has(.target-search-dropdown.show),.card:has(.target-search-dropdown.show),.form-wrapper:has(.target-search-dropdown.show),.panel-body:has(.target-search-dropdown.show),.card-body:has(.target-search-dropdown.show),.form-group:has(.target-search-dropdown.show),.col-lg-8:has(.target-search-dropdown.show),.col-lg-12:has(.target-search-dropdown.show){overflow:visible !important}.target-conditions-trait:has(.target-search-dropdown.show),.entity-selector-trait:has(.target-search-dropdown.show),.condition-trait-body:has(.target-search-dropdown.show),.target-block-content:has(.target-search-dropdown.show),.target-block-groups:has(.target-search-dropdown.show),.target-group:has(.target-search-dropdown.show),.target-group-body:has(.target-search-dropdown.show),.target-search-wrapper:has(.target-search-dropdown.show){overflow:visible !important}@media(max-width: 991px){.target-conditions-trait .condition-trait-header,.entity-selector-trait .condition-trait-header{flex-direction:column;align-items:flex-start;gap:.5rem}.target-conditions-trait .trait-header-right,.entity-selector-trait .trait-header-right{width:100%;justify-content:flex-end}.target-conditions-trait .target-block-tabs,.entity-selector-trait .target-block-tabs{flex-wrap:wrap}}@media(max-width: 767px){.target-conditions-trait .target-block-tab,.entity-selector-trait .target-block-tab{padding:.5rem;font-size:.75rem}.target-conditions-trait .target-group-header,.entity-selector-trait .target-group-header{flex-direction:column;align-items:flex-start}.target-conditions-trait .target-search-dropdown,.entity-selector-trait .target-search-dropdown{width:100% !important;left:0 !important;right:0 !important}.target-conditions-trait .dropdown-results-grid,.entity-selector-trait .dropdown-results-grid{grid-template-columns:1fr !important}}@media(min-width: 1600px){.target-conditions-trait .dropdown-results-grid.view-grid-3,.entity-selector-trait .dropdown-results-grid.view-grid-3{grid-template-columns:repeat(4, 1fr)}}.target-conditions-trait,.entity-selector-trait{position:relative;overflow:visible;background:#fff;border:1px solid #dee2e6;border-radius:.3rem}.target-conditions-trait .condition-trait-header,.entity-selector-trait .condition-trait-header{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:1rem;padding:.875rem 1rem;background:#f8f9fa;border-bottom:1px solid #dee2e6;border-radius:.3rem .3rem 0 0;cursor:pointer;user-select:none;transition:background-color .15s ease-in-out}.target-conditions-trait .condition-trait-header:hover,.entity-selector-trait .condition-trait-header:hover{background:#e9ecef}.target-conditions-trait .trait-header-left,.entity-selector-trait .trait-header-left{display:flex;align-items:center;gap:.75rem;min-width:0;flex:1}.target-conditions-trait .trait-icon,.entity-selector-trait .trait-icon{font-size:1.125rem;color:#6c757d;flex-shrink:0}.target-conditions-trait .trait-title-group,.entity-selector-trait .trait-title-group{display:flex;flex-direction:column;gap:.125rem;min-width:0}.target-conditions-trait .trait-title,.entity-selector-trait .trait-title{font-size:.875rem;font-weight:600;color:#212529;white-space:nowrap}.target-conditions-trait .trait-subtitle,.entity-selector-trait .trait-subtitle{font-size:.75rem;color:#6c757d;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.target-conditions-trait .trait-total-count,.entity-selector-trait .trait-total-count{display:inline-flex;align-items:center;justify-content:center;gap:.25rem;min-width:20px;height:20px;padding:0 .5rem;background:#25b9d7;color:#fff;font-size:.75rem;font-weight:600;border-radius:50rem;cursor:pointer;transition:all .15s ease-in-out;flex-shrink:0}.target-conditions-trait .trait-total-count:hover,.entity-selector-trait .trait-total-count:hover{transform:scale(1.05);box-shadow:0 2px 8px rgba(37,185,215,.4)}.target-conditions-trait .trait-total-count:focus,.entity-selector-trait .trait-total-count:focus{outline:none;box-shadow:0 0 0 2px rgba(37,185,215,.3),0 2px 8px rgba(37,185,215,.4)}.target-conditions-trait .trait-total-count.loading,.entity-selector-trait .trait-total-count.loading{cursor:wait}.target-conditions-trait .trait-total-count.loading i,.entity-selector-trait .trait-total-count.loading i{font-size:10px;animation:spin .6s linear infinite}.target-conditions-trait .trait-total-count.loading:hover,.entity-selector-trait .trait-total-count.loading:hover{transform:none;box-shadow:none}.target-conditions-trait .trait-total-count.inactive,.target-conditions-trait .trait-total-count.no-matches,.entity-selector-trait .trait-total-count.inactive,.entity-selector-trait .trait-total-count.no-matches{background:#94a3b8;cursor:default}.target-conditions-trait .trait-total-count.inactive:hover,.target-conditions-trait .trait-total-count.no-matches:hover,.entity-selector-trait .trait-total-count.inactive:hover,.entity-selector-trait .trait-total-count.no-matches:hover{transform:none;box-shadow:none}.target-conditions-trait .trait-total-count.popover-open,.entity-selector-trait .trait-total-count.popover-open{background:rgb(29.5119047619,147.5595238095,171.4880952381);box-shadow:0 2px 8px rgba(37,185,215,.4)}.target-conditions-trait .trait-total-count i,.entity-selector-trait .trait-total-count i{font-size:10px;line-height:1;opacity:.8}.target-conditions-trait .trait-total-count:hover i,.entity-selector-trait .trait-total-count:hover i{opacity:1}.target-conditions-trait .trait-total-count .preview-count,.entity-selector-trait .trait-total-count .preview-count{font-weight:700}.target-conditions-trait .trait-total-count,.entity-selector-trait .trait-total-count{margin-left:.5rem}.target-conditions-trait .trait-show-all-toggle,.entity-selector-trait .trait-show-all-toggle{display:inline-flex;align-items:center;gap:.5rem;margin-right:.75rem;padding:.25rem .5rem;border-radius:.2rem;cursor:pointer;user-select:none;transition:background-color .15s ease-in-out}.target-conditions-trait .trait-show-all-toggle:hover,.entity-selector-trait .trait-show-all-toggle:hover{background:rgba(0,0,0,.05)}.target-conditions-trait .trait-show-all-toggle .toggle-label,.entity-selector-trait .trait-show-all-toggle .toggle-label{font-size:.75rem;font-weight:500;color:#6c757d}.target-conditions-trait .trait-show-all-toggle .show-all-checkbox,.entity-selector-trait .trait-show-all-toggle .show-all-checkbox{display:none}.target-conditions-trait .trait-show-all-toggle .toggle-slider,.entity-selector-trait .trait-show-all-toggle .toggle-slider{position:relative;width:36px;height:20px;background:#cbd5e1;border-radius:50rem;transition:background-color .2s ease-in-out}.target-conditions-trait .trait-show-all-toggle .toggle-slider::after,.entity-selector-trait .trait-show-all-toggle .toggle-slider::after{content:"";position:absolute;top:2px;left:2px;width:16px;height:16px;background:#fff;border-radius:50%;box-shadow:0 1px 3px rgba(0,0,0,.2);transition:transform .2s ease-in-out}.target-conditions-trait .trait-show-all-toggle .show-all-checkbox:checked+.toggle-slider,.entity-selector-trait .trait-show-all-toggle .show-all-checkbox:checked+.toggle-slider{background:#28a745}.target-conditions-trait .trait-show-all-toggle .show-all-checkbox:checked+.toggle-slider::after,.entity-selector-trait .trait-show-all-toggle .show-all-checkbox:checked+.toggle-slider::after{transform:translateX(16px)}.target-conditions-trait.has-validation-error,.entity-selector-trait.has-validation-error{border-color:#dc3545;box-shadow:0 0 0 3px rgba(220,53,69,.1)}.target-conditions-trait.has-validation-error .condition-trait-header,.entity-selector-trait.has-validation-error .condition-trait-header{border-bottom-color:#dc3545}.target-conditions-trait .trait-validation-error,.entity-selector-trait .trait-validation-error{display:flex;align-items:center;gap:.5rem;padding:.625rem 1rem;background:#f8d7da;color:#b91c1c;font-size:.875rem;font-weight:500;border-bottom:1px solid #fecaca}.target-conditions-trait .trait-validation-error i,.entity-selector-trait .trait-validation-error i{color:#dc3545}.target-conditions-trait.trait-required .trait-title::after,.entity-selector-trait.trait-required .trait-title::after{content:" *";color:#dc3545}.target-conditions-trait .condition-trait-body,.entity-selector-trait .condition-trait-body{padding:0;background:#fff;border-radius:0 0 .3rem .3rem}.target-conditions-trait .target-block-tabs,.entity-selector-trait .target-block-tabs{display:flex;flex-wrap:wrap;gap:0;padding:0;background:#f1f5f9;border-bottom:1px solid #dee2e6}.target-conditions-trait .target-block-tab,.entity-selector-trait .target-block-tab{position:relative;display:flex;align-items:center;gap:.5rem;flex:none;min-width:0;padding:.625rem 1rem;margin-bottom:-1px;background:rgba(0,0,0,0);border:0;border-bottom:2px solid rgba(0,0,0,0);color:#6c757d;font-size:.875rem;font-weight:500;cursor:pointer;transition:all .15s ease-in-out}.target-conditions-trait .target-block-tab:hover,.entity-selector-trait .target-block-tab:hover{background:#e2e8f0;color:#334155}.target-conditions-trait .target-block-tab.active,.entity-selector-trait .target-block-tab.active{background:#fff;border-bottom-color:#06b6d4;color:#25b9d7}.target-conditions-trait .target-block-tab i,.entity-selector-trait .target-block-tab i{font-size:.875rem}.target-conditions-trait .target-block-tab .tab-label,.entity-selector-trait .target-block-tab .tab-label{white-space:nowrap}.target-conditions-trait .target-block-tab .tab-badge,.entity-selector-trait .target-block-tab .tab-badge{display:inline-flex;align-items:center;justify-content:center;gap:.25rem;min-width:20px;height:20px;padding:0 .5rem;background:#25b9d7;color:#fff;font-size:.75rem;font-weight:600;border-radius:50rem;cursor:pointer;transition:all .15s ease-in-out;flex-shrink:0}.target-conditions-trait .target-block-tab .tab-badge:hover,.entity-selector-trait .target-block-tab .tab-badge:hover{transform:scale(1.05);box-shadow:0 2px 8px rgba(37,185,215,.4)}.target-conditions-trait .target-block-tab .tab-badge:focus,.entity-selector-trait .target-block-tab .tab-badge:focus{outline:none;box-shadow:0 0 0 2px rgba(37,185,215,.3),0 2px 8px rgba(37,185,215,.4)}.target-conditions-trait .target-block-tab .tab-badge.loading,.entity-selector-trait .target-block-tab .tab-badge.loading{cursor:wait}.target-conditions-trait .target-block-tab .tab-badge.loading i,.entity-selector-trait .target-block-tab .tab-badge.loading i{font-size:10px;animation:spin .6s linear infinite}.target-conditions-trait .target-block-tab .tab-badge.loading:hover,.entity-selector-trait .target-block-tab .tab-badge.loading:hover{transform:none;box-shadow:none}.target-conditions-trait .target-block-tab .tab-badge.inactive,.target-conditions-trait .target-block-tab .tab-badge.no-matches,.entity-selector-trait .target-block-tab .tab-badge.inactive,.entity-selector-trait .target-block-tab .tab-badge.no-matches{background:#94a3b8;cursor:default}.target-conditions-trait .target-block-tab .tab-badge.inactive:hover,.target-conditions-trait .target-block-tab .tab-badge.no-matches:hover,.entity-selector-trait .target-block-tab .tab-badge.inactive:hover,.entity-selector-trait .target-block-tab .tab-badge.no-matches:hover{transform:none;box-shadow:none}.target-conditions-trait .target-block-tab .tab-badge.popover-open,.entity-selector-trait .target-block-tab .tab-badge.popover-open{background:rgb(29.5119047619,147.5595238095,171.4880952381);box-shadow:0 2px 8px rgba(37,185,215,.4)}.target-conditions-trait .target-block-tab .tab-badge i,.entity-selector-trait .target-block-tab .tab-badge i{font-size:10px;line-height:1;opacity:.8}.target-conditions-trait .target-block-tab .tab-badge:hover i,.entity-selector-trait .target-block-tab .tab-badge:hover i{opacity:1}.target-conditions-trait .target-block-tab .tab-badge .preview-count,.entity-selector-trait .target-block-tab .tab-badge .preview-count{font-weight:700}.target-conditions-trait .target-block-tab.has-data:not(.active) .tab-badge,.entity-selector-trait .target-block-tab.has-data:not(.active) .tab-badge{display:inline-flex;align-items:center;justify-content:center;gap:.25rem;min-width:20px;height:20px;padding:0 .5rem;background:#94a3b8;color:#fff;font-size:.75rem;font-weight:600;border-radius:50rem;cursor:pointer;transition:all .15s ease-in-out;flex-shrink:0}.target-conditions-trait .target-block-tab.has-data:not(.active) .tab-badge:hover,.entity-selector-trait .target-block-tab.has-data:not(.active) .tab-badge:hover{transform:scale(1.05);box-shadow:0 2px 8px rgba(148,163,184,.4)}.target-conditions-trait .target-block-tab.has-data:not(.active) .tab-badge:focus,.entity-selector-trait .target-block-tab.has-data:not(.active) .tab-badge:focus{outline:none;box-shadow:0 0 0 2px rgba(148,163,184,.3),0 2px 8px rgba(148,163,184,.4)}.target-conditions-trait .target-block-tab.has-data:not(.active) .tab-badge.loading,.entity-selector-trait .target-block-tab.has-data:not(.active) .tab-badge.loading{cursor:wait}.target-conditions-trait .target-block-tab.has-data:not(.active) .tab-badge.loading i,.entity-selector-trait .target-block-tab.has-data:not(.active) .tab-badge.loading i{font-size:10px;animation:spin .6s linear infinite}.target-conditions-trait .target-block-tab.has-data:not(.active) .tab-badge.loading:hover,.entity-selector-trait .target-block-tab.has-data:not(.active) .tab-badge.loading:hover{transform:none;box-shadow:none}.target-conditions-trait .target-block-tab.has-data:not(.active) .tab-badge.inactive,.target-conditions-trait .target-block-tab.has-data:not(.active) .tab-badge.no-matches,.entity-selector-trait .target-block-tab.has-data:not(.active) .tab-badge.inactive,.entity-selector-trait .target-block-tab.has-data:not(.active) .tab-badge.no-matches{background:#94a3b8;cursor:default}.target-conditions-trait .target-block-tab.has-data:not(.active) .tab-badge.inactive:hover,.target-conditions-trait .target-block-tab.has-data:not(.active) .tab-badge.no-matches:hover,.entity-selector-trait .target-block-tab.has-data:not(.active) .tab-badge.inactive:hover,.entity-selector-trait .target-block-tab.has-data:not(.active) .tab-badge.no-matches:hover{transform:none;box-shadow:none}.target-conditions-trait .target-block-tab.has-data:not(.active) .tab-badge.popover-open,.entity-selector-trait .target-block-tab.has-data:not(.active) .tab-badge.popover-open{background:hsl(215,20.2247191011%,55.0980392157%);box-shadow:0 2px 8px rgba(148,163,184,.4)}.target-conditions-trait .target-block-tab.has-data:not(.active) .tab-badge i,.entity-selector-trait .target-block-tab.has-data:not(.active) .tab-badge i{font-size:10px;line-height:1;opacity:.8}.target-conditions-trait .target-block-tab.has-data:not(.active) .tab-badge:hover i,.entity-selector-trait .target-block-tab.has-data:not(.active) .tab-badge:hover i{opacity:1}.target-conditions-trait .target-block-tab.has-data:not(.active) .tab-badge .preview-count,.entity-selector-trait .target-block-tab.has-data:not(.active) .tab-badge .preview-count{font-weight:700}.target-conditions-trait .target-block-container,.entity-selector-trait .target-block-container{display:none}.target-conditions-trait .target-block-container.active,.entity-selector-trait .target-block-container.active{display:block}.target-conditions-trait .target-block-content,.entity-selector-trait .target-block-content{padding:1rem}.target-conditions-trait .target-block-groups,.entity-selector-trait .target-block-groups{display:flex;flex-direction:column;gap:1rem}.target-conditions-trait .target-block-header,.entity-selector-trait .target-block-header{display:flex;align-items:center;justify-content:space-between;padding:.5rem 1rem;background:#f8f9fa;border-bottom:1px solid #dee2e6}.target-conditions-trait .target-block-empty,.entity-selector-trait .target-block-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.5rem;padding:2rem;text-align:center;color:#6c757d}.target-conditions-trait .target-block-empty i,.entity-selector-trait .target-block-empty i{font-size:2rem;opacity:.5}.target-conditions-trait .target-block-empty p,.entity-selector-trait .target-block-empty p{margin:0;font-size:.875rem}.target-conditions-trait .trait-collapse-toggle,.target-conditions-trait .collapse-toggle,.entity-selector-trait .trait-collapse-toggle,.entity-selector-trait .collapse-toggle{display:flex;align-items:center;justify-content:center;width:24px;height:24px;color:#6c757d;cursor:pointer;transition:transform .2s ease-in-out}.target-conditions-trait .trait-collapse-toggle.collapsed,.target-conditions-trait .collapse-toggle.collapsed,.entity-selector-trait .trait-collapse-toggle.collapsed,.entity-selector-trait .collapse-toggle.collapsed{transform:rotate(-90deg)}.target-conditions-trait .trait-header-right,.entity-selector-trait .trait-header-right{display:flex;align-items:center;gap:.5rem}.target-conditions-trait.collapsed .condition-trait-body,.entity-selector-trait.collapsed .condition-trait-body{display:none}.target-conditions-trait.collapsed .condition-trait-header,.entity-selector-trait.collapsed .condition-trait-header{border-radius:.3rem}.target-conditions-trait.single-mode .target-block-tabs,.entity-selector-trait.single-mode .target-block-tabs{display:none}.target-conditions-trait.single-mode .target-block-container,.entity-selector-trait.single-mode .target-block-container{display:block}.target-conditions-trait .header-actions,.entity-selector-trait .header-actions{display:flex;align-items:center;gap:.25rem}.target-conditions-trait .header-action-btn,.entity-selector-trait .header-action-btn{padding:0;margin:0;background:none;border:none;cursor:pointer;font:inherit;color:inherit}.target-conditions-trait .header-action-btn:focus,.entity-selector-trait .header-action-btn:focus{outline:none}.target-conditions-trait .header-action-btn,.entity-selector-trait .header-action-btn{display:inline-flex;align-items:center;gap:.25rem;padding:.25rem .5rem;font-size:.75rem;font-weight:500;color:#6c757d;background:rgba(0,0,0,0);border-radius:.2rem;transition:all .15s ease-in-out}.target-conditions-trait .header-action-btn:hover,.entity-selector-trait .header-action-btn:hover{background:#e2e8f0;color:#495057}.target-conditions-trait .header-action-btn i,.entity-selector-trait .header-action-btn i{font-size:12px}.entity-item{display:flex;align-items:center;gap:.5rem;padding:.5rem;background:#fff;border-radius:.2rem;transition:background .15s ease-in-out}.entity-item:hover{background:#e9ecef}.entity-item.clickable{cursor:pointer}.entity-item.selected{background:rgba(37,185,215,.1)}.entity-item-image{flex-shrink:0;width:32px;height:32px;object-fit:cover;border-radius:.2rem;background:#f1f5f9}.entity-item-image--sm{width:20px;height:20px;border-radius:50%}.entity-item-image--lg{width:48px;height:48px}.entity-item-no-image{display:flex;align-items:center;justify-content:center;flex-shrink:0;width:32px;height:32px;background:#f1f5f9;color:#6c757d;border-radius:.2rem;font-size:.875rem}.entity-item-no-image--sm{width:20px;height:20px;font-size:10px;border-radius:50%}.entity-item-info{flex:1;min-width:0;display:flex;flex-direction:column;gap:.125rem}.entity-item-name{font-size:.875rem;font-weight:500;color:#212529;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.entity-item-meta{font-size:.75rem;color:#6c757d;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.entity-item-badge{flex-shrink:0;padding:.125rem .5rem;font-size:.75rem;font-weight:500;background:#f1f5f9;color:#6c757d;border-radius:.2rem}.entity-item-price{flex-shrink:0;font-size:.875rem;font-weight:600;color:#25b9d7}.entity-item-action{padding:0;margin:0;background:none;border:none;cursor:pointer;font:inherit;color:inherit}.entity-item-action:focus{outline:none}.entity-item-action{display:flex;align-items:center;justify-content:center;flex-shrink:0;width:20px;height:20px;color:#6c757d;border-radius:50%;transition:all .15s ease-in-out}.entity-item-action:hover{background:rgba(0,0,0,.1);color:#dc3545}.entity-item-action i{font-size:10px}.entity-item.chip-style{display:inline-flex;gap:.375rem;padding:.25rem .5rem;background:#f1f5f9;border-radius:50rem}.entity-item.chip-style:hover{background:#e2e8f0}.entity-item.chip-style .entity-item-image{width:20px;height:20px;border-radius:50%}.entity-item.chip-style .entity-item-no-image{width:20px;height:20px;font-size:10px;border-radius:50%}.entity-item.chip-style .entity-item-info{flex-direction:row;align-items:center;gap:.25rem}.entity-item.chip-style .entity-item-name{font-size:.75rem}.entity-item.chip-style .entity-item-meta{display:none}.entity-item.chip-style .entity-item-action{width:16px;height:16px;margin-left:.125rem}.entity-item.list-style{padding:.5rem 0;background:rgba(0,0,0,0);border-bottom:1px solid #dee2e6;border-radius:0}.entity-item.list-style:last-child{border-bottom:none}.entity-item.list-style:hover{background:#e9ecef}.entity-items-container{display:flex;flex-direction:column;background:#f8fafc;border:1px solid #dee2e6;border-radius:.25rem;overflow:hidden}.entity-items-toolbar{display:none;align-items:center;flex-wrap:nowrap;gap:.5rem;padding:.5rem 1rem;padding-bottom:0;background:rgba(0,0,0,0)}.entity-items-toolbar.has-items{display:flex}.entity-items-filter{all:unset;display:block;flex:1 1 auto;min-width:80px;width:auto;height:auto;padding:.2rem .5rem .2rem 1.5rem;background:#fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='10' viewBox='0 0 24 24' fill='none' stroke='%2394a3b8' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='11' cy='11' r='8'/%3E%3Cpath d='m21 21-4.35-4.35'/%3E%3C/svg%3E") no-repeat .375rem center;background-size:10px;border:1px solid #cbd5e1;border-radius:.2rem;font-size:11px;line-height:1.4;color:#212529;box-sizing:border-box;transition:all .15s ease-in-out}.entity-items-filter::placeholder{color:#6c757d;font-size:11px}.entity-items-filter:focus{outline:none;border-color:#25b9d7;box-shadow:0 0 0 2px rgba(37,185,215,.1)}.entity-items-sort{all:unset;flex:0 0 auto;padding:.2rem 1.25rem .2rem .5rem;border:1px solid #dee2e6;border-radius:.2rem;background:#fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='8' height='8' viewBox='0 0 8 8'%3E%3Cpath fill='%23666' d='M0 2l4 4 4-4z'/%3E%3C/svg%3E") no-repeat right .375rem center;background-size:8px;font-size:10px;line-height:1.4;color:#495057;cursor:pointer;box-sizing:border-box;white-space:nowrap}.entity-items-sort:hover{border-color:#25b9d7}.entity-items-sort:focus{outline:none;border-color:#25b9d7;box-shadow:0 0 0 2px rgba(37,185,215,.1)}.entity-items-count{display:inline-flex;align-items:center;flex-shrink:0;gap:.125rem;padding:.2rem .5rem;background:#e2e8f0;color:#495057;font-size:10px;font-weight:600;border-radius:.2rem;white-space:nowrap;line-height:1.4}.entity-items-count.has-filter{background:#cffafe;color:#0e7490}.entity-items-clear{padding:0;margin:0;background:none;border:none;cursor:pointer;font:inherit;color:inherit}.entity-items-clear:focus{outline:none}.entity-items-clear{display:inline-flex;align-items:center;flex-shrink:0;gap:.25rem;padding:.2rem .5rem;color:#dc3545;font-size:10px;font-weight:500;background:rgba(220,53,69,.1);border-radius:.2rem;transition:all .15s ease-in-out;white-space:nowrap;line-height:1.4}.entity-items-clear:hover{background:#dc3545;color:#fff}.entity-items-clear i{font-size:9px;flex-shrink:0}.entity-items-list{display:flex;flex-wrap:wrap;gap:.25rem;padding:.5rem 1rem 1rem;min-height:40px;max-height:300px;overflow-y:auto}.entity-items-list::-webkit-scrollbar{width:6px;height:6px}.entity-items-list::-webkit-scrollbar-track{background:#f8f9fa;border-radius:3px}.entity-items-list::-webkit-scrollbar-thumb{background:#dee2e6;border-radius:3px}.entity-items-list::-webkit-scrollbar-thumb:hover{background:#ced4da}.entity-items-list:empty{display:none}.entity-items-list.list-layout{flex-direction:column;flex-wrap:nowrap;gap:0;padding:.5rem}.entity-items-load-more{display:flex;align-items:center;justify-content:center;gap:.5rem;padding:.5rem 1rem;background:rgba(0,0,0,0);border-top:1px dashed #dee2e6}.entity-items-load-more .load-more-label{font-size:.75rem;color:#6c757d}.entity-items-load-more .load-more-select{appearance:none;padding:.25rem 1.75rem .25rem .5rem;border:1px solid #dee2e6;border-radius:.2rem;background:#fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='8' height='8' viewBox='0 0 8 8'%3E%3Cpath fill='%23666' d='M0 2l4 4 4-4z'/%3E%3C/svg%3E") no-repeat right .5rem center;background-size:8px;font-size:.75rem;font-weight:500;color:#25b9d7;cursor:pointer;transition:all .15s ease-in-out;height:auto;min-height:0;line-height:1.3}.entity-items-load-more .load-more-select:hover{border-color:#25b9d7;background-color:rgba(37,185,215,.1)}.entity-items-load-more .load-more-select:focus{outline:none;border-color:#25b9d7;box-shadow:0 0 0 2px rgba(37,185,215,.1)}.entity-items-load-more .load-more-remaining{font-size:.75rem;color:#6c757d}.entity-items-load-more .load-more-remaining .remaining-count{font-weight:600;color:#495057}.entity-items-load-more .btn-load-more{display:flex;align-items:center;justify-content:center;padding:.25rem;margin:0;border:none;color:#25b9d7;background:rgba(37,185,215,.1);border-radius:.2rem;cursor:pointer;transition:all .15s ease-in-out;font:inherit}.entity-items-load-more .btn-load-more i{font-size:14px}.entity-items-load-more .btn-load-more:hover{background:rgba(37,185,215,.2)}.entity-items-load-more .btn-load-more.loading{cursor:wait}.entity-items-load-more .btn-load-more.loading i{animation:spin .6s linear infinite}.entity-items-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.5rem;padding:2rem;text-align:center;color:#6c757d}.entity-items-empty i{font-size:2rem;opacity:.5}.entity-items-empty p{margin:0;font-size:.875rem}.entity-items-loading{display:flex;align-items:center;justify-content:center;padding:2rem;color:#6c757d}.entity-items-loading i{font-size:20px;animation:spin .6s linear infinite}.target-conditions-trait .target-search-wrapper,.entity-selector-trait .target-search-wrapper{position:relative}.target-conditions-trait .target-search-dropdown,.entity-selector-trait .target-search-dropdown{position:absolute;z-index:1000;background:#fff;border:1px solid #dee2e6;border-radius:.3rem;box-shadow:0 1rem 3rem rgba(0,0,0,.175);display:none;width:600px;max-width:calc(100vw - 40px)}.target-conditions-trait .target-search-dropdown.show,.entity-selector-trait .target-search-dropdown.show{display:block}.target-conditions-trait .dropdown-header,.entity-selector-trait .dropdown-header{display:flex;align-items:center;gap:.5rem;padding:1rem;background:#f8f9fa;border-bottom:1px solid #dee2e6;border-radius:.3rem .3rem 0 0}.target-conditions-trait .dropdown-search-input,.entity-selector-trait .dropdown-search-input{width:100%;padding:.5rem 1rem;font-size:.875rem;line-height:1.5;color:#212529;background-color:#fff;border:1px solid #dee2e6;border-radius:.25rem;transition:border-color .15s ease-in-out,box-shadow .15s ease-in-out}.target-conditions-trait .dropdown-search-input:focus,.entity-selector-trait .dropdown-search-input:focus{border-color:#25b9d7;outline:0;box-shadow:0 0 0 .2rem rgba(37,185,215,.25)}.target-conditions-trait .dropdown-search-input::placeholder,.entity-selector-trait .dropdown-search-input::placeholder{color:#adb5bd}.target-conditions-trait .dropdown-search-input,.entity-selector-trait .dropdown-search-input{flex:1;padding:.5rem 1rem}.target-conditions-trait .dropdown-close-btn,.entity-selector-trait .dropdown-close-btn{padding:0;margin:0;background:none;border:none;cursor:pointer;font:inherit;color:inherit}.target-conditions-trait .dropdown-close-btn:focus,.entity-selector-trait .dropdown-close-btn:focus{outline:none}.target-conditions-trait .dropdown-close-btn,.entity-selector-trait .dropdown-close-btn{display:flex;align-items:center;justify-content:center;width:32px;height:32px;color:#6c757d;border-radius:.25rem;transition:all .15s ease-in-out}.target-conditions-trait .dropdown-close-btn:hover,.entity-selector-trait .dropdown-close-btn:hover{background:#e2e8f0;color:#495057}.target-conditions-trait .dropdown-controls,.entity-selector-trait .dropdown-controls{display:flex;align-items:center;justify-content:space-between;gap:.5rem;padding:.5rem 1rem;background:#fff;border-bottom:1px solid #dee2e6}.target-conditions-trait .dropdown-controls-left,.target-conditions-trait .dropdown-controls-right,.entity-selector-trait .dropdown-controls-left,.entity-selector-trait .dropdown-controls-right{display:flex;align-items:center;gap:.5rem}.target-conditions-trait .view-mode-btn,.entity-selector-trait .view-mode-btn{padding:0;margin:0;background:none;border:none;cursor:pointer;font:inherit;color:inherit}.target-conditions-trait .view-mode-btn:focus,.entity-selector-trait .view-mode-btn:focus{outline:none}.target-conditions-trait .view-mode-btn,.entity-selector-trait .view-mode-btn{display:flex;align-items:center;justify-content:center;width:28px;height:28px;color:#6c757d;background:rgba(0,0,0,0);border-radius:.2rem;transition:all .15s ease-in-out}.target-conditions-trait .view-mode-btn:hover,.entity-selector-trait .view-mode-btn:hover{background:#f1f5f9;color:#495057}.target-conditions-trait .view-mode-btn.active,.entity-selector-trait .view-mode-btn.active{background:#25b9d7;color:#fff}.target-conditions-trait .dropdown-results-count,.entity-selector-trait .dropdown-results-count{font-size:.75rem;color:#6c757d}.target-conditions-trait .dropdown-body,.entity-selector-trait .dropdown-body{max-height:400px;overflow-y:auto}.target-conditions-trait .dropdown-body::-webkit-scrollbar,.entity-selector-trait .dropdown-body::-webkit-scrollbar{width:6px;height:6px}.target-conditions-trait .dropdown-body::-webkit-scrollbar-track,.entity-selector-trait .dropdown-body::-webkit-scrollbar-track{background:#f8f9fa;border-radius:3px}.target-conditions-trait .dropdown-body::-webkit-scrollbar-thumb,.entity-selector-trait .dropdown-body::-webkit-scrollbar-thumb{background:#dee2e6;border-radius:3px}.target-conditions-trait .dropdown-body::-webkit-scrollbar-thumb:hover,.entity-selector-trait .dropdown-body::-webkit-scrollbar-thumb:hover{background:#ced4da}.target-conditions-trait .dropdown-results,.entity-selector-trait .dropdown-results{padding:0 .5rem}.target-conditions-trait .results-count,.entity-selector-trait .results-count{font-size:.75rem;color:#6c757d;padding:.25rem .5rem}.target-conditions-trait .results-header,.entity-selector-trait .results-header{display:flex;align-items:center;gap:.5rem;padding:.25rem 1rem;background:#f1f5f9;border-bottom:1px solid #dee2e6;font-size:.75rem;font-weight:600;color:#495057}.target-conditions-trait .dropdown-results-grid,.entity-selector-trait .dropdown-results-grid{display:grid;gap:.5rem}.target-conditions-trait .dropdown-results-grid.view-list,.entity-selector-trait .dropdown-results-grid.view-list{grid-template-columns:1fr}.target-conditions-trait .dropdown-results-grid.view-grid-2,.entity-selector-trait .dropdown-results-grid.view-grid-2{grid-template-columns:repeat(2, 1fr)}.target-conditions-trait .dropdown-results-grid.view-grid-3,.entity-selector-trait .dropdown-results-grid.view-grid-3{grid-template-columns:repeat(3, 1fr)}.target-conditions-trait .dropdown-result-item,.entity-selector-trait .dropdown-result-item{display:flex;align-items:center;gap:.5rem;padding:.5rem 0;background:#fff;border:none;border-bottom:1px solid #dee2e6;border-radius:0;cursor:pointer;transition:background .15s ease-in-out}.target-conditions-trait .dropdown-result-item:last-child,.entity-selector-trait .dropdown-result-item:last-child{border-bottom:none}.target-conditions-trait .dropdown-result-item:hover,.entity-selector-trait .dropdown-result-item:hover{background:#e9ecef}.target-conditions-trait .dropdown-result-item.selected,.entity-selector-trait .dropdown-result-item.selected{background:rgba(37,185,215,.1)}.target-conditions-trait .dropdown-result-item.disabled,.entity-selector-trait .dropdown-result-item.disabled{opacity:.5;cursor:not-allowed}.target-conditions-trait .dropdown-result-item.disabled:hover,.entity-selector-trait .dropdown-result-item.disabled:hover{background:#fff}.target-conditions-trait .result-item-image,.target-conditions-trait .result-image,.entity-selector-trait .result-item-image,.entity-selector-trait .result-image{flex-shrink:0;width:40px;height:40px;overflow:hidden;border-radius:.2rem;background:#f1f5f9}.target-conditions-trait .result-item-image img,.target-conditions-trait .result-image img,.entity-selector-trait .result-item-image img,.entity-selector-trait .result-image img{width:100%;height:100%;object-fit:cover}.target-conditions-trait .result-icon,.entity-selector-trait .result-icon{display:flex;align-items:center;justify-content:center;flex-shrink:0;width:40px;height:40px;background:#f1f5f9;border-radius:.2rem;color:#6c757d}.target-conditions-trait .result-icon i,.entity-selector-trait .result-icon i{font-size:16px}.target-conditions-trait .result-item-info,.target-conditions-trait .result-info,.entity-selector-trait .result-item-info,.entity-selector-trait .result-info{flex:1;min-width:0}.target-conditions-trait .result-item-name,.target-conditions-trait .result-name,.entity-selector-trait .result-item-name,.entity-selector-trait .result-name{font-size:.875rem;font-weight:500;color:#212529;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.target-conditions-trait .result-item-meta,.target-conditions-trait .result-subtitle,.entity-selector-trait .result-item-meta,.entity-selector-trait .result-subtitle{font-size:.75rem;color:#6c757d}.target-conditions-trait .subtitle-line,.entity-selector-trait .subtitle-line{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.target-conditions-trait .subtitle-line-primary,.entity-selector-trait .subtitle-line-primary{color:#495057}.target-conditions-trait .subtitle-line-secondary,.entity-selector-trait .subtitle-line-secondary{color:#6c757d;font-size:11px}.target-conditions-trait .result-col,.entity-selector-trait .result-col{flex-shrink:0;width:70px;text-align:right;font-size:.75rem}.target-conditions-trait .result-col-price,.entity-selector-trait .result-col-price{color:#495057}.target-conditions-trait .result-col-sale,.entity-selector-trait .result-col-sale{color:#dc3545;font-weight:600}.target-conditions-trait .result-col-stock .col-value.stock-ok,.entity-selector-trait .result-col-stock .col-value.stock-ok{color:#28a745}.target-conditions-trait .result-col-stock .col-value.stock-low,.entity-selector-trait .result-col-stock .col-value.stock-low{color:#ffc107}.target-conditions-trait .result-col-stock .col-value.stock-out,.entity-selector-trait .result-col-stock .col-value.stock-out{color:#dc3545}.target-conditions-trait .result-col-sales,.entity-selector-trait .result-col-sales{color:#6c757d}.target-conditions-trait .col-value,.entity-selector-trait .col-value{display:block}.target-conditions-trait .result-item-checkbox,.target-conditions-trait .result-checkbox,.entity-selector-trait .result-item-checkbox,.entity-selector-trait .result-checkbox{display:flex;align-items:center;justify-content:center;flex-shrink:0;width:18px;height:18px;border:2px solid #ced4da;border-radius:.2rem;transition:all .15s ease-in-out}.target-conditions-trait .result-item-checkbox i,.target-conditions-trait .result-checkbox i,.entity-selector-trait .result-item-checkbox i,.entity-selector-trait .result-checkbox i{display:none;font-size:10px;color:#fff}.dropdown-result-item.selected .target-conditions-trait .result-item-checkbox,.dropdown-item.selected .target-conditions-trait .result-item-checkbox,.dropdown-result-item.selected .target-conditions-trait .result-checkbox,.dropdown-item.selected .target-conditions-trait .result-checkbox,.dropdown-result-item.selected .entity-selector-trait .result-item-checkbox,.dropdown-item.selected .entity-selector-trait .result-item-checkbox,.dropdown-result-item.selected .entity-selector-trait .result-checkbox,.dropdown-item.selected .entity-selector-trait .result-checkbox{background:#25b9d7;border-color:#25b9d7}.dropdown-result-item.selected .target-conditions-trait .result-item-checkbox i,.dropdown-item.selected .target-conditions-trait .result-item-checkbox i,.dropdown-result-item.selected .target-conditions-trait .result-checkbox i,.dropdown-item.selected .target-conditions-trait .result-checkbox i,.dropdown-result-item.selected .entity-selector-trait .result-item-checkbox i,.dropdown-item.selected .entity-selector-trait .result-item-checkbox i,.dropdown-result-item.selected .entity-selector-trait .result-checkbox i,.dropdown-item.selected .entity-selector-trait .result-checkbox i{display:block}.target-conditions-trait .result-item-product,.entity-selector-trait .result-item-product{display:flex;align-items:center;gap:.5rem}.target-conditions-trait .no-results,.entity-selector-trait .no-results{display:flex;align-items:center;justify-content:center;gap:.5rem;padding:2rem;color:#6c757d;font-size:.875rem}.target-conditions-trait .no-results i,.entity-selector-trait .no-results i{font-size:1.25rem;opacity:.5}.target-conditions-trait .dropdown-empty,.entity-selector-trait .dropdown-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.5rem;padding:2rem;text-align:center;color:#6c757d}.target-conditions-trait .dropdown-empty i,.entity-selector-trait .dropdown-empty i{font-size:2rem;opacity:.5}.target-conditions-trait .dropdown-empty p,.entity-selector-trait .dropdown-empty p{margin:0;font-size:.875rem}.target-conditions-trait .dropdown-loading,.entity-selector-trait .dropdown-loading{display:flex;align-items:center;justify-content:center;padding:2rem;color:#6c757d}.target-conditions-trait .dropdown-loading i,.entity-selector-trait .dropdown-loading i{font-size:1.5rem;animation:spin 1s linear infinite}.target-conditions-trait .dropdown-footer,.entity-selector-trait .dropdown-footer{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.5rem 1rem;background:#f8fafc;border-top:1px solid #dee2e6;border-radius:0 0 .3rem .3rem}.target-conditions-trait .dropdown-footer-left,.entity-selector-trait .dropdown-footer-left{display:flex;align-items:center;gap:.25rem;font-size:.75rem;color:#6c757d}.target-conditions-trait .dropdown-footer-left .load-label,.entity-selector-trait .dropdown-footer-left .load-label{color:#6c757d}.target-conditions-trait .dropdown-footer-left .load-more-select,.target-conditions-trait .dropdown-footer-left select.load-more-select,.entity-selector-trait .dropdown-footer-left .load-more-select,.entity-selector-trait .dropdown-footer-left select.load-more-select{appearance:none;padding:.25rem 1.5rem .25rem .5rem;border:1px solid #dee2e6;border-radius:.2rem;background:#fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='8' height='8' viewBox='0 0 8 8'%3E%3Cpath fill='%23666' d='M0 2l4 4 4-4z'/%3E%3C/svg%3E") no-repeat right .4rem center;background-size:8px;font-size:.75rem;color:#495057;cursor:pointer;min-width:55px}.target-conditions-trait .dropdown-footer-left .load-more-select:hover,.target-conditions-trait .dropdown-footer-left select.load-more-select:hover,.entity-selector-trait .dropdown-footer-left .load-more-select:hover,.entity-selector-trait .dropdown-footer-left select.load-more-select:hover{border-color:#25b9d7}.target-conditions-trait .dropdown-footer-left .load-more-select:focus,.target-conditions-trait .dropdown-footer-left select.load-more-select:focus,.entity-selector-trait .dropdown-footer-left .load-more-select:focus,.entity-selector-trait .dropdown-footer-left select.load-more-select:focus{outline:none;border-color:#25b9d7}.target-conditions-trait .dropdown-footer-left .remaining-text,.entity-selector-trait .dropdown-footer-left .remaining-text{color:#6c757d}.target-conditions-trait .dropdown-footer-left .remaining-text strong,.entity-selector-trait .dropdown-footer-left .remaining-text strong{color:#495057;font-weight:600}.target-conditions-trait .dropdown-footer-left .btn-load-all,.entity-selector-trait .dropdown-footer-left .btn-load-all{padding:0;margin:0;background:none;border:none;cursor:pointer;font:inherit;color:inherit}.target-conditions-trait .dropdown-footer-left .btn-load-all:focus,.entity-selector-trait .dropdown-footer-left .btn-load-all:focus{outline:none}.target-conditions-trait .dropdown-footer-left .btn-load-all,.entity-selector-trait .dropdown-footer-left .btn-load-all{padding:.25rem .5rem;font-size:.75rem;color:#25b9d7;background:rgba(0,0,0,0);border-radius:.2rem;transition:all .15s ease-in-out}.target-conditions-trait .dropdown-footer-left .btn-load-all:hover,.entity-selector-trait .dropdown-footer-left .btn-load-all:hover{background:rgba(37,185,215,.1)}.target-conditions-trait .dropdown-footer-right,.entity-selector-trait .dropdown-footer-right{display:flex;align-items:center;gap:.5rem}.target-conditions-trait .dropdown-action-btn,.entity-selector-trait .dropdown-action-btn{padding:0;margin:0;background:none;border:none;cursor:pointer;font:inherit;color:inherit}.target-conditions-trait .dropdown-action-btn:focus,.entity-selector-trait .dropdown-action-btn:focus{outline:none}.target-conditions-trait .dropdown-action-btn,.entity-selector-trait .dropdown-action-btn{display:inline-flex;align-items:center;gap:.375rem;padding:.375rem .75rem;font-size:.75rem;font-weight:500;border-radius:.2rem;transition:all .15s ease-in-out}.target-conditions-trait .dropdown-action-btn .btn-shortcut,.entity-selector-trait .dropdown-action-btn .btn-shortcut{font-size:10px;padding:.125rem .25rem;background:rgba(0,0,0,.08);border-radius:3px;font-weight:400}.target-conditions-trait .dropdown-action-btn.btn-cancel,.entity-selector-trait .dropdown-action-btn.btn-cancel{color:#495057;background:#fff;border:1px solid #dee2e6}.target-conditions-trait .dropdown-action-btn.btn-cancel:hover,.entity-selector-trait .dropdown-action-btn.btn-cancel:hover{background:#f1f5f9;border-color:#ced4da}.target-conditions-trait .dropdown-action-btn.btn-apply,.target-conditions-trait .dropdown-action-btn.btn-save,.entity-selector-trait .dropdown-action-btn.btn-apply,.entity-selector-trait .dropdown-action-btn.btn-save{color:#fff;background:#25b9d7;border:1px solid #25b9d7}.target-conditions-trait .dropdown-action-btn.btn-apply:hover,.target-conditions-trait .dropdown-action-btn.btn-save:hover,.entity-selector-trait .dropdown-action-btn.btn-apply:hover,.entity-selector-trait .dropdown-action-btn.btn-save:hover{background:#1a9ab7;border-color:#1a9ab7}.target-conditions-trait .dropdown-action-btn.btn-apply .btn-shortcut,.target-conditions-trait .dropdown-action-btn.btn-save .btn-shortcut,.entity-selector-trait .dropdown-action-btn.btn-apply .btn-shortcut,.entity-selector-trait .dropdown-action-btn.btn-save .btn-shortcut{background:hsla(0,0%,100%,.2)}.target-conditions-trait .dropdown-load-more,.entity-selector-trait .dropdown-load-more{display:none}.target-conditions-trait .load-more-controls,.entity-selector-trait .load-more-controls{display:none}.target-conditions-trait .dropdown-filter-panel,.entity-selector-trait .dropdown-filter-panel{padding:1rem;background:#f8fafc;border-bottom:1px solid #dee2e6}.target-conditions-trait .filter-panel-header,.entity-selector-trait .filter-panel-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:.5rem}.target-conditions-trait .filter-panel-title,.entity-selector-trait .filter-panel-title{font-size:.875rem;font-weight:600;color:#212529}.target-conditions-trait .filter-panel-toggle,.entity-selector-trait .filter-panel-toggle{padding:0;margin:0;background:none;border:none;cursor:pointer;font:inherit;color:inherit}.target-conditions-trait .filter-panel-toggle:focus,.entity-selector-trait .filter-panel-toggle:focus{outline:none}.target-conditions-trait .filter-panel-toggle,.entity-selector-trait .filter-panel-toggle{font-size:.75rem;color:#25b9d7}.target-conditions-trait .filter-panel-toggle:hover,.entity-selector-trait .filter-panel-toggle:hover{text-decoration:underline}.target-conditions-trait .filter-panel-content,.entity-selector-trait .filter-panel-content{display:grid;gap:.5rem;grid-template-columns:repeat(auto-fill, minmax(150px, 1fr))}.target-conditions-trait .filter-group,.entity-selector-trait .filter-group{display:flex;flex-direction:column;gap:.25rem}.target-conditions-trait .filter-label,.entity-selector-trait .filter-label{font-size:.75rem;font-weight:500;color:#495057}.target-conditions-trait .filter-select,.target-conditions-trait .filter-input,.entity-selector-trait .filter-select,.entity-selector-trait .filter-input{width:100%;padding:.5rem 1rem;font-size:.875rem;line-height:1.5;color:#212529;background-color:#fff;border:1px solid #dee2e6;border-radius:.25rem;transition:border-color .15s ease-in-out,box-shadow .15s ease-in-out}.target-conditions-trait .filter-select:focus,.target-conditions-trait .filter-input:focus,.entity-selector-trait .filter-select:focus,.entity-selector-trait .filter-input:focus{border-color:#25b9d7;outline:0;box-shadow:0 0 0 .2rem rgba(37,185,215,.25)}.target-conditions-trait .filter-select::placeholder,.target-conditions-trait .filter-input::placeholder,.entity-selector-trait .filter-select::placeholder,.entity-selector-trait .filter-input::placeholder{color:#adb5bd}.target-conditions-trait .filter-select,.target-conditions-trait .filter-input,.entity-selector-trait .filter-select,.entity-selector-trait .filter-input{padding:.375rem .5rem;font-size:.75rem}.target-conditions-trait .category-tree,.entity-selector-trait .category-tree{padding:.5rem}.target-conditions-trait .tree-loading,.entity-selector-trait .tree-loading{display:flex;align-items:center;justify-content:center;gap:.5rem;padding:2rem;color:#6c757d;font-size:.875rem}.target-conditions-trait .tree-loading i,.entity-selector-trait .tree-loading i{animation:spin .6s linear infinite}.target-conditions-trait .tree-item,.entity-selector-trait .tree-item{display:flex;align-items:center;gap:.25rem;padding:.375rem .5rem;border-radius:.2rem;cursor:pointer;transition:background-color .15s ease-in-out}.target-conditions-trait .tree-item:hover,.entity-selector-trait .tree-item:hover{background:#e9ecef}.target-conditions-trait .tree-item.selected,.entity-selector-trait .tree-item.selected{background:rgba(37,185,215,.1)}.target-conditions-trait .tree-item.selected .tree-checkbox,.entity-selector-trait .tree-item.selected .tree-checkbox{background:#25b9d7;border-color:#25b9d7}.target-conditions-trait .tree-item.selected .tree-checkbox i,.entity-selector-trait .tree-item.selected .tree-checkbox i{display:block}.target-conditions-trait .tree-info,.entity-selector-trait .tree-info{display:flex;align-items:center;gap:.25rem;flex:1;min-width:0}.target-conditions-trait .tree-name,.entity-selector-trait .tree-name{font-size:.875rem;color:#212529;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.target-conditions-trait .tree-subtitle,.entity-selector-trait .tree-subtitle{font-size:.75rem;color:#6c757d}.target-conditions-trait .category-tree-item,.entity-selector-trait .category-tree-item{padding:.25rem 0}.target-conditions-trait .category-tree-node,.entity-selector-trait .category-tree-node{display:flex;align-items:center;gap:.5rem;padding:.25rem .5rem;border-radius:.2rem;cursor:pointer;transition:background-color .15s ease-in-out}.target-conditions-trait .category-tree-node:hover,.entity-selector-trait .category-tree-node:hover{background:#e9ecef}.target-conditions-trait .category-tree-node.selected,.entity-selector-trait .category-tree-node.selected{background:rgba(37,185,215,.1)}.target-conditions-trait .category-tree-toggle,.entity-selector-trait .category-tree-toggle{display:flex;align-items:center;justify-content:center;width:16px;height:16px;color:#6c757d;transition:transform .15s ease-in-out}.target-conditions-trait .category-tree-toggle.expanded,.entity-selector-trait .category-tree-toggle.expanded{transform:rotate(90deg)}.target-conditions-trait .category-tree-toggle.empty,.entity-selector-trait .category-tree-toggle.empty{visibility:hidden}.target-conditions-trait .category-tree-checkbox,.entity-selector-trait .category-tree-checkbox{flex-shrink:0;width:16px;height:16px;border:2px solid #ced4da;border-radius:3px;transition:all .15s ease-in-out}.target-conditions-trait .category-tree-checkbox.checked,.entity-selector-trait .category-tree-checkbox.checked{background:#25b9d7;border-color:#25b9d7}.target-conditions-trait .category-tree-checkbox.checked::after,.entity-selector-trait .category-tree-checkbox.checked::after{content:"✓";display:flex;align-items:center;justify-content:center;width:100%;height:100%;color:#fff;font-size:10px}.target-conditions-trait .category-tree-checkbox.indeterminate,.entity-selector-trait .category-tree-checkbox.indeterminate{background:#25b9d7;border-color:#25b9d7}.target-conditions-trait .category-tree-checkbox.indeterminate::after,.entity-selector-trait .category-tree-checkbox.indeterminate::after{content:"−";display:flex;align-items:center;justify-content:center;width:100%;height:100%;color:#fff;font-size:10px}.target-conditions-trait .category-tree-name,.entity-selector-trait .category-tree-name{flex:1;font-size:.875rem;color:#212529;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.target-conditions-trait .category-tree-count,.entity-selector-trait .category-tree-count{font-size:.75rem;color:#6c757d}.target-conditions-trait .category-tree-children,.entity-selector-trait .category-tree-children{margin-left:24px}.target-conditions-trait .search-history-list,.entity-selector-trait .search-history-list{padding:.5rem}.target-conditions-trait .history-item,.entity-selector-trait .history-item{display:flex;align-items:center;gap:.5rem;padding:.5rem;border-radius:.2rem;cursor:pointer;transition:background-color .15s ease-in-out}.target-conditions-trait .history-item:hover,.entity-selector-trait .history-item:hover{background:#e9ecef}.target-conditions-trait .history-item>i,.entity-selector-trait .history-item>i{color:#6c757d;font-size:14px}.target-conditions-trait .history-query,.entity-selector-trait .history-query{flex:1;font-size:.875rem;color:#212529}.target-conditions-trait .btn-delete-history,.entity-selector-trait .btn-delete-history{padding:0;margin:0;background:none;border:none;cursor:pointer;font:inherit;color:inherit}.target-conditions-trait .btn-delete-history:focus,.entity-selector-trait .btn-delete-history:focus{outline:none}.target-conditions-trait .btn-delete-history,.entity-selector-trait .btn-delete-history{display:flex;align-items:center;justify-content:center;width:24px;height:24px;color:#6c757d;border-radius:.2rem;opacity:0;transition:all .15s ease-in-out}.history-item:hover .target-conditions-trait .btn-delete-history,.history-item:hover .entity-selector-trait .btn-delete-history{opacity:1}.target-conditions-trait .btn-delete-history:hover,.entity-selector-trait .btn-delete-history:hover{background:#f8d7da;color:#dc3545}.target-conditions-trait .btn-delete-history i,.entity-selector-trait .btn-delete-history i{font-size:12px}.target-conditions-trait .filter-panel,.entity-selector-trait .filter-panel{display:none;padding:1rem;background:#f8fafc;border-bottom:1px solid #dee2e6}.target-conditions-trait .filter-panel.show,.entity-selector-trait .filter-panel.show{display:block}.target-conditions-trait .filter-row,.entity-selector-trait .filter-row{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem;margin-bottom:.5rem}.target-conditions-trait .filter-row:last-child,.entity-selector-trait .filter-row:last-child{margin-bottom:0}.target-conditions-trait .view-mode-select,.entity-selector-trait .view-mode-select{width:100%;padding:.5rem 1rem;font-size:.875rem;line-height:1.5;color:#212529;background-color:#fff;border:1px solid #dee2e6;border-radius:.25rem;transition:border-color .15s ease-in-out,box-shadow .15s ease-in-out}.target-conditions-trait .view-mode-select:focus,.entity-selector-trait .view-mode-select:focus{border-color:#25b9d7;outline:0;box-shadow:0 0 0 .2rem rgba(37,185,215,.25)}.target-conditions-trait .view-mode-select::placeholder,.entity-selector-trait .view-mode-select::placeholder{color:#adb5bd}.target-conditions-trait .view-mode-select,.entity-selector-trait .view-mode-select{padding:.25rem .5rem;font-size:.75rem;min-width:80px}body>.target-search-dropdown,.target-search-dropdown{position:absolute;z-index:1000;background:#fff;border:1px solid #dee2e6;border-radius:.3rem;box-shadow:0 1rem 3rem rgba(0,0,0,.175);display:none;width:600px;max-width:calc(100vw - 40px)}body>.target-search-dropdown.show,.target-search-dropdown.show{display:block}body>.target-search-dropdown .dropdown-header,.target-search-dropdown .dropdown-header{display:flex;align-items:center;gap:.5rem;padding:1rem;background:#f8f9fa;border-bottom:1px solid #dee2e6;border-radius:.3rem .3rem 0 0;flex-wrap:wrap}body>.target-search-dropdown .results-count,.target-search-dropdown .results-count{font-size:.875rem;font-weight:600;color:#212529;white-space:nowrap}body>.target-search-dropdown .dropdown-actions,.target-search-dropdown .dropdown-actions{display:flex;align-items:center;gap:.25rem;flex-wrap:wrap;flex:1;justify-content:flex-end}body>.target-search-dropdown .btn-select-all,body>.target-search-dropdown .btn-clear-selection,.target-search-dropdown .btn-select-all,.target-search-dropdown .btn-clear-selection{padding:0;margin:0;background:none;border:none;cursor:pointer;font:inherit;color:inherit}body>.target-search-dropdown .btn-select-all:focus,body>.target-search-dropdown .btn-clear-selection:focus,.target-search-dropdown .btn-select-all:focus,.target-search-dropdown .btn-clear-selection:focus{outline:none}body>.target-search-dropdown .btn-select-all,body>.target-search-dropdown .btn-clear-selection,.target-search-dropdown .btn-select-all,.target-search-dropdown .btn-clear-selection{display:inline-flex;align-items:center;gap:.25rem;padding:.25rem .5rem;font-size:.75rem;color:#495057;background:#fff;border:1px solid #dee2e6;border-radius:.2rem;cursor:pointer;transition:all .15s ease-in-out}body>.target-search-dropdown .btn-select-all:hover,body>.target-search-dropdown .btn-clear-selection:hover,.target-search-dropdown .btn-select-all:hover,.target-search-dropdown .btn-clear-selection:hover{background:#e9ecef;border-color:#cbd5e1}body>.target-search-dropdown .btn-select-all kbd,body>.target-search-dropdown .btn-clear-selection kbd,.target-search-dropdown .btn-select-all kbd,.target-search-dropdown .btn-clear-selection kbd{font-size:.65rem;padding:.125rem .25rem;background:#f1f5f9;border-radius:2px;color:#6c757d}body>.target-search-dropdown .sort-controls,.target-search-dropdown .sort-controls{display:flex;align-items:center}body>.target-search-dropdown .sort-field-select,.target-search-dropdown .sort-field-select{width:100%;padding:.5rem 1rem;font-size:.875rem;line-height:1.5;color:#212529;background-color:#fff;border:1px solid #dee2e6;border-radius:.25rem;transition:border-color .15s ease-in-out,box-shadow .15s ease-in-out}body>.target-search-dropdown .sort-field-select:focus,.target-search-dropdown .sort-field-select:focus{border-color:#25b9d7;outline:0;box-shadow:0 0 0 .2rem rgba(37,185,215,.25)}body>.target-search-dropdown .sort-field-select::placeholder,.target-search-dropdown .sort-field-select::placeholder{color:#adb5bd}body>.target-search-dropdown .sort-field-select,.target-search-dropdown .sort-field-select{padding:.25rem .5rem;font-size:.75rem;min-width:80px;height:28px;border-radius:.2rem 0 0 .2rem;border-right:none}body>.target-search-dropdown .btn-sort-dir,.target-search-dropdown .btn-sort-dir{display:flex;align-items:center;justify-content:center;width:38px;min-width:38px;flex-shrink:0;height:28px;padding:0;margin:0;color:#6c757d;background:#fff;border:1px solid #dee2e6;border-radius:0 .2rem .2rem 0;cursor:pointer;transition:all .15s ease-in-out}body>.target-search-dropdown .btn-sort-dir i,.target-search-dropdown .btn-sort-dir i{font-size:14px}body>.target-search-dropdown .btn-sort-dir:hover,.target-search-dropdown .btn-sort-dir:hover{background:#e9ecef;color:#212529}body>.target-search-dropdown .btn-sort-dir.active,.target-search-dropdown .btn-sort-dir.active{background:rgba(37,185,215,.1);border-color:#25b9d7;color:#25b9d7}body>.target-search-dropdown .view-mode-select,.target-search-dropdown .view-mode-select{width:100%;padding:.5rem 1rem;font-size:.875rem;line-height:1.5;color:#212529;background-color:#fff;border:1px solid #dee2e6;border-radius:.25rem;transition:border-color .15s ease-in-out,box-shadow .15s ease-in-out}body>.target-search-dropdown .view-mode-select:focus,.target-search-dropdown .view-mode-select:focus{border-color:#25b9d7;outline:0;box-shadow:0 0 0 .2rem rgba(37,185,215,.25)}body>.target-search-dropdown .view-mode-select::placeholder,.target-search-dropdown .view-mode-select::placeholder{color:#adb5bd}body>.target-search-dropdown .view-mode-select,.target-search-dropdown .view-mode-select{padding:.25rem .5rem;font-size:.75rem;min-width:80px;margin-left:.25rem}body>.target-search-dropdown .btn-toggle-filters,body>.target-search-dropdown .btn-show-history,.target-search-dropdown .btn-toggle-filters,.target-search-dropdown .btn-show-history{display:flex;align-items:center;justify-content:center;width:32px;min-width:32px;flex-shrink:0;height:28px;padding:0;margin:0;color:#6c757d;background:#fff;border:1px solid #dee2e6;border-radius:.2rem;cursor:pointer;transition:all .15s ease-in-out}body>.target-search-dropdown .btn-toggle-filters i,body>.target-search-dropdown .btn-show-history i,.target-search-dropdown .btn-toggle-filters i,.target-search-dropdown .btn-show-history i{font-size:14px}body>.target-search-dropdown .btn-toggle-filters:hover,body>.target-search-dropdown .btn-show-history:hover,.target-search-dropdown .btn-toggle-filters:hover,.target-search-dropdown .btn-show-history:hover{background:#e9ecef;color:#212529}body>.target-search-dropdown .btn-toggle-filters.active,body>.target-search-dropdown .btn-show-history.active,.target-search-dropdown .btn-toggle-filters.active,.target-search-dropdown .btn-show-history.active{background:rgba(37,185,215,.1);border-color:#25b9d7;color:#25b9d7}body>.target-search-dropdown .refine-compact,.target-search-dropdown .refine-compact{display:flex;align-items:center}body>.target-search-dropdown .refine-compact .btn-refine-negate,.target-search-dropdown .refine-compact .btn-refine-negate{display:flex;align-items:center;justify-content:center;width:32px;min-width:32px;flex-shrink:0;height:28px;padding:0;margin:0;color:#6c757d;background:#fff;border:1px solid #dee2e6;border-right:none;border-radius:.2rem 0 0 .2rem;cursor:pointer;transition:all .15s ease-in-out}body>.target-search-dropdown .refine-compact .btn-refine-negate:hover,.target-search-dropdown .refine-compact .btn-refine-negate:hover{background:#e9ecef;color:#212529}body>.target-search-dropdown .refine-compact .btn-refine-negate.active,.target-search-dropdown .refine-compact .btn-refine-negate.active{background:#f8d7da;color:#dc3545;border-color:#dc3545}body>.target-search-dropdown .refine-compact .refine-input,.target-search-dropdown .refine-compact .refine-input{width:100%;padding:.5rem 1rem;font-size:.875rem;line-height:1.5;color:#212529;background-color:#fff;border:1px solid #dee2e6;border-radius:.25rem;transition:border-color .15s ease-in-out,box-shadow .15s ease-in-out}body>.target-search-dropdown .refine-compact .refine-input:focus,.target-search-dropdown .refine-compact .refine-input:focus{border-color:#25b9d7;outline:0;box-shadow:0 0 0 .2rem rgba(37,185,215,.25)}body>.target-search-dropdown .refine-compact .refine-input::placeholder,.target-search-dropdown .refine-compact .refine-input::placeholder{color:#adb5bd}body>.target-search-dropdown .refine-compact .refine-input,.target-search-dropdown .refine-compact .refine-input{width:100px;padding:.25rem .5rem;font-size:.75rem;border-radius:0 .2rem .2rem 0}body>.target-search-dropdown .refine-compact .btn-clear-refine,.target-search-dropdown .refine-compact .btn-clear-refine{display:flex;align-items:center;justify-content:center;width:28px;height:28px;padding:0;margin:0;margin-left:-1px;color:#6c757d;background:#fff;border:1px solid #dee2e6;border-radius:0 .2rem .2rem 0;cursor:pointer;transition:all .15s ease-in-out}body>.target-search-dropdown .refine-compact .btn-clear-refine:hover,.target-search-dropdown .refine-compact .btn-clear-refine:hover{background:#e9ecef;color:#212529}body>.target-search-dropdown .filter-panel,.target-search-dropdown .filter-panel{display:none;padding:1rem;background:#f8fafc;border-bottom:1px solid #dee2e6}body>.target-search-dropdown .filter-panel.show,.target-search-dropdown .filter-panel.show{display:block}body>.target-search-dropdown .filter-row,.target-search-dropdown .filter-row{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap;margin-bottom:.5rem}body>.target-search-dropdown .filter-row:last-child,.target-search-dropdown .filter-row:last-child{margin-bottom:0}body>.target-search-dropdown .filter-label,.target-search-dropdown .filter-label{display:inline-flex;align-items:center;gap:.25rem;font-size:.75rem;color:#495057;cursor:pointer}body>.target-search-dropdown .filter-label input[type=checkbox],.target-search-dropdown .filter-label input[type=checkbox]{margin:0}body>.target-search-dropdown .filter-price-range,.target-search-dropdown .filter-price-range{display:flex;align-items:center;gap:.25rem}body>.target-search-dropdown .filter-price-range .filter-price-label,.target-search-dropdown .filter-price-range .filter-price-label{font-size:.75rem;color:#6c757d}body>.target-search-dropdown .filter-price-range .filter-price-min,body>.target-search-dropdown .filter-price-range .filter-price-max,.target-search-dropdown .filter-price-range .filter-price-min,.target-search-dropdown .filter-price-range .filter-price-max{width:100%;padding:.5rem 1rem;font-size:.875rem;line-height:1.5;color:#212529;background-color:#fff;border:1px solid #dee2e6;border-radius:.25rem;transition:border-color .15s ease-in-out,box-shadow .15s ease-in-out}body>.target-search-dropdown .filter-price-range .filter-price-min:focus,body>.target-search-dropdown .filter-price-range .filter-price-max:focus,.target-search-dropdown .filter-price-range .filter-price-min:focus,.target-search-dropdown .filter-price-range .filter-price-max:focus{border-color:#25b9d7;outline:0;box-shadow:0 0 0 .2rem rgba(37,185,215,.25)}body>.target-search-dropdown .filter-price-range .filter-price-min::placeholder,body>.target-search-dropdown .filter-price-range .filter-price-max::placeholder,.target-search-dropdown .filter-price-range .filter-price-min::placeholder,.target-search-dropdown .filter-price-range .filter-price-max::placeholder{color:#adb5bd}body>.target-search-dropdown .filter-price-range .filter-price-min,body>.target-search-dropdown .filter-price-range .filter-price-max,.target-search-dropdown .filter-price-range .filter-price-min,.target-search-dropdown .filter-price-range .filter-price-max{width:70px;padding:.25rem .5rem;font-size:.75rem}body>.target-search-dropdown .filter-price-range .filter-price-sep,.target-search-dropdown .filter-price-range .filter-price-sep{color:#6c757d}body>.target-search-dropdown .btn-clear-filters,.target-search-dropdown .btn-clear-filters{padding:0;margin:0;background:none;border:none;cursor:pointer;font:inherit;color:inherit}body>.target-search-dropdown .btn-clear-filters:focus,.target-search-dropdown .btn-clear-filters:focus{outline:none}body>.target-search-dropdown .btn-clear-filters,.target-search-dropdown .btn-clear-filters{display:flex;align-items:center;justify-content:center;width:24px;height:24px;color:#6c757d;border-radius:.2rem;cursor:pointer;margin-left:auto}body>.target-search-dropdown .btn-clear-filters:hover,.target-search-dropdown .btn-clear-filters:hover{background:#e2e8f0;color:#212529}body>.target-search-dropdown .filter-row-multi,.target-search-dropdown .filter-row-multi{flex-direction:column;align-items:stretch;gap:.5rem}body>.target-search-dropdown .filter-subrow,.target-search-dropdown .filter-subrow{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap}body>.target-search-dropdown .filter-range-group,body>.target-search-dropdown .filter-date-group,body>.target-search-dropdown .filter-select-group,.target-search-dropdown .filter-range-group,.target-search-dropdown .filter-date-group,.target-search-dropdown .filter-select-group{display:flex;align-items:center;gap:.25rem}body>.target-search-dropdown .filter-range-label,body>.target-search-dropdown .filter-date-label,body>.target-search-dropdown .filter-select-label,body>.target-search-dropdown .filter-row-label,.target-search-dropdown .filter-range-label,.target-search-dropdown .filter-date-label,.target-search-dropdown .filter-select-label,.target-search-dropdown .filter-row-label{font-size:.75rem;color:#6c757d;white-space:nowrap}body>.target-search-dropdown .filter-range-label i,body>.target-search-dropdown .filter-date-label i,body>.target-search-dropdown .filter-select-label i,body>.target-search-dropdown .filter-row-label i,.target-search-dropdown .filter-range-label i,.target-search-dropdown .filter-date-label i,.target-search-dropdown .filter-select-label i,.target-search-dropdown .filter-row-label i{margin-right:.25rem}body>.target-search-dropdown .filter-range-sep,.target-search-dropdown .filter-range-sep{color:#6c757d}body>.target-search-dropdown .filter-product-count-min,body>.target-search-dropdown .filter-product-count-max,body>.target-search-dropdown .filter-sales-min,body>.target-search-dropdown .filter-sales-max,body>.target-search-dropdown .filter-turnover-min,body>.target-search-dropdown .filter-turnover-max,body>.target-search-dropdown .filter-date-add-from,body>.target-search-dropdown .filter-date-add-to,body>.target-search-dropdown .filter-last-product-from,body>.target-search-dropdown .filter-last-product-to,.target-search-dropdown .filter-product-count-min,.target-search-dropdown .filter-product-count-max,.target-search-dropdown .filter-sales-min,.target-search-dropdown .filter-sales-max,.target-search-dropdown .filter-turnover-min,.target-search-dropdown .filter-turnover-max,.target-search-dropdown .filter-date-add-from,.target-search-dropdown .filter-date-add-to,.target-search-dropdown .filter-last-product-from,.target-search-dropdown .filter-last-product-to{width:100%;padding:.5rem 1rem;font-size:.875rem;line-height:1.5;color:#212529;background-color:#fff;border:1px solid #dee2e6;border-radius:.25rem;transition:border-color .15s ease-in-out,box-shadow .15s ease-in-out}body>.target-search-dropdown .filter-product-count-min:focus,body>.target-search-dropdown .filter-product-count-max:focus,body>.target-search-dropdown .filter-sales-min:focus,body>.target-search-dropdown .filter-sales-max:focus,body>.target-search-dropdown .filter-turnover-min:focus,body>.target-search-dropdown .filter-turnover-max:focus,body>.target-search-dropdown .filter-date-add-from:focus,body>.target-search-dropdown .filter-date-add-to:focus,body>.target-search-dropdown .filter-last-product-from:focus,body>.target-search-dropdown .filter-last-product-to:focus,.target-search-dropdown .filter-product-count-min:focus,.target-search-dropdown .filter-product-count-max:focus,.target-search-dropdown .filter-sales-min:focus,.target-search-dropdown .filter-sales-max:focus,.target-search-dropdown .filter-turnover-min:focus,.target-search-dropdown .filter-turnover-max:focus,.target-search-dropdown .filter-date-add-from:focus,.target-search-dropdown .filter-date-add-to:focus,.target-search-dropdown .filter-last-product-from:focus,.target-search-dropdown .filter-last-product-to:focus{border-color:#25b9d7;outline:0;box-shadow:0 0 0 .2rem rgba(37,185,215,.25)}body>.target-search-dropdown .filter-product-count-min::placeholder,body>.target-search-dropdown .filter-product-count-max::placeholder,body>.target-search-dropdown .filter-sales-min::placeholder,body>.target-search-dropdown .filter-sales-max::placeholder,body>.target-search-dropdown .filter-turnover-min::placeholder,body>.target-search-dropdown .filter-turnover-max::placeholder,body>.target-search-dropdown .filter-date-add-from::placeholder,body>.target-search-dropdown .filter-date-add-to::placeholder,body>.target-search-dropdown .filter-last-product-from::placeholder,body>.target-search-dropdown .filter-last-product-to::placeholder,.target-search-dropdown .filter-product-count-min::placeholder,.target-search-dropdown .filter-product-count-max::placeholder,.target-search-dropdown .filter-sales-min::placeholder,.target-search-dropdown .filter-sales-max::placeholder,.target-search-dropdown .filter-turnover-min::placeholder,.target-search-dropdown .filter-turnover-max::placeholder,.target-search-dropdown .filter-date-add-from::placeholder,.target-search-dropdown .filter-date-add-to::placeholder,.target-search-dropdown .filter-last-product-from::placeholder,.target-search-dropdown .filter-last-product-to::placeholder{color:#adb5bd}body>.target-search-dropdown .filter-product-count-min,body>.target-search-dropdown .filter-product-count-max,body>.target-search-dropdown .filter-sales-min,body>.target-search-dropdown .filter-sales-max,body>.target-search-dropdown .filter-turnover-min,body>.target-search-dropdown .filter-turnover-max,body>.target-search-dropdown .filter-date-add-from,body>.target-search-dropdown .filter-date-add-to,body>.target-search-dropdown .filter-last-product-from,body>.target-search-dropdown .filter-last-product-to,.target-search-dropdown .filter-product-count-min,.target-search-dropdown .filter-product-count-max,.target-search-dropdown .filter-sales-min,.target-search-dropdown .filter-sales-max,.target-search-dropdown .filter-turnover-min,.target-search-dropdown .filter-turnover-max,.target-search-dropdown .filter-date-add-from,.target-search-dropdown .filter-date-add-to,.target-search-dropdown .filter-last-product-from,.target-search-dropdown .filter-last-product-to{width:70px;padding:.25rem .5rem;font-size:.75rem}body>.target-search-dropdown .filter-depth-select,body>.target-search-dropdown .filter-attribute-group-select,body>.target-search-dropdown .filter-feature-group-select,.target-search-dropdown .filter-depth-select,.target-search-dropdown .filter-attribute-group-select,.target-search-dropdown .filter-feature-group-select{width:100%;padding:.5rem 1rem;font-size:.875rem;line-height:1.5;color:#212529;background-color:#fff;border:1px solid #dee2e6;border-radius:.25rem;transition:border-color .15s ease-in-out,box-shadow .15s ease-in-out}body>.target-search-dropdown .filter-depth-select:focus,body>.target-search-dropdown .filter-attribute-group-select:focus,body>.target-search-dropdown .filter-feature-group-select:focus,.target-search-dropdown .filter-depth-select:focus,.target-search-dropdown .filter-attribute-group-select:focus,.target-search-dropdown .filter-feature-group-select:focus{border-color:#25b9d7;outline:0;box-shadow:0 0 0 .2rem rgba(37,185,215,.25)}body>.target-search-dropdown .filter-depth-select::placeholder,body>.target-search-dropdown .filter-attribute-group-select::placeholder,body>.target-search-dropdown .filter-feature-group-select::placeholder,.target-search-dropdown .filter-depth-select::placeholder,.target-search-dropdown .filter-attribute-group-select::placeholder,.target-search-dropdown .filter-feature-group-select::placeholder{color:#adb5bd}body>.target-search-dropdown .filter-depth-select,body>.target-search-dropdown .filter-attribute-group-select,body>.target-search-dropdown .filter-feature-group-select,.target-search-dropdown .filter-depth-select,.target-search-dropdown .filter-attribute-group-select,.target-search-dropdown .filter-feature-group-select{padding:.25rem .5rem;font-size:.75rem;min-width:100px}body>.target-search-dropdown .filter-attributes-container,body>.target-search-dropdown .filter-features-container,body>.target-search-dropdown .filter-values-container,.target-search-dropdown .filter-attributes-container,.target-search-dropdown .filter-features-container,.target-search-dropdown .filter-values-container{display:flex;flex-wrap:wrap;gap:.25rem}body>.target-search-dropdown .filter-group-toggle,.target-search-dropdown .filter-group-toggle{padding:0;margin:0;background:none;border:none;cursor:pointer;font:inherit;color:inherit}body>.target-search-dropdown .filter-group-toggle:focus,.target-search-dropdown .filter-group-toggle:focus{outline:none}body>.target-search-dropdown .filter-group-toggle,.target-search-dropdown .filter-group-toggle{display:inline-flex;align-items:center;gap:.25rem;padding:.25rem .5rem;font-size:.75rem;color:#495057;background:#fff;border:1px solid #dee2e6;border-radius:.2rem;cursor:pointer;transition:all .15s ease-in-out}body>.target-search-dropdown .filter-group-toggle:hover,.target-search-dropdown .filter-group-toggle:hover{background:#e9ecef;border-color:#cbd5e1}body>.target-search-dropdown .filter-group-toggle.active,.target-search-dropdown .filter-group-toggle.active{background:rgba(37,185,215,.1);border-color:#25b9d7;color:#25b9d7}body>.target-search-dropdown .filter-group-toggle.active .toggle-count,.target-search-dropdown .filter-group-toggle.active .toggle-count{color:#25b9d7}body>.target-search-dropdown .filter-group-toggle.has-selection,.target-search-dropdown .filter-group-toggle.has-selection{border-color:#28a745;background:rgba(40,167,69,.05)}body>.target-search-dropdown .filter-group-toggle.has-selection .toggle-count,.target-search-dropdown .filter-group-toggle.has-selection .toggle-count{color:#28a745;font-weight:600}body>.target-search-dropdown .filter-group-toggle .toggle-name,.target-search-dropdown .filter-group-toggle .toggle-name{font-weight:500}body>.target-search-dropdown .filter-group-toggle .toggle-count,.target-search-dropdown .filter-group-toggle .toggle-count{display:inline-flex;align-items:center;gap:.125rem;color:#6c757d;font-size:.65rem}body>.target-search-dropdown .filter-group-toggle .toggle-count i,.target-search-dropdown .filter-group-toggle .toggle-count i{font-size:10px;color:#25b9d7}body>.target-search-dropdown .filter-group-toggle .toggle-count.clickable,.target-search-dropdown .filter-group-toggle .toggle-count.clickable{cursor:pointer;padding:.125rem .25rem;border-radius:.2rem;transition:all .15s ease-in-out}body>.target-search-dropdown .filter-group-toggle .toggle-count.clickable:hover,.target-search-dropdown .filter-group-toggle .toggle-count.clickable:hover{background:rgba(37,185,215,.1);color:#25b9d7}body>.target-search-dropdown .filter-group-toggle .toggle-count.clickable:hover i,.target-search-dropdown .filter-group-toggle .toggle-count.clickable:hover i{color:#25b9d7}body>.target-search-dropdown .filter-group-toggle .toggle-count.clickable.popover-open,.target-search-dropdown .filter-group-toggle .toggle-count.clickable.popover-open{background:#25b9d7;color:#fff}body>.target-search-dropdown .filter-group-toggle .toggle-count.clickable.popover-open i,.target-search-dropdown .filter-group-toggle .toggle-count.clickable.popover-open i{color:#fff}body>.target-search-dropdown .filter-group-toggle .toggle-count.clickable.loading i,.target-search-dropdown .filter-group-toggle .toggle-count.clickable.loading i{animation:spin .6s linear infinite}body>.target-search-dropdown .filter-chip,body>.target-search-dropdown .filter-attr-chip,body>.target-search-dropdown .filter-feat-chip,.target-search-dropdown .filter-chip,.target-search-dropdown .filter-attr-chip,.target-search-dropdown .filter-feat-chip{padding:0;margin:0;background:none;border:none;cursor:pointer;font:inherit;color:inherit}body>.target-search-dropdown .filter-chip:focus,.target-search-dropdown .filter-chip:focus,.target-search-dropdown .filter-attr-chip:focus,.target-search-dropdown .filter-feat-chip:focus{outline:none}body>.target-search-dropdown .filter-chip,body>.target-search-dropdown .filter-attr-chip,body>.target-search-dropdown .filter-feat-chip,.target-search-dropdown .filter-chip,.target-search-dropdown .filter-attr-chip,.target-search-dropdown .filter-feat-chip{display:inline-flex;align-items:center;gap:.25rem;padding:.25rem .5rem;font-size:.75rem;color:#495057;background:#f1f5f9;border:1px solid rgba(0,0,0,0);border-radius:.2rem;cursor:pointer;transition:all .15s ease-in-out}body>.target-search-dropdown .filter-chip:hover,.target-search-dropdown .filter-chip:hover,.target-search-dropdown .filter-attr-chip:hover,.target-search-dropdown .filter-feat-chip:hover{background:#e2e8f0}body>.target-search-dropdown .filter-chip.active,.target-search-dropdown .filter-chip.active,.target-search-dropdown .active.filter-attr-chip,.target-search-dropdown .active.filter-feat-chip{background:#25b9d7;color:#fff}body>.target-search-dropdown .filter-row-values,.target-search-dropdown .filter-row-values{display:flex;align-items:center;gap:.5rem;padding:.5rem;background:#fff;border:1px solid #dee2e6;border-radius:.2rem}body>.target-search-dropdown .filter-row-values .filter-values-container,.target-search-dropdown .filter-row-values .filter-values-container{display:flex;flex-wrap:wrap;align-items:center;gap:.25rem;flex:1}body>.target-search-dropdown .filter-row-values .filter-values-label,.target-search-dropdown .filter-row-values .filter-values-label{font-size:.75rem;font-weight:600;color:#495057;white-space:nowrap}body>.target-search-dropdown .filter-row-values .btn-close-values,.target-search-dropdown .filter-row-values .btn-close-values{padding:0;margin:0;background:none;border:none;cursor:pointer;font:inherit;color:inherit}body>.target-search-dropdown .filter-row-values .btn-close-values:focus,.target-search-dropdown .filter-row-values .btn-close-values:focus{outline:none}body>.target-search-dropdown .filter-row-values .btn-close-values,.target-search-dropdown .filter-row-values .btn-close-values{display:flex;align-items:center;justify-content:center;flex-shrink:0;width:20px;height:20px;color:#6c757d;border-radius:.2rem}body>.target-search-dropdown .filter-row-values .btn-close-values:hover,.target-search-dropdown .filter-row-values .btn-close-values:hover{background:#e2e8f0;color:#212529}body>.target-search-dropdown .chip-name,.target-search-dropdown .chip-name{font-weight:500}body>.target-search-dropdown .chip-count,.target-search-dropdown .chip-count{font-size:.6rem;color:#6c757d;margin-left:.125rem}body>.target-search-dropdown .filter-chip.active .chip-count,.target-search-dropdown .filter-chip.active .chip-count,.target-search-dropdown .active.filter-attr-chip .chip-count,.target-search-dropdown .active.filter-feat-chip .chip-count{color:hsla(0,0%,100%,.8)}body>.target-search-dropdown .dropdown-content,.target-search-dropdown .dropdown-content{max-height:400px;overflow-y:auto}body>.target-search-dropdown .dropdown-content::-webkit-scrollbar,.target-search-dropdown .dropdown-content::-webkit-scrollbar{width:6px;height:6px}body>.target-search-dropdown .dropdown-content::-webkit-scrollbar-track,.target-search-dropdown .dropdown-content::-webkit-scrollbar-track{background:#f8f9fa;border-radius:3px}body>.target-search-dropdown .dropdown-content::-webkit-scrollbar-thumb,.target-search-dropdown .dropdown-content::-webkit-scrollbar-thumb{background:#dee2e6;border-radius:3px}body>.target-search-dropdown .dropdown-content::-webkit-scrollbar-thumb:hover,.target-search-dropdown .dropdown-content::-webkit-scrollbar-thumb:hover{background:#ced4da}body>.target-search-dropdown .dropdown-items,.target-search-dropdown .dropdown-items{display:flex;flex-direction:column;gap:.25rem;padding:.5rem}body>.target-search-dropdown .item-checkbox,.target-search-dropdown .item-checkbox{flex-shrink:0;width:16px;height:16px;border:2px solid #ced4da;border-radius:3px;transition:all .15s ease-in-out}.dropdown-item.selected body>.target-search-dropdown .item-checkbox,.dropdown-item.selected .target-search-dropdown .item-checkbox{background:#25b9d7;border-color:#25b9d7}body>.target-search-dropdown .item-image,.target-search-dropdown .item-image{flex-shrink:0;width:40px;height:40px;object-fit:cover;border-radius:.2rem;background:#f1f5f9}body>.target-search-dropdown .item-info,.target-search-dropdown .item-info{flex:1;min-width:0}body>.target-search-dropdown .item-name,.target-search-dropdown .item-name{font-size:.875rem;font-weight:500;color:#212529;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}body>.target-search-dropdown .item-meta,.target-search-dropdown .item-meta{font-size:.75rem;color:#6c757d;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}body>.target-search-dropdown .dropdown-footer,.target-search-dropdown .dropdown-footer{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.5rem 1rem;background:#f8fafc;border-top:1px solid #dee2e6;border-radius:0 0 .3rem .3rem}body>.target-search-dropdown .dropdown-footer-left,.target-search-dropdown .dropdown-footer-left{display:flex;align-items:center;gap:.25rem;font-size:.75rem;color:#6c757d}body>.target-search-dropdown .dropdown-footer-left .load-label,.target-search-dropdown .dropdown-footer-left .load-label{color:#6c757d}body>.target-search-dropdown .dropdown-footer-left .load-more-select,body>.target-search-dropdown .dropdown-footer-left select.load-more-select,.target-search-dropdown .dropdown-footer-left .load-more-select,.target-search-dropdown .dropdown-footer-left select.load-more-select{appearance:none;padding:.25rem 1.5rem .25rem .5rem;border:1px solid #dee2e6;border-radius:.2rem;background:#fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='8' height='8' viewBox='0 0 8 8'%3E%3Cpath fill='%23666' d='M0 2l4 4 4-4z'/%3E%3C/svg%3E") no-repeat right .4rem center;background-size:8px;font-size:.75rem;color:#495057;cursor:pointer;min-width:55px}body>.target-search-dropdown .dropdown-footer-left .load-more-select:hover,body>.target-search-dropdown .dropdown-footer-left select.load-more-select:hover,.target-search-dropdown .dropdown-footer-left .load-more-select:hover,.target-search-dropdown .dropdown-footer-left select.load-more-select:hover{border-color:#25b9d7}body>.target-search-dropdown .dropdown-footer-left .load-more-select:focus,body>.target-search-dropdown .dropdown-footer-left select.load-more-select:focus,.target-search-dropdown .dropdown-footer-left .load-more-select:focus,.target-search-dropdown .dropdown-footer-left select.load-more-select:focus{outline:none;border-color:#25b9d7}body>.target-search-dropdown .dropdown-footer-left .remaining-text,.target-search-dropdown .dropdown-footer-left .remaining-text{color:#6c757d}body>.target-search-dropdown .dropdown-footer-left .remaining-text strong,.target-search-dropdown .dropdown-footer-left .remaining-text strong{color:#495057;font-weight:600}body>.target-search-dropdown .dropdown-footer-right,.target-search-dropdown .dropdown-footer-right{display:flex;align-items:center;gap:.5rem}body>.target-search-dropdown .dropdown-action-btn,.target-search-dropdown .dropdown-action-btn{padding:0;margin:0;background:none;border:none;cursor:pointer;font:inherit;color:inherit}body>.target-search-dropdown .dropdown-action-btn:focus,.target-search-dropdown .dropdown-action-btn:focus{outline:none}body>.target-search-dropdown .dropdown-action-btn,.target-search-dropdown .dropdown-action-btn{display:inline-flex;align-items:center;gap:.375rem;padding:.375rem .75rem;font-size:.75rem;font-weight:500;border-radius:.2rem;transition:all .15s ease-in-out;white-space:nowrap}body>.target-search-dropdown .dropdown-action-btn .btn-shortcut,.target-search-dropdown .dropdown-action-btn .btn-shortcut{font-size:10px;padding:.125rem .25rem;background:rgba(0,0,0,.08);border-radius:3px;font-weight:400}body>.target-search-dropdown .dropdown-action-btn.btn-cancel,.target-search-dropdown .dropdown-action-btn.btn-cancel{color:#495057;background:#fff;border:1px solid #dee2e6}body>.target-search-dropdown .dropdown-action-btn.btn-cancel:hover,.target-search-dropdown .dropdown-action-btn.btn-cancel:hover{background:#f1f5f9;border-color:#ced4da}body>.target-search-dropdown .dropdown-action-btn.btn-apply,body>.target-search-dropdown .dropdown-action-btn.btn-save,.target-search-dropdown .dropdown-action-btn.btn-apply,.target-search-dropdown .dropdown-action-btn.btn-save{color:#fff;background:#25b9d7;border:1px solid #25b9d7}body>.target-search-dropdown .dropdown-action-btn.btn-apply:hover,body>.target-search-dropdown .dropdown-action-btn.btn-save:hover,.target-search-dropdown .dropdown-action-btn.btn-apply:hover,.target-search-dropdown .dropdown-action-btn.btn-save:hover{background:#1a9ab7;border-color:#1a9ab7}body>.target-search-dropdown .dropdown-action-btn.btn-apply .btn-shortcut,body>.target-search-dropdown .dropdown-action-btn.btn-save .btn-shortcut,.target-search-dropdown .dropdown-action-btn.btn-apply .btn-shortcut,.target-search-dropdown .dropdown-action-btn.btn-save .btn-shortcut{background:hsla(0,0%,100%,.2)}body>.target-search-dropdown .dropdown-footer-info,.target-search-dropdown .dropdown-footer-info{font-size:.75rem;color:#6c757d}body>.target-search-dropdown .btn-cancel-dropdown,.target-search-dropdown .btn-cancel-dropdown{padding:0;margin:0;background:none;border:none;cursor:pointer;font:inherit;color:inherit}body>.target-search-dropdown .btn-cancel-dropdown:focus,.target-search-dropdown .btn-cancel-dropdown:focus{outline:none}body>.target-search-dropdown .btn-cancel-dropdown,.target-search-dropdown .btn-cancel-dropdown{display:inline-flex;align-items:center;gap:.25rem;padding:.375rem .75rem;font-size:.875rem;color:#fff;background:#25b9d7;border:1px solid #25b9d7;border-radius:.2rem;cursor:pointer}body>.target-search-dropdown .btn-cancel-dropdown:hover,.target-search-dropdown .btn-cancel-dropdown:hover{background:#1a9ab7;border-color:#1a9ab7}body>.target-search-dropdown .btn-cancel-dropdown i,.target-search-dropdown .btn-cancel-dropdown i{font-size:10px}body>.target-search-dropdown .btn-cancel-dropdown kbd,.target-search-dropdown .btn-cancel-dropdown kbd{font-size:.65rem;padding:.125rem .25rem;background:hsla(0,0%,100%,.2);border-radius:2px;color:hsla(0,0%,100%,.8)}body>.target-search-dropdown .filter-chips-row,.target-search-dropdown .filter-chips-row{display:flex;flex-wrap:wrap;gap:.25rem;padding:.25rem 1rem;border-bottom:1px solid #dee2e6}body>.target-search-dropdown .filter-chip,body>.target-search-dropdown .filter-attr-chip,body>.target-search-dropdown .filter-feat-chip,.target-search-dropdown .filter-chip,.target-search-dropdown .filter-attr-chip,.target-search-dropdown .filter-feat-chip{display:inline-flex;align-items:center;gap:.25rem;padding:.25rem .5rem;font-size:.75rem;font-weight:500;background:#e9ecef;color:#495057;border-radius:50rem}body>.target-search-dropdown .filter-chip .chip-remove,.target-search-dropdown .filter-chip .chip-remove,.target-search-dropdown .filter-attr-chip .chip-remove,.target-search-dropdown .filter-feat-chip .chip-remove{padding:0;margin:0;background:none;border:none;cursor:pointer;font:inherit;color:inherit}body>.target-search-dropdown .filter-chip .chip-remove:focus,.target-search-dropdown .filter-chip .chip-remove:focus,.target-search-dropdown .filter-attr-chip .chip-remove:focus,.target-search-dropdown .filter-feat-chip .chip-remove:focus{outline:none}body>.target-search-dropdown .filter-chip .chip-remove,.target-search-dropdown .filter-chip .chip-remove,.target-search-dropdown .filter-attr-chip .chip-remove,.target-search-dropdown .filter-feat-chip .chip-remove{display:flex;align-items:center;justify-content:center;width:14px;height:14px;font-size:10px;color:#6c757d;border-radius:50%}body>.target-search-dropdown .filter-chip .chip-remove:hover,.target-search-dropdown .filter-chip .chip-remove:hover,.target-search-dropdown .filter-attr-chip .chip-remove:hover,.target-search-dropdown .filter-feat-chip .chip-remove:hover{background:rgba(0,0,0,.1);color:#dc3545}body>.target-search-dropdown .dropdown-empty,body>.target-search-dropdown .dropdown-loading,.target-search-dropdown .dropdown-empty,.target-search-dropdown .dropdown-loading{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:2rem;text-align:center;color:#6c757d;font-size:.875rem}body>.target-search-dropdown .dropdown-empty i,body>.target-search-dropdown .dropdown-loading i,.target-search-dropdown .dropdown-empty i,.target-search-dropdown .dropdown-loading i{font-size:2rem;opacity:.5;margin-bottom:.5rem}body>.target-search-dropdown .search-history-panel,.target-search-dropdown .search-history-panel{display:none;padding:.5rem;background:#fff;border-bottom:1px solid #dee2e6}body>.target-search-dropdown .search-history-panel.show,.target-search-dropdown .search-history-panel.show{display:block}body>.target-search-dropdown .history-item,.target-search-dropdown .history-item{display:flex;align-items:center;gap:.5rem;padding:.25rem .5rem;border-radius:.2rem;cursor:pointer;transition:background .15s ease-in-out}body>.target-search-dropdown .history-item:hover,.target-search-dropdown .history-item:hover{background:#e9ecef}body>.target-search-dropdown .history-item i,.target-search-dropdown .history-item i{color:#6c757d;font-size:.875rem}body>.target-search-dropdown .history-item span,.target-search-dropdown .history-item span{flex:1;font-size:.875rem;color:#212529}body>.target-search-dropdown .history-item .btn-remove-history,body>.target-search-dropdown .history-item .btn-delete-history,.target-search-dropdown .history-item .btn-remove-history,.target-search-dropdown .history-item .btn-delete-history{padding:0;margin:0;background:none;border:none;cursor:pointer;font:inherit;color:inherit}body>.target-search-dropdown .history-item .btn-remove-history:focus,body>.target-search-dropdown .history-item .btn-delete-history:focus,.target-search-dropdown .history-item .btn-remove-history:focus,.target-search-dropdown .history-item .btn-delete-history:focus{outline:none}body>.target-search-dropdown .history-item .btn-remove-history,body>.target-search-dropdown .history-item .btn-delete-history,.target-search-dropdown .history-item .btn-remove-history,.target-search-dropdown .history-item .btn-delete-history{display:flex;align-items:center;justify-content:center;width:20px;height:20px;color:#6c757d;border-radius:.2rem;transition:all .15s ease-in-out}body>.target-search-dropdown .history-item .btn-remove-history:hover,body>.target-search-dropdown .history-item .btn-delete-history:hover,.target-search-dropdown .history-item .btn-remove-history:hover,.target-search-dropdown .history-item .btn-delete-history:hover{background:#e2e8f0;color:#dc3545}body>.target-search-dropdown .search-history-list,.target-search-dropdown .search-history-list{display:flex;flex-direction:column;gap:.25rem}body>.target-search-dropdown .results-header,.target-search-dropdown .results-header{display:flex;align-items:center;gap:.5rem;padding:.25rem 1rem;background:#f1f5f9;border-bottom:1px solid #dee2e6;font-size:.75rem;font-weight:600;color:#495057}body>.target-search-dropdown .results-header .header-spacer,.target-search-dropdown .results-header .header-spacer{width:58px;flex-shrink:0}body>.target-search-dropdown .results-header .header-col,.target-search-dropdown .results-header .header-col{flex-shrink:0;width:70px;text-align:right}body>.target-search-dropdown .results-header .header-col-name,.target-search-dropdown .results-header .header-col-name{flex:1;text-align:left}body>.target-search-dropdown .dropdown-results,.target-search-dropdown .dropdown-results{padding:0 .5rem;background:#fff;min-height:200px}body>.target-search-dropdown .dropdown-item,.target-search-dropdown .dropdown-item{position:relative;display:flex;align-items:center;gap:.5rem;padding:.5rem 0;background:#fff;border:none;border-bottom:1px solid #dee2e6;border-radius:0;cursor:pointer;transition:background .15s ease-in-out}body>.target-search-dropdown .dropdown-item:last-child,.target-search-dropdown .dropdown-item:last-child{border-bottom:none}body>.target-search-dropdown .dropdown-item:hover,.target-search-dropdown .dropdown-item:hover{background:#e9ecef}body>.target-search-dropdown .dropdown-item.selected,.target-search-dropdown .dropdown-item.selected{background:rgba(37,185,215,.1)}body>.target-search-dropdown .dropdown-item.selected .result-checkbox,.target-search-dropdown .dropdown-item.selected .result-checkbox{background:#25b9d7;border-color:#25b9d7;color:#fff}body>.target-search-dropdown .dropdown-item.selected .result-checkbox i,.target-search-dropdown .dropdown-item.selected .result-checkbox i{display:block}body>.target-search-dropdown .dropdown-item.disabled,.target-search-dropdown .dropdown-item.disabled{opacity:.5;cursor:not-allowed}body>.target-search-dropdown .result-checkbox,.target-search-dropdown .result-checkbox{display:flex;align-items:center;justify-content:center;flex-shrink:0;width:18px;height:18px;background:#fff;border:2px solid #ced4da;border-radius:3px;transition:all .15s ease-in-out}body>.target-search-dropdown .result-checkbox i,.target-search-dropdown .result-checkbox i{display:none;font-size:10px}body>.target-search-dropdown.view-cols-2 .dropdown-results,.target-search-dropdown.view-cols-2 .dropdown-results{display:grid;grid-template-columns:repeat(2, 1fr);gap:0;padding:0;border-top:1px solid #dee2e6;border-left:1px solid #dee2e6}body>.target-search-dropdown.view-cols-3 .dropdown-results,.target-search-dropdown.view-cols-3 .dropdown-results{display:grid;grid-template-columns:repeat(3, 1fr);gap:0;padding:0;border-top:1px solid #dee2e6;border-left:1px solid #dee2e6}body>.target-search-dropdown.view-cols-4 .dropdown-results,.target-search-dropdown.view-cols-4 .dropdown-results{display:grid;grid-template-columns:repeat(4, 1fr);gap:0;padding:0;border-top:1px solid #dee2e6;border-left:1px solid #dee2e6}body>.target-search-dropdown.view-cols-5 .dropdown-results,.target-search-dropdown.view-cols-5 .dropdown-results{display:grid;grid-template-columns:repeat(5, 1fr);gap:0;padding:0;border-top:1px solid #dee2e6;border-left:1px solid #dee2e6}body>.target-search-dropdown.view-cols-6 .dropdown-results,.target-search-dropdown.view-cols-6 .dropdown-results{display:grid;grid-template-columns:repeat(6, 1fr);gap:0;padding:0;border-top:1px solid #dee2e6;border-left:1px solid #dee2e6}body>.target-search-dropdown.view-cols-7 .dropdown-results,.target-search-dropdown.view-cols-7 .dropdown-results{display:grid;grid-template-columns:repeat(7, 1fr);gap:0;padding:0;border-top:1px solid #dee2e6;border-left:1px solid #dee2e6}body>.target-search-dropdown.view-cols-8 .dropdown-results,.target-search-dropdown.view-cols-8 .dropdown-results{display:grid;grid-template-columns:repeat(8, 1fr);gap:0;padding:0;border-top:1px solid #dee2e6;border-left:1px solid #dee2e6}body>.target-search-dropdown.view-cols-2 .dropdown-item,body>.target-search-dropdown.view-cols-3 .dropdown-item,body>.target-search-dropdown.view-cols-4 .dropdown-item,body>.target-search-dropdown.view-cols-5 .dropdown-item,body>.target-search-dropdown.view-cols-6 .dropdown-item,body>.target-search-dropdown.view-cols-7 .dropdown-item,body>.target-search-dropdown.view-cols-8 .dropdown-item,.target-search-dropdown.view-cols-2 .dropdown-item,.target-search-dropdown.view-cols-3 .dropdown-item,.target-search-dropdown.view-cols-4 .dropdown-item,.target-search-dropdown.view-cols-5 .dropdown-item,.target-search-dropdown.view-cols-6 .dropdown-item,.target-search-dropdown.view-cols-7 .dropdown-item,.target-search-dropdown.view-cols-8 .dropdown-item{flex-direction:column;align-items:center;text-align:center;padding:.5rem;border:none;border-right:1px solid #dee2e6;border-bottom:1px solid #dee2e6;border-radius:0}body>.target-search-dropdown.view-cols-2 .dropdown-item .result-checkbox,body>.target-search-dropdown.view-cols-3 .dropdown-item .result-checkbox,body>.target-search-dropdown.view-cols-4 .dropdown-item .result-checkbox,body>.target-search-dropdown.view-cols-5 .dropdown-item .result-checkbox,body>.target-search-dropdown.view-cols-6 .dropdown-item .result-checkbox,body>.target-search-dropdown.view-cols-7 .dropdown-item .result-checkbox,body>.target-search-dropdown.view-cols-8 .dropdown-item .result-checkbox,.target-search-dropdown.view-cols-2 .dropdown-item .result-checkbox,.target-search-dropdown.view-cols-3 .dropdown-item .result-checkbox,.target-search-dropdown.view-cols-4 .dropdown-item .result-checkbox,.target-search-dropdown.view-cols-5 .dropdown-item .result-checkbox,.target-search-dropdown.view-cols-6 .dropdown-item .result-checkbox,.target-search-dropdown.view-cols-7 .dropdown-item .result-checkbox,.target-search-dropdown.view-cols-8 .dropdown-item .result-checkbox{position:absolute;top:.25rem;left:.25rem}body>.target-search-dropdown.view-cols-2 .dropdown-item .result-image,body>.target-search-dropdown.view-cols-2 .dropdown-item .result-icon,body>.target-search-dropdown.view-cols-3 .dropdown-item .result-image,body>.target-search-dropdown.view-cols-3 .dropdown-item .result-icon,body>.target-search-dropdown.view-cols-4 .dropdown-item .result-image,body>.target-search-dropdown.view-cols-4 .dropdown-item .result-icon,body>.target-search-dropdown.view-cols-5 .dropdown-item .result-image,body>.target-search-dropdown.view-cols-5 .dropdown-item .result-icon,body>.target-search-dropdown.view-cols-6 .dropdown-item .result-image,body>.target-search-dropdown.view-cols-6 .dropdown-item .result-icon,body>.target-search-dropdown.view-cols-7 .dropdown-item .result-image,body>.target-search-dropdown.view-cols-7 .dropdown-item .result-icon,body>.target-search-dropdown.view-cols-8 .dropdown-item .result-image,body>.target-search-dropdown.view-cols-8 .dropdown-item .result-icon,.target-search-dropdown.view-cols-2 .dropdown-item .result-image,.target-search-dropdown.view-cols-2 .dropdown-item .result-icon,.target-search-dropdown.view-cols-3 .dropdown-item .result-image,.target-search-dropdown.view-cols-3 .dropdown-item .result-icon,.target-search-dropdown.view-cols-4 .dropdown-item .result-image,.target-search-dropdown.view-cols-4 .dropdown-item .result-icon,.target-search-dropdown.view-cols-5 .dropdown-item .result-image,.target-search-dropdown.view-cols-5 .dropdown-item .result-icon,.target-search-dropdown.view-cols-6 .dropdown-item .result-image,.target-search-dropdown.view-cols-6 .dropdown-item .result-icon,.target-search-dropdown.view-cols-7 .dropdown-item .result-image,.target-search-dropdown.view-cols-7 .dropdown-item .result-icon,.target-search-dropdown.view-cols-8 .dropdown-item .result-image,.target-search-dropdown.view-cols-8 .dropdown-item .result-icon{width:48px;height:48px;margin-bottom:.25rem}body>.target-search-dropdown.view-cols-2 .dropdown-item .result-info,body>.target-search-dropdown.view-cols-3 .dropdown-item .result-info,body>.target-search-dropdown.view-cols-4 .dropdown-item .result-info,body>.target-search-dropdown.view-cols-5 .dropdown-item .result-info,body>.target-search-dropdown.view-cols-6 .dropdown-item .result-info,body>.target-search-dropdown.view-cols-7 .dropdown-item .result-info,body>.target-search-dropdown.view-cols-8 .dropdown-item .result-info,.target-search-dropdown.view-cols-2 .dropdown-item .result-info,.target-search-dropdown.view-cols-3 .dropdown-item .result-info,.target-search-dropdown.view-cols-4 .dropdown-item .result-info,.target-search-dropdown.view-cols-5 .dropdown-item .result-info,.target-search-dropdown.view-cols-6 .dropdown-item .result-info,.target-search-dropdown.view-cols-7 .dropdown-item .result-info,.target-search-dropdown.view-cols-8 .dropdown-item .result-info{width:100%}body>.target-search-dropdown.view-cols-2 .dropdown-item .result-name,body>.target-search-dropdown.view-cols-3 .dropdown-item .result-name,body>.target-search-dropdown.view-cols-4 .dropdown-item .result-name,body>.target-search-dropdown.view-cols-5 .dropdown-item .result-name,body>.target-search-dropdown.view-cols-6 .dropdown-item .result-name,body>.target-search-dropdown.view-cols-7 .dropdown-item .result-name,body>.target-search-dropdown.view-cols-8 .dropdown-item .result-name,.target-search-dropdown.view-cols-2 .dropdown-item .result-name,.target-search-dropdown.view-cols-3 .dropdown-item .result-name,.target-search-dropdown.view-cols-4 .dropdown-item .result-name,.target-search-dropdown.view-cols-5 .dropdown-item .result-name,.target-search-dropdown.view-cols-6 .dropdown-item .result-name,.target-search-dropdown.view-cols-7 .dropdown-item .result-name,.target-search-dropdown.view-cols-8 .dropdown-item .result-name{font-size:.75rem;line-height:1.3;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}body>.target-search-dropdown.view-cols-2 .dropdown-item .result-subtitle,body>.target-search-dropdown.view-cols-3 .dropdown-item .result-subtitle,body>.target-search-dropdown.view-cols-4 .dropdown-item .result-subtitle,body>.target-search-dropdown.view-cols-5 .dropdown-item .result-subtitle,body>.target-search-dropdown.view-cols-6 .dropdown-item .result-subtitle,body>.target-search-dropdown.view-cols-7 .dropdown-item .result-subtitle,body>.target-search-dropdown.view-cols-8 .dropdown-item .result-subtitle,.target-search-dropdown.view-cols-2 .dropdown-item .result-subtitle,.target-search-dropdown.view-cols-3 .dropdown-item .result-subtitle,.target-search-dropdown.view-cols-4 .dropdown-item .result-subtitle,.target-search-dropdown.view-cols-5 .dropdown-item .result-subtitle,.target-search-dropdown.view-cols-6 .dropdown-item .result-subtitle,.target-search-dropdown.view-cols-7 .dropdown-item .result-subtitle,.target-search-dropdown.view-cols-8 .dropdown-item .result-subtitle{display:none}body>.target-search-dropdown.view-cols-2 .dropdown-item .result-col,body>.target-search-dropdown.view-cols-3 .dropdown-item .result-col,body>.target-search-dropdown.view-cols-4 .dropdown-item .result-col,body>.target-search-dropdown.view-cols-5 .dropdown-item .result-col,body>.target-search-dropdown.view-cols-6 .dropdown-item .result-col,body>.target-search-dropdown.view-cols-7 .dropdown-item .result-col,body>.target-search-dropdown.view-cols-8 .dropdown-item .result-col,.target-search-dropdown.view-cols-2 .dropdown-item .result-col,.target-search-dropdown.view-cols-3 .dropdown-item .result-col,.target-search-dropdown.view-cols-4 .dropdown-item .result-col,.target-search-dropdown.view-cols-5 .dropdown-item .result-col,.target-search-dropdown.view-cols-6 .dropdown-item .result-col,.target-search-dropdown.view-cols-7 .dropdown-item .result-col,.target-search-dropdown.view-cols-8 .dropdown-item .result-col{display:none}body>.target-search-dropdown.view-cols-2 .dropdown-item .result-grid-info,body>.target-search-dropdown.view-cols-3 .dropdown-item .result-grid-info,body>.target-search-dropdown.view-cols-4 .dropdown-item .result-grid-info,body>.target-search-dropdown.view-cols-5 .dropdown-item .result-grid-info,body>.target-search-dropdown.view-cols-6 .dropdown-item .result-grid-info,body>.target-search-dropdown.view-cols-7 .dropdown-item .result-grid-info,body>.target-search-dropdown.view-cols-8 .dropdown-item .result-grid-info,.target-search-dropdown.view-cols-2 .dropdown-item .result-grid-info,.target-search-dropdown.view-cols-3 .dropdown-item .result-grid-info,.target-search-dropdown.view-cols-4 .dropdown-item .result-grid-info,.target-search-dropdown.view-cols-5 .dropdown-item .result-grid-info,.target-search-dropdown.view-cols-6 .dropdown-item .result-grid-info,.target-search-dropdown.view-cols-7 .dropdown-item .result-grid-info,.target-search-dropdown.view-cols-8 .dropdown-item .result-grid-info{display:flex;flex-wrap:wrap;justify-content:center;gap:.25rem;margin-top:.25rem;font-size:.65rem}body>.target-search-dropdown.view-cols-2 .dropdown-item .result-grid-info .grid-price,body>.target-search-dropdown.view-cols-3 .dropdown-item .result-grid-info .grid-price,body>.target-search-dropdown.view-cols-4 .dropdown-item .result-grid-info .grid-price,body>.target-search-dropdown.view-cols-5 .dropdown-item .result-grid-info .grid-price,body>.target-search-dropdown.view-cols-6 .dropdown-item .result-grid-info .grid-price,body>.target-search-dropdown.view-cols-7 .dropdown-item .result-grid-info .grid-price,body>.target-search-dropdown.view-cols-8 .dropdown-item .result-grid-info .grid-price,.target-search-dropdown.view-cols-2 .dropdown-item .result-grid-info .grid-price,.target-search-dropdown.view-cols-3 .dropdown-item .result-grid-info .grid-price,.target-search-dropdown.view-cols-4 .dropdown-item .result-grid-info .grid-price,.target-search-dropdown.view-cols-5 .dropdown-item .result-grid-info .grid-price,.target-search-dropdown.view-cols-6 .dropdown-item .result-grid-info .grid-price,.target-search-dropdown.view-cols-7 .dropdown-item .result-grid-info .grid-price,.target-search-dropdown.view-cols-8 .dropdown-item .result-grid-info .grid-price{color:#212529;font-weight:600}body>.target-search-dropdown.view-cols-2 .dropdown-item .result-grid-info .grid-stock,body>.target-search-dropdown.view-cols-3 .dropdown-item .result-grid-info .grid-stock,body>.target-search-dropdown.view-cols-4 .dropdown-item .result-grid-info .grid-stock,body>.target-search-dropdown.view-cols-5 .dropdown-item .result-grid-info .grid-stock,body>.target-search-dropdown.view-cols-6 .dropdown-item .result-grid-info .grid-stock,body>.target-search-dropdown.view-cols-7 .dropdown-item .result-grid-info .grid-stock,body>.target-search-dropdown.view-cols-8 .dropdown-item .result-grid-info .grid-stock,.target-search-dropdown.view-cols-2 .dropdown-item .result-grid-info .grid-stock,.target-search-dropdown.view-cols-3 .dropdown-item .result-grid-info .grid-stock,.target-search-dropdown.view-cols-4 .dropdown-item .result-grid-info .grid-stock,.target-search-dropdown.view-cols-5 .dropdown-item .result-grid-info .grid-stock,.target-search-dropdown.view-cols-6 .dropdown-item .result-grid-info .grid-stock,.target-search-dropdown.view-cols-7 .dropdown-item .result-grid-info .grid-stock,.target-search-dropdown.view-cols-8 .dropdown-item .result-grid-info .grid-stock{color:#6c757d}body>.target-search-dropdown.view-cols-2 .dropdown-item .result-grid-info .grid-stock.stock-out,body>.target-search-dropdown.view-cols-3 .dropdown-item .result-grid-info .grid-stock.stock-out,body>.target-search-dropdown.view-cols-4 .dropdown-item .result-grid-info .grid-stock.stock-out,body>.target-search-dropdown.view-cols-5 .dropdown-item .result-grid-info .grid-stock.stock-out,body>.target-search-dropdown.view-cols-6 .dropdown-item .result-grid-info .grid-stock.stock-out,body>.target-search-dropdown.view-cols-7 .dropdown-item .result-grid-info .grid-stock.stock-out,body>.target-search-dropdown.view-cols-8 .dropdown-item .result-grid-info .grid-stock.stock-out,.target-search-dropdown.view-cols-2 .dropdown-item .result-grid-info .grid-stock.stock-out,.target-search-dropdown.view-cols-3 .dropdown-item .result-grid-info .grid-stock.stock-out,.target-search-dropdown.view-cols-4 .dropdown-item .result-grid-info .grid-stock.stock-out,.target-search-dropdown.view-cols-5 .dropdown-item .result-grid-info .grid-stock.stock-out,.target-search-dropdown.view-cols-6 .dropdown-item .result-grid-info .grid-stock.stock-out,.target-search-dropdown.view-cols-7 .dropdown-item .result-grid-info .grid-stock.stock-out,.target-search-dropdown.view-cols-8 .dropdown-item .result-grid-info .grid-stock.stock-out{color:#dc3545}body>.target-search-dropdown.view-cols-2 .dropdown-item .result-grid-info .grid-stock.stock-low,body>.target-search-dropdown.view-cols-3 .dropdown-item .result-grid-info .grid-stock.stock-low,body>.target-search-dropdown.view-cols-4 .dropdown-item .result-grid-info .grid-stock.stock-low,body>.target-search-dropdown.view-cols-5 .dropdown-item .result-grid-info .grid-stock.stock-low,body>.target-search-dropdown.view-cols-6 .dropdown-item .result-grid-info .grid-stock.stock-low,body>.target-search-dropdown.view-cols-7 .dropdown-item .result-grid-info .grid-stock.stock-low,body>.target-search-dropdown.view-cols-8 .dropdown-item .result-grid-info .grid-stock.stock-low,.target-search-dropdown.view-cols-2 .dropdown-item .result-grid-info .grid-stock.stock-low,.target-search-dropdown.view-cols-3 .dropdown-item .result-grid-info .grid-stock.stock-low,.target-search-dropdown.view-cols-4 .dropdown-item .result-grid-info .grid-stock.stock-low,.target-search-dropdown.view-cols-5 .dropdown-item .result-grid-info .grid-stock.stock-low,.target-search-dropdown.view-cols-6 .dropdown-item .result-grid-info .grid-stock.stock-low,.target-search-dropdown.view-cols-7 .dropdown-item .result-grid-info .grid-stock.stock-low,.target-search-dropdown.view-cols-8 .dropdown-item .result-grid-info .grid-stock.stock-low{color:#ffc107}body>.target-search-dropdown.view-cols-2 .dropdown-item .result-grid-info .grid-discount,body>.target-search-dropdown.view-cols-3 .dropdown-item .result-grid-info .grid-discount,body>.target-search-dropdown.view-cols-4 .dropdown-item .result-grid-info .grid-discount,body>.target-search-dropdown.view-cols-5 .dropdown-item .result-grid-info .grid-discount,body>.target-search-dropdown.view-cols-6 .dropdown-item .result-grid-info .grid-discount,body>.target-search-dropdown.view-cols-7 .dropdown-item .result-grid-info .grid-discount,body>.target-search-dropdown.view-cols-8 .dropdown-item .result-grid-info .grid-discount,.target-search-dropdown.view-cols-2 .dropdown-item .result-grid-info .grid-discount,.target-search-dropdown.view-cols-3 .dropdown-item .result-grid-info .grid-discount,.target-search-dropdown.view-cols-4 .dropdown-item .result-grid-info .grid-discount,.target-search-dropdown.view-cols-5 .dropdown-item .result-grid-info .grid-discount,.target-search-dropdown.view-cols-6 .dropdown-item .result-grid-info .grid-discount,.target-search-dropdown.view-cols-7 .dropdown-item .result-grid-info .grid-discount,.target-search-dropdown.view-cols-8 .dropdown-item .result-grid-info .grid-discount{color:#28a745;font-weight:500}body>.target-search-dropdown.view-cols-2 .results-header,body>.target-search-dropdown.view-cols-3 .results-header,body>.target-search-dropdown.view-cols-4 .results-header,body>.target-search-dropdown.view-cols-5 .results-header,body>.target-search-dropdown.view-cols-6 .results-header,body>.target-search-dropdown.view-cols-7 .results-header,body>.target-search-dropdown.view-cols-8 .results-header,.target-search-dropdown.view-cols-2 .results-header,.target-search-dropdown.view-cols-3 .results-header,.target-search-dropdown.view-cols-4 .results-header,.target-search-dropdown.view-cols-5 .results-header,.target-search-dropdown.view-cols-6 .results-header,.target-search-dropdown.view-cols-7 .results-header,.target-search-dropdown.view-cols-8 .results-header{display:none}body>.target-search-dropdown.view-cols-2 .dropdown-results .dropdown-item:nth-child(2n),.target-search-dropdown.view-cols-2 .dropdown-results .dropdown-item:nth-child(2n){border-right:none}body>.target-search-dropdown.view-cols-3 .dropdown-results .dropdown-item:nth-child(3n),.target-search-dropdown.view-cols-3 .dropdown-results .dropdown-item:nth-child(3n){border-right:none}body>.target-search-dropdown.view-cols-4 .dropdown-results .dropdown-item:nth-child(4n),.target-search-dropdown.view-cols-4 .dropdown-results .dropdown-item:nth-child(4n){border-right:none}body>.target-search-dropdown.view-cols-5 .dropdown-results .dropdown-item:nth-child(5n),.target-search-dropdown.view-cols-5 .dropdown-results .dropdown-item:nth-child(5n){border-right:none}body>.target-search-dropdown.view-cols-6 .dropdown-results .dropdown-item:nth-child(6n),.target-search-dropdown.view-cols-6 .dropdown-results .dropdown-item:nth-child(6n){border-right:none}body>.target-search-dropdown.view-cols-7 .dropdown-results .dropdown-item:nth-child(7n),.target-search-dropdown.view-cols-7 .dropdown-results .dropdown-item:nth-child(7n){border-right:none}body>.target-search-dropdown.view-cols-8 .dropdown-results .dropdown-item:nth-child(8n),.target-search-dropdown.view-cols-8 .dropdown-results .dropdown-item:nth-child(8n){border-right:none}body>.target-search-dropdown.view-cols-5 .dropdown-item .result-image,body>.target-search-dropdown.view-cols-5 .dropdown-item .result-icon,body>.target-search-dropdown.view-cols-6 .dropdown-item .result-image,body>.target-search-dropdown.view-cols-6 .dropdown-item .result-icon,body>.target-search-dropdown.view-cols-7 .dropdown-item .result-image,body>.target-search-dropdown.view-cols-7 .dropdown-item .result-icon,body>.target-search-dropdown.view-cols-8 .dropdown-item .result-image,body>.target-search-dropdown.view-cols-8 .dropdown-item .result-icon,.target-search-dropdown.view-cols-5 .dropdown-item .result-image,.target-search-dropdown.view-cols-5 .dropdown-item .result-icon,.target-search-dropdown.view-cols-6 .dropdown-item .result-image,.target-search-dropdown.view-cols-6 .dropdown-item .result-icon,.target-search-dropdown.view-cols-7 .dropdown-item .result-image,.target-search-dropdown.view-cols-7 .dropdown-item .result-icon,.target-search-dropdown.view-cols-8 .dropdown-item .result-image,.target-search-dropdown.view-cols-8 .dropdown-item .result-icon{width:40px;height:40px}body>.target-search-dropdown.view-cols-5 .dropdown-item .result-name,body>.target-search-dropdown.view-cols-6 .dropdown-item .result-name,body>.target-search-dropdown.view-cols-7 .dropdown-item .result-name,body>.target-search-dropdown.view-cols-8 .dropdown-item .result-name,.target-search-dropdown.view-cols-5 .dropdown-item .result-name,.target-search-dropdown.view-cols-6 .dropdown-item .result-name,.target-search-dropdown.view-cols-7 .dropdown-item .result-name,.target-search-dropdown.view-cols-8 .dropdown-item .result-name{font-size:.65rem}body>.target-search-dropdown .result-item-product,.target-search-dropdown .result-item-product{display:flex;align-items:center;gap:.5rem;flex:1;min-width:0}body>.target-search-dropdown .result-item-image,body>.target-search-dropdown .result-image,.target-search-dropdown .result-item-image,.target-search-dropdown .result-image{flex-shrink:0;width:40px;height:40px;overflow:hidden;border-radius:.2rem;background:#f1f5f9}body>.target-search-dropdown .result-item-image img,body>.target-search-dropdown .result-image img,.target-search-dropdown .result-item-image img,.target-search-dropdown .result-image img{width:100%;height:100%;object-fit:cover}body>.target-search-dropdown .result-icon,.target-search-dropdown .result-icon{display:flex;align-items:center;justify-content:center;flex-shrink:0;width:40px;height:40px;background:#f1f5f9;border-radius:.2rem;color:#6c757d}body>.target-search-dropdown .result-icon i,.target-search-dropdown .result-icon i{font-size:16px}body>.target-search-dropdown .result-item-info,body>.target-search-dropdown .result-info,.target-search-dropdown .result-item-info,.target-search-dropdown .result-info{flex:1;min-width:0}body>.target-search-dropdown .result-item-name,body>.target-search-dropdown .result-name,.target-search-dropdown .result-item-name,.target-search-dropdown .result-name{font-size:.875rem;font-weight:500;color:#212529;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}body>.target-search-dropdown .result-item-meta,body>.target-search-dropdown .result-subtitle,.target-search-dropdown .result-item-meta,.target-search-dropdown .result-subtitle{font-size:.75rem;color:#6c757d}body>.target-search-dropdown .subtitle-line,.target-search-dropdown .subtitle-line{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}body>.target-search-dropdown .subtitle-line-primary,.target-search-dropdown .subtitle-line-primary{color:#495057}body>.target-search-dropdown .subtitle-line-secondary,.target-search-dropdown .subtitle-line-secondary{color:#6c757d;font-size:11px}body>.target-search-dropdown .result-col,.target-search-dropdown .result-col{flex-shrink:0;width:70px;text-align:right;font-size:.75rem}body>.target-search-dropdown .result-col-price,.target-search-dropdown .result-col-price{color:#495057}body>.target-search-dropdown .result-col-sale,.target-search-dropdown .result-col-sale{color:#dc3545;font-weight:600}body>.target-search-dropdown .result-col-stock .col-value.stock-ok,.target-search-dropdown .result-col-stock .col-value.stock-ok{color:#28a745}body>.target-search-dropdown .result-col-stock .col-value.stock-low,.target-search-dropdown .result-col-stock .col-value.stock-low{color:#ffc107}body>.target-search-dropdown .result-col-stock .col-value.stock-out,.target-search-dropdown .result-col-stock .col-value.stock-out{color:#dc3545}body>.target-search-dropdown .result-col-sales,.target-search-dropdown .result-col-sales{color:#6c757d}body>.target-search-dropdown .col-value,.target-search-dropdown .col-value{display:block}body>.target-search-dropdown .result-item-checkbox,body>.target-search-dropdown .result-checkbox,.target-search-dropdown .result-item-checkbox,.target-search-dropdown .result-checkbox{display:flex;align-items:center;justify-content:center;flex-shrink:0;width:18px;height:18px;border:2px solid #ced4da;border-radius:.2rem;transition:all .15s ease-in-out}body>.target-search-dropdown .result-item-checkbox i,body>.target-search-dropdown .result-checkbox i,.target-search-dropdown .result-item-checkbox i,.target-search-dropdown .result-checkbox i{display:none;font-size:10px;color:#fff}.dropdown-result-item.selected body>.target-search-dropdown .result-item-checkbox,.dropdown-item.selected body>.target-search-dropdown .result-item-checkbox,.dropdown-result-item.selected body>.target-search-dropdown .result-checkbox,.dropdown-item.selected body>.target-search-dropdown .result-checkbox,.dropdown-result-item.selected .target-search-dropdown .result-item-checkbox,.dropdown-item.selected .target-search-dropdown .result-item-checkbox,.dropdown-result-item.selected .target-search-dropdown .result-checkbox,.dropdown-item.selected .target-search-dropdown .result-checkbox{background:#25b9d7;border-color:#25b9d7}.dropdown-result-item.selected body>.target-search-dropdown .result-item-checkbox i,.dropdown-item.selected body>.target-search-dropdown .result-item-checkbox i,.dropdown-result-item.selected body>.target-search-dropdown .result-checkbox i,.dropdown-item.selected body>.target-search-dropdown .result-checkbox i,.dropdown-result-item.selected .target-search-dropdown .result-item-checkbox i,.dropdown-item.selected .target-search-dropdown .result-item-checkbox i,.dropdown-result-item.selected .target-search-dropdown .result-checkbox i,.dropdown-item.selected .target-search-dropdown .result-checkbox i{display:block}body>.target-search-dropdown .no-results,.target-search-dropdown .no-results{display:flex;align-items:center;justify-content:center;gap:.5rem;padding:2rem;color:#6c757d;font-size:.875rem}body>.target-search-dropdown .no-results i,.target-search-dropdown .no-results i{font-size:1.25rem;opacity:.5}body>.target-search-dropdown .load-more-controls,.target-search-dropdown .load-more-controls{display:flex;align-items:center;justify-content:center;gap:.5rem;padding:.5rem 1rem;font-size:.75rem;color:#6c757d}body>.target-search-dropdown .load-more-controls .load-more-label,body>.target-search-dropdown .load-more-controls .load-more-of,.target-search-dropdown .load-more-controls .load-more-label,.target-search-dropdown .load-more-controls .load-more-of{white-space:nowrap}body>.target-search-dropdown .load-more-controls .remaining-count,.target-search-dropdown .load-more-controls .remaining-count{font-weight:600;color:#495057}body>.target-search-dropdown .load-more-controls .load-more-select,.target-search-dropdown .load-more-controls .load-more-select{width:100%;padding:.5rem 1rem;font-size:.875rem;line-height:1.5;color:#212529;background-color:#fff;border:1px solid #dee2e6;border-radius:.25rem;transition:border-color .15s ease-in-out,box-shadow .15s ease-in-out}body>.target-search-dropdown .load-more-controls .load-more-select:focus,.target-search-dropdown .load-more-controls .load-more-select:focus{border-color:#25b9d7;outline:0;box-shadow:0 0 0 .2rem rgba(37,185,215,.25)}body>.target-search-dropdown .load-more-controls .load-more-select::placeholder,.target-search-dropdown .load-more-controls .load-more-select::placeholder{color:#adb5bd}body>.target-search-dropdown .load-more-controls .load-more-select,.target-search-dropdown .load-more-controls .load-more-select{padding:.25rem .5rem;font-size:.75rem;min-width:60px}body>.target-search-dropdown .load-more-controls .btn-load-more,.target-search-dropdown .load-more-controls .btn-load-more{display:flex;align-items:center;justify-content:center;padding:.25rem;margin:0;border:none;color:#25b9d7;background:rgba(37,185,215,.1) !important;border-radius:.2rem;cursor:pointer;transition:all .15s ease-in-out;font:inherit}body>.target-search-dropdown .load-more-controls .btn-load-more i,.target-search-dropdown .load-more-controls .btn-load-more i{font-size:14px}body>.target-search-dropdown .load-more-controls .btn-load-more:hover,.target-search-dropdown .load-more-controls .btn-load-more:hover{background:rgba(37,185,215,.2) !important}body>.target-search-dropdown .dropdown-load-more,.target-search-dropdown .dropdown-load-more{display:flex;justify-content:center;padding:1rem;border-top:1px solid #dee2e6}body>.target-search-dropdown .dropdown-load-more .load-more-btn,.target-search-dropdown .dropdown-load-more .load-more-btn{padding:0;margin:0;background:none;border:none;cursor:pointer;font:inherit;color:inherit}body>.target-search-dropdown .dropdown-load-more .load-more-btn:focus,.target-search-dropdown .dropdown-load-more .load-more-btn:focus{outline:none}body>.target-search-dropdown .dropdown-load-more .load-more-btn,.target-search-dropdown .dropdown-load-more .load-more-btn{display:inline-flex;align-items:center;gap:.25rem;padding:.5rem 1rem;font-size:.875rem;font-weight:500;color:#25b9d7;background:rgba(37,185,215,.1);border-radius:.25rem;transition:all .15s ease-in-out}body>.target-search-dropdown .dropdown-load-more .load-more-btn:hover,.target-search-dropdown .dropdown-load-more .load-more-btn:hover{background:rgba(37,185,215,.2)}body>.target-search-dropdown .dropdown-load-more .load-more-btn.loading,.target-search-dropdown .dropdown-load-more .load-more-btn.loading{opacity:.7;cursor:wait}body>.target-search-dropdown .dropdown-body,.target-search-dropdown .dropdown-body{max-height:400px;overflow-y:auto}body>.target-search-dropdown .dropdown-body::-webkit-scrollbar,.target-search-dropdown .dropdown-body::-webkit-scrollbar{width:6px;height:6px}body>.target-search-dropdown .dropdown-body::-webkit-scrollbar-track,.target-search-dropdown .dropdown-body::-webkit-scrollbar-track{background:#f8f9fa;border-radius:3px}body>.target-search-dropdown .dropdown-body::-webkit-scrollbar-thumb,.target-search-dropdown .dropdown-body::-webkit-scrollbar-thumb{background:#dee2e6;border-radius:3px}body>.target-search-dropdown .dropdown-body::-webkit-scrollbar-thumb:hover,.target-search-dropdown .dropdown-body::-webkit-scrollbar-thumb:hover{background:#ced4da}body>.target-search-dropdown .tree-container,.target-search-dropdown .tree-container{padding:.5rem}body>.target-search-dropdown .tree-loading,.target-search-dropdown .tree-loading{display:flex;align-items:center;justify-content:center;gap:.5rem;padding:2rem;color:#6c757d;font-size:.875rem}body>.target-search-dropdown .tree-loading i,.target-search-dropdown .tree-loading i{animation:spin .6s linear infinite}body>.target-search-dropdown .tree-item,.target-search-dropdown .tree-item{display:flex;align-items:center;gap:.25rem;padding:.375rem .5rem;border-radius:.2rem;cursor:pointer;transition:background-color .15s ease-in-out}body>.target-search-dropdown .tree-item:hover,.target-search-dropdown .tree-item:hover{background:#e9ecef}body>.target-search-dropdown .tree-item.selected,.target-search-dropdown .tree-item.selected{background:rgba(37,185,215,.1)}body>.target-search-dropdown .tree-item.selected .tree-checkbox,.target-search-dropdown .tree-item.selected .tree-checkbox{background:#25b9d7;border-color:#25b9d7}body>.target-search-dropdown .tree-item.selected .tree-checkbox i,.target-search-dropdown .tree-item.selected .tree-checkbox i{display:block}body>.target-search-dropdown .tree-info,.target-search-dropdown .tree-info{display:flex;align-items:center;gap:.25rem;flex:1;min-width:0}body>.target-search-dropdown .tree-name,.target-search-dropdown .tree-name{font-size:.875rem;color:#212529;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}body>.target-search-dropdown .tree-subtitle,.target-search-dropdown .tree-subtitle{font-size:.75rem;color:#6c757d}.target-search-dropdown .dropdown-results{max-height:400px;overflow-y:auto;padding:0 .5rem}.target-search-dropdown .dropdown-results::-webkit-scrollbar{width:6px;height:6px}.target-search-dropdown .dropdown-results::-webkit-scrollbar-track{background:#f8f9fa;border-radius:3px}.target-search-dropdown .dropdown-results::-webkit-scrollbar-thumb{background:#dee2e6;border-radius:3px}.target-search-dropdown .dropdown-results::-webkit-scrollbar-thumb:hover{background:#ced4da}.target-search-dropdown .results-header{display:flex;align-items:center;gap:.5rem;padding:.25rem 1rem;background:#f1f5f9;border-bottom:1px solid #dee2e6;font-size:.75rem;font-weight:600;color:#495057}.target-search-dropdown .results-header .header-spacer{width:58px;flex-shrink:0}.target-search-dropdown .results-header .header-col{flex-shrink:0;width:70px;text-align:right}.target-search-dropdown .results-header .header-col-name{flex:1;text-align:left}.target-search-dropdown:not(.view-list) .results-header,.target-search-dropdown.view-tree .results-header{display:none}.target-search-dropdown .result-item-product{display:flex;align-items:center;gap:.5rem;flex:1;min-width:0}.target-search-dropdown .result-col{flex-shrink:0;width:70px;text-align:right;font-size:.75rem}.target-search-dropdown .result-col-price{color:#495057}.target-search-dropdown .result-col-sale{color:#dc3545;font-weight:600}.target-search-dropdown .result-col-stock .col-value.stock-ok{color:#28a745}.target-search-dropdown .result-col-stock .col-value.stock-low{color:#ffc107}.target-search-dropdown .result-col-stock .col-value.stock-out{color:#dc3545}.target-search-dropdown .result-col-sales{color:#6c757d}.target-search-dropdown .dropdown-item{display:flex;align-items:center;gap:.5rem;padding:0;border:none;border-bottom:1px solid #dee2e6;border-radius:0;cursor:pointer;transition:background-color .15s ease-in-out}.target-search-dropdown .dropdown-item:last-child{border-bottom:none}.target-search-dropdown .dropdown-item:hover{background:#e9ecef}.target-search-dropdown .dropdown-item.selected{background:rgba(37,185,215,.1)}.target-search-dropdown .result-checkbox{flex-shrink:0;display:flex;align-items:center;justify-content:center;width:18px;height:18px;border:2px solid #ced4da;border-radius:3px;transition:all .15s ease-in-out}.target-search-dropdown .result-checkbox i{font-size:10px;color:rgba(0,0,0,0)}.dropdown-item.selected .target-search-dropdown .result-checkbox{background:#25b9d7;border-color:#25b9d7}.dropdown-item.selected .target-search-dropdown .result-checkbox i{color:#fff}.target-search-dropdown .result-image{flex-shrink:0;width:40px;height:40px;overflow:hidden;border-radius:.2rem;background:#f1f5f9}.target-search-dropdown .result-image img{width:100%;height:100%;object-fit:cover}.target-search-dropdown .result-icon{flex-shrink:0;display:flex;align-items:center;justify-content:center;width:40px;height:40px;background:#f1f5f9;border-radius:.2rem}.target-search-dropdown .result-icon i{font-size:16px;color:#6c757d}.target-search-dropdown .result-info{flex:1;min-width:0}.target-search-dropdown .result-name{font-size:.875rem;font-weight:500;color:#212529;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.target-search-dropdown .result-subtitle{font-size:.75rem;color:#6c757d}.target-search-dropdown .subtitle-line{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.target-search-dropdown .subtitle-line-primary{color:#495057}.target-search-dropdown .subtitle-line-secondary{color:#6c757d;font-size:11px}.target-search-dropdown[class*=view-cols-] .result-col,.target-search-dropdown.view-tree .result-col{display:none}.target-search-dropdown .entity-search-box{display:flex;align-items:center;gap:.5rem;width:100%;padding:.5rem 1rem;background:#fff;border:none;border-bottom:1px solid #dee2e6;border-radius:0}.target-search-dropdown .entity-search-box .entity-search-icon{color:#6c757d;flex-shrink:0;margin-left:.25rem}.target-search-dropdown .entity-search-box input.entity-search-input,.target-search-dropdown .entity-search-box input.entity-search-input[type=text]{flex:1;min-width:0;width:auto !important;max-width:none !important;height:auto;padding:0;margin:0;border:none !important;outline:none;background:rgba(0,0,0,0) !important;font-size:.875rem;color:#212529;box-shadow:none !important}.target-search-dropdown .entity-search-box input.entity-search-input::placeholder,.target-search-dropdown .entity-search-box input.entity-search-input[type=text]::placeholder{color:#6c757d}.target-search-dropdown .entity-search-box input.entity-search-input:focus,.target-search-dropdown .entity-search-box input.entity-search-input[type=text]:focus{border:none !important;box-shadow:none !important;outline:none}.target-search-dropdown .entity-search-box .search-loading{color:#6c757d}body>.target-search-dropdown .dropdown-item{border:none;border-radius:0}body>.target-search-dropdown .dropdown-item:not(:last-child){border-bottom:1px solid #dee2e6}@keyframes spin{from{transform:rotate(0deg)}to{transform:rotate(360deg)}}.target-conditions-trait .chips-wrapper,.entity-selector-trait .chips-wrapper{display:flex;flex-direction:column;margin-top:.5rem;background:#f8fafc;border:1px solid #dee2e6;border-radius:.25rem;overflow:hidden}.target-conditions-trait .chips-toolbar,.entity-selector-trait .chips-toolbar{display:none;align-items:center;flex-wrap:nowrap;gap:.5rem;padding:.5rem 1rem;padding-bottom:0;background:rgba(0,0,0,0)}.target-conditions-trait .chips-toolbar.has-chips,.entity-selector-trait .chips-toolbar.has-chips{display:flex}.target-conditions-trait .chips-toolbar input[type=text].chips-search-input,.entity-selector-trait .chips-toolbar input[type=text].chips-search-input{all:unset;display:block;flex:1 1 auto;min-width:80px;width:auto;height:auto;padding:.2rem .5rem .2rem 1.5rem;background:#fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='10' viewBox='0 0 24 24' fill='none' stroke='%2394a3b8' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='11' cy='11' r='8'/%3E%3Cpath d='m21 21-4.35-4.35'/%3E%3C/svg%3E") no-repeat .375rem center;background-size:10px;border:1px solid #cbd5e1;border-radius:.2rem;font-size:11px;line-height:1.4;color:#212529;box-sizing:border-box;transition:all .15s ease-in-out}.target-conditions-trait .chips-toolbar input[type=text].chips-search-input::placeholder,.entity-selector-trait .chips-toolbar input[type=text].chips-search-input::placeholder{color:#6c757d;font-size:11px}.target-conditions-trait .chips-toolbar input[type=text].chips-search-input:focus,.entity-selector-trait .chips-toolbar input[type=text].chips-search-input:focus{outline:none;border-color:#25b9d7;box-shadow:0 0 0 2px rgba(37,185,215,.1)}.target-conditions-trait .chips-toolbar select.chips-sort-select,.entity-selector-trait .chips-toolbar select.chips-sort-select{all:unset;flex:0 0 auto;padding:.2rem 1.25rem .2rem .5rem;border:1px solid #dee2e6;border-radius:.2rem;background:#fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='8' height='8' viewBox='0 0 8 8'%3E%3Cpath fill='%23666' d='M0 2l4 4 4-4z'/%3E%3C/svg%3E") no-repeat right .375rem center;background-size:8px;font-size:10px;line-height:1.4;color:#495057;cursor:pointer;box-sizing:border-box;white-space:nowrap}.target-conditions-trait .chips-toolbar select.chips-sort-select:hover,.entity-selector-trait .chips-toolbar select.chips-sort-select:hover{border-color:#25b9d7}.target-conditions-trait .chips-toolbar select.chips-sort-select:focus,.entity-selector-trait .chips-toolbar select.chips-sort-select:focus{outline:none;border-color:#25b9d7;box-shadow:0 0 0 2px rgba(37,185,215,.1)}.target-conditions-trait .chips-count,.entity-selector-trait .chips-count{display:inline-flex;align-items:center;flex-shrink:0;gap:.125rem;padding:.2rem .5rem;background:#e2e8f0;color:#495057;font-size:10px;font-weight:600;border-radius:.2rem;white-space:nowrap;line-height:1.4}.target-conditions-trait .chips-count.has-filter,.entity-selector-trait .chips-count.has-filter{background:#cffafe;color:#0e7490}.target-conditions-trait .chips-count .count-filtered,.entity-selector-trait .chips-count .count-filtered{font-weight:700}.target-conditions-trait .chips-count .count-separator,.entity-selector-trait .chips-count .count-separator{opacity:.6;margin:0 .125rem}.target-conditions-trait .chips-actions,.entity-selector-trait .chips-actions{display:flex;align-items:center;gap:.25rem;margin-left:auto}.target-conditions-trait .btn-chips-clear,.entity-selector-trait .btn-chips-clear{padding:0;margin:0;background:none;border:none;cursor:pointer;font:inherit;color:inherit}.target-conditions-trait .btn-chips-clear:focus,.entity-selector-trait .btn-chips-clear:focus{outline:none}.target-conditions-trait .btn-chips-clear,.entity-selector-trait .btn-chips-clear{display:inline-flex;align-items:center;flex-shrink:0;gap:.25rem;padding:.2rem .5rem;color:#dc3545;font-size:10px;font-weight:500;background:rgba(220,53,69,.1);border-radius:.2rem;transition:all .15s ease-in-out;white-space:nowrap;line-height:1.4}.target-conditions-trait .btn-chips-clear:hover,.entity-selector-trait .btn-chips-clear:hover{background:#dc3545;color:#fff}.target-conditions-trait .btn-chips-clear i,.entity-selector-trait .btn-chips-clear i{font-size:9px;flex-shrink:0}@media(max-width: 480px){.target-conditions-trait .btn-chips-clear .clear-text,.entity-selector-trait .btn-chips-clear .clear-text{display:none}}.target-conditions-trait .entity-chips,.entity-selector-trait .entity-chips{display:flex;flex-wrap:wrap;gap:.25rem;padding:.5rem 1rem 1rem;min-height:40px;max-height:300px;overflow-y:auto}.target-conditions-trait .entity-chips:empty,.entity-selector-trait .entity-chips:empty{display:none}.target-conditions-trait .chips-load-more,.entity-selector-trait .chips-load-more{display:flex;align-items:center;justify-content:center;gap:.5rem;padding:.5rem 1rem;background:rgba(0,0,0,0);border-top:1px dashed #dee2e6}.target-conditions-trait .chips-load-more .load-more-label,.entity-selector-trait .chips-load-more .load-more-label{font-size:.75rem;color:#6c757d}.target-conditions-trait .chips-load-more .load-more-select,.target-conditions-trait .chips-load-more select.load-more-select,.entity-selector-trait .chips-load-more .load-more-select,.entity-selector-trait .chips-load-more select.load-more-select{appearance:none;padding:.25rem 1.75rem .25rem .5rem !important;border:1px solid #dee2e6 !important;border-radius:.2rem !important;background:#fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='8' height='8' viewBox='0 0 8 8'%3E%3Cpath fill='%23666' d='M0 2l4 4 4-4z'/%3E%3C/svg%3E") no-repeat right .5rem center !important;background-size:8px !important;font-size:.75rem !important;font-weight:500;color:#25b9d7;cursor:pointer;transition:all .15s ease-in-out;height:auto !important;min-height:0 !important;line-height:1.3 !important}.target-conditions-trait .chips-load-more .load-more-select:hover,.target-conditions-trait .chips-load-more select.load-more-select:hover,.entity-selector-trait .chips-load-more .load-more-select:hover,.entity-selector-trait .chips-load-more select.load-more-select:hover{border-color:#25b9d7 !important;background-color:rgba(37,185,215,.1) !important}.target-conditions-trait .chips-load-more .load-more-select:focus,.target-conditions-trait .chips-load-more select.load-more-select:focus,.entity-selector-trait .chips-load-more .load-more-select:focus,.entity-selector-trait .chips-load-more select.load-more-select:focus{outline:none !important;border-color:#25b9d7 !important;box-shadow:0 0 0 2px rgba(37,185,215,.1) !important}.target-conditions-trait .chips-load-more .load-more-remaining,.entity-selector-trait .chips-load-more .load-more-remaining{font-size:.75rem;color:#6c757d}.target-conditions-trait .entity-chip,.entity-selector-trait .entity-chip{display:inline-flex;align-items:center;gap:.375rem;padding:.25rem .5rem;background:#f1f5f9;color:#495057;font-size:.75rem;font-weight:500;border-radius:50rem;transition:all .15s ease-in-out}.target-conditions-trait .entity-chip:hover,.entity-selector-trait .entity-chip:hover{background:#e2e8f0}.target-conditions-trait .entity-chip.has-image,.entity-selector-trait .entity-chip.has-image{padding-left:.25rem}.target-conditions-trait .entity-chip.chip-filtered-out,.target-conditions-trait .entity-chip.chip-paginated-out,.entity-selector-trait .entity-chip.chip-filtered-out,.entity-selector-trait .entity-chip.chip-paginated-out{display:none}.target-conditions-trait .chip-image,.entity-selector-trait .chip-image{width:20px;height:20px;object-fit:cover;border-radius:50%;flex-shrink:0}.target-conditions-trait .chip-icon,.entity-selector-trait .chip-icon{display:flex;align-items:center;justify-content:center;font-size:12px;color:#6c757d;flex-shrink:0}.target-conditions-trait .chip-icon img,.entity-selector-trait .chip-icon img{width:20px;height:20px;object-fit:cover;border-radius:.2rem}.target-conditions-trait .chip-text,.target-conditions-trait .chip-name,.entity-selector-trait .chip-text,.entity-selector-trait .chip-name{word-break:break-word}.target-conditions-trait .chip-remove,.entity-selector-trait .chip-remove{padding:0;margin:0;background:none;border:none;cursor:pointer;font:inherit;color:inherit}.target-conditions-trait .chip-remove:focus,.entity-selector-trait .chip-remove:focus{outline:none}.target-conditions-trait .chip-remove,.entity-selector-trait .chip-remove{display:flex;align-items:center;justify-content:center;width:16px;height:16px;margin-left:.125rem;color:#6c757d;border-radius:50%;flex-shrink:0;transition:all .15s ease-in-out}.target-conditions-trait .chip-remove:hover,.entity-selector-trait .chip-remove:hover{background:rgba(0,0,0,.1);color:#dc3545}.target-conditions-trait .chip-remove i,.entity-selector-trait .chip-remove i{font-size:10px}.target-conditions-trait .entity-chip.chip-primary,.entity-selector-trait .entity-chip.chip-primary{background:rgba(37,185,215,.1);color:#25b9d7}.target-conditions-trait .entity-chip.chip-primary:hover,.entity-selector-trait .entity-chip.chip-primary:hover{background:rgba(37,185,215,.2)}.target-conditions-trait .entity-chip.chip-success,.entity-selector-trait .entity-chip.chip-success{background:#d4edda;color:#1e7e34}.target-conditions-trait .entity-chip.chip-success:hover,.entity-selector-trait .entity-chip.chip-success:hover{background:rgba(40,167,69,.2)}.target-conditions-trait .entity-chip.chip-danger,.entity-selector-trait .entity-chip.chip-danger{background:#f8d7da;color:#dc3545}.target-conditions-trait .entity-chip.chip-danger:hover,.entity-selector-trait .entity-chip.chip-danger:hover{background:rgba(220,53,69,.2)}.target-conditions-trait .entity-chip.chip-warning,.entity-selector-trait .entity-chip.chip-warning{background:#fff3cd;color:#a07800}.target-conditions-trait .entity-chip.chip-warning:hover,.entity-selector-trait .entity-chip.chip-warning:hover{background:rgba(255,193,7,.3)}.target-conditions-trait .entity-chip.loading,.target-conditions-trait .entity-chip-loading,.entity-selector-trait .entity-chip.loading,.entity-selector-trait .entity-chip-loading{opacity:.7}.target-conditions-trait .entity-chip.loading .chip-remove,.target-conditions-trait .entity-chip-loading .chip-remove,.entity-selector-trait .entity-chip.loading .chip-remove,.entity-selector-trait .entity-chip-loading .chip-remove{display:none}.target-conditions-trait .entity-chip.loading .chip-icon i,.target-conditions-trait .entity-chip-loading .chip-icon i,.entity-selector-trait .entity-chip.loading .chip-icon i,.entity-selector-trait .entity-chip-loading .chip-icon i{animation:spin .6s linear infinite}.target-conditions-trait .entity-chip.chip-hidden,.entity-selector-trait .entity-chip.chip-hidden{display:none}.target-conditions-trait .entity-chips.chips-collapsed,.target-conditions-trait .entity-chips.chips-expanded,.entity-selector-trait .entity-chips.chips-collapsed,.entity-selector-trait .entity-chips.chips-expanded{position:relative}.target-conditions-trait .chips-show-more-toggle,.entity-selector-trait .chips-show-more-toggle{display:inline-flex;align-items:center;gap:.25rem;padding:.25rem .5rem;color:#25b9d7;font-size:.75rem;font-weight:500;cursor:pointer;transition:color .15s ease-in-out}.target-conditions-trait .chips-show-more-toggle:hover,.entity-selector-trait .chips-show-more-toggle:hover{color:#1a9ab7}.target-conditions-trait .chips-show-more-toggle i,.entity-selector-trait .chips-show-more-toggle i{font-size:10px}.target-conditions-trait .chips-more,.entity-selector-trait .chips-more{display:inline-flex;align-items:center;justify-content:center;padding:.25rem .5rem;background:#e2e8f0;color:#495057;font-size:.75rem;font-weight:600;border-radius:50rem;cursor:pointer;transition:all .15s ease-in-out}.target-conditions-trait .chips-more:hover,.entity-selector-trait .chips-more:hover{background:#cbd5e1}.target-conditions-trait .chip-add-btn,.entity-selector-trait .chip-add-btn{padding:0;margin:0;background:none;border:none;cursor:pointer;font:inherit;color:inherit}.target-conditions-trait .chip-add-btn:focus,.entity-selector-trait .chip-add-btn:focus{outline:none}.target-conditions-trait .chip-add-btn,.entity-selector-trait .chip-add-btn{display:inline-flex;align-items:center;gap:.25rem;padding:.25rem .5rem;background:rgba(0,0,0,0);color:#25b9d7;font-size:.75rem;font-weight:500;border:1px dashed #25b9d7;border-radius:50rem;transition:all .15s ease-in-out}.target-conditions-trait .chip-add-btn:hover,.entity-selector-trait .chip-add-btn:hover{background:rgba(37,185,215,.1)}.target-conditions-trait .chip-add-btn i,.entity-selector-trait .chip-add-btn i{font-size:10px}.target-conditions-trait .entity-chips.inline,.entity-selector-trait .entity-chips.inline{display:inline-flex;padding:0;min-height:auto}.target-conditions-trait .entity-chips.inline .entity-chip,.entity-selector-trait .entity-chips.inline .entity-chip{padding:.125rem .375rem;font-size:11px}.target-conditions-trait .selected-chips-container,.entity-selector-trait .selected-chips-container{display:flex;flex-direction:column;gap:.25rem}.target-conditions-trait .selected-chips-label,.entity-selector-trait .selected-chips-label{font-size:.75rem;font-weight:500;color:#6c757d}.target-conditions-trait .entity-chip.chip-pattern,.entity-selector-trait .entity-chip.chip-pattern{background:#fef3c7;color:#92400e;font-family:monospace}.target-conditions-trait .entity-chip.chip-pattern:hover,.entity-selector-trait .entity-chip.chip-pattern:hover{background:#fde68a}.target-conditions-trait .entity-chip.chip-pattern .chip-icon,.entity-selector-trait .entity-chip.chip-pattern .chip-icon{color:#d97706}.target-conditions-trait .entity-chip.chip-range,.target-conditions-trait .range-chip,.entity-selector-trait .entity-chip.chip-range,.entity-selector-trait .range-chip{display:inline-flex;align-items:center;gap:.375rem;padding:.25rem .5rem;background:#ecfeff;color:#0891b2;font-size:.75rem;font-weight:500;border-radius:50rem;transition:all .15s ease-in-out}.target-conditions-trait .entity-chip.chip-range:hover,.target-conditions-trait .range-chip:hover,.entity-selector-trait .entity-chip.chip-range:hover,.entity-selector-trait .range-chip:hover{background:#cffafe}.target-conditions-trait .range-chip-text,.entity-selector-trait .range-chip-text{font-family:monospace}.target-conditions-trait .btn-remove-range,.entity-selector-trait .btn-remove-range{padding:0;margin:0;background:none;border:none;cursor:pointer;font:inherit;color:inherit}.target-conditions-trait .btn-remove-range:focus,.entity-selector-trait .btn-remove-range:focus{outline:none}.target-conditions-trait .btn-remove-range,.entity-selector-trait .btn-remove-range{display:flex;align-items:center;justify-content:center;width:16px;height:16px;color:#0891b2;border-radius:50%;transition:all .15s ease-in-out}.target-conditions-trait .btn-remove-range:hover,.entity-selector-trait .btn-remove-range:hover{background:rgba(0,0,0,.1);color:#dc3545}.target-conditions-trait .btn-remove-range i,.entity-selector-trait .btn-remove-range i{font-size:10px}.target-conditions-trait .multi-range-chips,.entity-selector-trait .multi-range-chips{display:flex;flex-wrap:wrap;gap:.25rem;margin-bottom:.25rem}.target-conditions-trait .multi-range-chips:empty,.entity-selector-trait .multi-range-chips:empty{display:none}.target-conditions-trait .pattern-chips,.entity-selector-trait .pattern-chips{display:flex;flex-wrap:wrap;gap:.25rem;padding:.5rem 0;min-height:32px}.target-conditions-trait .pattern-chips:empty::before,.entity-selector-trait .pattern-chips:empty::before{content:attr(data-placeholder);color:#6c757d;font-size:.75rem;font-style:italic}.target-conditions-trait .pattern-tag,.entity-selector-trait .pattern-tag{display:inline-flex;align-items:center;gap:.25rem;padding:.25rem .5rem;background:#fef3c7;color:#92400e;font-size:.75rem;font-weight:500;border-radius:.2rem;transition:all .15s ease-in-out}.target-conditions-trait .pattern-tag:hover,.entity-selector-trait .pattern-tag:hover{background:#fde68a}.target-conditions-trait .pattern-tag.case-sensitive .case-icon,.entity-selector-trait .pattern-tag.case-sensitive .case-icon{color:#28a745;font-weight:700}.target-conditions-trait .pattern-tag.draft-tag,.entity-selector-trait .pattern-tag.draft-tag{background:#fff;border:1px solid #dee2e6;padding:0;flex:1;min-width:150px}.target-conditions-trait .pattern-tag.draft-tag:hover,.entity-selector-trait .pattern-tag.draft-tag:hover{background:#fff}.target-conditions-trait .pattern-tag.draft-tag .pattern-input,.entity-selector-trait .pattern-tag.draft-tag .pattern-input{flex:1;min-width:100px;padding:.375rem;border:0;background:rgba(0,0,0,0);font-size:.875rem;font-family:inherit}.target-conditions-trait .pattern-tag.draft-tag .pattern-input:focus,.entity-selector-trait .pattern-tag.draft-tag .pattern-input:focus{outline:none}.target-conditions-trait .pattern-tag.draft-tag .pattern-input::placeholder,.entity-selector-trait .pattern-tag.draft-tag .pattern-input::placeholder{color:#6c757d;font-style:italic}.target-conditions-trait .pattern-tag-text,.entity-selector-trait .pattern-tag-text{font-family:monospace;max-width:200px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.target-conditions-trait .btn-toggle-case,.entity-selector-trait .btn-toggle-case{padding:0;margin:0;background:none;border:none;cursor:pointer;font:inherit;color:inherit}.target-conditions-trait .btn-toggle-case:focus,.entity-selector-trait .btn-toggle-case:focus{outline:none}.target-conditions-trait .btn-toggle-case,.entity-selector-trait .btn-toggle-case{display:flex;align-items:center;justify-content:center;width:24px;height:24px;color:#6c757d;border-radius:.2rem;transition:all .15s ease-in-out}.target-conditions-trait .btn-toggle-case:hover,.entity-selector-trait .btn-toggle-case:hover{background:rgba(0,0,0,.1)}.target-conditions-trait .case-icon,.entity-selector-trait .case-icon{font-size:11px;font-weight:600;font-family:monospace}.target-conditions-trait .btn-remove-pattern,.entity-selector-trait .btn-remove-pattern{padding:0;margin:0;background:none;border:none;cursor:pointer;font:inherit;color:inherit}.target-conditions-trait .btn-remove-pattern:focus,.entity-selector-trait .btn-remove-pattern:focus{outline:none}.target-conditions-trait .btn-remove-pattern,.entity-selector-trait .btn-remove-pattern{display:flex;align-items:center;justify-content:center;width:18px;height:18px;color:#d97706;border-radius:.2rem;transition:all .15s ease-in-out}.target-conditions-trait .btn-remove-pattern:hover,.entity-selector-trait .btn-remove-pattern:hover{background:rgba(0,0,0,.1);color:#dc3545}.target-conditions-trait .btn-remove-pattern i,.entity-selector-trait .btn-remove-pattern i{font-size:10px}.target-conditions-trait .btn-add-pattern,.entity-selector-trait .btn-add-pattern{padding:0;margin:0;background:none;border:none;cursor:pointer;font:inherit;color:inherit}.target-conditions-trait .btn-add-pattern:focus,.entity-selector-trait .btn-add-pattern:focus{outline:none}.target-conditions-trait .btn-add-pattern,.entity-selector-trait .btn-add-pattern{display:flex;align-items:center;justify-content:center;width:28px;height:28px;color:#25b9d7;border-radius:.2rem;transition:all .15s ease-in-out}.target-conditions-trait .btn-add-pattern:hover,.entity-selector-trait .btn-add-pattern:hover{background:rgba(37,185,215,.1)}.target-conditions-trait .btn-add-pattern i,.entity-selector-trait .btn-add-pattern i{font-size:12px}.target-conditions-trait .pattern-match-count,.entity-selector-trait .pattern-match-count{display:inline-flex;align-items:center;gap:.25rem;padding:0 .375rem;color:#6c757d;font-size:.75rem;cursor:pointer}.target-conditions-trait .pattern-match-count.count-zero,.entity-selector-trait .pattern-match-count.count-zero{color:#ffc107}.target-conditions-trait .pattern-match-count.count-found,.entity-selector-trait .pattern-match-count.count-found{color:#28a745}.target-conditions-trait .pattern-match-count .count-value,.entity-selector-trait .pattern-match-count .count-value{font-weight:600}.target-conditions-trait .pattern-input-row,.entity-selector-trait .pattern-input-row{display:flex;align-items:stretch;gap:.25rem}#content.bootstrap .target-conditions-trait .chips-wrapper .chips-toolbar input[type=text].chips-search-input.chips-search-input,#content.bootstrap .entity-selector-trait .chips-wrapper .chips-toolbar input[type=text].chips-search-input.chips-search-input,#content .bootstrap .target-conditions-trait .chips-wrapper .chips-toolbar input[type=text].chips-search-input.chips-search-input,#content .bootstrap .entity-selector-trait .chips-wrapper .chips-toolbar input[type=text].chips-search-input.chips-search-input,.bootstrap #content .target-conditions-trait .chips-wrapper .chips-toolbar input[type=text].chips-search-input.chips-search-input,.bootstrap #content .entity-selector-trait .chips-wrapper .chips-toolbar input[type=text].chips-search-input.chips-search-input{all:unset;display:block;flex:1 1 auto;min-width:80px;width:auto;height:auto;padding:.2rem .5rem .2rem 1.5rem;background:#fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='10' viewBox='0 0 24 24' fill='none' stroke='%2394a3b8' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='11' cy='11' r='8'/%3E%3Cpath d='m21 21-4.35-4.35'/%3E%3C/svg%3E") no-repeat .375rem center;background-size:10px;border:1px solid #cbd5e1;border-radius:.2rem;font-size:11px;line-height:1.4;color:#212529;box-sizing:border-box;transition:all .15s ease-in-out}#content.bootstrap .target-conditions-trait .chips-wrapper .chips-toolbar input[type=text].chips-search-input.chips-search-input::placeholder,#content.bootstrap .entity-selector-trait .chips-wrapper .chips-toolbar input[type=text].chips-search-input.chips-search-input::placeholder,#content .bootstrap .target-conditions-trait .chips-wrapper .chips-toolbar input[type=text].chips-search-input.chips-search-input::placeholder,#content .bootstrap .entity-selector-trait .chips-wrapper .chips-toolbar input[type=text].chips-search-input.chips-search-input::placeholder,.bootstrap #content .target-conditions-trait .chips-wrapper .chips-toolbar input[type=text].chips-search-input.chips-search-input::placeholder,.bootstrap #content .entity-selector-trait .chips-wrapper .chips-toolbar input[type=text].chips-search-input.chips-search-input::placeholder{color:#6c757d;font-size:11px}#content.bootstrap .target-conditions-trait .chips-wrapper .chips-toolbar input[type=text].chips-search-input.chips-search-input:focus,#content.bootstrap .entity-selector-trait .chips-wrapper .chips-toolbar input[type=text].chips-search-input.chips-search-input:focus,#content .bootstrap .target-conditions-trait .chips-wrapper .chips-toolbar input[type=text].chips-search-input.chips-search-input:focus,#content .bootstrap .entity-selector-trait .chips-wrapper .chips-toolbar input[type=text].chips-search-input.chips-search-input:focus,.bootstrap #content .target-conditions-trait .chips-wrapper .chips-toolbar input[type=text].chips-search-input.chips-search-input:focus,.bootstrap #content .entity-selector-trait .chips-wrapper .chips-toolbar input[type=text].chips-search-input.chips-search-input:focus{outline:none;border-color:#25b9d7;box-shadow:0 0 0 2px rgba(37,185,215,.1)}#content.bootstrap .target-conditions-trait .chips-wrapper .chips-toolbar select.chips-sort-select.chips-sort-select,#content.bootstrap .entity-selector-trait .chips-wrapper .chips-toolbar select.chips-sort-select.chips-sort-select,#content .bootstrap .target-conditions-trait .chips-wrapper .chips-toolbar select.chips-sort-select.chips-sort-select,#content .bootstrap .entity-selector-trait .chips-wrapper .chips-toolbar select.chips-sort-select.chips-sort-select,.bootstrap #content .target-conditions-trait .chips-wrapper .chips-toolbar select.chips-sort-select.chips-sort-select,.bootstrap #content .entity-selector-trait .chips-wrapper .chips-toolbar select.chips-sort-select.chips-sort-select{all:unset;flex:0 0 auto;padding:.2rem 1.25rem .2rem .5rem;border:1px solid #dee2e6;border-radius:.2rem;background:#fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='8' height='8' viewBox='0 0 8 8'%3E%3Cpath fill='%23666' d='M0 2l4 4 4-4z'/%3E%3C/svg%3E") no-repeat right .375rem center;background-size:8px;font-size:10px;line-height:1.4;color:#495057;cursor:pointer;box-sizing:border-box;white-space:nowrap;height:auto}#content.bootstrap .target-conditions-trait .chips-wrapper .chips-toolbar select.chips-sort-select.chips-sort-select:hover,#content.bootstrap .entity-selector-trait .chips-wrapper .chips-toolbar select.chips-sort-select.chips-sort-select:hover,#content .bootstrap .target-conditions-trait .chips-wrapper .chips-toolbar select.chips-sort-select.chips-sort-select:hover,#content .bootstrap .entity-selector-trait .chips-wrapper .chips-toolbar select.chips-sort-select.chips-sort-select:hover,.bootstrap #content .target-conditions-trait .chips-wrapper .chips-toolbar select.chips-sort-select.chips-sort-select:hover,.bootstrap #content .entity-selector-trait .chips-wrapper .chips-toolbar select.chips-sort-select.chips-sort-select:hover{border-color:#25b9d7}#content.bootstrap .target-conditions-trait .chips-wrapper .chips-toolbar select.chips-sort-select.chips-sort-select:focus,#content.bootstrap .entity-selector-trait .chips-wrapper .chips-toolbar select.chips-sort-select.chips-sort-select:focus,#content .bootstrap .target-conditions-trait .chips-wrapper .chips-toolbar select.chips-sort-select.chips-sort-select:focus,#content .bootstrap .entity-selector-trait .chips-wrapper .chips-toolbar select.chips-sort-select.chips-sort-select:focus,.bootstrap #content .target-conditions-trait .chips-wrapper .chips-toolbar select.chips-sort-select.chips-sort-select:focus,.bootstrap #content .entity-selector-trait .chips-wrapper .chips-toolbar select.chips-sort-select.chips-sort-select:focus{outline:none;border-color:#25b9d7;box-shadow:0 0 0 2px rgba(37,185,215,.1)}.target-conditions-trait .target-group,.entity-selector-trait .target-group{background:#fff;border:1px solid #dee2e6;border-radius:.3rem;overflow:hidden}.target-conditions-trait .target-group-header,.entity-selector-trait .target-group-header{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.5rem 1rem;background:#f8f9fa;border-bottom:1px solid #dee2e6}.target-conditions-trait .target-group-title,.entity-selector-trait .target-group-title{display:flex;align-items:center;gap:.5rem;font-size:.875rem;font-weight:600;color:#212529}.target-conditions-trait .target-group-title .group-number,.entity-selector-trait .target-group-title .group-number{display:inline-flex;align-items:center;justify-content:center;min-width:20px;height:20px;padding:0 .25rem;background:#25b9d7;color:#fff;font-size:.75rem;font-weight:700;border-radius:50rem}.target-conditions-trait .target-group-actions,.entity-selector-trait .target-group-actions{display:flex;align-items:center;gap:.25rem}.target-conditions-trait .group-action-btn,.entity-selector-trait .group-action-btn{padding:0;margin:0;background:none;border:none;cursor:pointer;font:inherit;color:inherit}.target-conditions-trait .group-action-btn:focus,.entity-selector-trait .group-action-btn:focus{outline:none}.target-conditions-trait .group-action-btn,.entity-selector-trait .group-action-btn{display:flex;align-items:center;justify-content:center;width:28px;height:28px;color:#6c757d;border-radius:.2rem;transition:all .15s ease-in-out}.target-conditions-trait .group-action-btn:hover,.entity-selector-trait .group-action-btn:hover{background:#e2e8f0;color:#495057}.target-conditions-trait .group-action-btn.danger:hover,.entity-selector-trait .group-action-btn.danger:hover{background:#f8d7da;color:#dc3545}.target-conditions-trait .target-group-body,.target-conditions-trait .group-body,.entity-selector-trait .target-group-body,.entity-selector-trait .group-body{padding:1rem}.target-conditions-trait .include-section,.entity-selector-trait .include-section{margin-bottom:1rem}.target-conditions-trait .section-label,.entity-selector-trait .section-label{display:flex;align-items:center;gap:.25rem;margin-bottom:.5rem;font-size:.75rem;font-weight:600;text-transform:uppercase;letter-spacing:.05em}.target-conditions-trait .section-label.label-include,.entity-selector-trait .section-label.label-include{color:#1e7e34}.target-conditions-trait .section-label.label-include i,.entity-selector-trait .section-label.label-include i{color:#28a745}.target-conditions-trait .section-label.label-exclude,.entity-selector-trait .section-label.label-exclude{color:#dc3545}.target-conditions-trait .section-label.label-exclude i,.entity-selector-trait .section-label.label-exclude i{color:#dc3545}.target-conditions-trait .method-selector,.entity-selector-trait .method-selector{display:flex;align-items:center;gap:.5rem;margin-bottom:.5rem}.target-conditions-trait .method-selector-wrapper,.entity-selector-trait .method-selector-wrapper{flex:1;position:relative}.target-conditions-trait .method-select,.entity-selector-trait .method-select{width:100%;padding:.5rem 1rem;font-size:.875rem;line-height:1.5;color:#212529;background-color:#fff;border:1px solid #dee2e6;border-radius:.25rem;transition:border-color .15s ease-in-out,box-shadow .15s ease-in-out}.target-conditions-trait .method-select:focus,.entity-selector-trait .method-select:focus{border-color:#25b9d7;outline:0;box-shadow:0 0 0 .2rem rgba(37,185,215,.25)}.target-conditions-trait .method-select::placeholder,.entity-selector-trait .method-select::placeholder{color:#adb5bd}.target-conditions-trait .method-select,.entity-selector-trait .method-select{padding-right:2rem;cursor:pointer;appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 20 20'%3E%3Cpath stroke='%236b7280' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' d='m6 8 4 4 4-4'/%3E%3C/svg%3E");background-position:right .5rem center;background-repeat:no-repeat;background-size:1.5em 1.5em}.target-conditions-trait .method-help-btn,.entity-selector-trait .method-help-btn{padding:0;margin:0;background:none;border:none;cursor:pointer;font:inherit;color:inherit}.target-conditions-trait .method-help-btn:focus,.entity-selector-trait .method-help-btn:focus{outline:none}.target-conditions-trait .method-help-btn,.entity-selector-trait .method-help-btn{display:flex;align-items:center;justify-content:center;width:28px;height:28px;color:#6c757d;border-radius:50rem;transition:all .15s ease-in-out}.target-conditions-trait .method-help-btn:hover,.entity-selector-trait .method-help-btn:hover{background:#f1f5f9;color:#25b9d7}.target-conditions-trait .value-picker,.entity-selector-trait .value-picker{position:relative}.target-conditions-trait .value-picker-trigger,.entity-selector-trait .value-picker-trigger{padding:0;margin:0;background:none;border:none;cursor:pointer;font:inherit;color:inherit}.target-conditions-trait .value-picker-trigger:focus,.entity-selector-trait .value-picker-trigger:focus{outline:none}.target-conditions-trait .value-picker-trigger,.entity-selector-trait .value-picker-trigger{display:flex;align-items:center;gap:.5rem;width:100%;padding:.5rem 1rem;background:#fff;border:1px solid #dee2e6;border-radius:.25rem;color:#6c757d;font-size:.875rem;text-align:left;transition:all .15s ease-in-out}.target-conditions-trait .value-picker-trigger:hover,.entity-selector-trait .value-picker-trigger:hover{border-color:#cbd5e1}.target-conditions-trait .value-picker-trigger:focus,.entity-selector-trait .value-picker-trigger:focus{border-color:#25b9d7;outline:0;box-shadow:0 0 0 .2rem rgba(37,185,215,.25)}.target-conditions-trait .value-picker-trigger i,.entity-selector-trait .value-picker-trigger i{color:#adb5bd}.target-conditions-trait .pattern-input-wrapper,.entity-selector-trait .pattern-input-wrapper{position:relative}.target-conditions-trait .pattern-input,.entity-selector-trait .pattern-input{width:100%;padding:.5rem 1rem;font-size:.875rem;line-height:1.5;color:#212529;background-color:#fff;border:1px solid #dee2e6;border-radius:.25rem;transition:border-color .15s ease-in-out,box-shadow .15s ease-in-out}.target-conditions-trait .pattern-input:focus,.entity-selector-trait .pattern-input:focus{border-color:#25b9d7;outline:0;box-shadow:0 0 0 .2rem rgba(37,185,215,.25)}.target-conditions-trait .pattern-input::placeholder,.entity-selector-trait .pattern-input::placeholder{color:#adb5bd}.target-conditions-trait .pattern-input,.entity-selector-trait .pattern-input{font-family:monospace}.target-conditions-trait .pattern-add-btn,.entity-selector-trait .pattern-add-btn{padding:0;margin:0;background:none;border:none;cursor:pointer;font:inherit;color:inherit}.target-conditions-trait .pattern-add-btn:focus,.entity-selector-trait .pattern-add-btn:focus{outline:none}.target-conditions-trait .pattern-add-btn,.entity-selector-trait .pattern-add-btn{position:absolute;right:.25rem;top:50%;transform:translateY(-50%);display:flex;align-items:center;justify-content:center;width:28px;height:28px;color:#25b9d7;border-radius:.2rem;transition:all .15s ease-in-out}.target-conditions-trait .pattern-add-btn:hover,.entity-selector-trait .pattern-add-btn:hover{background:rgba(37,185,215,.1)}.target-conditions-trait .multi-range-container,.entity-selector-trait .multi-range-container{display:flex;flex-direction:column;gap:.5rem}.target-conditions-trait .range-row,.entity-selector-trait .range-row{display:flex;align-items:center;gap:.5rem}.target-conditions-trait .range-input,.entity-selector-trait .range-input{width:100%;padding:.5rem 1rem;font-size:.875rem;line-height:1.5;color:#212529;background-color:#fff;border:1px solid #dee2e6;border-radius:.25rem;transition:border-color .15s ease-in-out,box-shadow .15s ease-in-out}.target-conditions-trait .range-input:focus,.entity-selector-trait .range-input:focus{border-color:#25b9d7;outline:0;box-shadow:0 0 0 .2rem rgba(37,185,215,.25)}.target-conditions-trait .range-input::placeholder,.entity-selector-trait .range-input::placeholder{color:#adb5bd}.target-conditions-trait .range-input,.entity-selector-trait .range-input{width:100px;text-align:center}.target-conditions-trait .range-separator,.entity-selector-trait .range-separator{color:#6c757d;font-size:.875rem}.target-conditions-trait .range-remove-btn,.entity-selector-trait .range-remove-btn{padding:0;margin:0;background:none;border:none;cursor:pointer;font:inherit;color:inherit}.target-conditions-trait .range-remove-btn:focus,.entity-selector-trait .range-remove-btn:focus{outline:none}.target-conditions-trait .range-remove-btn,.entity-selector-trait .range-remove-btn{display:flex;align-items:center;justify-content:center;width:24px;height:24px;color:#6c757d;border-radius:.2rem;transition:all .15s ease-in-out}.target-conditions-trait .range-remove-btn:hover,.entity-selector-trait .range-remove-btn:hover{background:#f8d7da;color:#dc3545}.target-conditions-trait .range-add-btn,.entity-selector-trait .range-add-btn{padding:0;margin:0;background:none;border:none;cursor:pointer;font:inherit;color:inherit}.target-conditions-trait .range-add-btn:focus,.entity-selector-trait .range-add-btn:focus{outline:none}.target-conditions-trait .range-add-btn,.entity-selector-trait .range-add-btn{display:inline-flex;align-items:center;gap:.25rem;padding:.25rem .5rem;color:#25b9d7;font-size:.75rem;font-weight:500;border-radius:.2rem;transition:all .15s ease-in-out}.target-conditions-trait .range-add-btn:hover,.entity-selector-trait .range-add-btn:hover{background:rgba(37,185,215,.1)}.target-conditions-trait .multi-select-tiles,.entity-selector-trait .multi-select-tiles{display:flex;flex-wrap:wrap;gap:.25rem}.target-conditions-trait .multi-select-tile,.entity-selector-trait .multi-select-tile{padding:0;margin:0;background:none;border:none;cursor:pointer;font:inherit;color:inherit}.target-conditions-trait .multi-select-tile:focus,.entity-selector-trait .multi-select-tile:focus{outline:none}.target-conditions-trait .multi-select-tile,.entity-selector-trait .multi-select-tile{display:inline-flex;align-items:center;gap:.25rem;padding:.375rem .75rem;background:#f1f5f9;color:#495057;font-size:.75rem;font-weight:500;border:1px solid rgba(0,0,0,0);border-radius:50rem;transition:all .15s ease-in-out}.target-conditions-trait .multi-select-tile:hover,.entity-selector-trait .multi-select-tile:hover{background:#e2e8f0}.target-conditions-trait .multi-select-tile.selected,.entity-selector-trait .multi-select-tile.selected{background:rgba(37,185,215,.1);color:#25b9d7;border-color:#25b9d7}.target-conditions-trait .exclude-section,.entity-selector-trait .exclude-section{margin-top:1rem;padding-top:1rem;border-top:1px dashed #dee2e6}.target-conditions-trait .exclude-rows,.entity-selector-trait .exclude-rows{display:flex;flex-direction:column;gap:.5rem}.target-conditions-trait .exclude-row-content,.entity-selector-trait .exclude-row-content{flex:1}.target-conditions-trait .exclude-remove-btn,.entity-selector-trait .exclude-remove-btn{padding:0;margin:0;background:none;border:none;cursor:pointer;font:inherit;color:inherit}.target-conditions-trait .exclude-remove-btn:focus,.entity-selector-trait .exclude-remove-btn:focus{outline:none}.target-conditions-trait .exclude-remove-btn,.entity-selector-trait .exclude-remove-btn{display:flex;align-items:center;justify-content:center;width:24px;height:24px;color:#6c757d;border-radius:.2rem;flex-shrink:0;transition:all .15s ease-in-out}.target-conditions-trait .exclude-remove-btn:hover,.entity-selector-trait .exclude-remove-btn:hover{background:#f8d7da;color:#dc3545}.target-conditions-trait .add-exclude-btn,.entity-selector-trait .add-exclude-btn{padding:0;margin:0;background:none;border:none;cursor:pointer;font:inherit;color:inherit}.target-conditions-trait .add-exclude-btn:focus,.entity-selector-trait .add-exclude-btn:focus{outline:none}.target-conditions-trait .add-exclude-btn,.entity-selector-trait .add-exclude-btn{display:inline-flex;align-items:center;gap:.25rem;margin-top:.5rem;padding:.25rem .5rem;color:#dc3545;font-size:.75rem;font-weight:500;border:1px dashed #dc3545;border-radius:.2rem;transition:all .15s ease-in-out}.target-conditions-trait .add-exclude-btn:hover,.entity-selector-trait .add-exclude-btn:hover{background:#f8d7da}.target-conditions-trait .btn-add-group,.entity-selector-trait .btn-add-group{padding:0;margin:0;background:none;border:none;cursor:pointer;font:inherit;color:inherit}.target-conditions-trait .btn-add-group:focus,.entity-selector-trait .btn-add-group:focus{outline:none}.target-conditions-trait .btn-add-group,.entity-selector-trait .btn-add-group{display:inline-flex;align-items:center;gap:.375rem;padding:.5rem .875rem;color:#25b9d7;font-size:.875rem;font-weight:500;background:rgba(37,185,215,.05);border:1px dashed #25b9d7;border-radius:.375rem;cursor:pointer;transition:all .15s ease-in-out}.target-conditions-trait .btn-add-group:hover,.entity-selector-trait .btn-add-group:hover{background:rgba(37,185,215,.1)}.target-conditions-trait .btn-add-group i,.entity-selector-trait .btn-add-group i{font-size:12px}.target-conditions-trait .block-footer,.entity-selector-trait .block-footer{display:flex;align-items:center;gap:.5rem;padding:1rem;border-top:1px solid #dee2e6}.target-conditions-trait .block-body,.entity-selector-trait .block-body{padding:0}.target-conditions-trait .groups-container,.entity-selector-trait .groups-container{padding:1rem}.target-conditions-trait .groups-empty-state,.entity-selector-trait .groups-empty-state{display:flex;align-items:center;justify-content:center;padding:2rem;color:#6c757d;font-size:.875rem}.target-conditions-trait .selection-group,.entity-selector-trait .selection-group{background:#fff;border:1px solid #dee2e6;border-radius:.3rem;margin-bottom:1rem}.target-conditions-trait .selection-group:last-child,.entity-selector-trait .selection-group:last-child{margin-bottom:0}.target-conditions-trait .selection-group.collapsed .group-body,.entity-selector-trait .selection-group.collapsed .group-body{display:none}.target-conditions-trait .selection-group.collapsed .group-collapse-toggle i,.entity-selector-trait .selection-group.collapsed .group-collapse-toggle i{transform:rotate(-90deg)}.target-conditions-trait .group-header,.entity-selector-trait .group-header{display:flex;align-items:center;gap:.5rem;padding:.5rem 1rem;background:#f8f9fa;border-bottom:1px solid #dee2e6;border-radius:.3rem .3rem 0 0;cursor:pointer}.target-conditions-trait .group-header.group-header-single,.entity-selector-trait .group-header.group-header-single{padding:.25rem 1rem;background:rgba(0,0,0,0);border-bottom:none}.target-conditions-trait .group-collapse-toggle,.entity-selector-trait .group-collapse-toggle{display:flex;align-items:center;justify-content:center;width:20px;color:#6c757d}.target-conditions-trait .group-collapse-toggle i,.entity-selector-trait .group-collapse-toggle i{transition:transform .15s ease-in-out}.target-conditions-trait .group-name-wrapper,.entity-selector-trait .group-name-wrapper{flex:1;display:flex;align-items:center;gap:.5rem}.target-conditions-trait .group-name-input,.entity-selector-trait .group-name-input{flex:1;padding:.25rem .5rem;font-size:.875rem;font-weight:600;color:#212529;background:rgba(0,0,0,0);border:1px solid rgba(0,0,0,0);border-radius:.2rem;transition:all .15s ease-in-out}.target-conditions-trait .group-name-input:hover,.target-conditions-trait .group-name-input:focus,.entity-selector-trait .group-name-input:hover,.entity-selector-trait .group-name-input:focus{background:#fff;border-color:#dee2e6;outline:none}.target-conditions-trait .group-name-input::placeholder,.entity-selector-trait .group-name-input::placeholder{color:#6c757d;font-weight:500}.target-conditions-trait .group-count-badge,.entity-selector-trait .group-count-badge{display:inline-flex;align-items:center;justify-content:center;gap:.25rem;min-width:20px;height:20px;padding:0 .5rem;background:#25b9d7;color:#fff;font-size:.75rem;font-weight:600;border-radius:50rem;cursor:pointer;transition:all .15s ease-in-out;flex-shrink:0}.target-conditions-trait .group-count-badge:hover,.entity-selector-trait .group-count-badge:hover{transform:scale(1.05);box-shadow:0 2px 8px rgba(37,185,215,.4)}.target-conditions-trait .group-count-badge:focus,.entity-selector-trait .group-count-badge:focus{outline:none;box-shadow:0 0 0 2px rgba(37,185,215,.3),0 2px 8px rgba(37,185,215,.4)}.target-conditions-trait .group-count-badge.loading,.entity-selector-trait .group-count-badge.loading{cursor:wait}.target-conditions-trait .group-count-badge.loading i,.entity-selector-trait .group-count-badge.loading i{font-size:10px;animation:spin .6s linear infinite}.target-conditions-trait .group-count-badge.loading:hover,.entity-selector-trait .group-count-badge.loading:hover{transform:none;box-shadow:none}.target-conditions-trait .group-count-badge.inactive,.target-conditions-trait .group-count-badge.no-matches,.entity-selector-trait .group-count-badge.inactive,.entity-selector-trait .group-count-badge.no-matches{background:#94a3b8;cursor:default}.target-conditions-trait .group-count-badge.inactive:hover,.target-conditions-trait .group-count-badge.no-matches:hover,.entity-selector-trait .group-count-badge.inactive:hover,.entity-selector-trait .group-count-badge.no-matches:hover{transform:none;box-shadow:none}.target-conditions-trait .group-count-badge.popover-open,.entity-selector-trait .group-count-badge.popover-open{background:rgb(29.5119047619,147.5595238095,171.4880952381);box-shadow:0 2px 8px rgba(37,185,215,.4)}.target-conditions-trait .group-count-badge i,.entity-selector-trait .group-count-badge i{font-size:10px;line-height:1;opacity:.8}.target-conditions-trait .group-count-badge:hover i,.entity-selector-trait .group-count-badge:hover i{opacity:1}.target-conditions-trait .group-count-badge .preview-count,.entity-selector-trait .group-count-badge .preview-count{font-weight:700}.target-conditions-trait .btn-remove-group,.entity-selector-trait .btn-remove-group{padding:0;margin:0;background:none;border:none;cursor:pointer;font:inherit;color:inherit}.target-conditions-trait .btn-remove-group:focus,.entity-selector-trait .btn-remove-group:focus{outline:none}.target-conditions-trait .btn-remove-group,.entity-selector-trait .btn-remove-group{display:flex;align-items:center;justify-content:center;width:28px;height:28px;color:#6c757d;border-radius:.2rem;transition:all .15s ease-in-out}.target-conditions-trait .btn-remove-group:hover,.entity-selector-trait .btn-remove-group:hover{background:#f8d7da;color:#dc3545}.target-conditions-trait .group-include,.entity-selector-trait .group-include{margin-bottom:1rem;padding:.5rem;background:rgba(40,167,69,.03);border:1px solid rgba(40,167,69,.2);border-radius:.25rem}.target-conditions-trait .section-row,.entity-selector-trait .section-row{display:flex;flex-direction:column;gap:.5rem}.target-conditions-trait .method-selector-wrapper,.entity-selector-trait .method-selector-wrapper{display:flex;align-items:center;gap:.5rem}.target-conditions-trait .method-info-placeholder,.entity-selector-trait .method-info-placeholder{display:flex;align-items:center;min-width:20px}.target-conditions-trait .include-method-select,.target-conditions-trait .exclude-method-select,.entity-selector-trait .include-method-select,.entity-selector-trait .exclude-method-select{flex:1;width:100%;padding:.5rem 1rem;font-size:.875rem;line-height:1.5;color:#212529;background-color:#fff;border:1px solid #dee2e6;border-radius:.25rem;transition:border-color .15s ease-in-out,box-shadow .15s ease-in-out}.target-conditions-trait .include-method-select:focus,.target-conditions-trait .exclude-method-select:focus,.entity-selector-trait .include-method-select:focus,.entity-selector-trait .exclude-method-select:focus{border-color:#25b9d7;outline:0;box-shadow:0 0 0 .2rem rgba(37,185,215,.25)}.target-conditions-trait .include-method-select::placeholder,.target-conditions-trait .exclude-method-select::placeholder,.entity-selector-trait .include-method-select::placeholder,.entity-selector-trait .exclude-method-select::placeholder{color:#adb5bd}.target-conditions-trait .include-method-select,.target-conditions-trait .exclude-method-select,.entity-selector-trait .include-method-select,.entity-selector-trait .exclude-method-select{cursor:pointer}.target-conditions-trait .selector-locked .include-method-select,.entity-selector-trait .selector-locked .include-method-select{opacity:.7;cursor:not-allowed}.target-conditions-trait .lock-indicator,.entity-selector-trait .lock-indicator{display:inline-flex;align-items:center;justify-content:center;width:24px;height:24px;color:#ffc107;cursor:help}.target-conditions-trait .lock-indicator i,.entity-selector-trait .lock-indicator i{font-size:14px}.target-conditions-trait .lock-indicator .mpr-tooltip,.entity-selector-trait .lock-indicator .mpr-tooltip{display:none;position:absolute;bottom:calc(100% + 8px);left:50%;transform:translateX(-50%);padding:.25rem .5rem;background:#1e293b;color:#fff;font-size:.75rem;font-weight:400;white-space:nowrap;border-radius:.2rem;z-index:100}.target-conditions-trait .lock-indicator:hover .mpr-tooltip,.entity-selector-trait .lock-indicator:hover .mpr-tooltip{display:block}.target-conditions-trait .group-excludes,.entity-selector-trait .group-excludes{margin-top:1rem}.target-conditions-trait .except-separator,.entity-selector-trait .except-separator{display:flex;align-items:center;gap:.5rem;margin:0 0 .5rem 0}.target-conditions-trait .except-separator::before,.target-conditions-trait .except-separator::after,.entity-selector-trait .except-separator::before,.entity-selector-trait .except-separator::after{content:"";flex:1;height:1px;background:rgba(220,53,69,.3)}.target-conditions-trait .except-label,.entity-selector-trait .except-label{display:inline-flex;align-items:center;gap:.25rem;padding:.25rem .75rem;background:#f8d7da;color:#dc3545;font-size:.75rem;font-weight:600;border-radius:50rem;white-space:nowrap;flex-shrink:0}.target-conditions-trait .except-label i,.entity-selector-trait .except-label i{font-size:10px}.target-conditions-trait .exclude-rows-container,.entity-selector-trait .exclude-rows-container{display:flex;flex-direction:column;gap:.5rem}.target-conditions-trait .exclude-row,.entity-selector-trait .exclude-row{display:flex;flex-direction:column;padding:.5rem;background:rgba(220,53,69,.03);border:1px solid rgba(220,53,69,.15);border-radius:.25rem}.target-conditions-trait .exclude-row .value-picker,.entity-selector-trait .exclude-row .value-picker{width:100%;margin-top:.5rem}.target-conditions-trait .exclude-header-row,.entity-selector-trait .exclude-header-row{display:flex;align-items:center;justify-content:space-between;gap:.5rem;width:100%}.target-conditions-trait .exclude-header-row .method-selector-wrapper,.entity-selector-trait .exclude-header-row .method-selector-wrapper{flex:1}.target-conditions-trait .exclude-header-row .btn-remove-exclude-row,.entity-selector-trait .exclude-header-row .btn-remove-exclude-row{flex-shrink:0;margin-left:auto}.target-conditions-trait .btn-remove-exclude-row,.entity-selector-trait .btn-remove-exclude-row{padding:0;margin:0;background:none;border:none;cursor:pointer;font:inherit;color:inherit}.target-conditions-trait .btn-remove-exclude-row:focus,.entity-selector-trait .btn-remove-exclude-row:focus{outline:none}.target-conditions-trait .btn-remove-exclude-row,.entity-selector-trait .btn-remove-exclude-row{display:flex;align-items:center;justify-content:center;width:28px;height:28px;color:#6c757d;border-radius:.2rem;transition:all .15s ease-in-out}.target-conditions-trait .btn-remove-exclude-row:hover,.entity-selector-trait .btn-remove-exclude-row:hover{background:#f8d7da;color:#dc3545}.target-conditions-trait .btn-add-exclude,.target-conditions-trait .btn-add-another-exclude,.entity-selector-trait .btn-add-exclude,.entity-selector-trait .btn-add-another-exclude{padding:0;margin:0;background:none;border:none;cursor:pointer;font:inherit;color:inherit}.target-conditions-trait .btn-add-exclude:focus,.target-conditions-trait .btn-add-another-exclude:focus,.entity-selector-trait .btn-add-exclude:focus,.entity-selector-trait .btn-add-another-exclude:focus{outline:none}.target-conditions-trait .btn-add-exclude,.target-conditions-trait .btn-add-another-exclude,.entity-selector-trait .btn-add-exclude,.entity-selector-trait .btn-add-another-exclude{display:inline-flex;align-items:center;gap:.25rem;margin-top:.5rem;padding:.375rem .625rem;color:#dc3545;font-size:.75rem;font-weight:500;background:rgba(0,0,0,0);border:1px dashed rgba(220,53,69,.5);border-radius:.2rem;transition:all .15s ease-in-out}.target-conditions-trait .btn-add-exclude:hover,.target-conditions-trait .btn-add-another-exclude:hover,.entity-selector-trait .btn-add-exclude:hover,.entity-selector-trait .btn-add-another-exclude:hover{background:#f8d7da;border-color:#dc3545}.target-conditions-trait .btn-add-exclude i,.target-conditions-trait .btn-add-another-exclude i,.entity-selector-trait .btn-add-exclude i,.entity-selector-trait .btn-add-another-exclude i{font-size:10px}.target-conditions-trait .group-modifiers,.entity-selector-trait .group-modifiers{display:flex;flex-wrap:wrap;align-items:center;gap:1rem;padding:.5rem 1rem;margin:1rem -1rem -1rem;background:#f8fafc;border-top:1px solid #dee2e6;border-radius:0 0 .3rem .3rem}.target-conditions-trait .modifier-inline,.entity-selector-trait .modifier-inline{display:flex;align-items:center;gap:.375rem}.target-conditions-trait .group-modifier-limit,.entity-selector-trait .group-modifier-limit{width:50px;max-width:50px;height:26px;padding:0 .375rem;font-size:.75rem;text-align:center;border:1px solid #dee2e6;border-radius:.2rem}.target-conditions-trait .group-modifier-limit:focus,.entity-selector-trait .group-modifier-limit:focus{border-color:#25b9d7;outline:none}.target-conditions-trait .modifier-sort,.entity-selector-trait .modifier-sort{gap:0}.target-conditions-trait .modifier-sort .modifier-label,.entity-selector-trait .modifier-sort .modifier-label{margin-right:.375rem}.target-conditions-trait .modifier-sort .group-modifier-sort,.entity-selector-trait .modifier-sort .group-modifier-sort{height:26px;padding:0 .5rem;font-size:.75rem;border:1px solid #dee2e6;border-radius:.2rem 0 0 .2rem;border-right:none;cursor:pointer}.target-conditions-trait .modifier-sort .group-modifier-sort:focus,.entity-selector-trait .modifier-sort .group-modifier-sort:focus{border-color:#25b9d7;outline:none;position:relative;z-index:1}.target-conditions-trait .modifier-sort .btn-sort-dir,.entity-selector-trait .modifier-sort .btn-sort-dir{padding:0;margin:0;background:none;border:none;cursor:pointer;font:inherit;color:inherit}.target-conditions-trait .modifier-sort .btn-sort-dir:focus,.entity-selector-trait .modifier-sort .btn-sort-dir:focus{outline:none}.target-conditions-trait .modifier-sort .btn-sort-dir,.entity-selector-trait .modifier-sort .btn-sort-dir{display:flex;align-items:center;justify-content:center;width:26px;height:26px;color:#6c757d;background:#f1f5f9;border:1px solid #dee2e6;border-radius:0 .2rem .2rem 0;transition:all .15s ease-in-out}.target-conditions-trait .modifier-sort .btn-sort-dir:hover,.entity-selector-trait .modifier-sort .btn-sort-dir:hover{background:#e2e8f0;color:#495057}.target-conditions-trait .modifier-sort .btn-sort-dir i,.entity-selector-trait .modifier-sort .btn-sort-dir i{font-size:11px}.target-conditions-trait .group-modifier-sort,.entity-selector-trait .group-modifier-sort{height:26px;padding:0 .5rem;font-size:.75rem;border:1px solid #dee2e6;border-radius:.2rem;cursor:pointer}.target-conditions-trait .group-modifier-sort:focus,.entity-selector-trait .group-modifier-sort:focus{border-color:#25b9d7;outline:none}.target-conditions-trait .btn-sort-dir,.entity-selector-trait .btn-sort-dir{padding:0;margin:0;background:none;border:none;cursor:pointer;font:inherit;color:inherit}.target-conditions-trait .btn-sort-dir:focus,.entity-selector-trait .btn-sort-dir:focus{outline:none}.target-conditions-trait .btn-sort-dir,.entity-selector-trait .btn-sort-dir{display:flex;align-items:center;justify-content:center;width:26px;height:26px;color:#6c757d;border:1px solid #dee2e6;border-radius:.2rem;transition:all .15s ease-in-out}.target-conditions-trait .btn-sort-dir:hover,.entity-selector-trait .btn-sort-dir:hover{background:#f1f5f9;color:#495057}.target-conditions-trait .group-preview-badge,.entity-selector-trait .group-preview-badge{display:inline-flex;align-items:center;gap:.25rem;padding:.25rem .5rem;background:#f1f5f9;color:#6c757d;font-size:.75rem;font-weight:500;border-radius:50rem;transition:all .15s ease-in-out}.target-conditions-trait .group-preview-badge.clickable,.entity-selector-trait .group-preview-badge.clickable{cursor:pointer}.target-conditions-trait .group-preview-badge.clickable:hover,.entity-selector-trait .group-preview-badge.clickable:hover{background:rgba(37,185,215,.1);color:#25b9d7}.target-conditions-trait .group-separator,.entity-selector-trait .group-separator{display:flex;align-items:center;justify-content:center;padding:.5rem 0;color:#6c757d;font-size:.75rem;font-weight:600;text-transform:uppercase;letter-spacing:.1em}.target-conditions-trait .group-separator::before,.target-conditions-trait .group-separator::after,.entity-selector-trait .group-separator::before,.entity-selector-trait .group-separator::after{content:"";flex:1;height:1px;background:#dee2e6;margin:0 1rem}.target-conditions-trait .group-modifiers,.entity-selector-trait .group-modifiers{display:flex;flex-wrap:wrap;gap:1rem;padding-top:1rem;margin-top:1rem;border-top:1px solid #dee2e6}.target-conditions-trait .modifier-group,.entity-selector-trait .modifier-group{display:flex;align-items:center;gap:.5rem}.target-conditions-trait .modifier-label,.entity-selector-trait .modifier-label{font-size:.75rem;font-weight:500;color:#6c757d;white-space:nowrap}.target-conditions-trait .modifier-input,.entity-selector-trait .modifier-input{width:100%;padding:.5rem 1rem;font-size:.875rem;line-height:1.5;color:#212529;background-color:#fff;border:1px solid #dee2e6;border-radius:.25rem;transition:border-color .15s ease-in-out,box-shadow .15s ease-in-out}.target-conditions-trait .modifier-input:focus,.entity-selector-trait .modifier-input:focus{border-color:#25b9d7;outline:0;box-shadow:0 0 0 .2rem rgba(37,185,215,.25)}.target-conditions-trait .modifier-input::placeholder,.entity-selector-trait .modifier-input::placeholder{color:#adb5bd}.target-conditions-trait .modifier-input,.entity-selector-trait .modifier-input{width:80px;padding:.25rem .5rem;font-size:.75rem}.target-conditions-trait .modifier-select,.entity-selector-trait .modifier-select{width:100%;padding:.5rem 1rem;font-size:.875rem;line-height:1.5;color:#212529;background-color:#fff;border:1px solid #dee2e6;border-radius:.25rem;transition:border-color .15s ease-in-out,box-shadow .15s ease-in-out}.target-conditions-trait .modifier-select:focus,.entity-selector-trait .modifier-select:focus{border-color:#25b9d7;outline:0;box-shadow:0 0 0 .2rem rgba(37,185,215,.25)}.target-conditions-trait .modifier-select::placeholder,.entity-selector-trait .modifier-select::placeholder{color:#adb5bd}.target-conditions-trait .modifier-select,.entity-selector-trait .modifier-select{width:auto;padding:.25rem 1.5rem .25rem .5rem;font-size:.75rem;cursor:pointer;appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 20 20'%3E%3Cpath stroke='%236b7280' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' d='m6 8 4 4 4-4'/%3E%3C/svg%3E");background-position:right .25rem center;background-repeat:no-repeat;background-size:1.25em 1.25em}.target-conditions-trait .condition-match-count,.entity-selector-trait .condition-match-count{display:inline-flex;align-items:center;gap:.25rem;padding:.125rem .375rem;background:#f1f5f9;color:#6c757d;font-size:.75rem;font-weight:500;border-radius:50rem;cursor:pointer;transition:all .15s ease-in-out}.target-conditions-trait .condition-match-count:hover,.entity-selector-trait .condition-match-count:hover{background:#e2e8f0}.target-conditions-trait .condition-match-count.has-results,.entity-selector-trait .condition-match-count.has-results{background:rgba(37,185,215,.1);color:#25b9d7}.target-conditions-trait .condition-match-count i,.entity-selector-trait .condition-match-count i{font-size:10px}.target-conditions-trait .value-picker,.entity-selector-trait .value-picker{padding:.5rem 0}.target-conditions-trait .value-picker[style*="display: none"],.target-conditions-trait .value-picker[style*="display:none"],.entity-selector-trait .value-picker[style*="display: none"],.entity-selector-trait .value-picker[style*="display:none"]{padding:0}.target-conditions-trait .entity-search-box,.entity-selector-trait .entity-search-box{position:relative;display:flex;align-items:center;gap:.5rem;padding:.25rem;background:#fff;border:1px solid #dee2e6;border-radius:.25rem;transition:all .15s ease-in-out}.target-conditions-trait .entity-search-box:focus-within,.entity-selector-trait .entity-search-box:focus-within{border-color:#25b9d7;box-shadow:0 0 0 2px rgba(37,185,215,.1)}.target-conditions-trait .chips-wrapper+.entity-search-box,.entity-selector-trait .chips-wrapper+.entity-search-box{margin-top:1rem}.target-conditions-trait .entity-search-icon,.entity-selector-trait .entity-search-icon{color:#6c757d;font-size:14px;flex-shrink:0;margin-left:.25rem}.target-conditions-trait input.entity-search-input,.target-conditions-trait input.entity-search-input[type=text],.entity-selector-trait input.entity-search-input,.entity-selector-trait input.entity-search-input[type=text]{padding:0;margin:0;background:none;border:none;font:inherit;color:inherit}.target-conditions-trait input.entity-search-input:focus,.target-conditions-trait input.entity-search-input[type=text]:focus,.entity-selector-trait input.entity-search-input:focus,.entity-selector-trait input.entity-search-input[type=text]:focus{outline:none}.target-conditions-trait input.entity-search-input,.target-conditions-trait input.entity-search-input[type=text],.entity-selector-trait input.entity-search-input,.entity-selector-trait input.entity-search-input[type=text]{flex:1;min-width:0;width:auto !important;max-width:none !important;padding:.375rem;font-size:.875rem;color:#212529;border:none !important;background:rgba(0,0,0,0) !important;box-shadow:none !important}.target-conditions-trait input.entity-search-input::placeholder,.target-conditions-trait input.entity-search-input[type=text]::placeholder,.entity-selector-trait input.entity-search-input::placeholder,.entity-selector-trait input.entity-search-input[type=text]::placeholder{color:#6c757d}.target-conditions-trait input.entity-search-input:focus,.target-conditions-trait input.entity-search-input[type=text]:focus,.entity-selector-trait input.entity-search-input:focus,.entity-selector-trait input.entity-search-input[type=text]:focus{border:none !important;box-shadow:none !important;outline:none}.target-conditions-trait .search-loading,.entity-selector-trait .search-loading{display:flex;align-items:center;justify-content:center;color:#25b9d7}.target-conditions-trait .search-loading i,.entity-selector-trait .search-loading i{animation:spin .6s linear infinite}.target-conditions-trait .btn-browse-tree,.entity-selector-trait .btn-browse-tree{padding:0;margin:0;background:none;border:none;cursor:pointer;font:inherit;color:inherit}.target-conditions-trait .btn-browse-tree:focus,.entity-selector-trait .btn-browse-tree:focus{outline:none}.target-conditions-trait .btn-browse-tree,.entity-selector-trait .btn-browse-tree{display:flex;align-items:center;justify-content:center;width:32px;height:32px;margin-left:auto;color:#25b9d7;background:rgba(37,185,215,.1);border-radius:.2rem;flex-shrink:0;transition:all .15s ease-in-out}.target-conditions-trait .btn-browse-tree:hover,.entity-selector-trait .btn-browse-tree:hover{background:#25b9d7;color:#fff}.target-conditions-trait .btn-browse-tree i,.entity-selector-trait .btn-browse-tree i{font-size:14px}.target-conditions-trait .numeric-range-box,.target-conditions-trait .multi-range-input-row,.entity-selector-trait .numeric-range-box,.entity-selector-trait .multi-range-input-row{display:flex;align-items:center;gap:.25rem}.target-conditions-trait .range-min-input,.target-conditions-trait .range-max-input,.entity-selector-trait .range-min-input,.entity-selector-trait .range-max-input{width:100%;padding:.5rem 1rem;font-size:.875rem;line-height:1.5;color:#212529;background-color:#fff;border:1px solid #dee2e6;border-radius:.25rem;transition:border-color .15s ease-in-out,box-shadow .15s ease-in-out}.target-conditions-trait .range-min-input:focus,.target-conditions-trait .range-max-input:focus,.entity-selector-trait .range-min-input:focus,.entity-selector-trait .range-max-input:focus{border-color:#25b9d7;outline:0;box-shadow:0 0 0 .2rem rgba(37,185,215,.25)}.target-conditions-trait .range-min-input::placeholder,.target-conditions-trait .range-max-input::placeholder,.entity-selector-trait .range-min-input::placeholder,.entity-selector-trait .range-max-input::placeholder{color:#adb5bd}.target-conditions-trait .range-min-input,.target-conditions-trait .range-max-input,.entity-selector-trait .range-min-input,.entity-selector-trait .range-max-input{width:100px;padding:.5rem;text-align:center;font-size:.875rem}.target-conditions-trait .range-min-input::-webkit-inner-spin-button,.target-conditions-trait .range-min-input::-webkit-outer-spin-button,.target-conditions-trait .range-max-input::-webkit-inner-spin-button,.target-conditions-trait .range-max-input::-webkit-outer-spin-button,.entity-selector-trait .range-min-input::-webkit-inner-spin-button,.entity-selector-trait .range-min-input::-webkit-outer-spin-button,.entity-selector-trait .range-max-input::-webkit-inner-spin-button,.entity-selector-trait .range-max-input::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.target-conditions-trait .range-min-input,.target-conditions-trait .range-max-input,.entity-selector-trait .range-min-input,.entity-selector-trait .range-max-input{-moz-appearance:textfield}.target-conditions-trait .range-separator,.entity-selector-trait .range-separator{color:#6c757d;font-size:.875rem;font-weight:500}.target-conditions-trait .btn-add-range,.entity-selector-trait .btn-add-range{padding:0;margin:0;background:none;border:none;cursor:pointer;font:inherit;color:inherit}.target-conditions-trait .btn-add-range:focus,.entity-selector-trait .btn-add-range:focus{outline:none}.target-conditions-trait .btn-add-range,.entity-selector-trait .btn-add-range{display:flex;align-items:center;justify-content:center;width:32px;height:32px;color:#fff;background:#25b9d7;border-radius:.25rem;transition:all .15s ease-in-out}.target-conditions-trait .btn-add-range:hover,.entity-selector-trait .btn-add-range:hover{background:#1a9ab7}.target-conditions-trait .btn-add-range i,.entity-selector-trait .btn-add-range i{font-size:12px}.target-conditions-trait .multi-range-container,.entity-selector-trait .multi-range-container{display:flex;flex-direction:column;gap:.5rem}.target-conditions-trait .date-range-box,.entity-selector-trait .date-range-box{display:flex;align-items:center;gap:.25rem}.target-conditions-trait .date-from-input,.target-conditions-trait .date-to-input,.entity-selector-trait .date-from-input,.entity-selector-trait .date-to-input{width:100%;padding:.5rem 1rem;font-size:.875rem;line-height:1.5;color:#212529;background-color:#fff;border:1px solid #dee2e6;border-radius:.25rem;transition:border-color .15s ease-in-out,box-shadow .15s ease-in-out}.target-conditions-trait .date-from-input:focus,.target-conditions-trait .date-to-input:focus,.entity-selector-trait .date-from-input:focus,.entity-selector-trait .date-to-input:focus{border-color:#25b9d7;outline:0;box-shadow:0 0 0 .2rem rgba(37,185,215,.25)}.target-conditions-trait .date-from-input::placeholder,.target-conditions-trait .date-to-input::placeholder,.entity-selector-trait .date-from-input::placeholder,.entity-selector-trait .date-to-input::placeholder{color:#adb5bd}.target-conditions-trait .date-from-input,.target-conditions-trait .date-to-input,.entity-selector-trait .date-from-input,.entity-selector-trait .date-to-input{width:140px;padding:.5rem;font-size:.875rem}.target-conditions-trait .multi-select-tiles,.entity-selector-trait .multi-select-tiles{display:flex;flex-wrap:wrap;gap:.25rem}.target-conditions-trait .tile-option,.entity-selector-trait .tile-option{padding:0;margin:0;background:none;border:none;cursor:pointer;font:inherit;color:inherit}.target-conditions-trait .tile-option:focus,.entity-selector-trait .tile-option:focus{outline:none}.target-conditions-trait .tile-option,.entity-selector-trait .tile-option{display:inline-flex;align-items:center;gap:.25rem;padding:.375rem .625rem;color:#495057;background:#f1f5f9;border:1px solid rgba(0,0,0,0);border-radius:.2rem;font-size:.75rem;font-weight:500;cursor:pointer;transition:all .15s ease-in-out}.target-conditions-trait .tile-option:hover,.entity-selector-trait .tile-option:hover{background:#e2e8f0}.target-conditions-trait .tile-option.selected,.entity-selector-trait .tile-option.selected{color:#25b9d7;background:rgba(37,185,215,.1);border-color:#25b9d7}.target-conditions-trait .tile-option i,.entity-selector-trait .tile-option i{font-size:12px}.target-conditions-trait .tile-label,.entity-selector-trait .tile-label{white-space:nowrap}.target-conditions-trait .select-input-box,.entity-selector-trait .select-input-box{display:inline-block}.target-conditions-trait .select-value-input,.entity-selector-trait .select-value-input{width:100%;padding:.5rem 1rem;font-size:.875rem;line-height:1.5;color:#212529;background-color:#fff;border:1px solid #dee2e6;border-radius:.25rem;transition:border-color .15s ease-in-out,box-shadow .15s ease-in-out}.target-conditions-trait .select-value-input:focus,.entity-selector-trait .select-value-input:focus{border-color:#25b9d7;outline:0;box-shadow:0 0 0 .2rem rgba(37,185,215,.25)}.target-conditions-trait .select-value-input::placeholder,.entity-selector-trait .select-value-input::placeholder{color:#adb5bd}.target-conditions-trait .select-value-input,.entity-selector-trait .select-value-input{padding:.5rem 1rem;font-size:.875rem;min-width:150px}.target-conditions-trait .boolean-input-box,.entity-selector-trait .boolean-input-box{display:inline-flex;align-items:center;padding:.5rem 1rem;background:#d4edda;color:#1e7e34;border-radius:.25rem;font-size:.875rem;font-weight:500}.target-conditions-trait .boolean-label,.entity-selector-trait .boolean-label{display:flex;align-items:center;gap:.25rem}.target-conditions-trait .boolean-label::before,.entity-selector-trait .boolean-label::before{content:"✓";font-weight:bold}.target-conditions-trait .condition-match-count,.entity-selector-trait .condition-match-count{display:inline-flex;align-items:center;justify-content:center;gap:.25rem;min-width:20px;height:20px;padding:0 .5rem;background:#25b9d7;color:#fff;font-size:.75rem;font-weight:600;border-radius:50rem;cursor:pointer;transition:all .15s ease-in-out;flex-shrink:0}.target-conditions-trait .condition-match-count:hover,.entity-selector-trait .condition-match-count:hover{transform:scale(1.05);box-shadow:0 2px 8px rgba(37,185,215,.4)}.target-conditions-trait .condition-match-count:focus,.entity-selector-trait .condition-match-count:focus{outline:none;box-shadow:0 0 0 2px rgba(37,185,215,.3),0 2px 8px rgba(37,185,215,.4)}.target-conditions-trait .condition-match-count.loading,.entity-selector-trait .condition-match-count.loading{cursor:wait}.target-conditions-trait .condition-match-count.loading i,.entity-selector-trait .condition-match-count.loading i{font-size:10px;animation:spin .6s linear infinite}.target-conditions-trait .condition-match-count.loading:hover,.entity-selector-trait .condition-match-count.loading:hover{transform:none;box-shadow:none}.target-conditions-trait .condition-match-count.inactive,.target-conditions-trait .condition-match-count.no-matches,.entity-selector-trait .condition-match-count.inactive,.entity-selector-trait .condition-match-count.no-matches{background:#94a3b8;cursor:default}.target-conditions-trait .condition-match-count.inactive:hover,.target-conditions-trait .condition-match-count.no-matches:hover,.entity-selector-trait .condition-match-count.inactive:hover,.entity-selector-trait .condition-match-count.no-matches:hover{transform:none;box-shadow:none}.target-conditions-trait .condition-match-count.popover-open,.entity-selector-trait .condition-match-count.popover-open{background:rgb(29.5119047619,147.5595238095,171.4880952381);box-shadow:0 2px 8px rgba(37,185,215,.4)}.target-conditions-trait .condition-match-count i,.entity-selector-trait .condition-match-count i{font-size:10px;line-height:1;opacity:.8}.target-conditions-trait .condition-match-count:hover i,.entity-selector-trait .condition-match-count:hover i{opacity:1}.target-conditions-trait .condition-match-count .preview-count,.entity-selector-trait .condition-match-count .preview-count{font-weight:700}.target-conditions-trait .condition-match-count,.entity-selector-trait .condition-match-count{margin-left:.5rem}.mpr-modal-backdrop{position:fixed;top:0;left:0;right:0;bottom:0;background:rgba(0,0,0,.5);z-index:1050;opacity:0;transition:opacity .2s ease-in-out}.mpr-modal-backdrop.show{opacity:1}.mpr-modal{position:fixed;top:50%;left:50%;transform:translate(-50%, -50%) scale(0.95);z-index:1051;width:90%;max-width:600px;max-height:90vh;background:#fff;border-radius:.5rem;box-shadow:0 1.5rem 4rem rgba(0,0,0,.2);opacity:0;transition:all .2s ease-in-out;overflow:hidden;display:flex;flex-direction:column}.mpr-modal.show{opacity:1;transform:translate(-50%, -50%) scale(1)}.mpr-modal.modal-sm{max-width:400px}.mpr-modal.modal-lg{max-width:800px}.mpr-modal.modal-xl{max-width:1000px}.mpr-modal.modal-fullscreen{width:95%;max-width:none;height:90vh;max-height:none}.mpr-modal-header{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:1rem 1.5rem;background:#f8f9fa;border-bottom:1px solid #dee2e6;flex-shrink:0}.mpr-modal-title{font-size:1rem;font-weight:600;color:#212529;margin:0}.mpr-modal-close{padding:0;margin:0;background:none;border:none;cursor:pointer;font:inherit;color:inherit}.mpr-modal-close:focus{outline:none}.mpr-modal-close{display:flex;align-items:center;justify-content:center;width:32px;height:32px;color:#6c757d;border-radius:.25rem;transition:all .15s ease-in-out}.mpr-modal-close:hover{background:#e2e8f0;color:#495057}.mpr-modal-close i{font-size:1.125rem}.mpr-modal-body{flex:1;overflow-y:auto;padding:1.5rem}.mpr-modal-body::-webkit-scrollbar{width:6px;height:6px}.mpr-modal-body::-webkit-scrollbar-track{background:#f8f9fa;border-radius:3px}.mpr-modal-body::-webkit-scrollbar-thumb{background:#dee2e6;border-radius:3px}.mpr-modal-body::-webkit-scrollbar-thumb:hover{background:#ced4da}.mpr-modal-footer{display:flex;align-items:center;justify-content:flex-end;gap:.5rem;padding:1rem 1.5rem;background:#f8f9fa;border-top:1px solid #dee2e6;flex-shrink:0}.mpr-modal-btn{padding:0;margin:0;background:none;border:none;cursor:pointer;font:inherit;color:inherit}.mpr-modal-btn:focus{outline:none}.mpr-modal-btn{display:inline-flex;align-items:center;justify-content:center;gap:.25rem;padding:.5rem 1rem;font-size:.875rem;font-weight:500;border-radius:.25rem;transition:all .15s ease-in-out}.mpr-modal-btn.btn-secondary{color:#495057;background:#f1f5f9}.mpr-modal-btn.btn-secondary:hover{background:#e2e8f0}.mpr-modal-btn.btn-primary{color:#fff;background:#25b9d7}.mpr-modal-btn.btn-primary:hover{background:#1a9ab7}.mpr-modal-btn.btn-danger{color:#fff;background:#dc3545}.mpr-modal-btn.btn-danger:hover{background:rgb(189.2151898734,32.7848101266,47.7721518987)}.mpr-modal-btn:disabled{opacity:.5;cursor:not-allowed}.popover-header{display:flex;align-items:center;justify-content:space-between;gap:.5rem;padding:.5rem 1rem;background:#f8f9fa;border-bottom:1px solid #dee2e6;border-radius:.3rem .3rem 0 0}.popover-title{font-size:.875rem;font-weight:600;color:#212529}.popover-close{padding:0;margin:0;background:none;border:none;cursor:pointer;font:inherit;color:inherit}.popover-close:focus{outline:none}.popover-close{display:flex;align-items:center;justify-content:center;width:24px;height:24px;color:#6c757d;border-radius:.2rem;transition:all .15s ease-in-out}.popover-close:hover{background:#e2e8f0;color:#495057}.popover-body{max-height:300px;overflow-y:auto;padding:.5rem}.popover-body::-webkit-scrollbar{width:6px;height:6px}.popover-body::-webkit-scrollbar-track{background:#f8f9fa;border-radius:3px}.popover-body::-webkit-scrollbar-thumb{background:#dee2e6;border-radius:3px}.popover-body::-webkit-scrollbar-thumb:hover{background:#ced4da}.popover-footer{display:flex;align-items:center;justify-content:space-between;gap:.5rem;padding:.5rem 1rem;background:#f8f9fa;border-top:1px solid #dee2e6;border-radius:0 0 .3rem .3rem}.popover-info{font-size:.75rem;color:#6c757d}.popover-load-more{padding:0;margin:0;background:none;border:none;cursor:pointer;font:inherit;color:inherit}.popover-load-more:focus{outline:none}.popover-load-more{display:inline-flex;align-items:center;gap:.25rem;padding:.25rem .5rem;font-size:.75rem;font-weight:500;color:#25b9d7;border-radius:.2rem;transition:all .15s ease-in-out}.popover-load-more:hover{background:rgba(37,185,215,.1)}.popover-arrow{position:absolute;width:12px;height:12px;background:#fff;border:1px solid #dee2e6;transform:rotate(45deg)}.popover-arrow.arrow-top{top:-7px;left:50%;margin-left:-6px;border-right:none;border-bottom:none}.popover-arrow.arrow-bottom{bottom:-7px;left:50%;margin-left:-6px;border-left:none;border-top:none}.target-preview-popover,.target-list-preview-popover{position:absolute;z-index:10000;min-width:320px;max-width:480px;background:#fff;border:1px solid #dee2e6;border-radius:.3rem;box-shadow:0 1rem 3rem rgba(0,0,0,.175);overflow:hidden}.target-preview-popover::before,.target-list-preview-popover::before{content:"";position:absolute;top:-8px;left:50%;transform:translateX(-50%);border-left:8px solid rgba(0,0,0,0);border-right:8px solid rgba(0,0,0,0);border-bottom:8px solid #dee2e6}.target-preview-popover::after,.target-list-preview-popover::after{content:"";position:absolute;top:-6px;left:50%;transform:translateX(-50%);border-left:6px solid rgba(0,0,0,0);border-right:6px solid rgba(0,0,0,0);border-bottom:6px solid #fff}.target-preview-popover.position-right::before,.target-preview-popover.position-right::after,.target-list-preview-popover.position-right::before,.target-list-preview-popover.position-right::after{left:20px;transform:none}.target-preview-popover.position-left::before,.target-preview-popover.position-left::after,.target-list-preview-popover.position-left::before,.target-list-preview-popover.position-left::after{left:auto;right:20px;transform:none}.preview-header{display:flex;align-items:center;justify-content:space-between;padding:.5rem 1rem;background:#f8f9fa;border-bottom:1px solid #dee2e6}.preview-header .preview-title{font-size:.875rem;font-weight:600;color:#212529}.preview-header .preview-close{padding:0;margin:0;background:none;border:none;cursor:pointer;font:inherit;color:inherit}.preview-header .preview-close:focus{outline:none}.preview-header .preview-close{display:flex;align-items:center;justify-content:center;width:24px;height:24px;color:#6c757d;border-radius:.2rem;transition:all .15s ease-in-out}.preview-header .preview-close:hover{background:#e2e8f0;color:#212529}.preview-tabs{display:flex;flex-wrap:wrap;gap:0;padding:0;background:#f8fafc;border-bottom:1px solid #dee2e6}.preview-tab{display:flex;align-items:center;gap:.375rem;padding:.5rem .75rem;background:rgba(0,0,0,0);border:0;border-bottom:2px solid rgba(0,0,0,0);margin-bottom:-1px;color:#6c757d;font-size:.75rem;font-weight:500;cursor:pointer;transition:all .15s ease-in-out;white-space:nowrap}.preview-tab:hover{background:#f1f5f9;color:#495057}.preview-tab.active{background:#fff;border-bottom-color:#25b9d7;color:#25b9d7}.preview-tab i{font-size:12px}.preview-filter{display:flex;align-items:center;gap:.5rem;padding:.5rem 1rem;background:#fff;border-bottom:1px solid #dee2e6}.preview-filter i{color:#6c757d;font-size:12px}.preview-filter .preview-filter-input{all:unset;flex:1;padding:.25rem 0;font-size:.75rem;color:#212529;box-sizing:border-box}.preview-filter .preview-filter-input::placeholder{color:#6c757d}.preview-contents{max-height:350px;overflow:hidden}.preview-content{display:none;max-height:350px;overflow-y:auto}.preview-content::-webkit-scrollbar{width:6px;height:6px}.preview-content::-webkit-scrollbar-track{background:#f8f9fa;border-radius:3px}.preview-content::-webkit-scrollbar-thumb{background:#dee2e6;border-radius:3px}.preview-content::-webkit-scrollbar-thumb:hover{background:#ced4da}.preview-content.active{display:block}.preview-items{display:flex;flex-direction:column;padding:.25rem .5rem}.preview-item{display:flex;align-items:center;gap:.5rem;padding:.5rem;background:#fff;border-radius:.2rem;transition:background .15s ease-in-out}.preview-item:hover{background:#e9ecef}.preview-item[data-id]{cursor:pointer}.preview-item-image{flex-shrink:0;width:32px;height:32px;object-fit:cover;border-radius:.2rem;background:#f1f5f9}.preview-item-no-image{display:flex;align-items:center;justify-content:center;flex-shrink:0;width:32px;height:32px;background:#f1f5f9;color:#6c757d;border-radius:.2rem;font-size:.875rem}.preview-item-info{flex:1;min-width:0;display:flex;flex-direction:column;gap:.125rem}.preview-item-name{font-size:.875rem;font-weight:500;color:#212529;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.preview-item-ref,.preview-item-meta{font-size:.75rem;color:#6c757d;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.preview-item-price{flex-shrink:0;padding:.25rem .5rem;font-size:.75rem;font-weight:600;color:#25b9d7;background:rgba(37,185,215,.1);border-radius:.2rem}.preview-footer{padding:.5rem 1rem;background:#f8fafc;border-top:1px solid #dee2e6}.load-more-controls{display:flex;align-items:center;justify-content:center;gap:.5rem;font-size:.75rem;color:#6c757d}.load-more-controls .load-more-label{white-space:nowrap}.load-more-controls .load-more-select{appearance:none;padding:.25rem 1.75rem .25rem .5rem;border:1px solid #dee2e6;border-radius:.2rem;background:#fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='8' height='8' viewBox='0 0 8 8'%3E%3Cpath fill='%23666' d='M0 2l4 4 4-4z'/%3E%3C/svg%3E") no-repeat right .5rem center;background-size:8px;font-size:.75rem;font-weight:500;color:#25b9d7;cursor:pointer;transition:all .15s ease-in-out;height:auto;min-height:0;line-height:1.3}.load-more-controls .load-more-select:hover{border-color:#25b9d7;background-color:rgba(37,185,215,.1)}.load-more-controls .load-more-select:focus{outline:none;border-color:#25b9d7;box-shadow:0 0 0 2px rgba(37,185,215,.1)}.load-more-controls .load-more-of{white-space:nowrap}.load-more-controls .remaining-count{font-weight:600;color:#495057}.load-more-controls .btn-load-more{display:flex;align-items:center;justify-content:center;padding:.25rem;margin:0;border:none;color:#25b9d7;background:rgba(37,185,215,.1);border-radius:.2rem;cursor:pointer;transition:all .15s ease-in-out;font:inherit}.load-more-controls .btn-load-more i{font-size:14px}.load-more-controls .btn-load-more:hover{background:rgba(37,185,215,.2)}.load-more-controls .btn-load-more.loading{cursor:wait}.load-more-controls .btn-load-more.loading i{animation:spin .6s linear infinite}.preview-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.5rem;padding:2rem;text-align:center;color:#6c757d}.preview-empty i{font-size:2rem;opacity:.5}.preview-empty p{margin:0;font-size:.875rem}.preview-loading{display:flex;align-items:center;justify-content:center;padding:2rem;color:#6c757d}.preview-loading i{font-size:20px;color:#25b9d7;animation:spin .6s linear infinite}.total-preview-popover{min-width:240px;max-width:320px}.total-preview-popover .preview-popover-header{display:flex;align-items:center;justify-content:space-between;padding:.5rem 1rem;background:#f8f9fa;border-bottom:1px solid #dee2e6}.total-preview-popover .preview-popover-header .preview-popover-title{font-weight:600;color:#212529;font-size:.875rem}.total-preview-popover .preview-popover-header .preview-popover-count{font-size:.75rem;color:#6c757d}.total-preview-popover .preview-popover-body{padding:.25rem 0}.total-preview-popover .total-summary-list{list-style:none;margin:0;padding:0}.total-preview-popover .total-summary-item{display:flex;align-items:center;gap:.5rem;padding:.5rem 1rem;cursor:pointer;transition:background-color .15s ease}.total-preview-popover .total-summary-item:hover{background:#f8fafc}.total-preview-popover .total-summary-item i{width:18px;text-align:center;color:#6c757d;font-size:14px}.total-preview-popover .total-summary-item .summary-item-label{flex:1;font-size:.875rem;color:#212529}.total-preview-popover .total-summary-item .summary-item-count{font-size:.875rem;font-weight:600;color:#25b9d7;background:rgba(37,185,215,.1);padding:2px 8px;border-radius:.2rem}.trait-total-count{cursor:pointer;transition:all .15s ease}.trait-total-count:hover{opacity:.8}.trait-total-count.popover-open{opacity:.9}.schedule-conditions-trait{background:#fff;border:1px solid #dee2e6;border-radius:.3rem}.schedule-header{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.875rem 1rem;background:#f8f9fa;border-bottom:1px solid #dee2e6;border-radius:.3rem .3rem 0 0;cursor:pointer;user-select:none;transition:background-color .15s ease-in-out}.schedule-header:hover{background:#e9ecef}.schedule-title{display:flex;align-items:center;gap:.75rem;font-size:.875rem;font-weight:600;color:#212529}.schedule-title i{color:#6c757d}.schedule-body{padding:1rem}.schedule-section{margin-bottom:1.5rem}.schedule-section:last-child{margin-bottom:0}.schedule-section-title{display:flex;align-items:center;gap:.5rem;margin-bottom:.5rem;font-size:.875rem;font-weight:600;color:#212529}.schedule-section-title i{color:#6c757d}.schedule-section-description{margin-bottom:1rem;font-size:.75rem;color:#6c757d}.datetime-range{display:flex;flex-wrap:wrap;gap:1rem}.datetime-field{flex:1;min-width:200px}.datetime-label{display:block;margin-bottom:.25rem;font-size:.75rem;font-weight:500;color:#495057}.datetime-input{width:100%;padding:.5rem 1rem;font-size:.875rem;line-height:1.5;color:#212529;background-color:#fff;border:1px solid #dee2e6;border-radius:.25rem;transition:border-color .15s ease-in-out,box-shadow .15s ease-in-out}.datetime-input:focus{border-color:#25b9d7;outline:0;box-shadow:0 0 0 .2rem rgba(37,185,215,.25)}.datetime-input::placeholder{color:#adb5bd}.weekly-schedule{display:flex;flex-direction:column;gap:.5rem}.day-row{display:flex;align-items:center;gap:1rem;padding:.5rem;background:#f8fafc;border-radius:.25rem}.day-row.disabled{opacity:.5}.day-toggle{display:flex;align-items:center;gap:.5rem;min-width:100px}.day-checkbox{width:18px;height:18px;cursor:pointer}.day-name{font-size:.875rem;font-weight:500;color:#212529}.timeline-slider{flex:1;position:relative;height:24px;background:#e2e8f0;border-radius:50rem;cursor:pointer}.timeline-fill{position:absolute;top:0;height:100%;background:#25b9d7;border-radius:50rem;transition:all .15s ease-in-out}.timeline-handle{position:absolute;top:50%;width:16px;height:16px;background:#fff;border:2px solid #25b9d7;border-radius:50%;transform:translate(-50%, -50%);cursor:grab;box-shadow:0 .125rem .25rem rgba(0,0,0,.075);transition:box-shadow .15s ease-in-out}.timeline-handle:hover{box-shadow:0 .5rem 1rem rgba(0,0,0,.15)}.timeline-handle:active{cursor:grabbing}.timeline-handle.handle-start{z-index:2}.timeline-handle.handle-end{z-index:1}.day-times{display:flex;align-items:center;gap:.25rem;min-width:120px;font-size:.75rem;font-family:monospace;color:#495057}.time-separator{color:#6c757d}.holiday-section{padding:1rem;background:#f8fafc;border-radius:.25rem}.holiday-toggle{display:flex;align-items:center;gap:.5rem;margin-bottom:1rem}.holiday-checkbox{width:18px;height:18px;cursor:pointer}.holiday-label{font-size:.875rem;font-weight:500;color:#212529}.holiday-countries{display:flex;flex-wrap:wrap;gap:.25rem}.holiday-country-chip{display:inline-flex;align-items:center;gap:.25rem;padding:.25rem .5rem;font-size:.75rem;font-weight:500;background:#e9ecef;color:#495057;border-radius:50rem}.holiday-country-chip .chip-remove{padding:0;margin:0;background:none;border:none;cursor:pointer;font:inherit;color:inherit}.holiday-country-chip .chip-remove:focus{outline:none}.holiday-country-chip .chip-remove{display:flex;align-items:center;justify-content:center;width:14px;height:14px;font-size:10px;color:#6c757d;border-radius:50%}.holiday-country-chip .chip-remove:hover{background:rgba(0,0,0,.1);color:#dc3545}.holiday-country-chip{cursor:pointer}.holiday-country-chip.selected{background:rgba(37,185,215,.1);color:#25b9d7}.server-time{display:flex;align-items:center;gap:.5rem;padding:.5rem 1rem;background:#d1ecf1;border-radius:.25rem;font-size:.75rem;color:#17a2b8}.server-time i{font-size:.875rem}.server-time .time-value{font-family:monospace;font-weight:600}.schedule-summary{display:flex;flex-direction:column;gap:.25rem;padding:1rem;background:#f8fafc;border-radius:.25rem;font-size:.875rem;color:#495057}.schedule-summary .summary-item{display:flex;align-items:center;gap:.5rem}.schedule-summary .summary-item i{color:#28a745;font-size:.875rem}.schedule-summary .summary-item.inactive i{color:#6c757d}.schedule-conditions-trait.collapsed .schedule-body{display:none}.schedule-conditions-trait.collapsed .schedule-header{border-radius:.3rem}.target-conditions-trait .target-tips-box,.entity-selector-trait .target-tips-box{margin:1.5rem 1rem 1rem;border:1px solid #dee2e6;border-radius:.3rem;overflow:hidden;background:linear-gradient(135deg, #f8fafc 0%, #f1f5f9 100%)}.target-conditions-trait .tips-header,.entity-selector-trait .tips-header{display:flex;align-items:center;gap:.625rem;padding:1rem 1.5rem;cursor:pointer;user-select:none;transition:background-color .15s ease-in-out}.target-conditions-trait .tips-header:hover,.entity-selector-trait .tips-header:hover{background:rgba(0,0,0,.02)}.target-conditions-trait .tips-header>i:first-child,.entity-selector-trait .tips-header>i:first-child{font-size:1rem;color:#ffc107}.target-conditions-trait .tips-header>span,.entity-selector-trait .tips-header>span{flex:1;font-size:13px;font-weight:600;color:#475569}.target-conditions-trait .tips-toggle,.entity-selector-trait .tips-toggle{font-size:.75rem;color:#94a3b8;transition:transform .2s}.target-conditions-trait .target-tips-box.expanded .tips-toggle,.entity-selector-trait .target-tips-box.expanded .tips-toggle{transform:rotate(180deg)}.target-conditions-trait .target-tips-box.expanded .tips-content,.entity-selector-trait .target-tips-box.expanded .tips-content{display:block}.target-conditions-trait .tips-content,.entity-selector-trait .tips-content{display:none;padding:0 1.5rem 1.5rem}.target-conditions-trait .tips-grid,.entity-selector-trait .tips-grid{display:grid;gap:1rem;grid-template-columns:repeat(auto-fit, minmax(280px, 1fr))}.target-conditions-trait .tip-item,.entity-selector-trait .tip-item{display:flex;gap:1rem;padding:1rem;background:#fff;border-radius:.25rem;border:1px solid #dee2e6}.target-conditions-trait .tip-icon,.entity-selector-trait .tip-icon{flex-shrink:0;width:2rem;height:2rem;display:flex;align-items:center;justify-content:center;background:rgba(37,185,215,.1);border-radius:.25rem;color:#25b9d7;font-size:.875rem}.target-conditions-trait .tip-text,.entity-selector-trait .tip-text{flex:1;min-width:0}.target-conditions-trait .tip-text strong,.entity-selector-trait .tip-text strong{display:block;font-size:.75rem;font-weight:600;color:#334155;margin-bottom:.25rem}.target-conditions-trait .tip-text p,.entity-selector-trait .tip-text p{font-size:11px;color:#6c757d;line-height:1.625;margin:0}.target-conditions-trait .tips-footer,.entity-selector-trait .tips-footer{margin-top:1rem;padding:.625rem 1rem;background:#fff;border-radius:.25rem;border:1px dashed #dee2e6;font-size:11px;color:#6c757d;line-height:1.625}.target-conditions-trait .tips-footer i,.entity-selector-trait .tips-footer i{color:#25b9d7;margin-right:.25rem}.condition-trait{background:#fff;border:1px solid #dee2e6;border-radius:.3rem;margin-bottom:1.5rem}.condition-trait:last-child{margin-bottom:0}.condition-trait.collapsed .condition-trait-header{border-bottom-color:rgba(0,0,0,0);border-radius:.3rem}.condition-trait.collapsed .collapse-icon{transform:rotate(180deg)}.condition-trait-header{display:flex;align-items:center;justify-content:space-between;gap:1.5rem;flex-wrap:wrap;padding:.875rem 1.5rem;background:#f8fafc;border-bottom:1px solid #dee2e6;border-radius:.3rem .3rem 0 0;cursor:pointer;transition:background-color .15s ease-in-out}.condition-trait-header:hover{background:#f1f5f9}.trait-header-left{display:flex;align-items:center;gap:1rem;min-width:0;flex:1}.trait-icon{font-size:1.125rem;color:#6c757d;flex-shrink:0}.trait-title-group{display:flex;flex-direction:column;gap:.125rem;min-width:0}.trait-title{font-size:.875rem;font-weight:600;color:#1e293b;white-space:nowrap}.trait-subtitle{font-size:.75rem;color:#6c757d;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.trait-header-right{display:flex;align-items:center;gap:1rem;flex-shrink:0;margin-left:auto}.trait-header-actions{display:flex;align-items:center;gap:.5rem}.collapse-icon{display:inline-flex;align-items:center;justify-content:center;width:1.5rem;height:1.5rem;font-size:.875rem;color:#6c757d;cursor:pointer;transition:all .2s;border-radius:.2rem;background:rgba(0,0,0,0)}.collapse-icon:hover{color:#25b9d7;background:rgba(37,185,215,.08)}.trait-show-all-toggle{display:inline-flex;align-items:center;gap:.25rem;font-size:.75rem;color:#25b9d7;cursor:pointer}.trait-show-all-toggle:hover{text-decoration:underline}.trait-total-count{display:inline-flex;align-items:center;justify-content:center;gap:.25rem;min-width:20px;height:20px;padding:0 .5rem;background:#25b9d7;color:#fff;font-size:.75rem;font-weight:600;border-radius:50rem;cursor:pointer;transition:all .15s ease-in-out;flex-shrink:0}.trait-total-count:hover{transform:scale(1.05);box-shadow:0 2px 8px rgba(37,185,215,.4)}.trait-total-count:focus{outline:none;box-shadow:0 0 0 2px rgba(37,185,215,.3),0 2px 8px rgba(37,185,215,.4)}.trait-total-count.loading{cursor:wait}.trait-total-count.loading i{font-size:10px;animation:spin .6s linear infinite}.trait-total-count.loading:hover{transform:none;box-shadow:none}.trait-total-count.inactive,.trait-total-count.no-matches{background:#94a3b8;cursor:default}.trait-total-count.inactive:hover,.trait-total-count.no-matches:hover{transform:none;box-shadow:none}.trait-total-count.popover-open{background:rgb(29.5119047619,147.5595238095,171.4880952381);box-shadow:0 2px 8px rgba(37,185,215,.4)}.trait-total-count i{font-size:10px;line-height:1;opacity:.8}.trait-total-count:hover i{opacity:1}.trait-total-count .preview-count{font-weight:700}.trait-required{color:#dc3545;font-size:.75rem}.trait-validation-error{color:#dc3545;font-size:.75rem;margin-top:.25rem}.trait-toggle{padding:0;margin:0;background:none;border:none;cursor:pointer;font:inherit;color:inherit}.trait-toggle:focus{outline:none}.trait-toggle{display:inline-flex;align-items:center;gap:.25rem;padding:.375rem .75rem;font-size:.75rem;font-weight:500;color:#495057;background:#fff;border:1px solid #dee2e6;border-radius:.25rem;transition:all .15s ease-in-out}.trait-toggle:hover{background:#f8fafc;border-color:#dee2e6}.trait-toggle.active{color:#25b9d7;border-color:#25b9d7;background:rgba(37,185,215,.1)}.condition-trait-body{padding:1.5rem;border-radius:0 0 .3rem .3rem;background:#fff;animation:slideDown .2s ease-out}.condition-trait.collapsed .condition-trait-body{display:none}.schedule-section,.context-section{margin-bottom:1.25rem;padding-bottom:1.25rem;border-bottom:1px solid #f1f5f9}.schedule-section:last-child,.context-section:last-child{margin-bottom:0;padding-bottom:0;border-bottom:0}.section-label{display:flex;align-items:center;gap:.5rem;font-size:13px;font-weight:600;color:#475569;margin-bottom:1rem}.section-label i{font-size:.875rem;color:#94a3b8;margin-right:.25rem}.section-hint{margin-top:.5rem;font-size:11px;color:#94a3b8}.form-group.condition-trait-fullwidth{display:block !important}.form-group.condition-trait-fullwidth>.control-label{display:none !important}.form-group.condition-trait-fullwidth>.col-lg-8,.form-group.condition-trait-fullwidth>.col-lg-8.col-lg-offset-3{width:100% !important;max-width:100% !important;flex:0 0 100% !important;padding-left:1.5rem !important;padding-right:1.5rem !important;margin:0 !important;margin-left:0 !important}.condition-traits-group-label{font-size:.875rem;font-weight:600;color:#334155;margin-bottom:1rem}.condition-traits-wrapper{display:flex;flex-direction:column;gap:1rem}@keyframes slideDown{from{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}.target-conditions-trait .combination-attributes-picker,.entity-selector-trait .combination-attributes-picker{display:flex;flex-direction:column;gap:.625rem}.target-conditions-trait .combination-mode-toggle,.entity-selector-trait .combination-mode-toggle{display:inline-flex;gap:.25rem;padding:.125rem;background:#f1f5f9;border-radius:.25rem;margin-bottom:.5rem}.target-conditions-trait .combination-mode-option,.entity-selector-trait .combination-mode-option{display:flex;align-items:center;gap:.25rem;cursor:pointer;font-size:11px;color:#6c757d;padding:.25rem .625rem;border-radius:.2rem;transition:all .15s ease-in-out}.target-conditions-trait .combination-mode-option input[type=radio],.entity-selector-trait .combination-mode-option input[type=radio]{display:none}.target-conditions-trait .combination-mode-option .mode-label,.entity-selector-trait .combination-mode-option .mode-label{user-select:none}.target-conditions-trait .combination-mode-option:hover,.entity-selector-trait .combination-mode-option:hover{color:#25b9d7;background:rgba(37,185,215,.1)}.target-conditions-trait .combination-mode-option:has(input[type=radio]:checked),.entity-selector-trait .combination-mode-option:has(input[type=radio]:checked){background:#25b9d7;color:#fff;font-weight:500}.target-conditions-trait .combination-groups-container,.entity-selector-trait .combination-groups-container{display:flex;flex-wrap:wrap;gap:1rem}.target-conditions-trait .combination-loading,.target-conditions-trait .combination-empty,.target-conditions-trait .combination-error,.entity-selector-trait .combination-loading,.entity-selector-trait .combination-empty,.entity-selector-trait .combination-error{color:#6c757d;font-style:italic;padding:.5rem}.target-conditions-trait .combination-error,.entity-selector-trait .combination-error{color:#dc3545}.target-conditions-trait .combinations-section,.entity-selector-trait .combinations-section{margin-bottom:1rem}.target-conditions-trait .combinations-header,.entity-selector-trait .combinations-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:.5rem}.target-conditions-trait .combinations-label,.entity-selector-trait .combinations-label{font-size:.75rem;font-weight:500;color:#6c757d}.target-conditions-trait .combinations-help,.entity-selector-trait .combinations-help{font-size:11px;color:#94a3b8}.target-conditions-trait .btn-toggle-combinations,.entity-selector-trait .btn-toggle-combinations{padding:0;margin:0;background:none;border:none;cursor:pointer;font:inherit;color:inherit}.target-conditions-trait .btn-toggle-combinations:focus,.entity-selector-trait .btn-toggle-combinations:focus{outline:none}.target-conditions-trait .btn-toggle-combinations,.entity-selector-trait .btn-toggle-combinations{display:inline-flex;align-items:center;gap:.25rem;padding:.25rem .5rem;font-size:.75rem;color:#25b9d7;background:rgba(0,0,0,0);border:1px solid #25b9d7;border-radius:.2rem;transition:all .15s ease-in-out}.target-conditions-trait .btn-toggle-combinations:hover,.entity-selector-trait .btn-toggle-combinations:hover{background:rgba(37,185,215,.1)}.target-conditions-trait .btn-remove-combinations,.entity-selector-trait .btn-remove-combinations{padding:0;margin:0;background:none;border:none;cursor:pointer;font:inherit;color:inherit}.target-conditions-trait .btn-remove-combinations:focus,.entity-selector-trait .btn-remove-combinations:focus{outline:none}.target-conditions-trait .btn-remove-combinations,.entity-selector-trait .btn-remove-combinations{display:inline-flex;align-items:center;gap:.25rem;padding:.25rem .5rem;font-size:.75rem;color:#dc3545;background:rgba(0,0,0,0)}.target-conditions-trait .btn-remove-combinations:hover,.entity-selector-trait .btn-remove-combinations:hover{text-decoration:underline}.target-conditions-trait .comb-attr-group,.entity-selector-trait .comb-attr-group{flex:none;min-width:120px;max-width:200px;background:#fff;border:1px solid #dee2e6;border-radius:.2rem;overflow:hidden}.target-conditions-trait .comb-attr-group.has-selections,.entity-selector-trait .comb-attr-group.has-selections{border-color:#25b9d7}.target-conditions-trait .comb-attr-group-header,.entity-selector-trait .comb-attr-group-header{display:flex;justify-content:space-between;align-items:center;padding:.375rem .625rem;background:#f1f5f9;border-bottom:1px solid #dee2e6;font-weight:600;font-size:.75rem;color:#1e293b}.comb-attr-group.has-selections .target-conditions-trait .comb-attr-group-header,.comb-attr-group.has-selections .entity-selector-trait .comb-attr-group-header{background:#ecfeff;border-bottom-color:#a5f3fc}.target-conditions-trait .comb-attr-group-name,.entity-selector-trait .comb-attr-group-name{flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.target-conditions-trait .comb-attr-group-count,.entity-selector-trait .comb-attr-group-count{flex-shrink:0;min-width:18px;height:18px;padding:0 .25rem;background:#dee2e6;border-radius:50rem;font-size:11px;font-weight:600;line-height:18px;text-align:center;color:#6c757d}.comb-attr-group.has-selections .target-conditions-trait .comb-attr-group-count,.comb-attr-group.has-selections .entity-selector-trait .comb-attr-group-count{background:#25b9d7;color:#fff}.target-conditions-trait .comb-attr-toolbar,.entity-selector-trait .comb-attr-toolbar{display:flex;align-items:center;gap:.25rem;padding:.25rem .375rem;background:#f8fafc;border-bottom:1px solid #f1f5f9}.target-conditions-trait .comb-toolbar-btn,.entity-selector-trait .comb-toolbar-btn{padding:0;margin:0;background:none;border:none;cursor:pointer;font:inherit;color:inherit}.target-conditions-trait .comb-toolbar-btn:focus,.entity-selector-trait .comb-toolbar-btn:focus{outline:none}.target-conditions-trait .comb-toolbar-btn,.entity-selector-trait .comb-toolbar-btn{display:flex;align-items:center;justify-content:center;width:22px;height:22px;padding:0;background:#fff;border:1px solid #dee2e6;border-radius:.2rem;color:#6c757d;cursor:pointer;font-size:.75rem;transition:all .15s ease-in-out}.target-conditions-trait .comb-toolbar-btn:hover,.entity-selector-trait .comb-toolbar-btn:hover{background:#f1f5f9;border-color:#94a3b8;color:#1e293b}.target-conditions-trait .comb-attr-search,.entity-selector-trait .comb-attr-search{flex:1;min-width:60px;padding:.125rem .375rem;border:1px solid #dee2e6;border-radius:.2rem;font-size:11px;outline:none}.target-conditions-trait .comb-attr-search:focus,.entity-selector-trait .comb-attr-search:focus{border-color:#25b9d7}.target-conditions-trait .comb-attr-search::placeholder,.entity-selector-trait .comb-attr-search::placeholder{color:#94a3b8}.target-conditions-trait .comb-attr-values,.entity-selector-trait .comb-attr-values{display:flex;flex-wrap:wrap;gap:.25rem;padding:.375rem;max-height:150px;overflow-y:auto}.target-conditions-trait .comb-attr-values::-webkit-scrollbar,.entity-selector-trait .comb-attr-values::-webkit-scrollbar{width:6px;height:6px}.target-conditions-trait .comb-attr-values::-webkit-scrollbar-track,.entity-selector-trait .comb-attr-values::-webkit-scrollbar-track{background:#f8f9fa;border-radius:3px}.target-conditions-trait .comb-attr-values::-webkit-scrollbar-thumb,.entity-selector-trait .comb-attr-values::-webkit-scrollbar-thumb{background:#dee2e6;border-radius:3px}.target-conditions-trait .comb-attr-values::-webkit-scrollbar-thumb:hover,.entity-selector-trait .comb-attr-values::-webkit-scrollbar-thumb:hover{background:#ced4da}.target-conditions-trait .comb-attr-loading,.target-conditions-trait .comb-attr-empty,.target-conditions-trait .comb-attr-error,.entity-selector-trait .comb-attr-loading,.entity-selector-trait .comb-attr-empty,.entity-selector-trait .comb-attr-error{width:100%;text-align:center;color:#94a3b8;font-size:11px;padding:.25rem}.target-conditions-trait .comb-attr-error,.entity-selector-trait .comb-attr-error{color:#dc3545}.target-conditions-trait .comb-attr-value,.entity-selector-trait .comb-attr-value{display:inline-flex;align-items:center;gap:.25rem;padding:.125rem .5rem;background:#fff;border:1px solid #94a3b8;border-radius:.75rem;font-size:11px;color:#475569;cursor:pointer;transition:all .15s ease-in-out;white-space:nowrap}.target-conditions-trait .comb-attr-value:hover,.entity-selector-trait .comb-attr-value:hover{background:#f1f5f9;border-color:#6c757d}.target-conditions-trait .comb-attr-value.selected,.entity-selector-trait .comb-attr-value.selected{background:#25b9d7;border-color:#1a9ab7;color:#fff}.target-conditions-trait .comb-attr-value.selected:hover,.entity-selector-trait .comb-attr-value.selected:hover{background:#1a9ab7;border-color:rgb(22.8277511962,135.2105263158,160.6722488038)}.target-conditions-trait .comb-attr-value-count,.entity-selector-trait .comb-attr-value-count{font-size:9px;color:#94a3b8;background:#f1f5f9;padding:1px .25rem;border-radius:.5rem;min-width:14px;text-align:center}.comb-attr-value.selected .target-conditions-trait .comb-attr-value-count,.comb-attr-value.selected .entity-selector-trait .comb-attr-value-count{color:#fff;background:hsla(0,0%,100%,.3)}.target-conditions-trait .combination-conditions-container,.entity-selector-trait .combination-conditions-container{display:flex;flex-direction:column;gap:.5rem}.target-conditions-trait .combination-condition-row,.entity-selector-trait .combination-condition-row{display:flex;align-items:center;gap:.5rem;padding:.5rem;background:#f8fafc;border-radius:.2rem}.target-conditions-trait .combination-group-select,.target-conditions-trait .combination-values-select,.entity-selector-trait .combination-group-select,.entity-selector-trait .combination-values-select{flex:1;min-width:120px}.target-conditions-trait .combination-equals,.entity-selector-trait .combination-equals{font-size:.75rem;color:#6c757d;padding:0 .25rem}.target-conditions-trait .btn-add-combination-condition,.entity-selector-trait .btn-add-combination-condition{padding:0;margin:0;background:none;border:none;cursor:pointer;font:inherit;color:inherit}.target-conditions-trait .btn-add-combination-condition:focus,.entity-selector-trait .btn-add-combination-condition:focus{outline:none}.target-conditions-trait .btn-add-combination-condition,.entity-selector-trait .btn-add-combination-condition{display:inline-flex;align-items:center;gap:.25rem;padding:.375rem .75rem;font-size:.75rem;font-weight:500;color:#25b9d7;background:rgba(0,0,0,0);border:1px dashed #25b9d7;border-radius:.2rem;transition:all .15s ease-in-out}.target-conditions-trait .btn-add-combination-condition:hover,.entity-selector-trait .btn-add-combination-condition:hover{background:rgba(37,185,215,.1)}.target-conditions-trait .btn-add-combination-condition i,.entity-selector-trait .btn-add-combination-condition i{font-size:10px}.target-conditions-trait .btn-remove-combination-row,.entity-selector-trait .btn-remove-combination-row{padding:0;margin:0;background:none;border:none;cursor:pointer;font:inherit;color:inherit}.target-conditions-trait .btn-remove-combination-row:focus,.entity-selector-trait .btn-remove-combination-row:focus{outline:none}.target-conditions-trait .btn-remove-combination-row,.entity-selector-trait .btn-remove-combination-row{display:flex;align-items:center;justify-content:center;width:24px;height:24px;color:#6c757d;border-radius:.2rem;transition:all .15s ease-in-out}.target-conditions-trait .btn-remove-combination-row:hover,.entity-selector-trait .btn-remove-combination-row:hover{background:rgba(220,53,69,.1);color:#dc3545}.target-conditions-trait .btn-remove-combination-row i,.entity-selector-trait .btn-remove-combination-row i{font-size:12px}.target-conditions-trait .method-dropdown-trigger,.entity-selector-trait .method-dropdown-trigger{display:inline-flex;align-items:center;gap:.5rem;height:36px;padding:0 1rem;border-radius:.25rem;background:#fff;color:#1e293b;font-size:.875rem;cursor:pointer;transition:all .15s ease-in-out;min-width:180px;max-width:320px;border:1px solid #dee2e6}.target-conditions-trait .method-dropdown-trigger:hover,.entity-selector-trait .method-dropdown-trigger:hover{background:#f8fafc;border-color:#dee2e6}.target-conditions-trait .method-dropdown-trigger:focus,.target-conditions-trait .method-dropdown-trigger:active,.entity-selector-trait .method-dropdown-trigger:focus,.entity-selector-trait .method-dropdown-trigger:active{outline:none;border-color:#25b9d7;box-shadow:0 0 0 3px rgba(37,185,215,.1)}.target-conditions-trait .method-trigger-icon,.entity-selector-trait .method-trigger-icon{font-size:.875rem;color:#6c757d;flex-shrink:0;width:18px;text-align:center}.target-conditions-trait .method-trigger-label,.entity-selector-trait .method-trigger-label{flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-weight:500}.target-conditions-trait .method-trigger-caret,.entity-selector-trait .method-trigger-caret{font-size:.75rem;color:#94a3b8;flex-shrink:0;margin-left:auto}.target-conditions-trait .selector-locked .method-dropdown-trigger,.entity-selector-trait .selector-locked .method-dropdown-trigger{background:#f1f5f9;color:#94a3b8;cursor:not-allowed;border-color:#dee2e6}.target-conditions-trait .selector-locked .method-dropdown-trigger:hover,.entity-selector-trait .selector-locked .method-dropdown-trigger:hover{background:#f1f5f9;border-color:#dee2e6}.target-conditions-trait .method-selector-wrapper,.entity-selector-trait .method-selector-wrapper{position:relative}.target-conditions-trait .method-select-hidden,.entity-selector-trait .method-select-hidden{position:absolute !important;opacity:0 !important;pointer-events:none !important;width:0 !important;height:0 !important;overflow:hidden !important}.method-select-hidden{position:absolute !important;opacity:0 !important;pointer-events:none !important;width:0 !important;height:0 !important;overflow:hidden !important}.method-dropdown-menu{position:absolute;z-index:1001;min-width:200px;max-width:360px;max-height:400px;overflow-y:auto;background:#fff;border-radius:.3rem;padding:.375rem 0;border:1px solid #dee2e6;box-shadow:0 10px 40px rgba(0,0,0,.15);animation:methodDropdownFadeIn .15s ease}.method-dropdown-menu::-webkit-scrollbar{width:6px;height:6px}.method-dropdown-menu::-webkit-scrollbar-track{background:#f8f9fa;border-radius:3px}.method-dropdown-menu::-webkit-scrollbar-thumb{background:#dee2e6;border-radius:3px}.method-dropdown-menu::-webkit-scrollbar-thumb:hover{background:#ced4da}@keyframes methodDropdownFadeIn{from{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}.method-dropdown-item{display:flex;align-items:center;gap:.625rem;padding:.5rem 1rem;cursor:pointer;transition:background-color .1s;position:relative}.method-dropdown-item:hover{background:#f1f5f9}.method-dropdown-item.selected{background:rgba(37,185,215,.08)}.method-dropdown-item .method-item-icon{font-size:.875rem;color:#6c757d;width:18px;text-align:center;flex-shrink:0}.method-dropdown-item.selected .method-item-icon{color:#25b9d7}.method-dropdown-item .method-item-label{flex:1;font-size:.875rem;color:#334155;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.method-dropdown-item.selected .method-item-label{color:#0e7490;font-weight:500}.method-dropdown-item .method-item-check{font-size:.75rem;flex-shrink:0;margin-left:auto;color:#25b9d7}.method-dropdown-optgroup{margin-top:.25rem}.method-dropdown-optgroup:first-child{margin-top:0}.method-optgroup-label{padding:.5rem 1rem;font-size:11px;font-weight:600;color:#6c757d;text-transform:uppercase;letter-spacing:.05em;background:#f8fafc;border-top:1px solid #f1f5f9;border-bottom:1px solid #f1f5f9}.method-dropdown-optgroup:first-child .method-optgroup-label{border-top:0}.method-optgroup-items{padding:.25rem 0}.method-optgroup-items .method-dropdown-item{padding-left:1.5rem}.method-info-placeholder{font-size:.75rem;color:#6c757d;font-style:italic}.mpr-info-wrapper{display:inline-flex;align-items:center;position:relative;cursor:help;vertical-align:middle;margin-left:.25rem}.mpr-info-wrapper .material-icons{font-size:16px;color:#6c757d;transition:color .15s ease}.mpr-info-wrapper:hover .material-icons{color:#25b9d7}.mpr-tooltip-fixed{position:fixed;background:#fff;color:#1e293b;padding:1rem 1.5rem;border-radius:.25rem;font-size:13px;line-height:1.5;white-space:normal;z-index:10500;max-width:320px;min-width:180px;text-align:left;box-shadow:rgba(0,0,0,.12) 0px 1px 1px 0px,rgba(64,68,82,.16) 0px 0px 0px 1px,rgba(64,68,82,.08) 0px 2px 5px 0px;pointer-events:none}.mpr-tooltip-fixed.pinned{pointer-events:auto;padding-right:3rem}.mpr-tooltip-fixed strong{display:block;margin-bottom:.375rem;font-weight:600;color:#25b9d7}.mpr-tooltip-fixed p{margin:0;color:#495057}.mpr-tooltip-fixed ul{margin:.5rem 0 0;padding-left:1.25rem}.mpr-tooltip-fixed ul li{margin:.25rem 0;color:#495057}.mpr-tooltip-close{position:absolute;top:.375rem;right:.375rem;padding:.125rem;border:none;background:rgba(0,0,0,0);cursor:pointer;border-radius:.2rem;line-height:1;transition:background-color .15s ease}.mpr-tooltip-close .material-icons{font-size:16px;color:#6c757d}.mpr-tooltip-close:hover{background:#f1f5f9}.mpr-tooltip-close:hover .material-icons{color:#334155}.category-tree{display:flex;flex-direction:column}.category-tree .tree-toolbar{display:flex;align-items:center;gap:.5rem;padding:.25rem .5rem;background:#f8fafc;border-bottom:1px solid #e9ecef;flex-shrink:0}.category-tree .tree-toolbar .btn-expand-all,.category-tree .tree-toolbar .btn-collapse-all{padding:0;margin:0;background:none;border:none;cursor:pointer;font:inherit;color:inherit}.category-tree .tree-toolbar .btn-expand-all:focus,.category-tree .tree-toolbar .btn-collapse-all:focus{outline:none}.category-tree .tree-toolbar .btn-expand-all,.category-tree .tree-toolbar .btn-collapse-all{display:inline-flex;align-items:center;gap:.25rem;padding:.25rem .5rem;font-size:.75rem;font-weight:500;color:#495057;background:#fff;border:1px solid #dee2e6;border-radius:.2rem;transition:all .15s ease-in-out}.category-tree .tree-toolbar .btn-expand-all:hover,.category-tree .tree-toolbar .btn-collapse-all:hover{background:#f1f5f9;border-color:#cbd5e1}.category-tree .tree-toolbar .btn-expand-all i,.category-tree .tree-toolbar .btn-collapse-all i{font-size:12px}.category-tree .tree-items{padding:0}.tree-item{display:flex;align-items:center;gap:.25rem;padding:.25rem .5rem;cursor:pointer;transition:background .15s ease-in-out;border-radius:0}.tree-item:hover{background:#f1f5f9}.tree-item.selected{background:rgba(37,185,215,.1)}.tree-item.selected .tree-name{font-weight:600;color:#25b9d7}.tree-item.selected .tree-checkbox{color:#25b9d7}.tree-item.selected .tree-checkbox i{opacity:1}.tree-item.inactive{opacity:.6}.tree-item.inactive .tree-name{font-style:italic}.tree-item.filtered-out{display:none}.tree-item.filter-match{background:#fff3cd}.tree-item.filter-match.selected{background:rgba(37,185,215,.1)}.category-tree .tree-indent{flex-shrink:0}.category-tree .tree-toggle{display:flex;align-items:center;justify-content:center;width:12px;height:12px;box-sizing:border-box;color:#495057;flex-shrink:0;border-radius:.2rem;transition:all .15s ease-in-out;cursor:pointer}.category-tree .tree-toggle:hover{background:#e2e8f0;color:#212529}.category-tree .tree-toggle.tree-leaf{cursor:default;visibility:hidden}.category-tree .tree-toggle.tree-leaf:hover{background:rgba(0,0,0,0)}.category-tree .tree-toggle i{font-size:10px;transition:transform .15s ease-in-out}.category-tree .tree-item.collapsed>.tree-toggle i{transform:rotate(-90deg)}.category-tree .tree-checkbox{display:flex;align-items:center;justify-content:center;width:12px;height:12px;box-sizing:border-box;flex-shrink:0;border:1px solid #dee2e6;border-radius:2px;background:#fff}.category-tree .tree-checkbox i{font-size:8px;opacity:0;color:#fff;transition:opacity .15s ease-in-out}.category-tree .tree-item.selected .tree-checkbox{background:#25b9d7;border-color:#25b9d7}.category-tree .tree-item.selected .tree-checkbox i{opacity:1}.category-tree .tree-icon{display:flex;align-items:center;justify-content:center;width:12px;height:12px;box-sizing:border-box;color:#6c757d;flex-shrink:0}.category-tree .tree-icon i{font-size:12px}.category-tree .tree-item.selected .tree-icon{color:#25b9d7}.category-tree .tree-name{flex:1;font-size:.875rem;color:#212529;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.category-tree .tree-count{display:inline-flex;align-items:center;justify-content:center;gap:.25rem;min-width:20px;height:20px;padding:0 .5rem;background:#25b9d7;color:#fff;font-size:.75rem;font-weight:600;border-radius:50rem;cursor:pointer;transition:all .15s ease-in-out;flex-shrink:0}.category-tree .tree-count:hover{transform:scale(1.05);box-shadow:0 2px 8px rgba(37,185,215,.4)}.category-tree .tree-count:focus{outline:none;box-shadow:0 0 0 2px rgba(37,185,215,.3),0 2px 8px rgba(37,185,215,.4)}.category-tree .tree-count.loading{cursor:wait}.category-tree .tree-count.loading i{font-size:10px;animation:spin .6s linear infinite}.category-tree .tree-count.loading:hover{transform:none;box-shadow:none}.category-tree .tree-count.inactive,.category-tree .tree-count.no-matches{background:#94a3b8;cursor:default}.category-tree .tree-count.inactive:hover,.category-tree .tree-count.no-matches:hover{transform:none;box-shadow:none}.category-tree .tree-count.popover-open{background:rgb(29.5119047619,147.5595238095,171.4880952381);box-shadow:0 2px 8px rgba(37,185,215,.4)}.category-tree .tree-count i{font-size:10px;line-height:1;opacity:.8}.category-tree .tree-count:hover i{opacity:1}.category-tree .tree-count .preview-count{font-weight:700}.category-tree .tree-count{height:18px;min-width:18px;padding:0 .5rem}.category-tree .tree-count i{font-size:10px}.category-tree .tree-count.clickable.loading{pointer-events:none}.category-tree .tree-count.clickable.loading i{animation:spin 1s linear infinite}.category-tree .tree-count.clickable.popover-open{background:rgb(29.5119047619,147.5595238095,171.4880952381)}.category-tree .btn-select-children{padding:0;margin:0;background:none;border:none;cursor:pointer;font:inherit;color:inherit}.category-tree .btn-select-children:focus{outline:none}.category-tree .btn-select-children{display:inline-flex;align-items:center;justify-content:center;width:12px;height:12px;box-sizing:border-box;color:#6c757d;border-radius:.2rem;opacity:.3;transition:all .15s ease-in-out;flex-shrink:0}.category-tree .btn-select-children i{font-size:14px}.category-tree .btn-select-children:hover{color:#25b9d7;opacity:1}.category-tree .tree-item:hover .btn-select-children{opacity:.6}.category-tree .tree-badge{display:inline-flex;align-items:center;padding:.125rem .25rem;font-size:9px;font-weight:600;text-transform:uppercase;letter-spacing:.025em;border-radius:.2rem;flex-shrink:0}.category-tree .tree-badge.inactive{color:#ffc107;background:#fff3cd}.category-tree .tree-children{display:block}.category-tree .tree-children.filter-expanded{display:block !important}.category-tree .tree-item.collapsed+.tree-children{display:none}.category-tree .tree-item.filtered-out{display:none !important}.category-tree .tree-loading,.category-tree .dropdown-empty,.category-tree .dropdown-error{display:flex;align-items:center;justify-content:center;padding:2rem;color:#6c757d;font-size:.875rem}.category-tree .tree-loading i,.category-tree .dropdown-empty i,.category-tree .dropdown-error i{margin-right:.5rem}.category-tree .dropdown-error{color:#dc3545}.target-search-dropdown.view-tree .dropdown-results{padding:0}.target-search-dropdown.view-tree .category-tree{max-height:100%;overflow-y:auto}.target-search-dropdown.view-tree .category-tree::-webkit-scrollbar{width:6px;height:6px}.target-search-dropdown.view-tree .category-tree::-webkit-scrollbar-track{background:#f8f9fa;border-radius:3px}.target-search-dropdown.view-tree .category-tree::-webkit-scrollbar-thumb{background:#dee2e6;border-radius:3px}.target-search-dropdown.view-tree .category-tree::-webkit-scrollbar-thumb:hover{background:#ced4da}.target-search-dropdown.view-tree .tree-items{max-height:calc(100% - 40px);overflow-y:auto}.target-search-dropdown.view-tree .tree-items::-webkit-scrollbar{width:6px;height:6px}.target-search-dropdown.view-tree .tree-items::-webkit-scrollbar-track{background:#f8f9fa;border-radius:3px}.target-search-dropdown.view-tree .tree-items::-webkit-scrollbar-thumb{background:#dee2e6;border-radius:3px}.target-search-dropdown.view-tree .tree-items::-webkit-scrollbar-thumb:hover{background:#ced4da}.es-validation-toast{display:flex;align-items:flex-start;gap:.5rem;padding:1rem;background:#fff;border:1px solid #dc3545;border-left:4px solid #dc3545;border-radius:.25rem;box-shadow:0 1rem 3rem rgba(0,0,0,.175);max-width:400px;animation:es-toast-slide-in .2s ease-out}.es-validation-toast .es-toast-icon{display:flex;align-items:center;justify-content:center;width:24px;height:24px;color:#dc3545;flex-shrink:0}.es-validation-toast .es-toast-icon i{font-size:18px}.es-validation-toast .es-toast-content{flex:1;min-width:0}.es-validation-toast .es-toast-title{font-size:.875rem;font-weight:600;color:#dc3545;margin-bottom:2px}.es-validation-toast .es-toast-message{font-size:.75rem;color:#495057;line-height:1.4}.es-validation-toast .es-toast-close{padding:0;margin:0;background:none;border:none;cursor:pointer;font:inherit;color:inherit}.es-validation-toast .es-toast-close:focus{outline:none}.es-validation-toast .es-toast-close{display:flex;align-items:center;justify-content:center;width:20px;height:20px;color:#6c757d;border-radius:.2rem;flex-shrink:0;transition:all .15s ease-in-out}.es-validation-toast .es-toast-close:hover{background:#f1f5f9;color:#212529}.es-validation-toast .es-toast-close i{font-size:12px}@keyframes es-toast-slide-in{from{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}} +@keyframes spin{from{transform:rotate(0deg)}to{transform:rotate(360deg)}}.target-conditions-trait,.target-conditions-trait *,.entity-selector-trait,.entity-selector-trait *,.method-dropdown-menu,.method-dropdown-menu *,.target-preview-popover,.target-preview-popover *{border-style:solid;border-width:0;border-color:#dee2e6}.form-group:has(.entity-selector-trait),.form-group:has(.target-conditions-trait),.form-group:has(.condition-trait){display:block}.form-group:has(.entity-selector-trait)>.control-label,.form-group:has(.target-conditions-trait)>.control-label,.form-group:has(.condition-trait)>.control-label{display:none}.form-group:has(.entity-selector-trait)>.col-lg-8,.form-group:has(.target-conditions-trait)>.col-lg-8,.form-group:has(.condition-trait)>.col-lg-8{width:100%;max-width:100%;padding-left:1rem;padding-right:1rem;flex:0 0 100% !important}.form-group.condition-trait-fullwidth{display:block}.form-group.condition-trait-fullwidth>.control-label{display:none}.form-group.condition-trait-fullwidth>.col-lg-8{width:100%;max-width:100%;padding-left:1rem;padding-right:1rem;flex:0 0 100% !important}.panel:has(.target-search-dropdown.show),.card:has(.target-search-dropdown.show),.form-wrapper:has(.target-search-dropdown.show),.panel-body:has(.target-search-dropdown.show),.card-body:has(.target-search-dropdown.show),.form-group:has(.target-search-dropdown.show),.col-lg-8:has(.target-search-dropdown.show),.col-lg-12:has(.target-search-dropdown.show){overflow:visible !important}.target-conditions-trait:has(.target-search-dropdown.show),.entity-selector-trait:has(.target-search-dropdown.show),.condition-trait-body:has(.target-search-dropdown.show),.target-block-content:has(.target-search-dropdown.show),.target-block-groups:has(.target-search-dropdown.show),.target-group:has(.target-search-dropdown.show),.target-group-body:has(.target-search-dropdown.show),.target-search-wrapper:has(.target-search-dropdown.show){overflow:visible !important}@media(max-width: 991px){.target-conditions-trait .condition-trait-header,.entity-selector-trait .condition-trait-header{flex-direction:column;align-items:flex-start;gap:.5rem}.target-conditions-trait .trait-header-right,.entity-selector-trait .trait-header-right{width:100%;justify-content:flex-end}.target-conditions-trait .target-block-tabs,.entity-selector-trait .target-block-tabs{flex-wrap:wrap}}@media(max-width: 767px){.target-conditions-trait .target-block-tab,.entity-selector-trait .target-block-tab{padding:.5rem;font-size:.75rem}.target-conditions-trait .target-group-header,.entity-selector-trait .target-group-header{flex-direction:column;align-items:flex-start}.target-conditions-trait .target-search-dropdown,.entity-selector-trait .target-search-dropdown{width:100% !important;left:0 !important;right:0 !important}.target-conditions-trait .dropdown-results-grid,.entity-selector-trait .dropdown-results-grid{grid-template-columns:1fr !important}}@media(min-width: 1600px){.target-conditions-trait .dropdown-results-grid.view-grid-3,.entity-selector-trait .dropdown-results-grid.view-grid-3{grid-template-columns:repeat(4, 1fr)}}.target-conditions-trait,.entity-selector-trait{position:relative;overflow:visible;background:#fff;border:1px solid #dee2e6;border-radius:.3rem}.target-conditions-trait .condition-trait-header,.entity-selector-trait .condition-trait-header{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:1rem;padding:.875rem 1rem;background:#f8f9fa;border-bottom:1px solid #dee2e6;border-radius:.3rem .3rem 0 0;cursor:pointer;user-select:none;transition:background-color .15s ease-in-out}.target-conditions-trait .condition-trait-header:hover,.entity-selector-trait .condition-trait-header:hover{background:#e9ecef}.target-conditions-trait .trait-header-left,.entity-selector-trait .trait-header-left{display:flex;align-items:center;gap:.75rem;min-width:0;flex:1}.target-conditions-trait .trait-icon,.entity-selector-trait .trait-icon{font-size:1.125rem;color:#6c757d;flex-shrink:0}.target-conditions-trait .trait-title-group,.entity-selector-trait .trait-title-group{display:flex;flex-direction:column;gap:.125rem;min-width:0}.target-conditions-trait .trait-title,.entity-selector-trait .trait-title{font-size:.875rem;font-weight:600;color:#212529;white-space:nowrap}.target-conditions-trait .trait-subtitle,.entity-selector-trait .trait-subtitle{font-size:.75rem;color:#6c757d;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.target-conditions-trait .trait-total-count,.entity-selector-trait .trait-total-count{display:inline-flex;align-items:center;justify-content:center;gap:.25rem;min-width:20px;height:20px;padding:0 .5rem;background:#25b9d7;color:#fff;font-size:.75rem;font-weight:600;border-radius:50rem;cursor:pointer;transition:all .15s ease-in-out;flex-shrink:0}.target-conditions-trait .trait-total-count:hover,.entity-selector-trait .trait-total-count:hover{transform:scale(1.05);box-shadow:0 2px 8px rgba(37,185,215,.4)}.target-conditions-trait .trait-total-count:focus,.entity-selector-trait .trait-total-count:focus{outline:none;box-shadow:0 0 0 2px rgba(37,185,215,.3),0 2px 8px rgba(37,185,215,.4)}.target-conditions-trait .trait-total-count.loading,.entity-selector-trait .trait-total-count.loading{cursor:wait}.target-conditions-trait .trait-total-count.loading i,.entity-selector-trait .trait-total-count.loading i{font-size:10px;animation:spin .6s linear infinite}.target-conditions-trait .trait-total-count.loading:hover,.entity-selector-trait .trait-total-count.loading:hover{transform:none;box-shadow:none}.target-conditions-trait .trait-total-count.inactive,.target-conditions-trait .trait-total-count.no-matches,.entity-selector-trait .trait-total-count.inactive,.entity-selector-trait .trait-total-count.no-matches{background:#94a3b8;cursor:default}.target-conditions-trait .trait-total-count.inactive:hover,.target-conditions-trait .trait-total-count.no-matches:hover,.entity-selector-trait .trait-total-count.inactive:hover,.entity-selector-trait .trait-total-count.no-matches:hover{transform:none;box-shadow:none}.target-conditions-trait .trait-total-count.popover-open,.entity-selector-trait .trait-total-count.popover-open{background:rgb(29.5119047619,147.5595238095,171.4880952381);box-shadow:0 2px 8px rgba(37,185,215,.4)}.target-conditions-trait .trait-total-count i,.entity-selector-trait .trait-total-count i{font-size:10px;line-height:1;opacity:.8}.target-conditions-trait .trait-total-count:hover i,.entity-selector-trait .trait-total-count:hover i{opacity:1}.target-conditions-trait .trait-total-count .preview-count,.entity-selector-trait .trait-total-count .preview-count{font-weight:700}.target-conditions-trait .trait-total-count,.entity-selector-trait .trait-total-count{margin-left:.5rem}.target-conditions-trait .trait-show-all-toggle,.entity-selector-trait .trait-show-all-toggle{display:inline-flex;align-items:center;gap:.5rem;margin-right:.75rem;padding:.25rem .5rem;border-radius:.2rem;cursor:pointer;user-select:none;transition:background-color .15s ease-in-out}.target-conditions-trait .trait-show-all-toggle:hover,.entity-selector-trait .trait-show-all-toggle:hover{background:rgba(0,0,0,.05)}.target-conditions-trait .trait-show-all-toggle .toggle-label,.entity-selector-trait .trait-show-all-toggle .toggle-label{font-size:.75rem;font-weight:500;color:#6c757d}.target-conditions-trait .trait-show-all-toggle .show-all-checkbox,.entity-selector-trait .trait-show-all-toggle .show-all-checkbox{display:none}.target-conditions-trait .trait-show-all-toggle .toggle-slider,.entity-selector-trait .trait-show-all-toggle .toggle-slider{position:relative;width:36px;height:20px;background:#cbd5e1;border-radius:50rem;transition:background-color .2s ease-in-out}.target-conditions-trait .trait-show-all-toggle .toggle-slider::after,.entity-selector-trait .trait-show-all-toggle .toggle-slider::after{content:"";position:absolute;top:2px;left:2px;width:16px;height:16px;background:#fff;border-radius:50%;box-shadow:0 1px 3px rgba(0,0,0,.2);transition:transform .2s ease-in-out}.target-conditions-trait .trait-show-all-toggle .show-all-checkbox:checked+.toggle-slider,.entity-selector-trait .trait-show-all-toggle .show-all-checkbox:checked+.toggle-slider{background:#28a745}.target-conditions-trait .trait-show-all-toggle .show-all-checkbox:checked+.toggle-slider::after,.entity-selector-trait .trait-show-all-toggle .show-all-checkbox:checked+.toggle-slider::after{transform:translateX(16px)}.target-conditions-trait.has-validation-error,.entity-selector-trait.has-validation-error{border-color:#dc3545;box-shadow:0 0 0 3px rgba(220,53,69,.1)}.target-conditions-trait.has-validation-error .condition-trait-header,.entity-selector-trait.has-validation-error .condition-trait-header{border-bottom-color:#dc3545}.target-conditions-trait .trait-validation-error,.entity-selector-trait .trait-validation-error{display:flex;align-items:center;gap:.5rem;padding:.625rem 1rem;background:#f8d7da;color:#b91c1c;font-size:.875rem;font-weight:500;border-bottom:1px solid #fecaca}.target-conditions-trait .trait-validation-error i,.entity-selector-trait .trait-validation-error i{color:#dc3545}.target-conditions-trait.trait-required .trait-title::after,.entity-selector-trait.trait-required .trait-title::after{content:" *";color:#dc3545}.target-conditions-trait .condition-trait-body,.entity-selector-trait .condition-trait-body{padding:0;background:#fff;border-radius:0 0 .3rem .3rem}.target-conditions-trait .target-block-tabs,.entity-selector-trait .target-block-tabs{display:flex;flex-wrap:wrap;gap:0;padding:0;background:#f1f5f9;border-bottom:1px solid #dee2e6}.target-conditions-trait .target-block-tab,.entity-selector-trait .target-block-tab{position:relative;display:flex;align-items:center;gap:.5rem;flex:none;min-width:0;padding:.625rem 1rem;margin-bottom:-1px;background:rgba(0,0,0,0);border:0;border-bottom:2px solid rgba(0,0,0,0);color:#6c757d;font-size:.875rem;font-weight:500;cursor:pointer;transition:all .15s ease-in-out}.target-conditions-trait .target-block-tab:hover,.entity-selector-trait .target-block-tab:hover{background:#e2e8f0;color:#334155}.target-conditions-trait .target-block-tab.active,.entity-selector-trait .target-block-tab.active{background:#fff;border-bottom-color:#06b6d4;color:#25b9d7}.target-conditions-trait .target-block-tab i,.entity-selector-trait .target-block-tab i{font-size:.875rem}.target-conditions-trait .target-block-tab .tab-label,.entity-selector-trait .target-block-tab .tab-label{white-space:nowrap}.target-conditions-trait .target-block-tab .tab-badge,.entity-selector-trait .target-block-tab .tab-badge{display:inline-flex;align-items:center;justify-content:center;gap:.25rem;min-width:20px;height:20px;padding:0 .5rem;background:#25b9d7;color:#fff;font-size:.75rem;font-weight:600;border-radius:50rem;cursor:pointer;transition:all .15s ease-in-out;flex-shrink:0}.target-conditions-trait .target-block-tab .tab-badge:hover,.entity-selector-trait .target-block-tab .tab-badge:hover{transform:scale(1.05);box-shadow:0 2px 8px rgba(37,185,215,.4)}.target-conditions-trait .target-block-tab .tab-badge:focus,.entity-selector-trait .target-block-tab .tab-badge:focus{outline:none;box-shadow:0 0 0 2px rgba(37,185,215,.3),0 2px 8px rgba(37,185,215,.4)}.target-conditions-trait .target-block-tab .tab-badge.loading,.entity-selector-trait .target-block-tab .tab-badge.loading{cursor:wait}.target-conditions-trait .target-block-tab .tab-badge.loading i,.entity-selector-trait .target-block-tab .tab-badge.loading i{font-size:10px;animation:spin .6s linear infinite}.target-conditions-trait .target-block-tab .tab-badge.loading:hover,.entity-selector-trait .target-block-tab .tab-badge.loading:hover{transform:none;box-shadow:none}.target-conditions-trait .target-block-tab .tab-badge.inactive,.target-conditions-trait .target-block-tab .tab-badge.no-matches,.entity-selector-trait .target-block-tab .tab-badge.inactive,.entity-selector-trait .target-block-tab .tab-badge.no-matches{background:#94a3b8;cursor:default}.target-conditions-trait .target-block-tab .tab-badge.inactive:hover,.target-conditions-trait .target-block-tab .tab-badge.no-matches:hover,.entity-selector-trait .target-block-tab .tab-badge.inactive:hover,.entity-selector-trait .target-block-tab .tab-badge.no-matches:hover{transform:none;box-shadow:none}.target-conditions-trait .target-block-tab .tab-badge.popover-open,.entity-selector-trait .target-block-tab .tab-badge.popover-open{background:rgb(29.5119047619,147.5595238095,171.4880952381);box-shadow:0 2px 8px rgba(37,185,215,.4)}.target-conditions-trait .target-block-tab .tab-badge i,.entity-selector-trait .target-block-tab .tab-badge i{font-size:10px;line-height:1;opacity:.8}.target-conditions-trait .target-block-tab .tab-badge:hover i,.entity-selector-trait .target-block-tab .tab-badge:hover i{opacity:1}.target-conditions-trait .target-block-tab .tab-badge .preview-count,.entity-selector-trait .target-block-tab .tab-badge .preview-count{font-weight:700}.target-conditions-trait .target-block-tab.has-data:not(.active) .tab-badge,.entity-selector-trait .target-block-tab.has-data:not(.active) .tab-badge{display:inline-flex;align-items:center;justify-content:center;gap:.25rem;min-width:20px;height:20px;padding:0 .5rem;background:#94a3b8;color:#fff;font-size:.75rem;font-weight:600;border-radius:50rem;cursor:pointer;transition:all .15s ease-in-out;flex-shrink:0}.target-conditions-trait .target-block-tab.has-data:not(.active) .tab-badge:hover,.entity-selector-trait .target-block-tab.has-data:not(.active) .tab-badge:hover{transform:scale(1.05);box-shadow:0 2px 8px rgba(148,163,184,.4)}.target-conditions-trait .target-block-tab.has-data:not(.active) .tab-badge:focus,.entity-selector-trait .target-block-tab.has-data:not(.active) .tab-badge:focus{outline:none;box-shadow:0 0 0 2px rgba(148,163,184,.3),0 2px 8px rgba(148,163,184,.4)}.target-conditions-trait .target-block-tab.has-data:not(.active) .tab-badge.loading,.entity-selector-trait .target-block-tab.has-data:not(.active) .tab-badge.loading{cursor:wait}.target-conditions-trait .target-block-tab.has-data:not(.active) .tab-badge.loading i,.entity-selector-trait .target-block-tab.has-data:not(.active) .tab-badge.loading i{font-size:10px;animation:spin .6s linear infinite}.target-conditions-trait .target-block-tab.has-data:not(.active) .tab-badge.loading:hover,.entity-selector-trait .target-block-tab.has-data:not(.active) .tab-badge.loading:hover{transform:none;box-shadow:none}.target-conditions-trait .target-block-tab.has-data:not(.active) .tab-badge.inactive,.target-conditions-trait .target-block-tab.has-data:not(.active) .tab-badge.no-matches,.entity-selector-trait .target-block-tab.has-data:not(.active) .tab-badge.inactive,.entity-selector-trait .target-block-tab.has-data:not(.active) .tab-badge.no-matches{background:#94a3b8;cursor:default}.target-conditions-trait .target-block-tab.has-data:not(.active) .tab-badge.inactive:hover,.target-conditions-trait .target-block-tab.has-data:not(.active) .tab-badge.no-matches:hover,.entity-selector-trait .target-block-tab.has-data:not(.active) .tab-badge.inactive:hover,.entity-selector-trait .target-block-tab.has-data:not(.active) .tab-badge.no-matches:hover{transform:none;box-shadow:none}.target-conditions-trait .target-block-tab.has-data:not(.active) .tab-badge.popover-open,.entity-selector-trait .target-block-tab.has-data:not(.active) .tab-badge.popover-open{background:hsl(215,20.2247191011%,55.0980392157%);box-shadow:0 2px 8px rgba(148,163,184,.4)}.target-conditions-trait .target-block-tab.has-data:not(.active) .tab-badge i,.entity-selector-trait .target-block-tab.has-data:not(.active) .tab-badge i{font-size:10px;line-height:1;opacity:.8}.target-conditions-trait .target-block-tab.has-data:not(.active) .tab-badge:hover i,.entity-selector-trait .target-block-tab.has-data:not(.active) .tab-badge:hover i{opacity:1}.target-conditions-trait .target-block-tab.has-data:not(.active) .tab-badge .preview-count,.entity-selector-trait .target-block-tab.has-data:not(.active) .tab-badge .preview-count{font-weight:700}.target-conditions-trait .target-block-container,.entity-selector-trait .target-block-container{display:none}.target-conditions-trait .target-block-container.active,.entity-selector-trait .target-block-container.active{display:block}.target-conditions-trait .target-block-content,.entity-selector-trait .target-block-content{padding:1rem}.target-conditions-trait .target-block-groups,.entity-selector-trait .target-block-groups{display:flex;flex-direction:column;gap:1rem}.target-conditions-trait .target-block-header,.entity-selector-trait .target-block-header{display:flex;align-items:center;justify-content:space-between;padding:.5rem 1rem;background:#f8f9fa;border-bottom:1px solid #dee2e6}.target-conditions-trait .target-block-empty,.entity-selector-trait .target-block-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.5rem;padding:2rem;text-align:center;color:#6c757d}.target-conditions-trait .target-block-empty i,.entity-selector-trait .target-block-empty i{font-size:2rem;opacity:.5}.target-conditions-trait .target-block-empty p,.entity-selector-trait .target-block-empty p{margin:0;font-size:.875rem}.target-conditions-trait .trait-collapse-toggle,.target-conditions-trait .collapse-toggle,.entity-selector-trait .trait-collapse-toggle,.entity-selector-trait .collapse-toggle{display:flex;align-items:center;justify-content:center;width:24px;height:24px;color:#6c757d;cursor:pointer;transition:transform .2s ease-in-out}.target-conditions-trait .trait-collapse-toggle.collapsed,.target-conditions-trait .collapse-toggle.collapsed,.entity-selector-trait .trait-collapse-toggle.collapsed,.entity-selector-trait .collapse-toggle.collapsed{transform:rotate(-90deg)}.target-conditions-trait .trait-header-right,.entity-selector-trait .trait-header-right{display:flex;align-items:center;gap:.5rem}.target-conditions-trait.collapsed .condition-trait-body,.entity-selector-trait.collapsed .condition-trait-body{display:none}.target-conditions-trait.collapsed .condition-trait-header,.entity-selector-trait.collapsed .condition-trait-header{border-radius:.3rem}.target-conditions-trait.single-mode .target-block-tabs,.entity-selector-trait.single-mode .target-block-tabs{display:none}.target-conditions-trait.single-mode .target-block-container,.entity-selector-trait.single-mode .target-block-container{display:block}.target-conditions-trait .header-actions,.entity-selector-trait .header-actions{display:flex;align-items:center;gap:.25rem}.target-conditions-trait .header-action-btn,.entity-selector-trait .header-action-btn{padding:0;margin:0;background:none;border:none;cursor:pointer;font:inherit;color:inherit}.target-conditions-trait .header-action-btn:focus,.entity-selector-trait .header-action-btn:focus{outline:none}.target-conditions-trait .header-action-btn,.entity-selector-trait .header-action-btn{display:inline-flex;align-items:center;gap:.25rem;padding:.25rem .5rem;font-size:.75rem;font-weight:500;color:#6c757d;background:rgba(0,0,0,0);border-radius:.2rem;transition:all .15s ease-in-out}.target-conditions-trait .header-action-btn:hover,.entity-selector-trait .header-action-btn:hover{background:#e2e8f0;color:#495057}.target-conditions-trait .header-action-btn i,.entity-selector-trait .header-action-btn i{font-size:12px}.entity-item{display:flex;align-items:center;gap:.5rem;padding:.5rem;background:#fff;border-radius:.2rem;transition:background .15s ease-in-out}.entity-item:hover{background:#e9ecef}.entity-item.clickable{cursor:pointer}.entity-item.selected{background:rgba(37,185,215,.1)}.entity-item-image{flex-shrink:0;width:32px;height:32px;object-fit:cover;border-radius:.2rem;background:#f1f5f9}.entity-item-image--sm{width:20px;height:20px;border-radius:50%}.entity-item-image--lg{width:48px;height:48px}.entity-item-no-image{display:flex;align-items:center;justify-content:center;flex-shrink:0;width:32px;height:32px;background:#f1f5f9;color:#6c757d;border-radius:.2rem;font-size:.875rem}.entity-item-no-image--sm{width:20px;height:20px;font-size:10px;border-radius:50%}.entity-item-info{flex:1;min-width:0;display:flex;flex-direction:column;gap:.125rem}.entity-item-name{font-size:.875rem;font-weight:500;color:#212529;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.entity-item-meta{font-size:.75rem;color:#6c757d;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.entity-item-badge{flex-shrink:0;padding:.125rem .5rem;font-size:.75rem;font-weight:500;background:#f1f5f9;color:#6c757d;border-radius:.2rem}.entity-item-price{flex-shrink:0;font-size:.875rem;font-weight:600;color:#25b9d7}.entity-item-action{padding:0;margin:0;background:none;border:none;cursor:pointer;font:inherit;color:inherit}.entity-item-action:focus{outline:none}.entity-item-action{display:flex;align-items:center;justify-content:center;flex-shrink:0;width:20px;height:20px;color:#6c757d;border-radius:50%;transition:all .15s ease-in-out}.entity-item-action:hover{background:rgba(0,0,0,.1);color:#dc3545}.entity-item-action i{font-size:10px}.entity-item.chip-style{display:inline-flex;gap:.375rem;padding:.25rem .5rem;background:#f1f5f9;border-radius:50rem}.entity-item.chip-style:hover{background:#e2e8f0}.entity-item.chip-style .entity-item-image{width:20px;height:20px;border-radius:50%}.entity-item.chip-style .entity-item-no-image{width:20px;height:20px;font-size:10px;border-radius:50%}.entity-item.chip-style .entity-item-info{flex-direction:row;align-items:center;gap:.25rem}.entity-item.chip-style .entity-item-name{font-size:.75rem}.entity-item.chip-style .entity-item-meta{display:none}.entity-item.chip-style .entity-item-action{width:16px;height:16px;margin-left:.125rem}.entity-item.list-style{padding:.5rem 0;background:rgba(0,0,0,0);border-bottom:1px solid #dee2e6;border-radius:0}.entity-item.list-style:last-child{border-bottom:none}.entity-item.list-style:hover{background:#e9ecef}.entity-items-container{display:flex;flex-direction:column;background:#f8fafc;border:1px solid #dee2e6;border-radius:.25rem;overflow:hidden}.entity-items-toolbar{display:none;align-items:center;flex-wrap:nowrap;gap:.5rem;padding:.5rem 1rem;padding-bottom:0;background:rgba(0,0,0,0)}.entity-items-toolbar.has-items{display:flex}.entity-items-filter{all:unset;display:block;flex:1 1 auto;min-width:80px;width:auto;height:auto;padding:.2rem .5rem .2rem 1.5rem;background:#fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='10' viewBox='0 0 24 24' fill='none' stroke='%2394a3b8' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='11' cy='11' r='8'/%3E%3Cpath d='m21 21-4.35-4.35'/%3E%3C/svg%3E") no-repeat .375rem center;background-size:10px;border:1px solid #cbd5e1;border-radius:.2rem;font-size:11px;line-height:1.4;color:#212529;box-sizing:border-box;transition:all .15s ease-in-out}.entity-items-filter::placeholder{color:#6c757d;font-size:11px}.entity-items-filter:focus{outline:none;border-color:#25b9d7;box-shadow:0 0 0 2px rgba(37,185,215,.1)}.entity-items-sort{all:unset;flex:0 0 auto;padding:.2rem 1.25rem .2rem .5rem;border:1px solid #dee2e6;border-radius:.2rem;background:#fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='8' height='8' viewBox='0 0 8 8'%3E%3Cpath fill='%23666' d='M0 2l4 4 4-4z'/%3E%3C/svg%3E") no-repeat right .375rem center;background-size:8px;font-size:10px;line-height:1.4;color:#495057;cursor:pointer;box-sizing:border-box;white-space:nowrap}.entity-items-sort:hover{border-color:#25b9d7}.entity-items-sort:focus{outline:none;border-color:#25b9d7;box-shadow:0 0 0 2px rgba(37,185,215,.1)}.entity-items-count{display:inline-flex;align-items:center;flex-shrink:0;gap:.125rem;padding:.2rem .5rem;background:#e2e8f0;color:#495057;font-size:10px;font-weight:600;border-radius:.2rem;white-space:nowrap;line-height:1.4}.entity-items-count.has-filter{background:#cffafe;color:#0e7490}.entity-items-clear{padding:0;margin:0;background:none;border:none;cursor:pointer;font:inherit;color:inherit}.entity-items-clear:focus{outline:none}.entity-items-clear{display:inline-flex;align-items:center;flex-shrink:0;gap:.25rem;padding:.2rem .5rem;color:#dc3545;font-size:10px;font-weight:500;background:rgba(220,53,69,.1);border-radius:.2rem;transition:all .15s ease-in-out;white-space:nowrap;line-height:1.4}.entity-items-clear:hover{background:#dc3545;color:#fff}.entity-items-clear i{font-size:9px;flex-shrink:0}.entity-items-list{display:flex;flex-wrap:wrap;gap:.25rem;padding:.5rem 1rem 1rem;min-height:40px;max-height:300px;overflow-y:auto}.entity-items-list::-webkit-scrollbar{width:6px;height:6px}.entity-items-list::-webkit-scrollbar-track{background:#f8f9fa;border-radius:3px}.entity-items-list::-webkit-scrollbar-thumb{background:#dee2e6;border-radius:3px}.entity-items-list::-webkit-scrollbar-thumb:hover{background:#ced4da}.entity-items-list:empty{display:none}.entity-items-list.list-layout{flex-direction:column;flex-wrap:nowrap;gap:0;padding:.5rem}.entity-items-load-more{display:flex;align-items:center;justify-content:center;gap:.5rem;padding:.5rem 1rem;background:rgba(0,0,0,0);border-top:1px dashed #dee2e6}.entity-items-load-more .load-more-label{font-size:.75rem;color:#6c757d}.entity-items-load-more .load-more-select{appearance:none;padding:.25rem 1.75rem .25rem .5rem;border:1px solid #dee2e6;border-radius:.2rem;background:#fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='8' height='8' viewBox='0 0 8 8'%3E%3Cpath fill='%23666' d='M0 2l4 4 4-4z'/%3E%3C/svg%3E") no-repeat right .5rem center;background-size:8px;font-size:.75rem;font-weight:500;color:#25b9d7;cursor:pointer;transition:all .15s ease-in-out;height:auto;min-height:0;line-height:1.3}.entity-items-load-more .load-more-select:hover{border-color:#25b9d7;background-color:rgba(37,185,215,.1)}.entity-items-load-more .load-more-select:focus{outline:none;border-color:#25b9d7;box-shadow:0 0 0 2px rgba(37,185,215,.1)}.entity-items-load-more .load-more-remaining{font-size:.75rem;color:#6c757d}.entity-items-load-more .load-more-remaining .remaining-count{font-weight:600;color:#495057}.entity-items-load-more .btn-load-more{display:flex;align-items:center;justify-content:center;padding:.25rem;margin:0;border:none;color:#25b9d7;background:rgba(37,185,215,.1);border-radius:.2rem;cursor:pointer;transition:all .15s ease-in-out;font:inherit}.entity-items-load-more .btn-load-more i{font-size:14px}.entity-items-load-more .btn-load-more:hover{background:rgba(37,185,215,.2)}.entity-items-load-more .btn-load-more.loading{cursor:wait}.entity-items-load-more .btn-load-more.loading i{animation:spin .6s linear infinite}.entity-items-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.5rem;padding:2rem;text-align:center;color:#6c757d}.entity-items-empty i{font-size:2rem;opacity:.5}.entity-items-empty p{margin:0;font-size:.875rem}.entity-items-loading{display:flex;align-items:center;justify-content:center;padding:2rem;color:#6c757d}.entity-items-loading i{font-size:20px;animation:spin .6s linear infinite}.target-conditions-trait .target-search-wrapper,.entity-selector-trait .target-search-wrapper{position:relative}.target-conditions-trait .target-search-dropdown,.entity-selector-trait .target-search-dropdown{position:absolute;z-index:1000;background:#fff;border:1px solid #dee2e6;border-radius:.3rem;box-shadow:0 1rem 3rem rgba(0,0,0,.175);display:none;width:600px;max-width:calc(100vw - 40px)}.target-conditions-trait .target-search-dropdown.show,.entity-selector-trait .target-search-dropdown.show{display:block}.target-conditions-trait .dropdown-header,.entity-selector-trait .dropdown-header{display:flex;align-items:center;gap:.5rem;padding:1rem;background:#f8f9fa;border-bottom:1px solid #dee2e6;border-radius:.3rem .3rem 0 0}.target-conditions-trait .dropdown-search-input,.entity-selector-trait .dropdown-search-input{width:100%;padding:.5rem 1rem;font-size:.875rem;line-height:1.5;color:#212529;background-color:#fff;border:1px solid #dee2e6;border-radius:.25rem;transition:border-color .15s ease-in-out,box-shadow .15s ease-in-out}.target-conditions-trait .dropdown-search-input:focus,.entity-selector-trait .dropdown-search-input:focus{border-color:#25b9d7;outline:0;box-shadow:0 0 0 .2rem rgba(37,185,215,.25)}.target-conditions-trait .dropdown-search-input::placeholder,.entity-selector-trait .dropdown-search-input::placeholder{color:#adb5bd}.target-conditions-trait .dropdown-search-input,.entity-selector-trait .dropdown-search-input{flex:1;padding:.5rem 1rem}.target-conditions-trait .dropdown-close-btn,.entity-selector-trait .dropdown-close-btn{padding:0;margin:0;background:none;border:none;cursor:pointer;font:inherit;color:inherit}.target-conditions-trait .dropdown-close-btn:focus,.entity-selector-trait .dropdown-close-btn:focus{outline:none}.target-conditions-trait .dropdown-close-btn,.entity-selector-trait .dropdown-close-btn{display:flex;align-items:center;justify-content:center;width:32px;height:32px;color:#6c757d;border-radius:.25rem;transition:all .15s ease-in-out}.target-conditions-trait .dropdown-close-btn:hover,.entity-selector-trait .dropdown-close-btn:hover{background:#e2e8f0;color:#495057}.target-conditions-trait .dropdown-controls,.entity-selector-trait .dropdown-controls{display:flex;align-items:center;justify-content:space-between;gap:.5rem;padding:.5rem 1rem;background:#fff;border-bottom:1px solid #dee2e6}.target-conditions-trait .dropdown-controls-left,.target-conditions-trait .dropdown-controls-right,.entity-selector-trait .dropdown-controls-left,.entity-selector-trait .dropdown-controls-right{display:flex;align-items:center;gap:.5rem}.target-conditions-trait .view-mode-btn,.entity-selector-trait .view-mode-btn{padding:0;margin:0;background:none;border:none;cursor:pointer;font:inherit;color:inherit}.target-conditions-trait .view-mode-btn:focus,.entity-selector-trait .view-mode-btn:focus{outline:none}.target-conditions-trait .view-mode-btn,.entity-selector-trait .view-mode-btn{display:flex;align-items:center;justify-content:center;width:28px;height:28px;color:#6c757d;background:rgba(0,0,0,0);border-radius:.2rem;transition:all .15s ease-in-out}.target-conditions-trait .view-mode-btn:hover,.entity-selector-trait .view-mode-btn:hover{background:#f1f5f9;color:#495057}.target-conditions-trait .view-mode-btn.active,.entity-selector-trait .view-mode-btn.active{background:#25b9d7;color:#fff}.target-conditions-trait .dropdown-results-count,.entity-selector-trait .dropdown-results-count{font-size:.75rem;color:#6c757d}.target-conditions-trait .dropdown-body,.entity-selector-trait .dropdown-body{max-height:400px;overflow-y:auto}.target-conditions-trait .dropdown-body::-webkit-scrollbar,.entity-selector-trait .dropdown-body::-webkit-scrollbar{width:6px;height:6px}.target-conditions-trait .dropdown-body::-webkit-scrollbar-track,.entity-selector-trait .dropdown-body::-webkit-scrollbar-track{background:#f8f9fa;border-radius:3px}.target-conditions-trait .dropdown-body::-webkit-scrollbar-thumb,.entity-selector-trait .dropdown-body::-webkit-scrollbar-thumb{background:#dee2e6;border-radius:3px}.target-conditions-trait .dropdown-body::-webkit-scrollbar-thumb:hover,.entity-selector-trait .dropdown-body::-webkit-scrollbar-thumb:hover{background:#ced4da}.target-conditions-trait .dropdown-results,.entity-selector-trait .dropdown-results{padding:0 .5rem}.target-conditions-trait .results-count,.entity-selector-trait .results-count{font-size:.75rem;color:#6c757d;padding:.25rem .5rem}.target-conditions-trait .results-header,.entity-selector-trait .results-header{display:flex;align-items:center;gap:.5rem;padding:.25rem 1rem;background:#f1f5f9;border-bottom:1px solid #dee2e6;font-size:.75rem;font-weight:600;color:#495057}.target-conditions-trait .dropdown-results-grid,.entity-selector-trait .dropdown-results-grid{display:grid;gap:.5rem}.target-conditions-trait .dropdown-results-grid.view-list,.entity-selector-trait .dropdown-results-grid.view-list{grid-template-columns:1fr}.target-conditions-trait .dropdown-results-grid.view-grid-2,.entity-selector-trait .dropdown-results-grid.view-grid-2{grid-template-columns:repeat(2, 1fr)}.target-conditions-trait .dropdown-results-grid.view-grid-3,.entity-selector-trait .dropdown-results-grid.view-grid-3{grid-template-columns:repeat(3, 1fr)}.target-conditions-trait .dropdown-result-item,.entity-selector-trait .dropdown-result-item{display:flex;align-items:center;gap:.5rem;padding:.5rem 0;background:#fff;border:none;border-bottom:1px solid #dee2e6;border-radius:0;cursor:pointer;transition:background .15s ease-in-out}.target-conditions-trait .dropdown-result-item:last-child,.entity-selector-trait .dropdown-result-item:last-child{border-bottom:none}.target-conditions-trait .dropdown-result-item:hover,.entity-selector-trait .dropdown-result-item:hover{background:#e9ecef}.target-conditions-trait .dropdown-result-item.selected,.entity-selector-trait .dropdown-result-item.selected{background:rgba(37,185,215,.1)}.target-conditions-trait .dropdown-result-item.disabled,.entity-selector-trait .dropdown-result-item.disabled{opacity:.5;cursor:not-allowed}.target-conditions-trait .dropdown-result-item.disabled:hover,.entity-selector-trait .dropdown-result-item.disabled:hover{background:#fff}.target-conditions-trait .result-item-image,.target-conditions-trait .result-image,.entity-selector-trait .result-item-image,.entity-selector-trait .result-image{flex-shrink:0;width:40px;height:40px;overflow:hidden;border-radius:.2rem;background:#f1f5f9}.target-conditions-trait .result-item-image img,.target-conditions-trait .result-image img,.entity-selector-trait .result-item-image img,.entity-selector-trait .result-image img{width:100%;height:100%;object-fit:cover}.target-conditions-trait .result-icon,.entity-selector-trait .result-icon{display:flex;align-items:center;justify-content:center;flex-shrink:0;width:40px;height:40px;background:#f1f5f9;border-radius:.2rem;color:#6c757d}.target-conditions-trait .result-icon i,.entity-selector-trait .result-icon i{font-size:16px}.target-conditions-trait .result-item-info,.target-conditions-trait .result-info,.entity-selector-trait .result-item-info,.entity-selector-trait .result-info{flex:1;min-width:0}.target-conditions-trait .result-item-name,.target-conditions-trait .result-name,.entity-selector-trait .result-item-name,.entity-selector-trait .result-name{font-size:.875rem;font-weight:500;color:#212529;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.target-conditions-trait .result-item-meta,.target-conditions-trait .result-subtitle,.entity-selector-trait .result-item-meta,.entity-selector-trait .result-subtitle{font-size:.75rem;color:#6c757d}.target-conditions-trait .subtitle-line,.entity-selector-trait .subtitle-line{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.target-conditions-trait .subtitle-line-primary,.entity-selector-trait .subtitle-line-primary{color:#495057}.target-conditions-trait .subtitle-line-secondary,.entity-selector-trait .subtitle-line-secondary{color:#6c757d;font-size:11px}.target-conditions-trait .result-col,.entity-selector-trait .result-col{flex-shrink:0;width:70px;text-align:right;font-size:.75rem}.target-conditions-trait .result-col-price,.entity-selector-trait .result-col-price{color:#495057}.target-conditions-trait .result-col-sale,.entity-selector-trait .result-col-sale{color:#dc3545;font-weight:600}.target-conditions-trait .result-col-stock .col-value.stock-ok,.entity-selector-trait .result-col-stock .col-value.stock-ok{color:#28a745}.target-conditions-trait .result-col-stock .col-value.stock-low,.entity-selector-trait .result-col-stock .col-value.stock-low{color:#ffc107}.target-conditions-trait .result-col-stock .col-value.stock-out,.entity-selector-trait .result-col-stock .col-value.stock-out{color:#dc3545}.target-conditions-trait .result-col-sales,.entity-selector-trait .result-col-sales{color:#6c757d}.target-conditions-trait .col-value,.entity-selector-trait .col-value{display:block}.target-conditions-trait .result-item-checkbox,.target-conditions-trait .result-checkbox,.entity-selector-trait .result-item-checkbox,.entity-selector-trait .result-checkbox{display:flex;align-items:center;justify-content:center;flex-shrink:0;width:18px;height:18px;border:2px solid #ced4da;border-radius:.2rem;transition:all .15s ease-in-out}.target-conditions-trait .result-item-checkbox i,.target-conditions-trait .result-checkbox i,.entity-selector-trait .result-item-checkbox i,.entity-selector-trait .result-checkbox i{display:none;font-size:10px;color:#fff}.dropdown-result-item.selected .target-conditions-trait .result-item-checkbox,.dropdown-item.selected .target-conditions-trait .result-item-checkbox,.dropdown-result-item.selected .target-conditions-trait .result-checkbox,.dropdown-item.selected .target-conditions-trait .result-checkbox,.dropdown-result-item.selected .entity-selector-trait .result-item-checkbox,.dropdown-item.selected .entity-selector-trait .result-item-checkbox,.dropdown-result-item.selected .entity-selector-trait .result-checkbox,.dropdown-item.selected .entity-selector-trait .result-checkbox{background:#25b9d7;border-color:#25b9d7}.dropdown-result-item.selected .target-conditions-trait .result-item-checkbox i,.dropdown-item.selected .target-conditions-trait .result-item-checkbox i,.dropdown-result-item.selected .target-conditions-trait .result-checkbox i,.dropdown-item.selected .target-conditions-trait .result-checkbox i,.dropdown-result-item.selected .entity-selector-trait .result-item-checkbox i,.dropdown-item.selected .entity-selector-trait .result-item-checkbox i,.dropdown-result-item.selected .entity-selector-trait .result-checkbox i,.dropdown-item.selected .entity-selector-trait .result-checkbox i{display:block}.target-conditions-trait .result-item-product,.entity-selector-trait .result-item-product{display:flex;align-items:center;gap:.5rem}.target-conditions-trait .no-results,.entity-selector-trait .no-results{display:flex;align-items:center;justify-content:center;gap:.5rem;padding:2rem;color:#6c757d;font-size:.875rem}.target-conditions-trait .no-results i,.entity-selector-trait .no-results i{font-size:1.25rem;opacity:.5}.target-conditions-trait .dropdown-empty,.entity-selector-trait .dropdown-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.5rem;padding:2rem;text-align:center;color:#6c757d}.target-conditions-trait .dropdown-empty i,.entity-selector-trait .dropdown-empty i{font-size:2rem;opacity:.5}.target-conditions-trait .dropdown-empty p,.entity-selector-trait .dropdown-empty p{margin:0;font-size:.875rem}.target-conditions-trait .dropdown-loading,.entity-selector-trait .dropdown-loading{display:flex;align-items:center;justify-content:center;padding:2rem;color:#6c757d}.target-conditions-trait .dropdown-loading i,.entity-selector-trait .dropdown-loading i{font-size:1.5rem;animation:spin 1s linear infinite}.target-conditions-trait .dropdown-footer,.entity-selector-trait .dropdown-footer{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.5rem 1rem;background:#f8fafc;border-top:1px solid #dee2e6;border-radius:0 0 .3rem .3rem}.target-conditions-trait .dropdown-footer-left,.entity-selector-trait .dropdown-footer-left{display:flex;align-items:center;gap:.25rem;font-size:.75rem;color:#6c757d}.target-conditions-trait .dropdown-footer-left .load-label,.entity-selector-trait .dropdown-footer-left .load-label{color:#6c757d}.target-conditions-trait .dropdown-footer-left .load-more-select,.target-conditions-trait .dropdown-footer-left select.load-more-select,.entity-selector-trait .dropdown-footer-left .load-more-select,.entity-selector-trait .dropdown-footer-left select.load-more-select{appearance:none;padding:.25rem 1.5rem .25rem .5rem;border:1px solid #dee2e6;border-radius:.2rem;background:#fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='8' height='8' viewBox='0 0 8 8'%3E%3Cpath fill='%23666' d='M0 2l4 4 4-4z'/%3E%3C/svg%3E") no-repeat right .4rem center;background-size:8px;font-size:.75rem;color:#495057;cursor:pointer;min-width:55px}.target-conditions-trait .dropdown-footer-left .load-more-select:hover,.target-conditions-trait .dropdown-footer-left select.load-more-select:hover,.entity-selector-trait .dropdown-footer-left .load-more-select:hover,.entity-selector-trait .dropdown-footer-left select.load-more-select:hover{border-color:#25b9d7}.target-conditions-trait .dropdown-footer-left .load-more-select:focus,.target-conditions-trait .dropdown-footer-left select.load-more-select:focus,.entity-selector-trait .dropdown-footer-left .load-more-select:focus,.entity-selector-trait .dropdown-footer-left select.load-more-select:focus{outline:none;border-color:#25b9d7}.target-conditions-trait .dropdown-footer-left .remaining-text,.entity-selector-trait .dropdown-footer-left .remaining-text{color:#6c757d}.target-conditions-trait .dropdown-footer-left .remaining-text strong,.entity-selector-trait .dropdown-footer-left .remaining-text strong{color:#495057;font-weight:600}.target-conditions-trait .dropdown-footer-left .btn-load-all,.entity-selector-trait .dropdown-footer-left .btn-load-all{padding:0;margin:0;background:none;border:none;cursor:pointer;font:inherit;color:inherit}.target-conditions-trait .dropdown-footer-left .btn-load-all:focus,.entity-selector-trait .dropdown-footer-left .btn-load-all:focus{outline:none}.target-conditions-trait .dropdown-footer-left .btn-load-all,.entity-selector-trait .dropdown-footer-left .btn-load-all{padding:.25rem .5rem;font-size:.75rem;color:#25b9d7;background:rgba(0,0,0,0);border-radius:.2rem;transition:all .15s ease-in-out}.target-conditions-trait .dropdown-footer-left .btn-load-all:hover,.entity-selector-trait .dropdown-footer-left .btn-load-all:hover{background:rgba(37,185,215,.1)}.target-conditions-trait .dropdown-footer-right,.entity-selector-trait .dropdown-footer-right{display:flex;align-items:center;gap:.5rem}.target-conditions-trait .dropdown-action-btn,.entity-selector-trait .dropdown-action-btn{padding:0;margin:0;background:none;border:none;cursor:pointer;font:inherit;color:inherit}.target-conditions-trait .dropdown-action-btn:focus,.entity-selector-trait .dropdown-action-btn:focus{outline:none}.target-conditions-trait .dropdown-action-btn,.entity-selector-trait .dropdown-action-btn{display:inline-flex;align-items:center;gap:.375rem;padding:.375rem .75rem;font-size:.75rem;font-weight:500;border-radius:.2rem;transition:all .15s ease-in-out}.target-conditions-trait .dropdown-action-btn .btn-shortcut,.entity-selector-trait .dropdown-action-btn .btn-shortcut{font-size:10px;padding:.125rem .25rem;background:rgba(0,0,0,.08);border-radius:3px;font-weight:400}.target-conditions-trait .dropdown-action-btn.btn-cancel,.entity-selector-trait .dropdown-action-btn.btn-cancel{color:#495057;background:#fff;border:1px solid #dee2e6}.target-conditions-trait .dropdown-action-btn.btn-cancel:hover,.entity-selector-trait .dropdown-action-btn.btn-cancel:hover{background:#f1f5f9;border-color:#ced4da}.target-conditions-trait .dropdown-action-btn.btn-apply,.target-conditions-trait .dropdown-action-btn.btn-save,.entity-selector-trait .dropdown-action-btn.btn-apply,.entity-selector-trait .dropdown-action-btn.btn-save{color:#fff;background:#25b9d7;border:1px solid #25b9d7}.target-conditions-trait .dropdown-action-btn.btn-apply:hover,.target-conditions-trait .dropdown-action-btn.btn-save:hover,.entity-selector-trait .dropdown-action-btn.btn-apply:hover,.entity-selector-trait .dropdown-action-btn.btn-save:hover{background:#1a9ab7;border-color:#1a9ab7}.target-conditions-trait .dropdown-action-btn.btn-apply .btn-shortcut,.target-conditions-trait .dropdown-action-btn.btn-save .btn-shortcut,.entity-selector-trait .dropdown-action-btn.btn-apply .btn-shortcut,.entity-selector-trait .dropdown-action-btn.btn-save .btn-shortcut{background:hsla(0,0%,100%,.2)}.target-conditions-trait .dropdown-load-more,.entity-selector-trait .dropdown-load-more{display:none}.target-conditions-trait .load-more-controls,.entity-selector-trait .load-more-controls{display:none}.target-conditions-trait .dropdown-filter-panel,.entity-selector-trait .dropdown-filter-panel{padding:1rem;background:#f8fafc;border-bottom:1px solid #dee2e6}.target-conditions-trait .filter-panel-header,.entity-selector-trait .filter-panel-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:.5rem}.target-conditions-trait .filter-panel-title,.entity-selector-trait .filter-panel-title{font-size:.875rem;font-weight:600;color:#212529}.target-conditions-trait .filter-panel-toggle,.entity-selector-trait .filter-panel-toggle{padding:0;margin:0;background:none;border:none;cursor:pointer;font:inherit;color:inherit}.target-conditions-trait .filter-panel-toggle:focus,.entity-selector-trait .filter-panel-toggle:focus{outline:none}.target-conditions-trait .filter-panel-toggle,.entity-selector-trait .filter-panel-toggle{font-size:.75rem;color:#25b9d7}.target-conditions-trait .filter-panel-toggle:hover,.entity-selector-trait .filter-panel-toggle:hover{text-decoration:underline}.target-conditions-trait .filter-panel-content,.entity-selector-trait .filter-panel-content{display:grid;gap:.5rem;grid-template-columns:repeat(auto-fill, minmax(150px, 1fr))}.target-conditions-trait .filter-group,.entity-selector-trait .filter-group{display:flex;flex-direction:column;gap:.25rem}.target-conditions-trait .filter-label,.entity-selector-trait .filter-label{font-size:.75rem;font-weight:500;color:#495057}.target-conditions-trait .filter-select,.target-conditions-trait .filter-input,.entity-selector-trait .filter-select,.entity-selector-trait .filter-input{width:100%;padding:.5rem 1rem;font-size:.875rem;line-height:1.5;color:#212529;background-color:#fff;border:1px solid #dee2e6;border-radius:.25rem;transition:border-color .15s ease-in-out,box-shadow .15s ease-in-out}.target-conditions-trait .filter-select:focus,.target-conditions-trait .filter-input:focus,.entity-selector-trait .filter-select:focus,.entity-selector-trait .filter-input:focus{border-color:#25b9d7;outline:0;box-shadow:0 0 0 .2rem rgba(37,185,215,.25)}.target-conditions-trait .filter-select::placeholder,.target-conditions-trait .filter-input::placeholder,.entity-selector-trait .filter-select::placeholder,.entity-selector-trait .filter-input::placeholder{color:#adb5bd}.target-conditions-trait .filter-select,.target-conditions-trait .filter-input,.entity-selector-trait .filter-select,.entity-selector-trait .filter-input{padding:.375rem .5rem;font-size:.75rem}.target-conditions-trait .category-tree,.entity-selector-trait .category-tree{padding:.5rem}.target-conditions-trait .tree-loading,.entity-selector-trait .tree-loading{display:flex;align-items:center;justify-content:center;gap:.5rem;padding:2rem;color:#6c757d;font-size:.875rem}.target-conditions-trait .tree-loading i,.entity-selector-trait .tree-loading i{animation:spin .6s linear infinite}.target-conditions-trait .tree-item,.entity-selector-trait .tree-item{display:flex;align-items:center;gap:.25rem;padding:.375rem .5rem;border-radius:.2rem;cursor:pointer;transition:background-color .15s ease-in-out}.target-conditions-trait .tree-item:hover,.entity-selector-trait .tree-item:hover{background:#e9ecef}.target-conditions-trait .tree-item.selected,.entity-selector-trait .tree-item.selected{background:rgba(37,185,215,.1)}.target-conditions-trait .tree-item.selected .tree-checkbox,.entity-selector-trait .tree-item.selected .tree-checkbox{background:#25b9d7;border-color:#25b9d7}.target-conditions-trait .tree-item.selected .tree-checkbox i,.entity-selector-trait .tree-item.selected .tree-checkbox i{display:block}.target-conditions-trait .tree-info,.entity-selector-trait .tree-info{display:flex;align-items:center;gap:.25rem;flex:1;min-width:0}.target-conditions-trait .tree-name,.entity-selector-trait .tree-name{font-size:.875rem;color:#212529;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.target-conditions-trait .tree-subtitle,.entity-selector-trait .tree-subtitle{font-size:.75rem;color:#6c757d}.target-conditions-trait .category-tree-item,.entity-selector-trait .category-tree-item{padding:.25rem 0}.target-conditions-trait .category-tree-node,.entity-selector-trait .category-tree-node{display:flex;align-items:center;gap:.5rem;padding:.25rem .5rem;border-radius:.2rem;cursor:pointer;transition:background-color .15s ease-in-out}.target-conditions-trait .category-tree-node:hover,.entity-selector-trait .category-tree-node:hover{background:#e9ecef}.target-conditions-trait .category-tree-node.selected,.entity-selector-trait .category-tree-node.selected{background:rgba(37,185,215,.1)}.target-conditions-trait .category-tree-toggle,.entity-selector-trait .category-tree-toggle{display:flex;align-items:center;justify-content:center;width:16px;height:16px;color:#6c757d;transition:transform .15s ease-in-out}.target-conditions-trait .category-tree-toggle.expanded,.entity-selector-trait .category-tree-toggle.expanded{transform:rotate(90deg)}.target-conditions-trait .category-tree-toggle.empty,.entity-selector-trait .category-tree-toggle.empty{visibility:hidden}.target-conditions-trait .category-tree-checkbox,.entity-selector-trait .category-tree-checkbox{flex-shrink:0;width:16px;height:16px;border:2px solid #ced4da;border-radius:3px;transition:all .15s ease-in-out}.target-conditions-trait .category-tree-checkbox.checked,.entity-selector-trait .category-tree-checkbox.checked{background:#25b9d7;border-color:#25b9d7}.target-conditions-trait .category-tree-checkbox.checked::after,.entity-selector-trait .category-tree-checkbox.checked::after{content:"✓";display:flex;align-items:center;justify-content:center;width:100%;height:100%;color:#fff;font-size:10px}.target-conditions-trait .category-tree-checkbox.indeterminate,.entity-selector-trait .category-tree-checkbox.indeterminate{background:#25b9d7;border-color:#25b9d7}.target-conditions-trait .category-tree-checkbox.indeterminate::after,.entity-selector-trait .category-tree-checkbox.indeterminate::after{content:"−";display:flex;align-items:center;justify-content:center;width:100%;height:100%;color:#fff;font-size:10px}.target-conditions-trait .category-tree-name,.entity-selector-trait .category-tree-name{flex:1;font-size:.875rem;color:#212529;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.target-conditions-trait .category-tree-count,.entity-selector-trait .category-tree-count{font-size:.75rem;color:#6c757d}.target-conditions-trait .category-tree-children,.entity-selector-trait .category-tree-children{margin-left:24px}.target-conditions-trait .search-history-list,.entity-selector-trait .search-history-list{padding:.5rem}.target-conditions-trait .history-item,.entity-selector-trait .history-item{display:flex;align-items:center;gap:.5rem;padding:.5rem;border-radius:.2rem;cursor:pointer;transition:background-color .15s ease-in-out}.target-conditions-trait .history-item:hover,.entity-selector-trait .history-item:hover{background:#e9ecef}.target-conditions-trait .history-item>i,.entity-selector-trait .history-item>i{color:#6c757d;font-size:14px}.target-conditions-trait .history-query,.entity-selector-trait .history-query{flex:1;font-size:.875rem;color:#212529}.target-conditions-trait .btn-delete-history,.entity-selector-trait .btn-delete-history{padding:0;margin:0;background:none;border:none;cursor:pointer;font:inherit;color:inherit}.target-conditions-trait .btn-delete-history:focus,.entity-selector-trait .btn-delete-history:focus{outline:none}.target-conditions-trait .btn-delete-history,.entity-selector-trait .btn-delete-history{display:flex;align-items:center;justify-content:center;width:24px;height:24px;color:#6c757d;border-radius:.2rem;opacity:0;transition:all .15s ease-in-out}.history-item:hover .target-conditions-trait .btn-delete-history,.history-item:hover .entity-selector-trait .btn-delete-history{opacity:1}.target-conditions-trait .btn-delete-history:hover,.entity-selector-trait .btn-delete-history:hover{background:#f8d7da;color:#dc3545}.target-conditions-trait .btn-delete-history i,.entity-selector-trait .btn-delete-history i{font-size:12px}.target-conditions-trait .filter-panel,.entity-selector-trait .filter-panel{display:none;padding:1rem;background:#f8fafc;border-bottom:1px solid #dee2e6}.target-conditions-trait .filter-panel.show,.entity-selector-trait .filter-panel.show{display:block}.target-conditions-trait .filter-row,.entity-selector-trait .filter-row{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem;margin-bottom:.5rem}.target-conditions-trait .filter-row:last-child,.entity-selector-trait .filter-row:last-child{margin-bottom:0}.target-conditions-trait .view-mode-select,.entity-selector-trait .view-mode-select{width:100%;padding:.5rem 1rem;font-size:.875rem;line-height:1.5;color:#212529;background-color:#fff;border:1px solid #dee2e6;border-radius:.25rem;transition:border-color .15s ease-in-out,box-shadow .15s ease-in-out}.target-conditions-trait .view-mode-select:focus,.entity-selector-trait .view-mode-select:focus{border-color:#25b9d7;outline:0;box-shadow:0 0 0 .2rem rgba(37,185,215,.25)}.target-conditions-trait .view-mode-select::placeholder,.entity-selector-trait .view-mode-select::placeholder{color:#adb5bd}.target-conditions-trait .view-mode-select,.entity-selector-trait .view-mode-select{padding:.25rem .5rem;font-size:.75rem;min-width:80px}body>.target-search-dropdown,.target-search-dropdown{position:absolute;z-index:1000;background:#fff;border:1px solid #dee2e6;border-radius:.3rem;box-shadow:0 1rem 3rem rgba(0,0,0,.175);display:none;width:600px;max-width:calc(100vw - 40px)}body>.target-search-dropdown.show,.target-search-dropdown.show{display:block}body>.target-search-dropdown .dropdown-header,.target-search-dropdown .dropdown-header{display:flex;align-items:center;gap:.5rem;padding:1rem;background:#f8f9fa;border-bottom:1px solid #dee2e6;border-radius:.3rem .3rem 0 0;flex-wrap:wrap}body>.target-search-dropdown .results-count,.target-search-dropdown .results-count{font-size:.875rem;font-weight:600;color:#212529;white-space:nowrap}body>.target-search-dropdown .dropdown-actions,.target-search-dropdown .dropdown-actions{display:flex;align-items:center;gap:.25rem;flex-wrap:wrap;flex:1;justify-content:flex-end}body>.target-search-dropdown .btn-select-all,body>.target-search-dropdown .btn-clear-selection,.target-search-dropdown .btn-select-all,.target-search-dropdown .btn-clear-selection{padding:0;margin:0;background:none;border:none;cursor:pointer;font:inherit;color:inherit}body>.target-search-dropdown .btn-select-all:focus,body>.target-search-dropdown .btn-clear-selection:focus,.target-search-dropdown .btn-select-all:focus,.target-search-dropdown .btn-clear-selection:focus{outline:none}body>.target-search-dropdown .btn-select-all,body>.target-search-dropdown .btn-clear-selection,.target-search-dropdown .btn-select-all,.target-search-dropdown .btn-clear-selection{display:inline-flex;align-items:center;gap:.25rem;padding:.25rem .5rem;font-size:.75rem;color:#495057;background:#fff;border:1px solid #dee2e6;border-radius:.2rem;cursor:pointer;transition:all .15s ease-in-out}body>.target-search-dropdown .btn-select-all:hover,body>.target-search-dropdown .btn-clear-selection:hover,.target-search-dropdown .btn-select-all:hover,.target-search-dropdown .btn-clear-selection:hover{background:#e9ecef;border-color:#cbd5e1}body>.target-search-dropdown .btn-select-all kbd,body>.target-search-dropdown .btn-clear-selection kbd,.target-search-dropdown .btn-select-all kbd,.target-search-dropdown .btn-clear-selection kbd{font-size:.65rem;padding:.125rem .25rem;background:#f1f5f9;border-radius:2px;color:#6c757d}body>.target-search-dropdown .sort-controls,.target-search-dropdown .sort-controls{display:flex;align-items:center}body>.target-search-dropdown .sort-field-select,.target-search-dropdown .sort-field-select{width:100%;padding:.5rem 1rem;font-size:.875rem;line-height:1.5;color:#212529;background-color:#fff;border:1px solid #dee2e6;border-radius:.25rem;transition:border-color .15s ease-in-out,box-shadow .15s ease-in-out}body>.target-search-dropdown .sort-field-select:focus,.target-search-dropdown .sort-field-select:focus{border-color:#25b9d7;outline:0;box-shadow:0 0 0 .2rem rgba(37,185,215,.25)}body>.target-search-dropdown .sort-field-select::placeholder,.target-search-dropdown .sort-field-select::placeholder{color:#adb5bd}body>.target-search-dropdown .sort-field-select,.target-search-dropdown .sort-field-select{padding:.25rem .5rem;font-size:.75rem;min-width:80px;height:28px;border-radius:.2rem 0 0 .2rem;border-right:none}body>.target-search-dropdown .btn-sort-dir,.target-search-dropdown .btn-sort-dir{display:flex;align-items:center;justify-content:center;width:38px;min-width:38px;flex-shrink:0;height:28px;padding:0;margin:0;color:#6c757d;background:#fff;border:1px solid #dee2e6;border-radius:0 .2rem .2rem 0;cursor:pointer;transition:all .15s ease-in-out}body>.target-search-dropdown .btn-sort-dir i,.target-search-dropdown .btn-sort-dir i{font-size:14px}body>.target-search-dropdown .btn-sort-dir:hover,.target-search-dropdown .btn-sort-dir:hover{background:#e9ecef;color:#212529}body>.target-search-dropdown .btn-sort-dir.active,.target-search-dropdown .btn-sort-dir.active{background:rgba(37,185,215,.1);border-color:#25b9d7;color:#25b9d7}body>.target-search-dropdown .view-mode-select,.target-search-dropdown .view-mode-select{width:100%;padding:.5rem 1rem;font-size:.875rem;line-height:1.5;color:#212529;background-color:#fff;border:1px solid #dee2e6;border-radius:.25rem;transition:border-color .15s ease-in-out,box-shadow .15s ease-in-out}body>.target-search-dropdown .view-mode-select:focus,.target-search-dropdown .view-mode-select:focus{border-color:#25b9d7;outline:0;box-shadow:0 0 0 .2rem rgba(37,185,215,.25)}body>.target-search-dropdown .view-mode-select::placeholder,.target-search-dropdown .view-mode-select::placeholder{color:#adb5bd}body>.target-search-dropdown .view-mode-select,.target-search-dropdown .view-mode-select{padding:.25rem .5rem;font-size:.75rem;min-width:80px;margin-left:.25rem}body>.target-search-dropdown .btn-toggle-filters,body>.target-search-dropdown .btn-show-history,.target-search-dropdown .btn-toggle-filters,.target-search-dropdown .btn-show-history{display:flex;align-items:center;justify-content:center;width:32px;min-width:32px;flex-shrink:0;height:28px;padding:0;margin:0;color:#6c757d;background:#fff;border:1px solid #dee2e6;border-radius:.2rem;cursor:pointer;transition:all .15s ease-in-out}body>.target-search-dropdown .btn-toggle-filters i,body>.target-search-dropdown .btn-show-history i,.target-search-dropdown .btn-toggle-filters i,.target-search-dropdown .btn-show-history i{font-size:14px}body>.target-search-dropdown .btn-toggle-filters:hover,body>.target-search-dropdown .btn-show-history:hover,.target-search-dropdown .btn-toggle-filters:hover,.target-search-dropdown .btn-show-history:hover{background:#e9ecef;color:#212529}body>.target-search-dropdown .btn-toggle-filters.active,body>.target-search-dropdown .btn-show-history.active,.target-search-dropdown .btn-toggle-filters.active,.target-search-dropdown .btn-show-history.active{background:rgba(37,185,215,.1);border-color:#25b9d7;color:#25b9d7}body>.target-search-dropdown .refine-compact,.target-search-dropdown .refine-compact{display:flex;align-items:center}body>.target-search-dropdown .refine-compact .btn-refine-negate,.target-search-dropdown .refine-compact .btn-refine-negate{display:flex;align-items:center;justify-content:center;width:32px;min-width:32px;flex-shrink:0;height:28px;padding:0;margin:0;color:#6c757d;background:#fff;border:1px solid #dee2e6;border-right:none;border-radius:.2rem 0 0 .2rem;cursor:pointer;transition:all .15s ease-in-out}body>.target-search-dropdown .refine-compact .btn-refine-negate:hover,.target-search-dropdown .refine-compact .btn-refine-negate:hover{background:#e9ecef;color:#212529}body>.target-search-dropdown .refine-compact .btn-refine-negate.active,.target-search-dropdown .refine-compact .btn-refine-negate.active{background:#f8d7da;color:#dc3545;border-color:#dc3545}body>.target-search-dropdown .refine-compact .refine-input,.target-search-dropdown .refine-compact .refine-input{width:100%;padding:.5rem 1rem;font-size:.875rem;line-height:1.5;color:#212529;background-color:#fff;border:1px solid #dee2e6;border-radius:.25rem;transition:border-color .15s ease-in-out,box-shadow .15s ease-in-out}body>.target-search-dropdown .refine-compact .refine-input:focus,.target-search-dropdown .refine-compact .refine-input:focus{border-color:#25b9d7;outline:0;box-shadow:0 0 0 .2rem rgba(37,185,215,.25)}body>.target-search-dropdown .refine-compact .refine-input::placeholder,.target-search-dropdown .refine-compact .refine-input::placeholder{color:#adb5bd}body>.target-search-dropdown .refine-compact .refine-input,.target-search-dropdown .refine-compact .refine-input{width:100px;padding:.25rem .5rem;font-size:.75rem;border-radius:0 .2rem .2rem 0}body>.target-search-dropdown .refine-compact .btn-clear-refine,.target-search-dropdown .refine-compact .btn-clear-refine{display:flex;align-items:center;justify-content:center;width:28px;height:28px;padding:0;margin:0;margin-left:-1px;color:#6c757d;background:#fff;border:1px solid #dee2e6;border-radius:0 .2rem .2rem 0;cursor:pointer;transition:all .15s ease-in-out}body>.target-search-dropdown .refine-compact .btn-clear-refine:hover,.target-search-dropdown .refine-compact .btn-clear-refine:hover{background:#e9ecef;color:#212529}body>.target-search-dropdown .filter-panel,.target-search-dropdown .filter-panel{display:none;padding:1rem;background:#f8fafc;border-bottom:1px solid #dee2e6}body>.target-search-dropdown .filter-panel.show,.target-search-dropdown .filter-panel.show{display:block}body>.target-search-dropdown .filter-row,.target-search-dropdown .filter-row{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap;margin-bottom:.5rem}body>.target-search-dropdown .filter-row:last-child,.target-search-dropdown .filter-row:last-child{margin-bottom:0}body>.target-search-dropdown .filter-label,.target-search-dropdown .filter-label{display:inline-flex;align-items:center;gap:.25rem;font-size:.75rem;color:#495057;cursor:pointer}body>.target-search-dropdown .filter-label input[type=checkbox],.target-search-dropdown .filter-label input[type=checkbox]{margin:0}body>.target-search-dropdown .filter-price-range,.target-search-dropdown .filter-price-range{display:flex;align-items:center;gap:.25rem}body>.target-search-dropdown .filter-price-range .filter-price-label,.target-search-dropdown .filter-price-range .filter-price-label{font-size:.75rem;color:#6c757d}body>.target-search-dropdown .filter-price-range .filter-price-min,body>.target-search-dropdown .filter-price-range .filter-price-max,.target-search-dropdown .filter-price-range .filter-price-min,.target-search-dropdown .filter-price-range .filter-price-max{width:100%;padding:.5rem 1rem;font-size:.875rem;line-height:1.5;color:#212529;background-color:#fff;border:1px solid #dee2e6;border-radius:.25rem;transition:border-color .15s ease-in-out,box-shadow .15s ease-in-out}body>.target-search-dropdown .filter-price-range .filter-price-min:focus,body>.target-search-dropdown .filter-price-range .filter-price-max:focus,.target-search-dropdown .filter-price-range .filter-price-min:focus,.target-search-dropdown .filter-price-range .filter-price-max:focus{border-color:#25b9d7;outline:0;box-shadow:0 0 0 .2rem rgba(37,185,215,.25)}body>.target-search-dropdown .filter-price-range .filter-price-min::placeholder,body>.target-search-dropdown .filter-price-range .filter-price-max::placeholder,.target-search-dropdown .filter-price-range .filter-price-min::placeholder,.target-search-dropdown .filter-price-range .filter-price-max::placeholder{color:#adb5bd}body>.target-search-dropdown .filter-price-range .filter-price-min,body>.target-search-dropdown .filter-price-range .filter-price-max,.target-search-dropdown .filter-price-range .filter-price-min,.target-search-dropdown .filter-price-range .filter-price-max{width:70px;padding:.25rem .5rem;font-size:.75rem}body>.target-search-dropdown .filter-price-range .filter-price-sep,.target-search-dropdown .filter-price-range .filter-price-sep{color:#6c757d}body>.target-search-dropdown .btn-clear-filters,.target-search-dropdown .btn-clear-filters{padding:0;margin:0;background:none;border:none;cursor:pointer;font:inherit;color:inherit}body>.target-search-dropdown .btn-clear-filters:focus,.target-search-dropdown .btn-clear-filters:focus{outline:none}body>.target-search-dropdown .btn-clear-filters,.target-search-dropdown .btn-clear-filters{display:flex;align-items:center;justify-content:center;width:24px;height:24px;color:#6c757d;border-radius:.2rem;cursor:pointer;margin-left:auto}body>.target-search-dropdown .btn-clear-filters:hover,.target-search-dropdown .btn-clear-filters:hover{background:#e2e8f0;color:#212529}body>.target-search-dropdown .filter-row-multi,.target-search-dropdown .filter-row-multi{flex-direction:column;align-items:stretch;gap:.5rem}body>.target-search-dropdown .filter-subrow,.target-search-dropdown .filter-subrow{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap}body>.target-search-dropdown .filter-range-group,body>.target-search-dropdown .filter-date-group,body>.target-search-dropdown .filter-select-group,.target-search-dropdown .filter-range-group,.target-search-dropdown .filter-date-group,.target-search-dropdown .filter-select-group{display:flex;align-items:center;gap:.25rem}body>.target-search-dropdown .filter-range-label,body>.target-search-dropdown .filter-date-label,body>.target-search-dropdown .filter-select-label,body>.target-search-dropdown .filter-row-label,.target-search-dropdown .filter-range-label,.target-search-dropdown .filter-date-label,.target-search-dropdown .filter-select-label,.target-search-dropdown .filter-row-label{font-size:.75rem;color:#6c757d;white-space:nowrap}body>.target-search-dropdown .filter-range-label i,body>.target-search-dropdown .filter-date-label i,body>.target-search-dropdown .filter-select-label i,body>.target-search-dropdown .filter-row-label i,.target-search-dropdown .filter-range-label i,.target-search-dropdown .filter-date-label i,.target-search-dropdown .filter-select-label i,.target-search-dropdown .filter-row-label i{margin-right:.25rem}body>.target-search-dropdown .filter-range-sep,.target-search-dropdown .filter-range-sep{color:#6c757d}body>.target-search-dropdown .filter-product-count-min,body>.target-search-dropdown .filter-product-count-max,body>.target-search-dropdown .filter-sales-min,body>.target-search-dropdown .filter-sales-max,body>.target-search-dropdown .filter-turnover-min,body>.target-search-dropdown .filter-turnover-max,body>.target-search-dropdown .filter-date-add-from,body>.target-search-dropdown .filter-date-add-to,body>.target-search-dropdown .filter-last-product-from,body>.target-search-dropdown .filter-last-product-to,.target-search-dropdown .filter-product-count-min,.target-search-dropdown .filter-product-count-max,.target-search-dropdown .filter-sales-min,.target-search-dropdown .filter-sales-max,.target-search-dropdown .filter-turnover-min,.target-search-dropdown .filter-turnover-max,.target-search-dropdown .filter-date-add-from,.target-search-dropdown .filter-date-add-to,.target-search-dropdown .filter-last-product-from,.target-search-dropdown .filter-last-product-to{width:100%;padding:.5rem 1rem;font-size:.875rem;line-height:1.5;color:#212529;background-color:#fff;border:1px solid #dee2e6;border-radius:.25rem;transition:border-color .15s ease-in-out,box-shadow .15s ease-in-out}body>.target-search-dropdown .filter-product-count-min:focus,body>.target-search-dropdown .filter-product-count-max:focus,body>.target-search-dropdown .filter-sales-min:focus,body>.target-search-dropdown .filter-sales-max:focus,body>.target-search-dropdown .filter-turnover-min:focus,body>.target-search-dropdown .filter-turnover-max:focus,body>.target-search-dropdown .filter-date-add-from:focus,body>.target-search-dropdown .filter-date-add-to:focus,body>.target-search-dropdown .filter-last-product-from:focus,body>.target-search-dropdown .filter-last-product-to:focus,.target-search-dropdown .filter-product-count-min:focus,.target-search-dropdown .filter-product-count-max:focus,.target-search-dropdown .filter-sales-min:focus,.target-search-dropdown .filter-sales-max:focus,.target-search-dropdown .filter-turnover-min:focus,.target-search-dropdown .filter-turnover-max:focus,.target-search-dropdown .filter-date-add-from:focus,.target-search-dropdown .filter-date-add-to:focus,.target-search-dropdown .filter-last-product-from:focus,.target-search-dropdown .filter-last-product-to:focus{border-color:#25b9d7;outline:0;box-shadow:0 0 0 .2rem rgba(37,185,215,.25)}body>.target-search-dropdown .filter-product-count-min::placeholder,body>.target-search-dropdown .filter-product-count-max::placeholder,body>.target-search-dropdown .filter-sales-min::placeholder,body>.target-search-dropdown .filter-sales-max::placeholder,body>.target-search-dropdown .filter-turnover-min::placeholder,body>.target-search-dropdown .filter-turnover-max::placeholder,body>.target-search-dropdown .filter-date-add-from::placeholder,body>.target-search-dropdown .filter-date-add-to::placeholder,body>.target-search-dropdown .filter-last-product-from::placeholder,body>.target-search-dropdown .filter-last-product-to::placeholder,.target-search-dropdown .filter-product-count-min::placeholder,.target-search-dropdown .filter-product-count-max::placeholder,.target-search-dropdown .filter-sales-min::placeholder,.target-search-dropdown .filter-sales-max::placeholder,.target-search-dropdown .filter-turnover-min::placeholder,.target-search-dropdown .filter-turnover-max::placeholder,.target-search-dropdown .filter-date-add-from::placeholder,.target-search-dropdown .filter-date-add-to::placeholder,.target-search-dropdown .filter-last-product-from::placeholder,.target-search-dropdown .filter-last-product-to::placeholder{color:#adb5bd}body>.target-search-dropdown .filter-product-count-min,body>.target-search-dropdown .filter-product-count-max,body>.target-search-dropdown .filter-sales-min,body>.target-search-dropdown .filter-sales-max,body>.target-search-dropdown .filter-turnover-min,body>.target-search-dropdown .filter-turnover-max,body>.target-search-dropdown .filter-date-add-from,body>.target-search-dropdown .filter-date-add-to,body>.target-search-dropdown .filter-last-product-from,body>.target-search-dropdown .filter-last-product-to,.target-search-dropdown .filter-product-count-min,.target-search-dropdown .filter-product-count-max,.target-search-dropdown .filter-sales-min,.target-search-dropdown .filter-sales-max,.target-search-dropdown .filter-turnover-min,.target-search-dropdown .filter-turnover-max,.target-search-dropdown .filter-date-add-from,.target-search-dropdown .filter-date-add-to,.target-search-dropdown .filter-last-product-from,.target-search-dropdown .filter-last-product-to{width:70px;padding:.25rem .5rem;font-size:.75rem}body>.target-search-dropdown .filter-depth-select,body>.target-search-dropdown .filter-attribute-group-select,body>.target-search-dropdown .filter-feature-group-select,.target-search-dropdown .filter-depth-select,.target-search-dropdown .filter-attribute-group-select,.target-search-dropdown .filter-feature-group-select{width:100%;padding:.5rem 1rem;font-size:.875rem;line-height:1.5;color:#212529;background-color:#fff;border:1px solid #dee2e6;border-radius:.25rem;transition:border-color .15s ease-in-out,box-shadow .15s ease-in-out}body>.target-search-dropdown .filter-depth-select:focus,body>.target-search-dropdown .filter-attribute-group-select:focus,body>.target-search-dropdown .filter-feature-group-select:focus,.target-search-dropdown .filter-depth-select:focus,.target-search-dropdown .filter-attribute-group-select:focus,.target-search-dropdown .filter-feature-group-select:focus{border-color:#25b9d7;outline:0;box-shadow:0 0 0 .2rem rgba(37,185,215,.25)}body>.target-search-dropdown .filter-depth-select::placeholder,body>.target-search-dropdown .filter-attribute-group-select::placeholder,body>.target-search-dropdown .filter-feature-group-select::placeholder,.target-search-dropdown .filter-depth-select::placeholder,.target-search-dropdown .filter-attribute-group-select::placeholder,.target-search-dropdown .filter-feature-group-select::placeholder{color:#adb5bd}body>.target-search-dropdown .filter-depth-select,body>.target-search-dropdown .filter-attribute-group-select,body>.target-search-dropdown .filter-feature-group-select,.target-search-dropdown .filter-depth-select,.target-search-dropdown .filter-attribute-group-select,.target-search-dropdown .filter-feature-group-select{padding:.25rem .5rem;font-size:.75rem;min-width:100px}body>.target-search-dropdown .filter-attributes-container,body>.target-search-dropdown .filter-features-container,body>.target-search-dropdown .filter-values-container,.target-search-dropdown .filter-attributes-container,.target-search-dropdown .filter-features-container,.target-search-dropdown .filter-values-container{display:flex;flex-wrap:wrap;gap:.25rem}body>.target-search-dropdown .filter-group-toggle,.target-search-dropdown .filter-group-toggle{padding:0;margin:0;background:none;border:none;cursor:pointer;font:inherit;color:inherit}body>.target-search-dropdown .filter-group-toggle:focus,.target-search-dropdown .filter-group-toggle:focus{outline:none}body>.target-search-dropdown .filter-group-toggle,.target-search-dropdown .filter-group-toggle{display:inline-flex;align-items:center;gap:.25rem;padding:.25rem .5rem;font-size:.75rem;color:#495057;background:#fff;border:1px solid #dee2e6;border-radius:.2rem;cursor:pointer;transition:all .15s ease-in-out}body>.target-search-dropdown .filter-group-toggle:hover,.target-search-dropdown .filter-group-toggle:hover{background:#e9ecef;border-color:#cbd5e1}body>.target-search-dropdown .filter-group-toggle.active,.target-search-dropdown .filter-group-toggle.active{background:rgba(37,185,215,.1);border-color:#25b9d7;color:#25b9d7}body>.target-search-dropdown .filter-group-toggle.active .toggle-count,.target-search-dropdown .filter-group-toggle.active .toggle-count{color:#25b9d7}body>.target-search-dropdown .filter-group-toggle.has-selection,.target-search-dropdown .filter-group-toggle.has-selection{border-color:#28a745;background:rgba(40,167,69,.05)}body>.target-search-dropdown .filter-group-toggle.has-selection .toggle-count,.target-search-dropdown .filter-group-toggle.has-selection .toggle-count{color:#28a745;font-weight:600}body>.target-search-dropdown .filter-group-toggle .toggle-name,.target-search-dropdown .filter-group-toggle .toggle-name{font-weight:500}body>.target-search-dropdown .filter-group-toggle .toggle-count,.target-search-dropdown .filter-group-toggle .toggle-count{display:inline-flex;align-items:center;gap:.125rem;color:#6c757d;font-size:.65rem}body>.target-search-dropdown .filter-group-toggle .toggle-count i,.target-search-dropdown .filter-group-toggle .toggle-count i{font-size:10px;color:#25b9d7}body>.target-search-dropdown .filter-group-toggle .toggle-count.clickable,.target-search-dropdown .filter-group-toggle .toggle-count.clickable{cursor:pointer;padding:.125rem .25rem;border-radius:.2rem;transition:all .15s ease-in-out}body>.target-search-dropdown .filter-group-toggle .toggle-count.clickable:hover,.target-search-dropdown .filter-group-toggle .toggle-count.clickable:hover{background:rgba(37,185,215,.1);color:#25b9d7}body>.target-search-dropdown .filter-group-toggle .toggle-count.clickable:hover i,.target-search-dropdown .filter-group-toggle .toggle-count.clickable:hover i{color:#25b9d7}body>.target-search-dropdown .filter-group-toggle .toggle-count.clickable.popover-open,.target-search-dropdown .filter-group-toggle .toggle-count.clickable.popover-open{background:#25b9d7;color:#fff}body>.target-search-dropdown .filter-group-toggle .toggle-count.clickable.popover-open i,.target-search-dropdown .filter-group-toggle .toggle-count.clickable.popover-open i{color:#fff}body>.target-search-dropdown .filter-group-toggle .toggle-count.clickable.loading i,.target-search-dropdown .filter-group-toggle .toggle-count.clickable.loading i{animation:spin .6s linear infinite}body>.target-search-dropdown .filter-chip,body>.target-search-dropdown .filter-attr-chip,body>.target-search-dropdown .filter-feat-chip,.target-search-dropdown .filter-chip,.target-search-dropdown .filter-attr-chip,.target-search-dropdown .filter-feat-chip{padding:0;margin:0;background:none;border:none;cursor:pointer;font:inherit;color:inherit}body>.target-search-dropdown .filter-chip:focus,.target-search-dropdown .filter-chip:focus,.target-search-dropdown .filter-attr-chip:focus,.target-search-dropdown .filter-feat-chip:focus{outline:none}body>.target-search-dropdown .filter-chip,body>.target-search-dropdown .filter-attr-chip,body>.target-search-dropdown .filter-feat-chip,.target-search-dropdown .filter-chip,.target-search-dropdown .filter-attr-chip,.target-search-dropdown .filter-feat-chip{display:inline-flex;align-items:center;gap:.25rem;padding:.25rem .5rem;font-size:.75rem;color:#495057;background:#f1f5f9;border:1px solid rgba(0,0,0,0);border-radius:.2rem;cursor:pointer;transition:all .15s ease-in-out}body>.target-search-dropdown .filter-chip:hover,.target-search-dropdown .filter-chip:hover,.target-search-dropdown .filter-attr-chip:hover,.target-search-dropdown .filter-feat-chip:hover{background:#e2e8f0}body>.target-search-dropdown .filter-chip.active,.target-search-dropdown .filter-chip.active,.target-search-dropdown .active.filter-attr-chip,.target-search-dropdown .active.filter-feat-chip{background:#25b9d7;color:#fff}body>.target-search-dropdown .filter-row-values,.target-search-dropdown .filter-row-values{display:flex;align-items:center;gap:.5rem;padding:.5rem;background:#fff;border:1px solid #dee2e6;border-radius:.2rem}body>.target-search-dropdown .filter-row-values .filter-values-container,.target-search-dropdown .filter-row-values .filter-values-container{display:flex;flex-wrap:wrap;align-items:center;gap:.25rem;flex:1}body>.target-search-dropdown .filter-row-values .filter-values-label,.target-search-dropdown .filter-row-values .filter-values-label{font-size:.75rem;font-weight:600;color:#495057;white-space:nowrap}body>.target-search-dropdown .filter-row-values .btn-close-values,.target-search-dropdown .filter-row-values .btn-close-values{padding:0;margin:0;background:none;border:none;cursor:pointer;font:inherit;color:inherit}body>.target-search-dropdown .filter-row-values .btn-close-values:focus,.target-search-dropdown .filter-row-values .btn-close-values:focus{outline:none}body>.target-search-dropdown .filter-row-values .btn-close-values,.target-search-dropdown .filter-row-values .btn-close-values{display:flex;align-items:center;justify-content:center;flex-shrink:0;width:20px;height:20px;color:#6c757d;border-radius:.2rem}body>.target-search-dropdown .filter-row-values .btn-close-values:hover,.target-search-dropdown .filter-row-values .btn-close-values:hover{background:#e2e8f0;color:#212529}body>.target-search-dropdown .chip-name,.target-search-dropdown .chip-name{font-weight:500}body>.target-search-dropdown .chip-count,.target-search-dropdown .chip-count{font-size:.6rem;color:#6c757d;margin-left:.125rem}body>.target-search-dropdown .filter-chip.active .chip-count,.target-search-dropdown .filter-chip.active .chip-count,.target-search-dropdown .active.filter-attr-chip .chip-count,.target-search-dropdown .active.filter-feat-chip .chip-count{color:hsla(0,0%,100%,.8)}body>.target-search-dropdown .dropdown-content,.target-search-dropdown .dropdown-content{max-height:400px;overflow-y:auto}body>.target-search-dropdown .dropdown-content::-webkit-scrollbar,.target-search-dropdown .dropdown-content::-webkit-scrollbar{width:6px;height:6px}body>.target-search-dropdown .dropdown-content::-webkit-scrollbar-track,.target-search-dropdown .dropdown-content::-webkit-scrollbar-track{background:#f8f9fa;border-radius:3px}body>.target-search-dropdown .dropdown-content::-webkit-scrollbar-thumb,.target-search-dropdown .dropdown-content::-webkit-scrollbar-thumb{background:#dee2e6;border-radius:3px}body>.target-search-dropdown .dropdown-content::-webkit-scrollbar-thumb:hover,.target-search-dropdown .dropdown-content::-webkit-scrollbar-thumb:hover{background:#ced4da}body>.target-search-dropdown .dropdown-items,.target-search-dropdown .dropdown-items{display:flex;flex-direction:column;gap:.25rem;padding:.5rem}body>.target-search-dropdown .item-checkbox,.target-search-dropdown .item-checkbox{flex-shrink:0;width:16px;height:16px;border:2px solid #ced4da;border-radius:3px;transition:all .15s ease-in-out}.dropdown-item.selected body>.target-search-dropdown .item-checkbox,.dropdown-item.selected .target-search-dropdown .item-checkbox{background:#25b9d7;border-color:#25b9d7}body>.target-search-dropdown .item-image,.target-search-dropdown .item-image{flex-shrink:0;width:40px;height:40px;object-fit:cover;border-radius:.2rem;background:#f1f5f9}body>.target-search-dropdown .item-info,.target-search-dropdown .item-info{flex:1;min-width:0}body>.target-search-dropdown .item-name,.target-search-dropdown .item-name{font-size:.875rem;font-weight:500;color:#212529;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}body>.target-search-dropdown .item-meta,.target-search-dropdown .item-meta{font-size:.75rem;color:#6c757d;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}body>.target-search-dropdown .dropdown-footer,.target-search-dropdown .dropdown-footer{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.5rem 1rem;background:#f8fafc;border-top:1px solid #dee2e6;border-radius:0 0 .3rem .3rem}body>.target-search-dropdown .dropdown-footer-left,.target-search-dropdown .dropdown-footer-left{display:flex;align-items:center;gap:.25rem;font-size:.75rem;color:#6c757d}body>.target-search-dropdown .dropdown-footer-left .load-label,.target-search-dropdown .dropdown-footer-left .load-label{color:#6c757d}body>.target-search-dropdown .dropdown-footer-left .load-more-select,body>.target-search-dropdown .dropdown-footer-left select.load-more-select,.target-search-dropdown .dropdown-footer-left .load-more-select,.target-search-dropdown .dropdown-footer-left select.load-more-select{appearance:none;padding:.25rem 1.5rem .25rem .5rem;border:1px solid #dee2e6;border-radius:.2rem;background:#fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='8' height='8' viewBox='0 0 8 8'%3E%3Cpath fill='%23666' d='M0 2l4 4 4-4z'/%3E%3C/svg%3E") no-repeat right .4rem center;background-size:8px;font-size:.75rem;color:#495057;cursor:pointer;min-width:55px}body>.target-search-dropdown .dropdown-footer-left .load-more-select:hover,body>.target-search-dropdown .dropdown-footer-left select.load-more-select:hover,.target-search-dropdown .dropdown-footer-left .load-more-select:hover,.target-search-dropdown .dropdown-footer-left select.load-more-select:hover{border-color:#25b9d7}body>.target-search-dropdown .dropdown-footer-left .load-more-select:focus,body>.target-search-dropdown .dropdown-footer-left select.load-more-select:focus,.target-search-dropdown .dropdown-footer-left .load-more-select:focus,.target-search-dropdown .dropdown-footer-left select.load-more-select:focus{outline:none;border-color:#25b9d7}body>.target-search-dropdown .dropdown-footer-left .remaining-text,.target-search-dropdown .dropdown-footer-left .remaining-text{color:#6c757d}body>.target-search-dropdown .dropdown-footer-left .remaining-text strong,.target-search-dropdown .dropdown-footer-left .remaining-text strong{color:#495057;font-weight:600}body>.target-search-dropdown .dropdown-footer-right,.target-search-dropdown .dropdown-footer-right{display:flex;align-items:center;gap:.5rem}body>.target-search-dropdown .dropdown-action-btn,.target-search-dropdown .dropdown-action-btn{padding:0;margin:0;background:none;border:none;cursor:pointer;font:inherit;color:inherit}body>.target-search-dropdown .dropdown-action-btn:focus,.target-search-dropdown .dropdown-action-btn:focus{outline:none}body>.target-search-dropdown .dropdown-action-btn,.target-search-dropdown .dropdown-action-btn{display:inline-flex;align-items:center;gap:.375rem;padding:.375rem .75rem;font-size:.75rem;font-weight:500;border-radius:.2rem;transition:all .15s ease-in-out;white-space:nowrap}body>.target-search-dropdown .dropdown-action-btn .btn-shortcut,.target-search-dropdown .dropdown-action-btn .btn-shortcut{font-size:10px;padding:.125rem .25rem;background:rgba(0,0,0,.08);border-radius:3px;font-weight:400}body>.target-search-dropdown .dropdown-action-btn.btn-cancel,.target-search-dropdown .dropdown-action-btn.btn-cancel{color:#495057;background:#fff;border:1px solid #dee2e6}body>.target-search-dropdown .dropdown-action-btn.btn-cancel:hover,.target-search-dropdown .dropdown-action-btn.btn-cancel:hover{background:#f1f5f9;border-color:#ced4da}body>.target-search-dropdown .dropdown-action-btn.btn-apply,body>.target-search-dropdown .dropdown-action-btn.btn-save,.target-search-dropdown .dropdown-action-btn.btn-apply,.target-search-dropdown .dropdown-action-btn.btn-save{color:#fff;background:#25b9d7;border:1px solid #25b9d7}body>.target-search-dropdown .dropdown-action-btn.btn-apply:hover,body>.target-search-dropdown .dropdown-action-btn.btn-save:hover,.target-search-dropdown .dropdown-action-btn.btn-apply:hover,.target-search-dropdown .dropdown-action-btn.btn-save:hover{background:#1a9ab7;border-color:#1a9ab7}body>.target-search-dropdown .dropdown-action-btn.btn-apply .btn-shortcut,body>.target-search-dropdown .dropdown-action-btn.btn-save .btn-shortcut,.target-search-dropdown .dropdown-action-btn.btn-apply .btn-shortcut,.target-search-dropdown .dropdown-action-btn.btn-save .btn-shortcut{background:hsla(0,0%,100%,.2)}body>.target-search-dropdown .dropdown-footer-info,.target-search-dropdown .dropdown-footer-info{font-size:.75rem;color:#6c757d}body>.target-search-dropdown .btn-cancel-dropdown,.target-search-dropdown .btn-cancel-dropdown{padding:0;margin:0;background:none;border:none;cursor:pointer;font:inherit;color:inherit}body>.target-search-dropdown .btn-cancel-dropdown:focus,.target-search-dropdown .btn-cancel-dropdown:focus{outline:none}body>.target-search-dropdown .btn-cancel-dropdown,.target-search-dropdown .btn-cancel-dropdown{display:inline-flex;align-items:center;gap:.25rem;padding:.375rem .75rem;font-size:.875rem;color:#fff;background:#25b9d7;border:1px solid #25b9d7;border-radius:.2rem;cursor:pointer}body>.target-search-dropdown .btn-cancel-dropdown:hover,.target-search-dropdown .btn-cancel-dropdown:hover{background:#1a9ab7;border-color:#1a9ab7}body>.target-search-dropdown .btn-cancel-dropdown i,.target-search-dropdown .btn-cancel-dropdown i{font-size:10px}body>.target-search-dropdown .btn-cancel-dropdown kbd,.target-search-dropdown .btn-cancel-dropdown kbd{font-size:.65rem;padding:.125rem .25rem;background:hsla(0,0%,100%,.2);border-radius:2px;color:hsla(0,0%,100%,.8)}body>.target-search-dropdown .filter-chips-row,.target-search-dropdown .filter-chips-row{display:flex;flex-wrap:wrap;gap:.25rem;padding:.25rem 1rem;border-bottom:1px solid #dee2e6}body>.target-search-dropdown .filter-chip,body>.target-search-dropdown .filter-attr-chip,body>.target-search-dropdown .filter-feat-chip,.target-search-dropdown .filter-chip,.target-search-dropdown .filter-attr-chip,.target-search-dropdown .filter-feat-chip{display:inline-flex;align-items:center;gap:.25rem;padding:.25rem .5rem;font-size:.75rem;font-weight:500;background:#e9ecef;color:#495057;border-radius:50rem}body>.target-search-dropdown .filter-chip .chip-remove,.target-search-dropdown .filter-chip .chip-remove,.target-search-dropdown .filter-attr-chip .chip-remove,.target-search-dropdown .filter-feat-chip .chip-remove{padding:0;margin:0;background:none;border:none;cursor:pointer;font:inherit;color:inherit}body>.target-search-dropdown .filter-chip .chip-remove:focus,.target-search-dropdown .filter-chip .chip-remove:focus,.target-search-dropdown .filter-attr-chip .chip-remove:focus,.target-search-dropdown .filter-feat-chip .chip-remove:focus{outline:none}body>.target-search-dropdown .filter-chip .chip-remove,.target-search-dropdown .filter-chip .chip-remove,.target-search-dropdown .filter-attr-chip .chip-remove,.target-search-dropdown .filter-feat-chip .chip-remove{display:flex;align-items:center;justify-content:center;width:14px;height:14px;font-size:10px;color:#6c757d;border-radius:50%}body>.target-search-dropdown .filter-chip .chip-remove:hover,.target-search-dropdown .filter-chip .chip-remove:hover,.target-search-dropdown .filter-attr-chip .chip-remove:hover,.target-search-dropdown .filter-feat-chip .chip-remove:hover{background:rgba(0,0,0,.1);color:#dc3545}body>.target-search-dropdown .dropdown-empty,body>.target-search-dropdown .dropdown-loading,.target-search-dropdown .dropdown-empty,.target-search-dropdown .dropdown-loading{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:2rem;text-align:center;color:#6c757d;font-size:.875rem}body>.target-search-dropdown .dropdown-empty i,body>.target-search-dropdown .dropdown-loading i,.target-search-dropdown .dropdown-empty i,.target-search-dropdown .dropdown-loading i{font-size:2rem;opacity:.5;margin-bottom:.5rem}body>.target-search-dropdown .search-history-panel,.target-search-dropdown .search-history-panel{display:none;padding:.5rem;background:#fff;border-bottom:1px solid #dee2e6}body>.target-search-dropdown .search-history-panel.show,.target-search-dropdown .search-history-panel.show{display:block}body>.target-search-dropdown .history-item,.target-search-dropdown .history-item{display:flex;align-items:center;gap:.5rem;padding:.25rem .5rem;border-radius:.2rem;cursor:pointer;transition:background .15s ease-in-out}body>.target-search-dropdown .history-item:hover,.target-search-dropdown .history-item:hover{background:#e9ecef}body>.target-search-dropdown .history-item i,.target-search-dropdown .history-item i{color:#6c757d;font-size:.875rem}body>.target-search-dropdown .history-item span,.target-search-dropdown .history-item span{flex:1;font-size:.875rem;color:#212529}body>.target-search-dropdown .history-item .btn-remove-history,body>.target-search-dropdown .history-item .btn-delete-history,.target-search-dropdown .history-item .btn-remove-history,.target-search-dropdown .history-item .btn-delete-history{padding:0;margin:0;background:none;border:none;cursor:pointer;font:inherit;color:inherit}body>.target-search-dropdown .history-item .btn-remove-history:focus,body>.target-search-dropdown .history-item .btn-delete-history:focus,.target-search-dropdown .history-item .btn-remove-history:focus,.target-search-dropdown .history-item .btn-delete-history:focus{outline:none}body>.target-search-dropdown .history-item .btn-remove-history,body>.target-search-dropdown .history-item .btn-delete-history,.target-search-dropdown .history-item .btn-remove-history,.target-search-dropdown .history-item .btn-delete-history{display:flex;align-items:center;justify-content:center;width:20px;height:20px;color:#6c757d;border-radius:.2rem;transition:all .15s ease-in-out}body>.target-search-dropdown .history-item .btn-remove-history:hover,body>.target-search-dropdown .history-item .btn-delete-history:hover,.target-search-dropdown .history-item .btn-remove-history:hover,.target-search-dropdown .history-item .btn-delete-history:hover{background:#e2e8f0;color:#dc3545}body>.target-search-dropdown .search-history-list,.target-search-dropdown .search-history-list{display:flex;flex-direction:column;gap:.25rem}body>.target-search-dropdown .results-header,.target-search-dropdown .results-header{display:flex;align-items:center;gap:.5rem;padding:.25rem 1rem;background:#f1f5f9;border-bottom:1px solid #dee2e6;font-size:.75rem;font-weight:600;color:#495057}body>.target-search-dropdown .results-header .header-spacer,.target-search-dropdown .results-header .header-spacer{width:58px;flex-shrink:0}body>.target-search-dropdown .results-header .header-col,.target-search-dropdown .results-header .header-col{flex-shrink:0;width:70px;text-align:right}body>.target-search-dropdown .results-header .header-col-name,.target-search-dropdown .results-header .header-col-name{flex:1;text-align:left}body>.target-search-dropdown .dropdown-results,.target-search-dropdown .dropdown-results{padding:0 .5rem;background:#fff;min-height:200px}body>.target-search-dropdown .dropdown-item,.target-search-dropdown .dropdown-item{position:relative;display:flex;align-items:center;gap:.5rem;padding:.5rem 0;background:#fff;border:none;border-bottom:1px solid #dee2e6;border-radius:0;cursor:pointer;transition:background .15s ease-in-out}body>.target-search-dropdown .dropdown-item:last-child,.target-search-dropdown .dropdown-item:last-child{border-bottom:none}body>.target-search-dropdown .dropdown-item:hover,.target-search-dropdown .dropdown-item:hover{background:#e9ecef}body>.target-search-dropdown .dropdown-item.selected,.target-search-dropdown .dropdown-item.selected{background:rgba(37,185,215,.1)}body>.target-search-dropdown .dropdown-item.selected .result-checkbox,.target-search-dropdown .dropdown-item.selected .result-checkbox{background:#25b9d7;border-color:#25b9d7;color:#fff}body>.target-search-dropdown .dropdown-item.selected .result-checkbox i,.target-search-dropdown .dropdown-item.selected .result-checkbox i{display:block}body>.target-search-dropdown .dropdown-item.disabled,.target-search-dropdown .dropdown-item.disabled{opacity:.5;cursor:not-allowed}body>.target-search-dropdown .result-checkbox,.target-search-dropdown .result-checkbox{display:flex;align-items:center;justify-content:center;flex-shrink:0;width:18px;height:18px;background:#fff;border:2px solid #ced4da;border-radius:3px;transition:all .15s ease-in-out}body>.target-search-dropdown .result-checkbox i,.target-search-dropdown .result-checkbox i{display:none;font-size:10px}body>.target-search-dropdown.view-cols-2 .dropdown-results,.target-search-dropdown.view-cols-2 .dropdown-results{display:grid;grid-template-columns:repeat(2, 1fr);gap:0;padding:0;border-top:1px solid #dee2e6;border-left:1px solid #dee2e6}body>.target-search-dropdown.view-cols-3 .dropdown-results,.target-search-dropdown.view-cols-3 .dropdown-results{display:grid;grid-template-columns:repeat(3, 1fr);gap:0;padding:0;border-top:1px solid #dee2e6;border-left:1px solid #dee2e6}body>.target-search-dropdown.view-cols-4 .dropdown-results,.target-search-dropdown.view-cols-4 .dropdown-results{display:grid;grid-template-columns:repeat(4, 1fr);gap:0;padding:0;border-top:1px solid #dee2e6;border-left:1px solid #dee2e6}body>.target-search-dropdown.view-cols-5 .dropdown-results,.target-search-dropdown.view-cols-5 .dropdown-results{display:grid;grid-template-columns:repeat(5, 1fr);gap:0;padding:0;border-top:1px solid #dee2e6;border-left:1px solid #dee2e6}body>.target-search-dropdown.view-cols-6 .dropdown-results,.target-search-dropdown.view-cols-6 .dropdown-results{display:grid;grid-template-columns:repeat(6, 1fr);gap:0;padding:0;border-top:1px solid #dee2e6;border-left:1px solid #dee2e6}body>.target-search-dropdown.view-cols-7 .dropdown-results,.target-search-dropdown.view-cols-7 .dropdown-results{display:grid;grid-template-columns:repeat(7, 1fr);gap:0;padding:0;border-top:1px solid #dee2e6;border-left:1px solid #dee2e6}body>.target-search-dropdown.view-cols-8 .dropdown-results,.target-search-dropdown.view-cols-8 .dropdown-results{display:grid;grid-template-columns:repeat(8, 1fr);gap:0;padding:0;border-top:1px solid #dee2e6;border-left:1px solid #dee2e6}body>.target-search-dropdown.view-cols-2 .dropdown-item,body>.target-search-dropdown.view-cols-3 .dropdown-item,body>.target-search-dropdown.view-cols-4 .dropdown-item,body>.target-search-dropdown.view-cols-5 .dropdown-item,body>.target-search-dropdown.view-cols-6 .dropdown-item,body>.target-search-dropdown.view-cols-7 .dropdown-item,body>.target-search-dropdown.view-cols-8 .dropdown-item,.target-search-dropdown.view-cols-2 .dropdown-item,.target-search-dropdown.view-cols-3 .dropdown-item,.target-search-dropdown.view-cols-4 .dropdown-item,.target-search-dropdown.view-cols-5 .dropdown-item,.target-search-dropdown.view-cols-6 .dropdown-item,.target-search-dropdown.view-cols-7 .dropdown-item,.target-search-dropdown.view-cols-8 .dropdown-item{flex-direction:column;align-items:center;text-align:center;padding:.5rem;border:none;border-right:1px solid #dee2e6;border-bottom:1px solid #dee2e6;border-radius:0}body>.target-search-dropdown.view-cols-2 .dropdown-item .result-checkbox,body>.target-search-dropdown.view-cols-3 .dropdown-item .result-checkbox,body>.target-search-dropdown.view-cols-4 .dropdown-item .result-checkbox,body>.target-search-dropdown.view-cols-5 .dropdown-item .result-checkbox,body>.target-search-dropdown.view-cols-6 .dropdown-item .result-checkbox,body>.target-search-dropdown.view-cols-7 .dropdown-item .result-checkbox,body>.target-search-dropdown.view-cols-8 .dropdown-item .result-checkbox,.target-search-dropdown.view-cols-2 .dropdown-item .result-checkbox,.target-search-dropdown.view-cols-3 .dropdown-item .result-checkbox,.target-search-dropdown.view-cols-4 .dropdown-item .result-checkbox,.target-search-dropdown.view-cols-5 .dropdown-item .result-checkbox,.target-search-dropdown.view-cols-6 .dropdown-item .result-checkbox,.target-search-dropdown.view-cols-7 .dropdown-item .result-checkbox,.target-search-dropdown.view-cols-8 .dropdown-item .result-checkbox{position:absolute;top:.25rem;left:.25rem}body>.target-search-dropdown.view-cols-2 .dropdown-item .result-image,body>.target-search-dropdown.view-cols-2 .dropdown-item .result-icon,body>.target-search-dropdown.view-cols-3 .dropdown-item .result-image,body>.target-search-dropdown.view-cols-3 .dropdown-item .result-icon,body>.target-search-dropdown.view-cols-4 .dropdown-item .result-image,body>.target-search-dropdown.view-cols-4 .dropdown-item .result-icon,body>.target-search-dropdown.view-cols-5 .dropdown-item .result-image,body>.target-search-dropdown.view-cols-5 .dropdown-item .result-icon,body>.target-search-dropdown.view-cols-6 .dropdown-item .result-image,body>.target-search-dropdown.view-cols-6 .dropdown-item .result-icon,body>.target-search-dropdown.view-cols-7 .dropdown-item .result-image,body>.target-search-dropdown.view-cols-7 .dropdown-item .result-icon,body>.target-search-dropdown.view-cols-8 .dropdown-item .result-image,body>.target-search-dropdown.view-cols-8 .dropdown-item .result-icon,.target-search-dropdown.view-cols-2 .dropdown-item .result-image,.target-search-dropdown.view-cols-2 .dropdown-item .result-icon,.target-search-dropdown.view-cols-3 .dropdown-item .result-image,.target-search-dropdown.view-cols-3 .dropdown-item .result-icon,.target-search-dropdown.view-cols-4 .dropdown-item .result-image,.target-search-dropdown.view-cols-4 .dropdown-item .result-icon,.target-search-dropdown.view-cols-5 .dropdown-item .result-image,.target-search-dropdown.view-cols-5 .dropdown-item .result-icon,.target-search-dropdown.view-cols-6 .dropdown-item .result-image,.target-search-dropdown.view-cols-6 .dropdown-item .result-icon,.target-search-dropdown.view-cols-7 .dropdown-item .result-image,.target-search-dropdown.view-cols-7 .dropdown-item .result-icon,.target-search-dropdown.view-cols-8 .dropdown-item .result-image,.target-search-dropdown.view-cols-8 .dropdown-item .result-icon{width:48px;height:48px;margin-bottom:.25rem}body>.target-search-dropdown.view-cols-2 .dropdown-item .result-info,body>.target-search-dropdown.view-cols-3 .dropdown-item .result-info,body>.target-search-dropdown.view-cols-4 .dropdown-item .result-info,body>.target-search-dropdown.view-cols-5 .dropdown-item .result-info,body>.target-search-dropdown.view-cols-6 .dropdown-item .result-info,body>.target-search-dropdown.view-cols-7 .dropdown-item .result-info,body>.target-search-dropdown.view-cols-8 .dropdown-item .result-info,.target-search-dropdown.view-cols-2 .dropdown-item .result-info,.target-search-dropdown.view-cols-3 .dropdown-item .result-info,.target-search-dropdown.view-cols-4 .dropdown-item .result-info,.target-search-dropdown.view-cols-5 .dropdown-item .result-info,.target-search-dropdown.view-cols-6 .dropdown-item .result-info,.target-search-dropdown.view-cols-7 .dropdown-item .result-info,.target-search-dropdown.view-cols-8 .dropdown-item .result-info{width:100%}body>.target-search-dropdown.view-cols-2 .dropdown-item .result-name,body>.target-search-dropdown.view-cols-3 .dropdown-item .result-name,body>.target-search-dropdown.view-cols-4 .dropdown-item .result-name,body>.target-search-dropdown.view-cols-5 .dropdown-item .result-name,body>.target-search-dropdown.view-cols-6 .dropdown-item .result-name,body>.target-search-dropdown.view-cols-7 .dropdown-item .result-name,body>.target-search-dropdown.view-cols-8 .dropdown-item .result-name,.target-search-dropdown.view-cols-2 .dropdown-item .result-name,.target-search-dropdown.view-cols-3 .dropdown-item .result-name,.target-search-dropdown.view-cols-4 .dropdown-item .result-name,.target-search-dropdown.view-cols-5 .dropdown-item .result-name,.target-search-dropdown.view-cols-6 .dropdown-item .result-name,.target-search-dropdown.view-cols-7 .dropdown-item .result-name,.target-search-dropdown.view-cols-8 .dropdown-item .result-name{font-size:.75rem;line-height:1.3;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}body>.target-search-dropdown.view-cols-2 .dropdown-item .result-subtitle,body>.target-search-dropdown.view-cols-3 .dropdown-item .result-subtitle,body>.target-search-dropdown.view-cols-4 .dropdown-item .result-subtitle,body>.target-search-dropdown.view-cols-5 .dropdown-item .result-subtitle,body>.target-search-dropdown.view-cols-6 .dropdown-item .result-subtitle,body>.target-search-dropdown.view-cols-7 .dropdown-item .result-subtitle,body>.target-search-dropdown.view-cols-8 .dropdown-item .result-subtitle,.target-search-dropdown.view-cols-2 .dropdown-item .result-subtitle,.target-search-dropdown.view-cols-3 .dropdown-item .result-subtitle,.target-search-dropdown.view-cols-4 .dropdown-item .result-subtitle,.target-search-dropdown.view-cols-5 .dropdown-item .result-subtitle,.target-search-dropdown.view-cols-6 .dropdown-item .result-subtitle,.target-search-dropdown.view-cols-7 .dropdown-item .result-subtitle,.target-search-dropdown.view-cols-8 .dropdown-item .result-subtitle{display:none}body>.target-search-dropdown.view-cols-2 .dropdown-item .result-col,body>.target-search-dropdown.view-cols-3 .dropdown-item .result-col,body>.target-search-dropdown.view-cols-4 .dropdown-item .result-col,body>.target-search-dropdown.view-cols-5 .dropdown-item .result-col,body>.target-search-dropdown.view-cols-6 .dropdown-item .result-col,body>.target-search-dropdown.view-cols-7 .dropdown-item .result-col,body>.target-search-dropdown.view-cols-8 .dropdown-item .result-col,.target-search-dropdown.view-cols-2 .dropdown-item .result-col,.target-search-dropdown.view-cols-3 .dropdown-item .result-col,.target-search-dropdown.view-cols-4 .dropdown-item .result-col,.target-search-dropdown.view-cols-5 .dropdown-item .result-col,.target-search-dropdown.view-cols-6 .dropdown-item .result-col,.target-search-dropdown.view-cols-7 .dropdown-item .result-col,.target-search-dropdown.view-cols-8 .dropdown-item .result-col{display:none}body>.target-search-dropdown.view-cols-2 .dropdown-item .result-grid-info,body>.target-search-dropdown.view-cols-3 .dropdown-item .result-grid-info,body>.target-search-dropdown.view-cols-4 .dropdown-item .result-grid-info,body>.target-search-dropdown.view-cols-5 .dropdown-item .result-grid-info,body>.target-search-dropdown.view-cols-6 .dropdown-item .result-grid-info,body>.target-search-dropdown.view-cols-7 .dropdown-item .result-grid-info,body>.target-search-dropdown.view-cols-8 .dropdown-item .result-grid-info,.target-search-dropdown.view-cols-2 .dropdown-item .result-grid-info,.target-search-dropdown.view-cols-3 .dropdown-item .result-grid-info,.target-search-dropdown.view-cols-4 .dropdown-item .result-grid-info,.target-search-dropdown.view-cols-5 .dropdown-item .result-grid-info,.target-search-dropdown.view-cols-6 .dropdown-item .result-grid-info,.target-search-dropdown.view-cols-7 .dropdown-item .result-grid-info,.target-search-dropdown.view-cols-8 .dropdown-item .result-grid-info{display:flex;flex-wrap:wrap;justify-content:center;gap:.25rem;margin-top:.25rem;font-size:.65rem}body>.target-search-dropdown.view-cols-2 .dropdown-item .result-grid-info .grid-price,body>.target-search-dropdown.view-cols-3 .dropdown-item .result-grid-info .grid-price,body>.target-search-dropdown.view-cols-4 .dropdown-item .result-grid-info .grid-price,body>.target-search-dropdown.view-cols-5 .dropdown-item .result-grid-info .grid-price,body>.target-search-dropdown.view-cols-6 .dropdown-item .result-grid-info .grid-price,body>.target-search-dropdown.view-cols-7 .dropdown-item .result-grid-info .grid-price,body>.target-search-dropdown.view-cols-8 .dropdown-item .result-grid-info .grid-price,.target-search-dropdown.view-cols-2 .dropdown-item .result-grid-info .grid-price,.target-search-dropdown.view-cols-3 .dropdown-item .result-grid-info .grid-price,.target-search-dropdown.view-cols-4 .dropdown-item .result-grid-info .grid-price,.target-search-dropdown.view-cols-5 .dropdown-item .result-grid-info .grid-price,.target-search-dropdown.view-cols-6 .dropdown-item .result-grid-info .grid-price,.target-search-dropdown.view-cols-7 .dropdown-item .result-grid-info .grid-price,.target-search-dropdown.view-cols-8 .dropdown-item .result-grid-info .grid-price{color:#212529;font-weight:600}body>.target-search-dropdown.view-cols-2 .dropdown-item .result-grid-info .grid-stock,body>.target-search-dropdown.view-cols-3 .dropdown-item .result-grid-info .grid-stock,body>.target-search-dropdown.view-cols-4 .dropdown-item .result-grid-info .grid-stock,body>.target-search-dropdown.view-cols-5 .dropdown-item .result-grid-info .grid-stock,body>.target-search-dropdown.view-cols-6 .dropdown-item .result-grid-info .grid-stock,body>.target-search-dropdown.view-cols-7 .dropdown-item .result-grid-info .grid-stock,body>.target-search-dropdown.view-cols-8 .dropdown-item .result-grid-info .grid-stock,.target-search-dropdown.view-cols-2 .dropdown-item .result-grid-info .grid-stock,.target-search-dropdown.view-cols-3 .dropdown-item .result-grid-info .grid-stock,.target-search-dropdown.view-cols-4 .dropdown-item .result-grid-info .grid-stock,.target-search-dropdown.view-cols-5 .dropdown-item .result-grid-info .grid-stock,.target-search-dropdown.view-cols-6 .dropdown-item .result-grid-info .grid-stock,.target-search-dropdown.view-cols-7 .dropdown-item .result-grid-info .grid-stock,.target-search-dropdown.view-cols-8 .dropdown-item .result-grid-info .grid-stock{color:#6c757d}body>.target-search-dropdown.view-cols-2 .dropdown-item .result-grid-info .grid-stock.stock-out,body>.target-search-dropdown.view-cols-3 .dropdown-item .result-grid-info .grid-stock.stock-out,body>.target-search-dropdown.view-cols-4 .dropdown-item .result-grid-info .grid-stock.stock-out,body>.target-search-dropdown.view-cols-5 .dropdown-item .result-grid-info .grid-stock.stock-out,body>.target-search-dropdown.view-cols-6 .dropdown-item .result-grid-info .grid-stock.stock-out,body>.target-search-dropdown.view-cols-7 .dropdown-item .result-grid-info .grid-stock.stock-out,body>.target-search-dropdown.view-cols-8 .dropdown-item .result-grid-info .grid-stock.stock-out,.target-search-dropdown.view-cols-2 .dropdown-item .result-grid-info .grid-stock.stock-out,.target-search-dropdown.view-cols-3 .dropdown-item .result-grid-info .grid-stock.stock-out,.target-search-dropdown.view-cols-4 .dropdown-item .result-grid-info .grid-stock.stock-out,.target-search-dropdown.view-cols-5 .dropdown-item .result-grid-info .grid-stock.stock-out,.target-search-dropdown.view-cols-6 .dropdown-item .result-grid-info .grid-stock.stock-out,.target-search-dropdown.view-cols-7 .dropdown-item .result-grid-info .grid-stock.stock-out,.target-search-dropdown.view-cols-8 .dropdown-item .result-grid-info .grid-stock.stock-out{color:#dc3545}body>.target-search-dropdown.view-cols-2 .dropdown-item .result-grid-info .grid-stock.stock-low,body>.target-search-dropdown.view-cols-3 .dropdown-item .result-grid-info .grid-stock.stock-low,body>.target-search-dropdown.view-cols-4 .dropdown-item .result-grid-info .grid-stock.stock-low,body>.target-search-dropdown.view-cols-5 .dropdown-item .result-grid-info .grid-stock.stock-low,body>.target-search-dropdown.view-cols-6 .dropdown-item .result-grid-info .grid-stock.stock-low,body>.target-search-dropdown.view-cols-7 .dropdown-item .result-grid-info .grid-stock.stock-low,body>.target-search-dropdown.view-cols-8 .dropdown-item .result-grid-info .grid-stock.stock-low,.target-search-dropdown.view-cols-2 .dropdown-item .result-grid-info .grid-stock.stock-low,.target-search-dropdown.view-cols-3 .dropdown-item .result-grid-info .grid-stock.stock-low,.target-search-dropdown.view-cols-4 .dropdown-item .result-grid-info .grid-stock.stock-low,.target-search-dropdown.view-cols-5 .dropdown-item .result-grid-info .grid-stock.stock-low,.target-search-dropdown.view-cols-6 .dropdown-item .result-grid-info .grid-stock.stock-low,.target-search-dropdown.view-cols-7 .dropdown-item .result-grid-info .grid-stock.stock-low,.target-search-dropdown.view-cols-8 .dropdown-item .result-grid-info .grid-stock.stock-low{color:#ffc107}body>.target-search-dropdown.view-cols-2 .dropdown-item .result-grid-info .grid-discount,body>.target-search-dropdown.view-cols-3 .dropdown-item .result-grid-info .grid-discount,body>.target-search-dropdown.view-cols-4 .dropdown-item .result-grid-info .grid-discount,body>.target-search-dropdown.view-cols-5 .dropdown-item .result-grid-info .grid-discount,body>.target-search-dropdown.view-cols-6 .dropdown-item .result-grid-info .grid-discount,body>.target-search-dropdown.view-cols-7 .dropdown-item .result-grid-info .grid-discount,body>.target-search-dropdown.view-cols-8 .dropdown-item .result-grid-info .grid-discount,.target-search-dropdown.view-cols-2 .dropdown-item .result-grid-info .grid-discount,.target-search-dropdown.view-cols-3 .dropdown-item .result-grid-info .grid-discount,.target-search-dropdown.view-cols-4 .dropdown-item .result-grid-info .grid-discount,.target-search-dropdown.view-cols-5 .dropdown-item .result-grid-info .grid-discount,.target-search-dropdown.view-cols-6 .dropdown-item .result-grid-info .grid-discount,.target-search-dropdown.view-cols-7 .dropdown-item .result-grid-info .grid-discount,.target-search-dropdown.view-cols-8 .dropdown-item .result-grid-info .grid-discount{color:#28a745;font-weight:500}body>.target-search-dropdown.view-cols-2 .results-header,body>.target-search-dropdown.view-cols-3 .results-header,body>.target-search-dropdown.view-cols-4 .results-header,body>.target-search-dropdown.view-cols-5 .results-header,body>.target-search-dropdown.view-cols-6 .results-header,body>.target-search-dropdown.view-cols-7 .results-header,body>.target-search-dropdown.view-cols-8 .results-header,.target-search-dropdown.view-cols-2 .results-header,.target-search-dropdown.view-cols-3 .results-header,.target-search-dropdown.view-cols-4 .results-header,.target-search-dropdown.view-cols-5 .results-header,.target-search-dropdown.view-cols-6 .results-header,.target-search-dropdown.view-cols-7 .results-header,.target-search-dropdown.view-cols-8 .results-header{display:none}body>.target-search-dropdown.view-cols-2 .dropdown-results .dropdown-item:nth-child(2n),.target-search-dropdown.view-cols-2 .dropdown-results .dropdown-item:nth-child(2n){border-right:none}body>.target-search-dropdown.view-cols-3 .dropdown-results .dropdown-item:nth-child(3n),.target-search-dropdown.view-cols-3 .dropdown-results .dropdown-item:nth-child(3n){border-right:none}body>.target-search-dropdown.view-cols-4 .dropdown-results .dropdown-item:nth-child(4n),.target-search-dropdown.view-cols-4 .dropdown-results .dropdown-item:nth-child(4n){border-right:none}body>.target-search-dropdown.view-cols-5 .dropdown-results .dropdown-item:nth-child(5n),.target-search-dropdown.view-cols-5 .dropdown-results .dropdown-item:nth-child(5n){border-right:none}body>.target-search-dropdown.view-cols-6 .dropdown-results .dropdown-item:nth-child(6n),.target-search-dropdown.view-cols-6 .dropdown-results .dropdown-item:nth-child(6n){border-right:none}body>.target-search-dropdown.view-cols-7 .dropdown-results .dropdown-item:nth-child(7n),.target-search-dropdown.view-cols-7 .dropdown-results .dropdown-item:nth-child(7n){border-right:none}body>.target-search-dropdown.view-cols-8 .dropdown-results .dropdown-item:nth-child(8n),.target-search-dropdown.view-cols-8 .dropdown-results .dropdown-item:nth-child(8n){border-right:none}body>.target-search-dropdown.view-cols-5 .dropdown-item .result-image,body>.target-search-dropdown.view-cols-5 .dropdown-item .result-icon,body>.target-search-dropdown.view-cols-6 .dropdown-item .result-image,body>.target-search-dropdown.view-cols-6 .dropdown-item .result-icon,body>.target-search-dropdown.view-cols-7 .dropdown-item .result-image,body>.target-search-dropdown.view-cols-7 .dropdown-item .result-icon,body>.target-search-dropdown.view-cols-8 .dropdown-item .result-image,body>.target-search-dropdown.view-cols-8 .dropdown-item .result-icon,.target-search-dropdown.view-cols-5 .dropdown-item .result-image,.target-search-dropdown.view-cols-5 .dropdown-item .result-icon,.target-search-dropdown.view-cols-6 .dropdown-item .result-image,.target-search-dropdown.view-cols-6 .dropdown-item .result-icon,.target-search-dropdown.view-cols-7 .dropdown-item .result-image,.target-search-dropdown.view-cols-7 .dropdown-item .result-icon,.target-search-dropdown.view-cols-8 .dropdown-item .result-image,.target-search-dropdown.view-cols-8 .dropdown-item .result-icon{width:40px;height:40px}body>.target-search-dropdown.view-cols-5 .dropdown-item .result-name,body>.target-search-dropdown.view-cols-6 .dropdown-item .result-name,body>.target-search-dropdown.view-cols-7 .dropdown-item .result-name,body>.target-search-dropdown.view-cols-8 .dropdown-item .result-name,.target-search-dropdown.view-cols-5 .dropdown-item .result-name,.target-search-dropdown.view-cols-6 .dropdown-item .result-name,.target-search-dropdown.view-cols-7 .dropdown-item .result-name,.target-search-dropdown.view-cols-8 .dropdown-item .result-name{font-size:.65rem}body>.target-search-dropdown .result-item-product,.target-search-dropdown .result-item-product{display:flex;align-items:center;gap:.5rem;flex:1;min-width:0}body>.target-search-dropdown .result-item-image,body>.target-search-dropdown .result-image,.target-search-dropdown .result-item-image,.target-search-dropdown .result-image{flex-shrink:0;width:40px;height:40px;overflow:hidden;border-radius:.2rem;background:#f1f5f9}body>.target-search-dropdown .result-item-image img,body>.target-search-dropdown .result-image img,.target-search-dropdown .result-item-image img,.target-search-dropdown .result-image img{width:100%;height:100%;object-fit:cover}body>.target-search-dropdown .result-icon,.target-search-dropdown .result-icon{display:flex;align-items:center;justify-content:center;flex-shrink:0;width:40px;height:40px;background:#f1f5f9;border-radius:.2rem;color:#6c757d}body>.target-search-dropdown .result-icon i,.target-search-dropdown .result-icon i{font-size:16px}body>.target-search-dropdown .result-item-info,body>.target-search-dropdown .result-info,.target-search-dropdown .result-item-info,.target-search-dropdown .result-info{flex:1;min-width:0}body>.target-search-dropdown .result-item-name,body>.target-search-dropdown .result-name,.target-search-dropdown .result-item-name,.target-search-dropdown .result-name{font-size:.875rem;font-weight:500;color:#212529;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}body>.target-search-dropdown .result-item-meta,body>.target-search-dropdown .result-subtitle,.target-search-dropdown .result-item-meta,.target-search-dropdown .result-subtitle{font-size:.75rem;color:#6c757d}body>.target-search-dropdown .subtitle-line,.target-search-dropdown .subtitle-line{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}body>.target-search-dropdown .subtitle-line-primary,.target-search-dropdown .subtitle-line-primary{color:#495057}body>.target-search-dropdown .subtitle-line-secondary,.target-search-dropdown .subtitle-line-secondary{color:#6c757d;font-size:11px}body>.target-search-dropdown .result-col,.target-search-dropdown .result-col{flex-shrink:0;width:70px;text-align:right;font-size:.75rem}body>.target-search-dropdown .result-col-price,.target-search-dropdown .result-col-price{color:#495057}body>.target-search-dropdown .result-col-sale,.target-search-dropdown .result-col-sale{color:#dc3545;font-weight:600}body>.target-search-dropdown .result-col-stock .col-value.stock-ok,.target-search-dropdown .result-col-stock .col-value.stock-ok{color:#28a745}body>.target-search-dropdown .result-col-stock .col-value.stock-low,.target-search-dropdown .result-col-stock .col-value.stock-low{color:#ffc107}body>.target-search-dropdown .result-col-stock .col-value.stock-out,.target-search-dropdown .result-col-stock .col-value.stock-out{color:#dc3545}body>.target-search-dropdown .result-col-sales,.target-search-dropdown .result-col-sales{color:#6c757d}body>.target-search-dropdown .col-value,.target-search-dropdown .col-value{display:block}body>.target-search-dropdown .result-item-checkbox,body>.target-search-dropdown .result-checkbox,.target-search-dropdown .result-item-checkbox,.target-search-dropdown .result-checkbox{display:flex;align-items:center;justify-content:center;flex-shrink:0;width:18px;height:18px;border:2px solid #ced4da;border-radius:.2rem;transition:all .15s ease-in-out}body>.target-search-dropdown .result-item-checkbox i,body>.target-search-dropdown .result-checkbox i,.target-search-dropdown .result-item-checkbox i,.target-search-dropdown .result-checkbox i{display:none;font-size:10px;color:#fff}.dropdown-result-item.selected body>.target-search-dropdown .result-item-checkbox,.dropdown-item.selected body>.target-search-dropdown .result-item-checkbox,.dropdown-result-item.selected body>.target-search-dropdown .result-checkbox,.dropdown-item.selected body>.target-search-dropdown .result-checkbox,.dropdown-result-item.selected .target-search-dropdown .result-item-checkbox,.dropdown-item.selected .target-search-dropdown .result-item-checkbox,.dropdown-result-item.selected .target-search-dropdown .result-checkbox,.dropdown-item.selected .target-search-dropdown .result-checkbox{background:#25b9d7;border-color:#25b9d7}.dropdown-result-item.selected body>.target-search-dropdown .result-item-checkbox i,.dropdown-item.selected body>.target-search-dropdown .result-item-checkbox i,.dropdown-result-item.selected body>.target-search-dropdown .result-checkbox i,.dropdown-item.selected body>.target-search-dropdown .result-checkbox i,.dropdown-result-item.selected .target-search-dropdown .result-item-checkbox i,.dropdown-item.selected .target-search-dropdown .result-item-checkbox i,.dropdown-result-item.selected .target-search-dropdown .result-checkbox i,.dropdown-item.selected .target-search-dropdown .result-checkbox i{display:block}body>.target-search-dropdown .no-results,.target-search-dropdown .no-results{display:flex;align-items:center;justify-content:center;gap:.5rem;padding:2rem;color:#6c757d;font-size:.875rem}body>.target-search-dropdown .no-results i,.target-search-dropdown .no-results i{font-size:1.25rem;opacity:.5}body>.target-search-dropdown .load-more-controls,.target-search-dropdown .load-more-controls{display:flex;align-items:center;justify-content:center;gap:.5rem;padding:.5rem 1rem;font-size:.75rem;color:#6c757d}body>.target-search-dropdown .load-more-controls .load-more-label,body>.target-search-dropdown .load-more-controls .load-more-of,.target-search-dropdown .load-more-controls .load-more-label,.target-search-dropdown .load-more-controls .load-more-of{white-space:nowrap}body>.target-search-dropdown .load-more-controls .remaining-count,.target-search-dropdown .load-more-controls .remaining-count{font-weight:600;color:#495057}body>.target-search-dropdown .load-more-controls .load-more-select,.target-search-dropdown .load-more-controls .load-more-select{width:100%;padding:.5rem 1rem;font-size:.875rem;line-height:1.5;color:#212529;background-color:#fff;border:1px solid #dee2e6;border-radius:.25rem;transition:border-color .15s ease-in-out,box-shadow .15s ease-in-out}body>.target-search-dropdown .load-more-controls .load-more-select:focus,.target-search-dropdown .load-more-controls .load-more-select:focus{border-color:#25b9d7;outline:0;box-shadow:0 0 0 .2rem rgba(37,185,215,.25)}body>.target-search-dropdown .load-more-controls .load-more-select::placeholder,.target-search-dropdown .load-more-controls .load-more-select::placeholder{color:#adb5bd}body>.target-search-dropdown .load-more-controls .load-more-select,.target-search-dropdown .load-more-controls .load-more-select{padding:.25rem .5rem;font-size:.75rem;min-width:60px}body>.target-search-dropdown .load-more-controls .btn-load-more,.target-search-dropdown .load-more-controls .btn-load-more{display:flex;align-items:center;justify-content:center;padding:.25rem;margin:0;border:none;color:#25b9d7;background:rgba(37,185,215,.1) !important;border-radius:.2rem;cursor:pointer;transition:all .15s ease-in-out;font:inherit}body>.target-search-dropdown .load-more-controls .btn-load-more i,.target-search-dropdown .load-more-controls .btn-load-more i{font-size:14px}body>.target-search-dropdown .load-more-controls .btn-load-more:hover,.target-search-dropdown .load-more-controls .btn-load-more:hover{background:rgba(37,185,215,.2) !important}body>.target-search-dropdown .dropdown-load-more,.target-search-dropdown .dropdown-load-more{display:flex;justify-content:center;padding:1rem;border-top:1px solid #dee2e6}body>.target-search-dropdown .dropdown-load-more .load-more-btn,.target-search-dropdown .dropdown-load-more .load-more-btn{padding:0;margin:0;background:none;border:none;cursor:pointer;font:inherit;color:inherit}body>.target-search-dropdown .dropdown-load-more .load-more-btn:focus,.target-search-dropdown .dropdown-load-more .load-more-btn:focus{outline:none}body>.target-search-dropdown .dropdown-load-more .load-more-btn,.target-search-dropdown .dropdown-load-more .load-more-btn{display:inline-flex;align-items:center;gap:.25rem;padding:.5rem 1rem;font-size:.875rem;font-weight:500;color:#25b9d7;background:rgba(37,185,215,.1);border-radius:.25rem;transition:all .15s ease-in-out}body>.target-search-dropdown .dropdown-load-more .load-more-btn:hover,.target-search-dropdown .dropdown-load-more .load-more-btn:hover{background:rgba(37,185,215,.2)}body>.target-search-dropdown .dropdown-load-more .load-more-btn.loading,.target-search-dropdown .dropdown-load-more .load-more-btn.loading{opacity:.7;cursor:wait}body>.target-search-dropdown .dropdown-body,.target-search-dropdown .dropdown-body{max-height:400px;overflow-y:auto}body>.target-search-dropdown .dropdown-body::-webkit-scrollbar,.target-search-dropdown .dropdown-body::-webkit-scrollbar{width:6px;height:6px}body>.target-search-dropdown .dropdown-body::-webkit-scrollbar-track,.target-search-dropdown .dropdown-body::-webkit-scrollbar-track{background:#f8f9fa;border-radius:3px}body>.target-search-dropdown .dropdown-body::-webkit-scrollbar-thumb,.target-search-dropdown .dropdown-body::-webkit-scrollbar-thumb{background:#dee2e6;border-radius:3px}body>.target-search-dropdown .dropdown-body::-webkit-scrollbar-thumb:hover,.target-search-dropdown .dropdown-body::-webkit-scrollbar-thumb:hover{background:#ced4da}body>.target-search-dropdown .tree-container,.target-search-dropdown .tree-container{padding:.5rem}body>.target-search-dropdown .tree-loading,.target-search-dropdown .tree-loading{display:flex;align-items:center;justify-content:center;gap:.5rem;padding:2rem;color:#6c757d;font-size:.875rem}body>.target-search-dropdown .tree-loading i,.target-search-dropdown .tree-loading i{animation:spin .6s linear infinite}body>.target-search-dropdown .tree-item,.target-search-dropdown .tree-item{display:flex;align-items:center;gap:.25rem;padding:.375rem .5rem;border-radius:.2rem;cursor:pointer;transition:background-color .15s ease-in-out}body>.target-search-dropdown .tree-item:hover,.target-search-dropdown .tree-item:hover{background:#e9ecef}body>.target-search-dropdown .tree-item.selected,.target-search-dropdown .tree-item.selected{background:rgba(37,185,215,.1)}body>.target-search-dropdown .tree-item.selected .tree-checkbox,.target-search-dropdown .tree-item.selected .tree-checkbox{background:#25b9d7;border-color:#25b9d7}body>.target-search-dropdown .tree-item.selected .tree-checkbox i,.target-search-dropdown .tree-item.selected .tree-checkbox i{display:block}body>.target-search-dropdown .tree-info,.target-search-dropdown .tree-info{display:flex;align-items:center;gap:.25rem;flex:1;min-width:0}body>.target-search-dropdown .tree-name,.target-search-dropdown .tree-name{font-size:.875rem;color:#212529;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}body>.target-search-dropdown .tree-subtitle,.target-search-dropdown .tree-subtitle{font-size:.75rem;color:#6c757d}.target-search-dropdown .dropdown-results{max-height:400px;overflow-y:auto;padding:0 .5rem}.target-search-dropdown .dropdown-results::-webkit-scrollbar{width:6px;height:6px}.target-search-dropdown .dropdown-results::-webkit-scrollbar-track{background:#f8f9fa;border-radius:3px}.target-search-dropdown .dropdown-results::-webkit-scrollbar-thumb{background:#dee2e6;border-radius:3px}.target-search-dropdown .dropdown-results::-webkit-scrollbar-thumb:hover{background:#ced4da}.target-search-dropdown .results-header{display:flex;align-items:center;gap:.5rem;padding:.25rem 1rem;background:#f1f5f9;border-bottom:1px solid #dee2e6;font-size:.75rem;font-weight:600;color:#495057}.target-search-dropdown .results-header .header-spacer{width:58px;flex-shrink:0}.target-search-dropdown .results-header .header-col{flex-shrink:0;width:70px;text-align:right}.target-search-dropdown .results-header .header-col-name{flex:1;text-align:left}.target-search-dropdown:not(.view-list) .results-header,.target-search-dropdown.view-tree .results-header{display:none}.target-search-dropdown .result-item-product{display:flex;align-items:center;gap:.5rem;flex:1;min-width:0}.target-search-dropdown .result-col{flex-shrink:0;width:70px;text-align:right;font-size:.75rem}.target-search-dropdown .result-col-price{color:#495057}.target-search-dropdown .result-col-sale{color:#dc3545;font-weight:600}.target-search-dropdown .result-col-stock .col-value.stock-ok{color:#28a745}.target-search-dropdown .result-col-stock .col-value.stock-low{color:#ffc107}.target-search-dropdown .result-col-stock .col-value.stock-out{color:#dc3545}.target-search-dropdown .result-col-sales{color:#6c757d}.target-search-dropdown .dropdown-item{display:flex;align-items:center;gap:.5rem;padding:0;border:none;border-bottom:1px solid #dee2e6;border-radius:0;cursor:pointer;transition:background-color .15s ease-in-out}.target-search-dropdown .dropdown-item:last-child{border-bottom:none}.target-search-dropdown .dropdown-item:hover{background:#e9ecef}.target-search-dropdown .dropdown-item.selected{background:rgba(37,185,215,.1)}.target-search-dropdown .result-checkbox{flex-shrink:0;display:flex;align-items:center;justify-content:center;width:18px;height:18px;border:2px solid #ced4da;border-radius:3px;transition:all .15s ease-in-out}.target-search-dropdown .result-checkbox i{font-size:10px;color:rgba(0,0,0,0)}.dropdown-item.selected .target-search-dropdown .result-checkbox{background:#25b9d7;border-color:#25b9d7}.dropdown-item.selected .target-search-dropdown .result-checkbox i{color:#fff}.target-search-dropdown .result-image{flex-shrink:0;width:40px;height:40px;overflow:hidden;border-radius:.2rem;background:#f1f5f9}.target-search-dropdown .result-image img{width:100%;height:100%;object-fit:cover}.target-search-dropdown .result-icon{flex-shrink:0;display:flex;align-items:center;justify-content:center;width:40px;height:40px;background:#f1f5f9;border-radius:.2rem}.target-search-dropdown .result-icon i{font-size:16px;color:#6c757d}.target-search-dropdown .result-info{flex:1;min-width:0}.target-search-dropdown .result-name{font-size:.875rem;font-weight:500;color:#212529;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.target-search-dropdown .result-subtitle{font-size:.75rem;color:#6c757d}.target-search-dropdown .subtitle-line{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.target-search-dropdown .subtitle-line-primary{color:#495057}.target-search-dropdown .subtitle-line-secondary{color:#6c757d;font-size:11px}.target-search-dropdown[class*=view-cols-] .result-col,.target-search-dropdown.view-tree .result-col{display:none}.target-search-dropdown .entity-search-box{display:flex;align-items:center;gap:.5rem;width:100%;padding:.5rem 1rem;background:#fff;border:none;border-bottom:1px solid #dee2e6;border-radius:0}.target-search-dropdown .entity-search-box .entity-search-icon{color:#6c757d;flex-shrink:0;margin-left:.25rem}.target-search-dropdown .entity-search-box input.entity-search-input,.target-search-dropdown .entity-search-box input.entity-search-input[type=text]{flex:1;min-width:0;width:auto !important;max-width:none !important;height:auto;padding:0;margin:0;border:none !important;outline:none;background:rgba(0,0,0,0) !important;font-size:.875rem;color:#212529;box-shadow:none !important}.target-search-dropdown .entity-search-box input.entity-search-input::placeholder,.target-search-dropdown .entity-search-box input.entity-search-input[type=text]::placeholder{color:#6c757d}.target-search-dropdown .entity-search-box input.entity-search-input:focus,.target-search-dropdown .entity-search-box input.entity-search-input[type=text]:focus{border:none !important;box-shadow:none !important;outline:none}.target-search-dropdown .entity-search-box .search-loading{color:#6c757d}body>.target-search-dropdown .dropdown-item{border:none;border-radius:0}body>.target-search-dropdown .dropdown-item:not(:last-child){border-bottom:1px solid #dee2e6}@keyframes spin{from{transform:rotate(0deg)}to{transform:rotate(360deg)}}.target-conditions-trait .chips-wrapper,.entity-selector-trait .chips-wrapper{display:flex;flex-direction:column;margin-top:.5rem;background:#f8fafc;border:1px solid #dee2e6;border-radius:.25rem;overflow:hidden}.target-conditions-trait .chips-toolbar,.entity-selector-trait .chips-toolbar{display:none;align-items:center;flex-wrap:nowrap;gap:.5rem;padding:.5rem 1rem;padding-bottom:0;background:rgba(0,0,0,0)}.target-conditions-trait .chips-toolbar.has-chips,.entity-selector-trait .chips-toolbar.has-chips{display:flex}.target-conditions-trait .chips-toolbar input[type=text].chips-search-input,.entity-selector-trait .chips-toolbar input[type=text].chips-search-input{all:unset;display:block;flex:1 1 auto;min-width:80px;width:auto;height:auto;padding:.2rem .5rem .2rem 1.5rem;background:#fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='10' viewBox='0 0 24 24' fill='none' stroke='%2394a3b8' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='11' cy='11' r='8'/%3E%3Cpath d='m21 21-4.35-4.35'/%3E%3C/svg%3E") no-repeat .375rem center;background-size:10px;border:1px solid #cbd5e1;border-radius:.2rem;font-size:11px;line-height:1.4;color:#212529;box-sizing:border-box;transition:all .15s ease-in-out}.target-conditions-trait .chips-toolbar input[type=text].chips-search-input::placeholder,.entity-selector-trait .chips-toolbar input[type=text].chips-search-input::placeholder{color:#6c757d;font-size:11px}.target-conditions-trait .chips-toolbar input[type=text].chips-search-input:focus,.entity-selector-trait .chips-toolbar input[type=text].chips-search-input:focus{outline:none;border-color:#25b9d7;box-shadow:0 0 0 2px rgba(37,185,215,.1)}.target-conditions-trait .chips-toolbar select.chips-sort-select,.entity-selector-trait .chips-toolbar select.chips-sort-select{all:unset;flex:0 0 auto;padding:.2rem 1.25rem .2rem .5rem;border:1px solid #dee2e6;border-radius:.2rem;background:#fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='8' height='8' viewBox='0 0 8 8'%3E%3Cpath fill='%23666' d='M0 2l4 4 4-4z'/%3E%3C/svg%3E") no-repeat right .375rem center;background-size:8px;font-size:10px;line-height:1.4;color:#495057;cursor:pointer;box-sizing:border-box;white-space:nowrap}.target-conditions-trait .chips-toolbar select.chips-sort-select:hover,.entity-selector-trait .chips-toolbar select.chips-sort-select:hover{border-color:#25b9d7}.target-conditions-trait .chips-toolbar select.chips-sort-select:focus,.entity-selector-trait .chips-toolbar select.chips-sort-select:focus{outline:none;border-color:#25b9d7;box-shadow:0 0 0 2px rgba(37,185,215,.1)}.target-conditions-trait .chips-count,.entity-selector-trait .chips-count{display:inline-flex;align-items:center;flex-shrink:0;gap:.125rem;padding:.2rem .5rem;background:#e2e8f0;color:#495057;font-size:10px;font-weight:600;border-radius:.2rem;white-space:nowrap;line-height:1.4}.target-conditions-trait .chips-count.has-filter,.entity-selector-trait .chips-count.has-filter{background:#cffafe;color:#0e7490}.target-conditions-trait .chips-count .count-filtered,.entity-selector-trait .chips-count .count-filtered{font-weight:700}.target-conditions-trait .chips-count .count-separator,.entity-selector-trait .chips-count .count-separator{opacity:.6;margin:0 .125rem}.target-conditions-trait .chips-actions,.entity-selector-trait .chips-actions{display:flex;align-items:center;gap:.25rem;margin-left:auto}.target-conditions-trait .btn-chips-clear,.entity-selector-trait .btn-chips-clear{padding:0;margin:0;background:none;border:none;cursor:pointer;font:inherit;color:inherit}.target-conditions-trait .btn-chips-clear:focus,.entity-selector-trait .btn-chips-clear:focus{outline:none}.target-conditions-trait .btn-chips-clear,.entity-selector-trait .btn-chips-clear{display:inline-flex;align-items:center;flex-shrink:0;gap:.25rem;padding:.2rem .5rem;color:#dc3545;font-size:10px;font-weight:500;background:rgba(220,53,69,.1);border-radius:.2rem;transition:all .15s ease-in-out;white-space:nowrap;line-height:1.4}.target-conditions-trait .btn-chips-clear:hover,.entity-selector-trait .btn-chips-clear:hover{background:#dc3545;color:#fff}.target-conditions-trait .btn-chips-clear i,.entity-selector-trait .btn-chips-clear i{font-size:9px;flex-shrink:0}@media(max-width: 480px){.target-conditions-trait .btn-chips-clear .clear-text,.entity-selector-trait .btn-chips-clear .clear-text{display:none}}.target-conditions-trait .entity-chips,.entity-selector-trait .entity-chips{display:flex;flex-wrap:wrap;gap:.25rem;padding:.5rem 1rem 1rem;min-height:40px;max-height:300px;overflow-y:auto}.target-conditions-trait .entity-chips:empty,.entity-selector-trait .entity-chips:empty{display:none}.target-conditions-trait .chips-load-more,.entity-selector-trait .chips-load-more{display:flex;align-items:center;justify-content:center;gap:.5rem;padding:.5rem 1rem;background:rgba(0,0,0,0);border-top:1px dashed #dee2e6}.target-conditions-trait .chips-load-more .load-more-label,.entity-selector-trait .chips-load-more .load-more-label{font-size:.75rem;color:#6c757d}.target-conditions-trait .chips-load-more .load-more-select,.target-conditions-trait .chips-load-more select.load-more-select,.entity-selector-trait .chips-load-more .load-more-select,.entity-selector-trait .chips-load-more select.load-more-select{appearance:none;padding:.25rem 1.75rem .25rem .5rem !important;border:1px solid #dee2e6 !important;border-radius:.2rem !important;background:#fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='8' height='8' viewBox='0 0 8 8'%3E%3Cpath fill='%23666' d='M0 2l4 4 4-4z'/%3E%3C/svg%3E") no-repeat right .5rem center !important;background-size:8px !important;font-size:.75rem !important;font-weight:500;color:#25b9d7;cursor:pointer;transition:all .15s ease-in-out;height:auto !important;min-height:0 !important;line-height:1.3 !important}.target-conditions-trait .chips-load-more .load-more-select:hover,.target-conditions-trait .chips-load-more select.load-more-select:hover,.entity-selector-trait .chips-load-more .load-more-select:hover,.entity-selector-trait .chips-load-more select.load-more-select:hover{border-color:#25b9d7 !important;background-color:rgba(37,185,215,.1) !important}.target-conditions-trait .chips-load-more .load-more-select:focus,.target-conditions-trait .chips-load-more select.load-more-select:focus,.entity-selector-trait .chips-load-more .load-more-select:focus,.entity-selector-trait .chips-load-more select.load-more-select:focus{outline:none !important;border-color:#25b9d7 !important;box-shadow:0 0 0 2px rgba(37,185,215,.1) !important}.target-conditions-trait .chips-load-more .load-more-remaining,.entity-selector-trait .chips-load-more .load-more-remaining{font-size:.75rem;color:#6c757d}.target-conditions-trait .entity-chip,.entity-selector-trait .entity-chip{display:inline-flex;align-items:center;gap:.375rem;padding:.25rem .5rem;background:#f1f5f9;color:#495057;font-size:.75rem;font-weight:500;border-radius:50rem;transition:all .15s ease-in-out}.target-conditions-trait .entity-chip:hover,.entity-selector-trait .entity-chip:hover{background:#e2e8f0}.target-conditions-trait .entity-chip.has-image,.entity-selector-trait .entity-chip.has-image{padding-left:.25rem}.target-conditions-trait .entity-chip.chip-filtered-out,.target-conditions-trait .entity-chip.chip-paginated-out,.entity-selector-trait .entity-chip.chip-filtered-out,.entity-selector-trait .entity-chip.chip-paginated-out{display:none}.target-conditions-trait .chip-image,.entity-selector-trait .chip-image{width:20px;height:20px;object-fit:cover;border-radius:50%;flex-shrink:0}.target-conditions-trait .chip-icon,.entity-selector-trait .chip-icon{display:flex;align-items:center;justify-content:center;font-size:12px;color:#6c757d;flex-shrink:0}.target-conditions-trait .chip-icon img,.entity-selector-trait .chip-icon img{width:20px;height:20px;object-fit:cover;border-radius:.2rem}.target-conditions-trait .chip-text,.target-conditions-trait .chip-name,.entity-selector-trait .chip-text,.entity-selector-trait .chip-name{word-break:break-word}.target-conditions-trait .chip-remove,.entity-selector-trait .chip-remove{padding:0;margin:0;background:none;border:none;cursor:pointer;font:inherit;color:inherit}.target-conditions-trait .chip-remove:focus,.entity-selector-trait .chip-remove:focus{outline:none}.target-conditions-trait .chip-remove,.entity-selector-trait .chip-remove{display:flex;align-items:center;justify-content:center;width:16px;height:16px;margin-left:.125rem;color:#6c757d;border-radius:50%;flex-shrink:0;transition:all .15s ease-in-out}.target-conditions-trait .chip-remove:hover,.entity-selector-trait .chip-remove:hover{background:rgba(0,0,0,.1);color:#dc3545}.target-conditions-trait .chip-remove i,.entity-selector-trait .chip-remove i{font-size:10px}.target-conditions-trait .entity-chip.chip-primary,.entity-selector-trait .entity-chip.chip-primary{background:rgba(37,185,215,.1);color:#25b9d7}.target-conditions-trait .entity-chip.chip-primary:hover,.entity-selector-trait .entity-chip.chip-primary:hover{background:rgba(37,185,215,.2)}.target-conditions-trait .entity-chip.chip-success,.entity-selector-trait .entity-chip.chip-success{background:#d4edda;color:#1e7e34}.target-conditions-trait .entity-chip.chip-success:hover,.entity-selector-trait .entity-chip.chip-success:hover{background:rgba(40,167,69,.2)}.target-conditions-trait .entity-chip.chip-danger,.entity-selector-trait .entity-chip.chip-danger{background:#f8d7da;color:#dc3545}.target-conditions-trait .entity-chip.chip-danger:hover,.entity-selector-trait .entity-chip.chip-danger:hover{background:rgba(220,53,69,.2)}.target-conditions-trait .entity-chip.chip-warning,.entity-selector-trait .entity-chip.chip-warning{background:#fff3cd;color:#a07800}.target-conditions-trait .entity-chip.chip-warning:hover,.entity-selector-trait .entity-chip.chip-warning:hover{background:rgba(255,193,7,.3)}.target-conditions-trait .entity-chip.loading,.target-conditions-trait .entity-chip-loading,.entity-selector-trait .entity-chip.loading,.entity-selector-trait .entity-chip-loading{opacity:.7}.target-conditions-trait .entity-chip.loading .chip-remove,.target-conditions-trait .entity-chip-loading .chip-remove,.entity-selector-trait .entity-chip.loading .chip-remove,.entity-selector-trait .entity-chip-loading .chip-remove{display:none}.target-conditions-trait .entity-chip.loading .chip-icon i,.target-conditions-trait .entity-chip-loading .chip-icon i,.entity-selector-trait .entity-chip.loading .chip-icon i,.entity-selector-trait .entity-chip-loading .chip-icon i{animation:spin .6s linear infinite}.target-conditions-trait .entity-chip.chip-hidden,.entity-selector-trait .entity-chip.chip-hidden{display:none}.target-conditions-trait .entity-chips.chips-collapsed,.target-conditions-trait .entity-chips.chips-expanded,.entity-selector-trait .entity-chips.chips-collapsed,.entity-selector-trait .entity-chips.chips-expanded{position:relative}.target-conditions-trait .chips-show-more-toggle,.entity-selector-trait .chips-show-more-toggle{display:inline-flex;align-items:center;gap:.25rem;padding:.25rem .5rem;color:#25b9d7;font-size:.75rem;font-weight:500;cursor:pointer;transition:color .15s ease-in-out}.target-conditions-trait .chips-show-more-toggle:hover,.entity-selector-trait .chips-show-more-toggle:hover{color:#1a9ab7}.target-conditions-trait .chips-show-more-toggle i,.entity-selector-trait .chips-show-more-toggle i{font-size:10px}.target-conditions-trait .chips-more,.entity-selector-trait .chips-more{display:inline-flex;align-items:center;justify-content:center;padding:.25rem .5rem;background:#e2e8f0;color:#495057;font-size:.75rem;font-weight:600;border-radius:50rem;cursor:pointer;transition:all .15s ease-in-out}.target-conditions-trait .chips-more:hover,.entity-selector-trait .chips-more:hover{background:#cbd5e1}.target-conditions-trait .chip-add-btn,.entity-selector-trait .chip-add-btn{padding:0;margin:0;background:none;border:none;cursor:pointer;font:inherit;color:inherit}.target-conditions-trait .chip-add-btn:focus,.entity-selector-trait .chip-add-btn:focus{outline:none}.target-conditions-trait .chip-add-btn,.entity-selector-trait .chip-add-btn{display:inline-flex;align-items:center;gap:.25rem;padding:.25rem .5rem;background:rgba(0,0,0,0);color:#25b9d7;font-size:.75rem;font-weight:500;border:1px dashed #25b9d7;border-radius:50rem;transition:all .15s ease-in-out}.target-conditions-trait .chip-add-btn:hover,.entity-selector-trait .chip-add-btn:hover{background:rgba(37,185,215,.1)}.target-conditions-trait .chip-add-btn i,.entity-selector-trait .chip-add-btn i{font-size:10px}.target-conditions-trait .entity-chips.inline,.entity-selector-trait .entity-chips.inline{display:inline-flex;padding:0;min-height:auto}.target-conditions-trait .entity-chips.inline .entity-chip,.entity-selector-trait .entity-chips.inline .entity-chip{padding:.125rem .375rem;font-size:11px}.target-conditions-trait .selected-chips-container,.entity-selector-trait .selected-chips-container{display:flex;flex-direction:column;gap:.25rem}.target-conditions-trait .selected-chips-label,.entity-selector-trait .selected-chips-label{font-size:.75rem;font-weight:500;color:#6c757d}.target-conditions-trait .entity-chip.chip-pattern,.entity-selector-trait .entity-chip.chip-pattern{background:#fef3c7;color:#92400e;font-family:monospace}.target-conditions-trait .entity-chip.chip-pattern:hover,.entity-selector-trait .entity-chip.chip-pattern:hover{background:#fde68a}.target-conditions-trait .entity-chip.chip-pattern .chip-icon,.entity-selector-trait .entity-chip.chip-pattern .chip-icon{color:#d97706}.target-conditions-trait .entity-chip.chip-range,.target-conditions-trait .range-chip,.entity-selector-trait .entity-chip.chip-range,.entity-selector-trait .range-chip{display:inline-flex;align-items:center;gap:.375rem;padding:.25rem .5rem;background:#ecfeff;color:#0891b2;font-size:.75rem;font-weight:500;border-radius:50rem;transition:all .15s ease-in-out}.target-conditions-trait .entity-chip.chip-range:hover,.target-conditions-trait .range-chip:hover,.entity-selector-trait .entity-chip.chip-range:hover,.entity-selector-trait .range-chip:hover{background:#cffafe}.target-conditions-trait .range-chip-text,.entity-selector-trait .range-chip-text{font-family:monospace}.target-conditions-trait .btn-remove-range,.entity-selector-trait .btn-remove-range{padding:0;margin:0;background:none;border:none;cursor:pointer;font:inherit;color:inherit}.target-conditions-trait .btn-remove-range:focus,.entity-selector-trait .btn-remove-range:focus{outline:none}.target-conditions-trait .btn-remove-range,.entity-selector-trait .btn-remove-range{display:flex;align-items:center;justify-content:center;width:16px;height:16px;color:#0891b2;border-radius:50%;transition:all .15s ease-in-out}.target-conditions-trait .btn-remove-range:hover,.entity-selector-trait .btn-remove-range:hover{background:rgba(0,0,0,.1);color:#dc3545}.target-conditions-trait .btn-remove-range i,.entity-selector-trait .btn-remove-range i{font-size:10px}.target-conditions-trait .multi-range-chips,.entity-selector-trait .multi-range-chips{display:flex;flex-wrap:wrap;gap:.25rem;margin-bottom:.25rem}.target-conditions-trait .multi-range-chips:empty,.entity-selector-trait .multi-range-chips:empty{display:none}.target-conditions-trait .pattern-chips,.entity-selector-trait .pattern-chips{display:flex;flex-wrap:wrap;gap:.25rem;padding:.5rem 0;min-height:32px}.target-conditions-trait .pattern-chips:empty::before,.entity-selector-trait .pattern-chips:empty::before{content:attr(data-placeholder);color:#6c757d;font-size:.75rem;font-style:italic}.target-conditions-trait .pattern-tag,.entity-selector-trait .pattern-tag{display:inline-flex;align-items:center;gap:.25rem;padding:.25rem .5rem;background:#fef3c7;color:#92400e;font-size:.75rem;font-weight:500;border-radius:.2rem;transition:all .15s ease-in-out}.target-conditions-trait .pattern-tag:hover,.entity-selector-trait .pattern-tag:hover{background:#fde68a}.target-conditions-trait .pattern-tag.case-sensitive .case-icon,.entity-selector-trait .pattern-tag.case-sensitive .case-icon{color:#28a745;font-weight:700}.target-conditions-trait .pattern-tag.draft-tag,.entity-selector-trait .pattern-tag.draft-tag{background:#fff;border:1px solid #dee2e6;padding:0;flex:1;min-width:150px}.target-conditions-trait .pattern-tag.draft-tag:hover,.entity-selector-trait .pattern-tag.draft-tag:hover{background:#fff}.target-conditions-trait .pattern-tag.draft-tag .pattern-input,.entity-selector-trait .pattern-tag.draft-tag .pattern-input{flex:1;min-width:100px;padding:.375rem;border:0;background:rgba(0,0,0,0);font-size:.875rem;font-family:inherit}.target-conditions-trait .pattern-tag.draft-tag .pattern-input:focus,.entity-selector-trait .pattern-tag.draft-tag .pattern-input:focus{outline:none}.target-conditions-trait .pattern-tag.draft-tag .pattern-input::placeholder,.entity-selector-trait .pattern-tag.draft-tag .pattern-input::placeholder{color:#6c757d;font-style:italic}.target-conditions-trait .pattern-tag-text,.entity-selector-trait .pattern-tag-text{font-family:monospace;max-width:200px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.target-conditions-trait .btn-toggle-case,.entity-selector-trait .btn-toggle-case{padding:0;margin:0;background:none;border:none;cursor:pointer;font:inherit;color:inherit}.target-conditions-trait .btn-toggle-case:focus,.entity-selector-trait .btn-toggle-case:focus{outline:none}.target-conditions-trait .btn-toggle-case,.entity-selector-trait .btn-toggle-case{display:flex;align-items:center;justify-content:center;width:24px;height:24px;color:#6c757d;border-radius:.2rem;transition:all .15s ease-in-out}.target-conditions-trait .btn-toggle-case:hover,.entity-selector-trait .btn-toggle-case:hover{background:rgba(0,0,0,.1)}.target-conditions-trait .case-icon,.entity-selector-trait .case-icon{font-size:11px;font-weight:600;font-family:monospace}.target-conditions-trait .btn-remove-pattern,.entity-selector-trait .btn-remove-pattern{padding:0;margin:0;background:none;border:none;cursor:pointer;font:inherit;color:inherit}.target-conditions-trait .btn-remove-pattern:focus,.entity-selector-trait .btn-remove-pattern:focus{outline:none}.target-conditions-trait .btn-remove-pattern,.entity-selector-trait .btn-remove-pattern{display:flex;align-items:center;justify-content:center;width:18px;height:18px;color:#d97706;border-radius:.2rem;transition:all .15s ease-in-out}.target-conditions-trait .btn-remove-pattern:hover,.entity-selector-trait .btn-remove-pattern:hover{background:rgba(0,0,0,.1);color:#dc3545}.target-conditions-trait .btn-remove-pattern i,.entity-selector-trait .btn-remove-pattern i{font-size:10px}.target-conditions-trait .btn-add-pattern,.entity-selector-trait .btn-add-pattern{padding:0;margin:0;background:none;border:none;cursor:pointer;font:inherit;color:inherit}.target-conditions-trait .btn-add-pattern:focus,.entity-selector-trait .btn-add-pattern:focus{outline:none}.target-conditions-trait .btn-add-pattern,.entity-selector-trait .btn-add-pattern{display:flex;align-items:center;justify-content:center;width:28px;height:28px;color:#25b9d7;border-radius:.2rem;transition:all .15s ease-in-out}.target-conditions-trait .btn-add-pattern:hover,.entity-selector-trait .btn-add-pattern:hover{background:rgba(37,185,215,.1)}.target-conditions-trait .btn-add-pattern i,.entity-selector-trait .btn-add-pattern i{font-size:12px}.target-conditions-trait .pattern-match-count,.entity-selector-trait .pattern-match-count{display:inline-flex;align-items:center;gap:.25rem;padding:0 .375rem;color:#6c757d;font-size:.75rem;cursor:pointer}.target-conditions-trait .pattern-match-count.count-zero,.entity-selector-trait .pattern-match-count.count-zero{color:#ffc107}.target-conditions-trait .pattern-match-count.count-found,.entity-selector-trait .pattern-match-count.count-found{color:#28a745}.target-conditions-trait .pattern-match-count .count-value,.entity-selector-trait .pattern-match-count .count-value{font-weight:600}.target-conditions-trait .pattern-input-row,.entity-selector-trait .pattern-input-row{display:flex;align-items:stretch;gap:.25rem}#content.bootstrap .target-conditions-trait .chips-wrapper .chips-toolbar input[type=text].chips-search-input.chips-search-input,#content.bootstrap .entity-selector-trait .chips-wrapper .chips-toolbar input[type=text].chips-search-input.chips-search-input,#content .bootstrap .target-conditions-trait .chips-wrapper .chips-toolbar input[type=text].chips-search-input.chips-search-input,#content .bootstrap .entity-selector-trait .chips-wrapper .chips-toolbar input[type=text].chips-search-input.chips-search-input,.bootstrap #content .target-conditions-trait .chips-wrapper .chips-toolbar input[type=text].chips-search-input.chips-search-input,.bootstrap #content .entity-selector-trait .chips-wrapper .chips-toolbar input[type=text].chips-search-input.chips-search-input{all:unset;display:block;flex:1 1 auto;min-width:80px;width:auto;height:auto;padding:.2rem .5rem .2rem 1.5rem;background:#fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='10' viewBox='0 0 24 24' fill='none' stroke='%2394a3b8' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='11' cy='11' r='8'/%3E%3Cpath d='m21 21-4.35-4.35'/%3E%3C/svg%3E") no-repeat .375rem center;background-size:10px;border:1px solid #cbd5e1;border-radius:.2rem;font-size:11px;line-height:1.4;color:#212529;box-sizing:border-box;transition:all .15s ease-in-out}#content.bootstrap .target-conditions-trait .chips-wrapper .chips-toolbar input[type=text].chips-search-input.chips-search-input::placeholder,#content.bootstrap .entity-selector-trait .chips-wrapper .chips-toolbar input[type=text].chips-search-input.chips-search-input::placeholder,#content .bootstrap .target-conditions-trait .chips-wrapper .chips-toolbar input[type=text].chips-search-input.chips-search-input::placeholder,#content .bootstrap .entity-selector-trait .chips-wrapper .chips-toolbar input[type=text].chips-search-input.chips-search-input::placeholder,.bootstrap #content .target-conditions-trait .chips-wrapper .chips-toolbar input[type=text].chips-search-input.chips-search-input::placeholder,.bootstrap #content .entity-selector-trait .chips-wrapper .chips-toolbar input[type=text].chips-search-input.chips-search-input::placeholder{color:#6c757d;font-size:11px}#content.bootstrap .target-conditions-trait .chips-wrapper .chips-toolbar input[type=text].chips-search-input.chips-search-input:focus,#content.bootstrap .entity-selector-trait .chips-wrapper .chips-toolbar input[type=text].chips-search-input.chips-search-input:focus,#content .bootstrap .target-conditions-trait .chips-wrapper .chips-toolbar input[type=text].chips-search-input.chips-search-input:focus,#content .bootstrap .entity-selector-trait .chips-wrapper .chips-toolbar input[type=text].chips-search-input.chips-search-input:focus,.bootstrap #content .target-conditions-trait .chips-wrapper .chips-toolbar input[type=text].chips-search-input.chips-search-input:focus,.bootstrap #content .entity-selector-trait .chips-wrapper .chips-toolbar input[type=text].chips-search-input.chips-search-input:focus{outline:none;border-color:#25b9d7;box-shadow:0 0 0 2px rgba(37,185,215,.1)}#content.bootstrap .target-conditions-trait .chips-wrapper .chips-toolbar select.chips-sort-select.chips-sort-select,#content.bootstrap .entity-selector-trait .chips-wrapper .chips-toolbar select.chips-sort-select.chips-sort-select,#content .bootstrap .target-conditions-trait .chips-wrapper .chips-toolbar select.chips-sort-select.chips-sort-select,#content .bootstrap .entity-selector-trait .chips-wrapper .chips-toolbar select.chips-sort-select.chips-sort-select,.bootstrap #content .target-conditions-trait .chips-wrapper .chips-toolbar select.chips-sort-select.chips-sort-select,.bootstrap #content .entity-selector-trait .chips-wrapper .chips-toolbar select.chips-sort-select.chips-sort-select{all:unset;flex:0 0 auto;padding:.2rem 1.25rem .2rem .5rem;border:1px solid #dee2e6;border-radius:.2rem;background:#fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='8' height='8' viewBox='0 0 8 8'%3E%3Cpath fill='%23666' d='M0 2l4 4 4-4z'/%3E%3C/svg%3E") no-repeat right .375rem center;background-size:8px;font-size:10px;line-height:1.4;color:#495057;cursor:pointer;box-sizing:border-box;white-space:nowrap;height:auto}#content.bootstrap .target-conditions-trait .chips-wrapper .chips-toolbar select.chips-sort-select.chips-sort-select:hover,#content.bootstrap .entity-selector-trait .chips-wrapper .chips-toolbar select.chips-sort-select.chips-sort-select:hover,#content .bootstrap .target-conditions-trait .chips-wrapper .chips-toolbar select.chips-sort-select.chips-sort-select:hover,#content .bootstrap .entity-selector-trait .chips-wrapper .chips-toolbar select.chips-sort-select.chips-sort-select:hover,.bootstrap #content .target-conditions-trait .chips-wrapper .chips-toolbar select.chips-sort-select.chips-sort-select:hover,.bootstrap #content .entity-selector-trait .chips-wrapper .chips-toolbar select.chips-sort-select.chips-sort-select:hover{border-color:#25b9d7}#content.bootstrap .target-conditions-trait .chips-wrapper .chips-toolbar select.chips-sort-select.chips-sort-select:focus,#content.bootstrap .entity-selector-trait .chips-wrapper .chips-toolbar select.chips-sort-select.chips-sort-select:focus,#content .bootstrap .target-conditions-trait .chips-wrapper .chips-toolbar select.chips-sort-select.chips-sort-select:focus,#content .bootstrap .entity-selector-trait .chips-wrapper .chips-toolbar select.chips-sort-select.chips-sort-select:focus,.bootstrap #content .target-conditions-trait .chips-wrapper .chips-toolbar select.chips-sort-select.chips-sort-select:focus,.bootstrap #content .entity-selector-trait .chips-wrapper .chips-toolbar select.chips-sort-select.chips-sort-select:focus{outline:none;border-color:#25b9d7;box-shadow:0 0 0 2px rgba(37,185,215,.1)}.target-conditions-trait .target-group,.entity-selector-trait .target-group{background:#fff;border:1px solid #dee2e6;border-radius:.3rem;overflow:hidden}.target-conditions-trait .target-group-header,.entity-selector-trait .target-group-header{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.5rem 1rem;background:#f8f9fa;border-bottom:1px solid #dee2e6}.target-conditions-trait .target-group-title,.entity-selector-trait .target-group-title{display:flex;align-items:center;gap:.5rem;font-size:.875rem;font-weight:600;color:#212529}.target-conditions-trait .target-group-title .group-number,.entity-selector-trait .target-group-title .group-number{display:inline-flex;align-items:center;justify-content:center;min-width:20px;height:20px;padding:0 .25rem;background:#25b9d7;color:#fff;font-size:.75rem;font-weight:700;border-radius:50rem}.target-conditions-trait .target-group-actions,.entity-selector-trait .target-group-actions{display:flex;align-items:center;gap:.25rem}.target-conditions-trait .group-action-btn,.entity-selector-trait .group-action-btn{padding:0;margin:0;background:none;border:none;cursor:pointer;font:inherit;color:inherit}.target-conditions-trait .group-action-btn:focus,.entity-selector-trait .group-action-btn:focus{outline:none}.target-conditions-trait .group-action-btn,.entity-selector-trait .group-action-btn{display:flex;align-items:center;justify-content:center;width:28px;height:28px;color:#6c757d;border-radius:.2rem;transition:all .15s ease-in-out}.target-conditions-trait .group-action-btn:hover,.entity-selector-trait .group-action-btn:hover{background:#e2e8f0;color:#495057}.target-conditions-trait .group-action-btn.danger:hover,.entity-selector-trait .group-action-btn.danger:hover{background:#f8d7da;color:#dc3545}.target-conditions-trait .target-group-body,.target-conditions-trait .group-body,.entity-selector-trait .target-group-body,.entity-selector-trait .group-body{padding:1rem}.target-conditions-trait .include-section,.entity-selector-trait .include-section{margin-bottom:1rem}.target-conditions-trait .section-label,.entity-selector-trait .section-label{display:flex;align-items:center;gap:.25rem;margin-bottom:.5rem;font-size:.75rem;font-weight:600;text-transform:uppercase;letter-spacing:.05em}.target-conditions-trait .section-label.label-include,.entity-selector-trait .section-label.label-include{color:#1e7e34}.target-conditions-trait .section-label.label-include i,.entity-selector-trait .section-label.label-include i{color:#28a745}.target-conditions-trait .section-label.label-exclude,.entity-selector-trait .section-label.label-exclude{color:#dc3545}.target-conditions-trait .section-label.label-exclude i,.entity-selector-trait .section-label.label-exclude i{color:#dc3545}.target-conditions-trait .method-selector,.entity-selector-trait .method-selector{display:flex;align-items:center;gap:.5rem;margin-bottom:.5rem}.target-conditions-trait .method-selector-wrapper,.entity-selector-trait .method-selector-wrapper{flex:1;position:relative}.target-conditions-trait .method-select,.entity-selector-trait .method-select{width:100%;padding:.5rem 1rem;font-size:.875rem;line-height:1.5;color:#212529;background-color:#fff;border:1px solid #dee2e6;border-radius:.25rem;transition:border-color .15s ease-in-out,box-shadow .15s ease-in-out}.target-conditions-trait .method-select:focus,.entity-selector-trait .method-select:focus{border-color:#25b9d7;outline:0;box-shadow:0 0 0 .2rem rgba(37,185,215,.25)}.target-conditions-trait .method-select::placeholder,.entity-selector-trait .method-select::placeholder{color:#adb5bd}.target-conditions-trait .method-select,.entity-selector-trait .method-select{padding-right:2rem;cursor:pointer;appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 20 20'%3E%3Cpath stroke='%236b7280' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' d='m6 8 4 4 4-4'/%3E%3C/svg%3E");background-position:right .5rem center;background-repeat:no-repeat;background-size:1.5em 1.5em}.target-conditions-trait .method-help-btn,.entity-selector-trait .method-help-btn{padding:0;margin:0;background:none;border:none;cursor:pointer;font:inherit;color:inherit}.target-conditions-trait .method-help-btn:focus,.entity-selector-trait .method-help-btn:focus{outline:none}.target-conditions-trait .method-help-btn,.entity-selector-trait .method-help-btn{display:flex;align-items:center;justify-content:center;width:28px;height:28px;color:#6c757d;border-radius:50rem;transition:all .15s ease-in-out}.target-conditions-trait .method-help-btn:hover,.entity-selector-trait .method-help-btn:hover{background:#f1f5f9;color:#25b9d7}.target-conditions-trait .value-picker,.entity-selector-trait .value-picker{position:relative}.target-conditions-trait .value-picker-trigger,.entity-selector-trait .value-picker-trigger{padding:0;margin:0;background:none;border:none;cursor:pointer;font:inherit;color:inherit}.target-conditions-trait .value-picker-trigger:focus,.entity-selector-trait .value-picker-trigger:focus{outline:none}.target-conditions-trait .value-picker-trigger,.entity-selector-trait .value-picker-trigger{display:flex;align-items:center;gap:.5rem;width:100%;padding:.5rem 1rem;background:#fff;border:1px solid #dee2e6;border-radius:.25rem;color:#6c757d;font-size:.875rem;text-align:left;transition:all .15s ease-in-out}.target-conditions-trait .value-picker-trigger:hover,.entity-selector-trait .value-picker-trigger:hover{border-color:#cbd5e1}.target-conditions-trait .value-picker-trigger:focus,.entity-selector-trait .value-picker-trigger:focus{border-color:#25b9d7;outline:0;box-shadow:0 0 0 .2rem rgba(37,185,215,.25)}.target-conditions-trait .value-picker-trigger i,.entity-selector-trait .value-picker-trigger i{color:#adb5bd}.target-conditions-trait .pattern-input-wrapper,.entity-selector-trait .pattern-input-wrapper{position:relative}.target-conditions-trait .pattern-input,.entity-selector-trait .pattern-input{width:100%;padding:.5rem 1rem;font-size:.875rem;line-height:1.5;color:#212529;background-color:#fff;border:1px solid #dee2e6;border-radius:.25rem;transition:border-color .15s ease-in-out,box-shadow .15s ease-in-out}.target-conditions-trait .pattern-input:focus,.entity-selector-trait .pattern-input:focus{border-color:#25b9d7;outline:0;box-shadow:0 0 0 .2rem rgba(37,185,215,.25)}.target-conditions-trait .pattern-input::placeholder,.entity-selector-trait .pattern-input::placeholder{color:#adb5bd}.target-conditions-trait .pattern-input,.entity-selector-trait .pattern-input{font-family:monospace}.target-conditions-trait .pattern-add-btn,.entity-selector-trait .pattern-add-btn{padding:0;margin:0;background:none;border:none;cursor:pointer;font:inherit;color:inherit}.target-conditions-trait .pattern-add-btn:focus,.entity-selector-trait .pattern-add-btn:focus{outline:none}.target-conditions-trait .pattern-add-btn,.entity-selector-trait .pattern-add-btn{position:absolute;right:.25rem;top:50%;transform:translateY(-50%);display:flex;align-items:center;justify-content:center;width:28px;height:28px;color:#25b9d7;border-radius:.2rem;transition:all .15s ease-in-out}.target-conditions-trait .pattern-add-btn:hover,.entity-selector-trait .pattern-add-btn:hover{background:rgba(37,185,215,.1)}.target-conditions-trait .multi-range-container,.entity-selector-trait .multi-range-container{display:flex;flex-direction:column;gap:.5rem}.target-conditions-trait .range-row,.entity-selector-trait .range-row{display:flex;align-items:center;gap:.5rem}.target-conditions-trait .range-input,.entity-selector-trait .range-input{width:100%;padding:.5rem 1rem;font-size:.875rem;line-height:1.5;color:#212529;background-color:#fff;border:1px solid #dee2e6;border-radius:.25rem;transition:border-color .15s ease-in-out,box-shadow .15s ease-in-out}.target-conditions-trait .range-input:focus,.entity-selector-trait .range-input:focus{border-color:#25b9d7;outline:0;box-shadow:0 0 0 .2rem rgba(37,185,215,.25)}.target-conditions-trait .range-input::placeholder,.entity-selector-trait .range-input::placeholder{color:#adb5bd}.target-conditions-trait .range-input,.entity-selector-trait .range-input{width:100px;text-align:center}.target-conditions-trait .range-separator,.entity-selector-trait .range-separator{color:#6c757d;font-size:.875rem}.target-conditions-trait .range-remove-btn,.entity-selector-trait .range-remove-btn{padding:0;margin:0;background:none;border:none;cursor:pointer;font:inherit;color:inherit}.target-conditions-trait .range-remove-btn:focus,.entity-selector-trait .range-remove-btn:focus{outline:none}.target-conditions-trait .range-remove-btn,.entity-selector-trait .range-remove-btn{display:flex;align-items:center;justify-content:center;width:24px;height:24px;color:#6c757d;border-radius:.2rem;transition:all .15s ease-in-out}.target-conditions-trait .range-remove-btn:hover,.entity-selector-trait .range-remove-btn:hover{background:#f8d7da;color:#dc3545}.target-conditions-trait .range-add-btn,.entity-selector-trait .range-add-btn{padding:0;margin:0;background:none;border:none;cursor:pointer;font:inherit;color:inherit}.target-conditions-trait .range-add-btn:focus,.entity-selector-trait .range-add-btn:focus{outline:none}.target-conditions-trait .range-add-btn,.entity-selector-trait .range-add-btn{display:inline-flex;align-items:center;gap:.25rem;padding:.25rem .5rem;color:#25b9d7;font-size:.75rem;font-weight:500;border-radius:.2rem;transition:all .15s ease-in-out}.target-conditions-trait .range-add-btn:hover,.entity-selector-trait .range-add-btn:hover{background:rgba(37,185,215,.1)}.target-conditions-trait .multi-select-tiles,.entity-selector-trait .multi-select-tiles{display:flex;flex-wrap:wrap;gap:.25rem}.target-conditions-trait .multi-select-tile,.entity-selector-trait .multi-select-tile{padding:0;margin:0;background:none;border:none;cursor:pointer;font:inherit;color:inherit}.target-conditions-trait .multi-select-tile:focus,.entity-selector-trait .multi-select-tile:focus{outline:none}.target-conditions-trait .multi-select-tile,.entity-selector-trait .multi-select-tile{display:inline-flex;align-items:center;gap:.25rem;padding:.375rem .75rem;background:#f1f5f9;color:#495057;font-size:.75rem;font-weight:500;border:1px solid rgba(0,0,0,0);border-radius:50rem;transition:all .15s ease-in-out}.target-conditions-trait .multi-select-tile:hover,.entity-selector-trait .multi-select-tile:hover{background:#e2e8f0}.target-conditions-trait .multi-select-tile.selected,.entity-selector-trait .multi-select-tile.selected{background:rgba(37,185,215,.1);color:#25b9d7;border-color:#25b9d7}.target-conditions-trait .exclude-section,.entity-selector-trait .exclude-section{margin-top:1rem;padding-top:1rem;border-top:1px dashed #dee2e6}.target-conditions-trait .exclude-rows,.entity-selector-trait .exclude-rows{display:flex;flex-direction:column;gap:.5rem}.target-conditions-trait .exclude-row-content,.entity-selector-trait .exclude-row-content{flex:1}.target-conditions-trait .exclude-remove-btn,.entity-selector-trait .exclude-remove-btn{padding:0;margin:0;background:none;border:none;cursor:pointer;font:inherit;color:inherit}.target-conditions-trait .exclude-remove-btn:focus,.entity-selector-trait .exclude-remove-btn:focus{outline:none}.target-conditions-trait .exclude-remove-btn,.entity-selector-trait .exclude-remove-btn{display:flex;align-items:center;justify-content:center;width:24px;height:24px;color:#6c757d;border-radius:.2rem;flex-shrink:0;transition:all .15s ease-in-out}.target-conditions-trait .exclude-remove-btn:hover,.entity-selector-trait .exclude-remove-btn:hover{background:#f8d7da;color:#dc3545}.target-conditions-trait .add-exclude-btn,.entity-selector-trait .add-exclude-btn{padding:0;margin:0;background:none;border:none;cursor:pointer;font:inherit;color:inherit}.target-conditions-trait .add-exclude-btn:focus,.entity-selector-trait .add-exclude-btn:focus{outline:none}.target-conditions-trait .add-exclude-btn,.entity-selector-trait .add-exclude-btn{display:inline-flex;align-items:center;gap:.25rem;margin-top:.5rem;padding:.25rem .5rem;color:#dc3545;font-size:.75rem;font-weight:500;border:1px dashed #dc3545;border-radius:.2rem;transition:all .15s ease-in-out}.target-conditions-trait .add-exclude-btn:hover,.entity-selector-trait .add-exclude-btn:hover{background:#f8d7da}.target-conditions-trait .btn-add-group,.entity-selector-trait .btn-add-group{padding:0;margin:0;background:none;border:none;cursor:pointer;font:inherit;color:inherit}.target-conditions-trait .btn-add-group:focus,.entity-selector-trait .btn-add-group:focus{outline:none}.target-conditions-trait .btn-add-group,.entity-selector-trait .btn-add-group{display:inline-flex;align-items:center;gap:.375rem;padding:.5rem .875rem;color:#25b9d7;font-size:.875rem;font-weight:500;background:rgba(37,185,215,.05);border:1px dashed #25b9d7;border-radius:.375rem;cursor:pointer;transition:all .15s ease-in-out}.target-conditions-trait .btn-add-group:hover,.entity-selector-trait .btn-add-group:hover{background:rgba(37,185,215,.1)}.target-conditions-trait .btn-add-group i,.entity-selector-trait .btn-add-group i{font-size:12px}.target-conditions-trait .block-footer,.entity-selector-trait .block-footer{display:flex;align-items:center;gap:.5rem;padding:1rem;border-top:1px solid #dee2e6}.target-conditions-trait .block-body,.entity-selector-trait .block-body{padding:0}.target-conditions-trait .groups-container,.entity-selector-trait .groups-container{padding:1rem}.target-conditions-trait .groups-empty-state,.entity-selector-trait .groups-empty-state{display:flex;align-items:center;justify-content:center;padding:2rem;color:#6c757d;font-size:.875rem}.target-conditions-trait .selection-group,.entity-selector-trait .selection-group{background:#fff;border:1px solid #dee2e6;border-radius:.3rem;margin-bottom:1rem}.target-conditions-trait .selection-group:last-child,.entity-selector-trait .selection-group:last-child{margin-bottom:0}.target-conditions-trait .selection-group.collapsed .group-body,.entity-selector-trait .selection-group.collapsed .group-body{display:none}.target-conditions-trait .selection-group.collapsed .group-collapse-toggle i,.entity-selector-trait .selection-group.collapsed .group-collapse-toggle i{transform:rotate(-90deg)}.target-conditions-trait .group-header,.entity-selector-trait .group-header{display:flex;align-items:center;gap:.5rem;padding:.5rem 1rem;background:#f8f9fa;border-bottom:1px solid #dee2e6;border-radius:.3rem .3rem 0 0;cursor:pointer}.target-conditions-trait .group-header.group-header-single,.entity-selector-trait .group-header.group-header-single{padding:.25rem 1rem;background:rgba(0,0,0,0);border-bottom:none}.target-conditions-trait .group-collapse-toggle,.entity-selector-trait .group-collapse-toggle{display:flex;align-items:center;justify-content:center;width:20px;color:#6c757d}.target-conditions-trait .group-collapse-toggle i,.entity-selector-trait .group-collapse-toggle i{transition:transform .15s ease-in-out}.target-conditions-trait .group-name-wrapper,.entity-selector-trait .group-name-wrapper{flex:1;display:flex;align-items:center;gap:.5rem}.target-conditions-trait .group-name-input,.entity-selector-trait .group-name-input{flex:1;padding:.25rem .5rem;font-size:.875rem;font-weight:600;color:#212529;background:rgba(0,0,0,0);border:1px solid rgba(0,0,0,0);border-radius:.2rem;transition:all .15s ease-in-out}.target-conditions-trait .group-name-input:hover,.target-conditions-trait .group-name-input:focus,.entity-selector-trait .group-name-input:hover,.entity-selector-trait .group-name-input:focus{background:#fff;border-color:#dee2e6;outline:none}.target-conditions-trait .group-name-input::placeholder,.entity-selector-trait .group-name-input::placeholder{color:#6c757d;font-weight:500}.target-conditions-trait .group-count-badge,.entity-selector-trait .group-count-badge{display:inline-flex;align-items:center;justify-content:center;gap:.25rem;min-width:20px;height:20px;padding:0 .5rem;background:#25b9d7;color:#fff;font-size:.75rem;font-weight:600;border-radius:50rem;cursor:pointer;transition:all .15s ease-in-out;flex-shrink:0}.target-conditions-trait .group-count-badge:hover,.entity-selector-trait .group-count-badge:hover{transform:scale(1.05);box-shadow:0 2px 8px rgba(37,185,215,.4)}.target-conditions-trait .group-count-badge:focus,.entity-selector-trait .group-count-badge:focus{outline:none;box-shadow:0 0 0 2px rgba(37,185,215,.3),0 2px 8px rgba(37,185,215,.4)}.target-conditions-trait .group-count-badge.loading,.entity-selector-trait .group-count-badge.loading{cursor:wait}.target-conditions-trait .group-count-badge.loading i,.entity-selector-trait .group-count-badge.loading i{font-size:10px;animation:spin .6s linear infinite}.target-conditions-trait .group-count-badge.loading:hover,.entity-selector-trait .group-count-badge.loading:hover{transform:none;box-shadow:none}.target-conditions-trait .group-count-badge.inactive,.target-conditions-trait .group-count-badge.no-matches,.entity-selector-trait .group-count-badge.inactive,.entity-selector-trait .group-count-badge.no-matches{background:#94a3b8;cursor:default}.target-conditions-trait .group-count-badge.inactive:hover,.target-conditions-trait .group-count-badge.no-matches:hover,.entity-selector-trait .group-count-badge.inactive:hover,.entity-selector-trait .group-count-badge.no-matches:hover{transform:none;box-shadow:none}.target-conditions-trait .group-count-badge.popover-open,.entity-selector-trait .group-count-badge.popover-open{background:rgb(29.5119047619,147.5595238095,171.4880952381);box-shadow:0 2px 8px rgba(37,185,215,.4)}.target-conditions-trait .group-count-badge i,.entity-selector-trait .group-count-badge i{font-size:10px;line-height:1;opacity:.8}.target-conditions-trait .group-count-badge:hover i,.entity-selector-trait .group-count-badge:hover i{opacity:1}.target-conditions-trait .group-count-badge .preview-count,.entity-selector-trait .group-count-badge .preview-count{font-weight:700}.target-conditions-trait .btn-remove-group,.entity-selector-trait .btn-remove-group{padding:0;margin:0;background:none;border:none;cursor:pointer;font:inherit;color:inherit}.target-conditions-trait .btn-remove-group:focus,.entity-selector-trait .btn-remove-group:focus{outline:none}.target-conditions-trait .btn-remove-group,.entity-selector-trait .btn-remove-group{display:flex;align-items:center;justify-content:center;width:28px;height:28px;color:#6c757d;border-radius:.2rem;transition:all .15s ease-in-out}.target-conditions-trait .btn-remove-group:hover,.entity-selector-trait .btn-remove-group:hover{background:#f8d7da;color:#dc3545}.target-conditions-trait .group-include,.entity-selector-trait .group-include{margin-bottom:1rem;padding:.5rem;background:rgba(40,167,69,.03);border:1px solid rgba(40,167,69,.2);border-radius:.25rem}.target-conditions-trait .section-row,.entity-selector-trait .section-row{display:flex;flex-direction:column;gap:.5rem}.target-conditions-trait .method-selector-wrapper,.entity-selector-trait .method-selector-wrapper{display:flex;align-items:center;gap:.5rem}.target-conditions-trait .method-info-placeholder,.entity-selector-trait .method-info-placeholder{display:flex;align-items:center;min-width:20px}.target-conditions-trait .include-method-select,.target-conditions-trait .exclude-method-select,.entity-selector-trait .include-method-select,.entity-selector-trait .exclude-method-select{flex:1;width:100%;padding:.5rem 1rem;font-size:.875rem;line-height:1.5;color:#212529;background-color:#fff;border:1px solid #dee2e6;border-radius:.25rem;transition:border-color .15s ease-in-out,box-shadow .15s ease-in-out}.target-conditions-trait .include-method-select:focus,.target-conditions-trait .exclude-method-select:focus,.entity-selector-trait .include-method-select:focus,.entity-selector-trait .exclude-method-select:focus{border-color:#25b9d7;outline:0;box-shadow:0 0 0 .2rem rgba(37,185,215,.25)}.target-conditions-trait .include-method-select::placeholder,.target-conditions-trait .exclude-method-select::placeholder,.entity-selector-trait .include-method-select::placeholder,.entity-selector-trait .exclude-method-select::placeholder{color:#adb5bd}.target-conditions-trait .include-method-select,.target-conditions-trait .exclude-method-select,.entity-selector-trait .include-method-select,.entity-selector-trait .exclude-method-select{cursor:pointer}.target-conditions-trait .selector-locked .include-method-select,.entity-selector-trait .selector-locked .include-method-select{opacity:.7;cursor:not-allowed}.target-conditions-trait .lock-indicator,.entity-selector-trait .lock-indicator{display:inline-flex;align-items:center;justify-content:center;width:24px;height:24px;color:#ffc107;cursor:help}.target-conditions-trait .lock-indicator i,.entity-selector-trait .lock-indicator i{font-size:14px}.target-conditions-trait .lock-indicator .mpr-tooltip,.entity-selector-trait .lock-indicator .mpr-tooltip{display:none;position:absolute;bottom:calc(100% + 8px);left:50%;transform:translateX(-50%);padding:.25rem .5rem;background:#1e293b;color:#fff;font-size:.75rem;font-weight:400;white-space:nowrap;border-radius:.2rem;z-index:100}.target-conditions-trait .lock-indicator:hover .mpr-tooltip,.entity-selector-trait .lock-indicator:hover .mpr-tooltip{display:block}.target-conditions-trait .group-excludes,.entity-selector-trait .group-excludes{margin-top:1rem}.target-conditions-trait .except-separator,.entity-selector-trait .except-separator{display:flex;align-items:center;gap:.5rem;margin:0 0 .5rem 0}.target-conditions-trait .except-separator::before,.target-conditions-trait .except-separator::after,.entity-selector-trait .except-separator::before,.entity-selector-trait .except-separator::after{content:"";flex:1;height:1px;background:rgba(220,53,69,.3)}.target-conditions-trait .except-label,.entity-selector-trait .except-label{display:inline-flex;align-items:center;gap:.25rem;padding:.25rem .75rem;background:#f8d7da;color:#dc3545;font-size:.75rem;font-weight:600;border-radius:50rem;white-space:nowrap;flex-shrink:0}.target-conditions-trait .except-label i,.entity-selector-trait .except-label i{font-size:10px}.target-conditions-trait .exclude-rows-container,.entity-selector-trait .exclude-rows-container{display:flex;flex-direction:column;gap:.5rem}.target-conditions-trait .exclude-row,.entity-selector-trait .exclude-row{display:flex;flex-direction:column;padding:.5rem;background:rgba(220,53,69,.03);border:1px solid rgba(220,53,69,.15);border-radius:.25rem}.target-conditions-trait .exclude-row .value-picker,.entity-selector-trait .exclude-row .value-picker{width:100%;margin-top:.5rem}.target-conditions-trait .exclude-header-row,.entity-selector-trait .exclude-header-row{display:flex;align-items:center;justify-content:space-between;gap:.5rem;width:100%}.target-conditions-trait .exclude-header-row .method-selector-wrapper,.entity-selector-trait .exclude-header-row .method-selector-wrapper{flex:1}.target-conditions-trait .exclude-header-row .btn-remove-exclude-row,.entity-selector-trait .exclude-header-row .btn-remove-exclude-row{flex-shrink:0;margin-left:auto}.target-conditions-trait .btn-remove-exclude-row,.entity-selector-trait .btn-remove-exclude-row{padding:0;margin:0;background:none;border:none;cursor:pointer;font:inherit;color:inherit}.target-conditions-trait .btn-remove-exclude-row:focus,.entity-selector-trait .btn-remove-exclude-row:focus{outline:none}.target-conditions-trait .btn-remove-exclude-row,.entity-selector-trait .btn-remove-exclude-row{display:flex;align-items:center;justify-content:center;width:28px;height:28px;color:#6c757d;border-radius:.2rem;transition:all .15s ease-in-out}.target-conditions-trait .btn-remove-exclude-row:hover,.entity-selector-trait .btn-remove-exclude-row:hover{background:#f8d7da;color:#dc3545}.target-conditions-trait .btn-add-exclude,.target-conditions-trait .btn-add-another-exclude,.entity-selector-trait .btn-add-exclude,.entity-selector-trait .btn-add-another-exclude{padding:0;margin:0;background:none;border:none;cursor:pointer;font:inherit;color:inherit}.target-conditions-trait .btn-add-exclude:focus,.target-conditions-trait .btn-add-another-exclude:focus,.entity-selector-trait .btn-add-exclude:focus,.entity-selector-trait .btn-add-another-exclude:focus{outline:none}.target-conditions-trait .btn-add-exclude,.target-conditions-trait .btn-add-another-exclude,.entity-selector-trait .btn-add-exclude,.entity-selector-trait .btn-add-another-exclude{display:inline-flex;align-items:center;gap:.25rem;margin-top:.5rem;padding:.375rem .625rem;color:#dc3545;font-size:.75rem;font-weight:500;background:rgba(0,0,0,0);border:1px dashed rgba(220,53,69,.5);border-radius:.2rem;transition:all .15s ease-in-out}.target-conditions-trait .btn-add-exclude:hover,.target-conditions-trait .btn-add-another-exclude:hover,.entity-selector-trait .btn-add-exclude:hover,.entity-selector-trait .btn-add-another-exclude:hover{background:#f8d7da;border-color:#dc3545}.target-conditions-trait .btn-add-exclude i,.target-conditions-trait .btn-add-another-exclude i,.entity-selector-trait .btn-add-exclude i,.entity-selector-trait .btn-add-another-exclude i{font-size:10px}.target-conditions-trait .group-modifiers,.entity-selector-trait .group-modifiers{display:flex;flex-wrap:wrap;align-items:center;gap:1rem;padding:.5rem 1rem;margin:1rem -1rem -1rem;background:#f8fafc;border-top:1px solid #dee2e6;border-radius:0 0 .3rem .3rem}.target-conditions-trait .modifier-inline,.entity-selector-trait .modifier-inline{display:flex;align-items:center;gap:.375rem}.target-conditions-trait .group-modifier-limit,.entity-selector-trait .group-modifier-limit{width:50px;max-width:50px;height:26px;padding:0 .375rem;font-size:.75rem;text-align:center;border:1px solid #dee2e6;border-radius:.2rem}.target-conditions-trait .group-modifier-limit:focus,.entity-selector-trait .group-modifier-limit:focus{border-color:#25b9d7;outline:none}.target-conditions-trait .modifier-sort,.entity-selector-trait .modifier-sort{gap:0}.target-conditions-trait .modifier-sort .modifier-label,.entity-selector-trait .modifier-sort .modifier-label{margin-right:.375rem}.target-conditions-trait .modifier-sort .group-modifier-sort,.entity-selector-trait .modifier-sort .group-modifier-sort{height:26px;padding:0 .5rem;font-size:.75rem;border:1px solid #dee2e6;border-radius:.2rem 0 0 .2rem;border-right:none;cursor:pointer}.target-conditions-trait .modifier-sort .group-modifier-sort:focus,.entity-selector-trait .modifier-sort .group-modifier-sort:focus{border-color:#25b9d7;outline:none;position:relative;z-index:1}.target-conditions-trait .modifier-sort .btn-sort-dir,.entity-selector-trait .modifier-sort .btn-sort-dir{padding:0;margin:0;background:none;border:none;cursor:pointer;font:inherit;color:inherit}.target-conditions-trait .modifier-sort .btn-sort-dir:focus,.entity-selector-trait .modifier-sort .btn-sort-dir:focus{outline:none}.target-conditions-trait .modifier-sort .btn-sort-dir,.entity-selector-trait .modifier-sort .btn-sort-dir{display:flex;align-items:center;justify-content:center;width:26px;height:26px;color:#6c757d;background:#f1f5f9;border:1px solid #dee2e6;border-radius:0 .2rem .2rem 0;transition:all .15s ease-in-out}.target-conditions-trait .modifier-sort .btn-sort-dir:hover,.entity-selector-trait .modifier-sort .btn-sort-dir:hover{background:#e2e8f0;color:#495057}.target-conditions-trait .modifier-sort .btn-sort-dir i,.entity-selector-trait .modifier-sort .btn-sort-dir i{font-size:11px}.target-conditions-trait .group-modifier-sort,.entity-selector-trait .group-modifier-sort{height:26px;padding:0 .5rem;font-size:.75rem;border:1px solid #dee2e6;border-radius:.2rem;cursor:pointer}.target-conditions-trait .group-modifier-sort:focus,.entity-selector-trait .group-modifier-sort:focus{border-color:#25b9d7;outline:none}.target-conditions-trait .btn-sort-dir,.entity-selector-trait .btn-sort-dir{padding:0;margin:0;background:none;border:none;cursor:pointer;font:inherit;color:inherit}.target-conditions-trait .btn-sort-dir:focus,.entity-selector-trait .btn-sort-dir:focus{outline:none}.target-conditions-trait .btn-sort-dir,.entity-selector-trait .btn-sort-dir{display:flex;align-items:center;justify-content:center;width:26px;height:26px;color:#6c757d;border:1px solid #dee2e6;border-radius:.2rem;transition:all .15s ease-in-out}.target-conditions-trait .btn-sort-dir:hover,.entity-selector-trait .btn-sort-dir:hover{background:#f1f5f9;color:#495057}.target-conditions-trait .group-preview-badge,.entity-selector-trait .group-preview-badge{display:inline-flex;align-items:center;gap:.25rem;padding:.25rem .5rem;background:#f1f5f9;color:#6c757d;font-size:.75rem;font-weight:500;border-radius:50rem;transition:all .15s ease-in-out}.target-conditions-trait .group-preview-badge.clickable,.entity-selector-trait .group-preview-badge.clickable{cursor:pointer}.target-conditions-trait .group-preview-badge.clickable:hover,.entity-selector-trait .group-preview-badge.clickable:hover{background:rgba(37,185,215,.1);color:#25b9d7}.target-conditions-trait .group-separator,.entity-selector-trait .group-separator{display:flex;align-items:center;justify-content:center;padding:.5rem 0;color:#6c757d;font-size:.75rem;font-weight:600;text-transform:uppercase;letter-spacing:.1em}.target-conditions-trait .group-separator::before,.target-conditions-trait .group-separator::after,.entity-selector-trait .group-separator::before,.entity-selector-trait .group-separator::after{content:"";flex:1;height:1px;background:#dee2e6;margin:0 1rem}.target-conditions-trait .group-modifiers,.entity-selector-trait .group-modifiers{display:flex;flex-wrap:wrap;gap:1rem;padding-top:1rem;margin-top:1rem;border-top:1px solid #dee2e6}.target-conditions-trait .modifier-group,.entity-selector-trait .modifier-group{display:flex;align-items:center;gap:.5rem}.target-conditions-trait .modifier-label,.entity-selector-trait .modifier-label{font-size:.75rem;font-weight:500;color:#6c757d;white-space:nowrap}.target-conditions-trait .modifier-input,.entity-selector-trait .modifier-input{width:100%;padding:.5rem 1rem;font-size:.875rem;line-height:1.5;color:#212529;background-color:#fff;border:1px solid #dee2e6;border-radius:.25rem;transition:border-color .15s ease-in-out,box-shadow .15s ease-in-out}.target-conditions-trait .modifier-input:focus,.entity-selector-trait .modifier-input:focus{border-color:#25b9d7;outline:0;box-shadow:0 0 0 .2rem rgba(37,185,215,.25)}.target-conditions-trait .modifier-input::placeholder,.entity-selector-trait .modifier-input::placeholder{color:#adb5bd}.target-conditions-trait .modifier-input,.entity-selector-trait .modifier-input{width:80px;padding:.25rem .5rem;font-size:.75rem}.target-conditions-trait .modifier-select,.entity-selector-trait .modifier-select{width:100%;padding:.5rem 1rem;font-size:.875rem;line-height:1.5;color:#212529;background-color:#fff;border:1px solid #dee2e6;border-radius:.25rem;transition:border-color .15s ease-in-out,box-shadow .15s ease-in-out}.target-conditions-trait .modifier-select:focus,.entity-selector-trait .modifier-select:focus{border-color:#25b9d7;outline:0;box-shadow:0 0 0 .2rem rgba(37,185,215,.25)}.target-conditions-trait .modifier-select::placeholder,.entity-selector-trait .modifier-select::placeholder{color:#adb5bd}.target-conditions-trait .modifier-select,.entity-selector-trait .modifier-select{width:auto;padding:.25rem 1.5rem .25rem .5rem;font-size:.75rem;cursor:pointer;appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 20 20'%3E%3Cpath stroke='%236b7280' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' d='m6 8 4 4 4-4'/%3E%3C/svg%3E");background-position:right .25rem center;background-repeat:no-repeat;background-size:1.25em 1.25em}.target-conditions-trait .condition-match-count,.entity-selector-trait .condition-match-count{display:inline-flex;align-items:center;gap:.25rem;padding:.125rem .375rem;background:#f1f5f9;color:#6c757d;font-size:.75rem;font-weight:500;border-radius:50rem;cursor:pointer;transition:all .15s ease-in-out}.target-conditions-trait .condition-match-count:hover,.entity-selector-trait .condition-match-count:hover{background:#e2e8f0}.target-conditions-trait .condition-match-count.has-results,.entity-selector-trait .condition-match-count.has-results{background:rgba(37,185,215,.1);color:#25b9d7}.target-conditions-trait .condition-match-count i,.entity-selector-trait .condition-match-count i{font-size:10px}.target-conditions-trait .value-picker,.entity-selector-trait .value-picker{padding:.5rem 0}.target-conditions-trait .value-picker[style*="display: none"],.target-conditions-trait .value-picker[style*="display:none"],.entity-selector-trait .value-picker[style*="display: none"],.entity-selector-trait .value-picker[style*="display:none"]{padding:0}.target-conditions-trait .entity-search-box,.entity-selector-trait .entity-search-box{position:relative;display:flex;align-items:center;gap:.5rem;padding:.25rem;background:#fff;border:1px solid #dee2e6;border-radius:.25rem;transition:all .15s ease-in-out}.target-conditions-trait .entity-search-box:focus-within,.entity-selector-trait .entity-search-box:focus-within{border-color:#25b9d7;box-shadow:0 0 0 2px rgba(37,185,215,.1)}.target-conditions-trait .chips-wrapper+.entity-search-box,.entity-selector-trait .chips-wrapper+.entity-search-box{margin-top:1rem}.target-conditions-trait .entity-search-icon,.entity-selector-trait .entity-search-icon{color:#6c757d;font-size:14px;flex-shrink:0;margin-left:.25rem}.target-conditions-trait input.entity-search-input,.target-conditions-trait input.entity-search-input[type=text],.entity-selector-trait input.entity-search-input,.entity-selector-trait input.entity-search-input[type=text]{padding:0;margin:0;background:none;border:none;font:inherit;color:inherit}.target-conditions-trait input.entity-search-input:focus,.target-conditions-trait input.entity-search-input[type=text]:focus,.entity-selector-trait input.entity-search-input:focus,.entity-selector-trait input.entity-search-input[type=text]:focus{outline:none}.target-conditions-trait input.entity-search-input,.target-conditions-trait input.entity-search-input[type=text],.entity-selector-trait input.entity-search-input,.entity-selector-trait input.entity-search-input[type=text]{flex:1;min-width:0;width:auto !important;max-width:none !important;padding:.375rem;font-size:.875rem;color:#212529;border:none !important;background:rgba(0,0,0,0) !important;box-shadow:none !important}.target-conditions-trait input.entity-search-input::placeholder,.target-conditions-trait input.entity-search-input[type=text]::placeholder,.entity-selector-trait input.entity-search-input::placeholder,.entity-selector-trait input.entity-search-input[type=text]::placeholder{color:#6c757d}.target-conditions-trait input.entity-search-input:focus,.target-conditions-trait input.entity-search-input[type=text]:focus,.entity-selector-trait input.entity-search-input:focus,.entity-selector-trait input.entity-search-input[type=text]:focus{border:none !important;box-shadow:none !important;outline:none}.target-conditions-trait .search-loading,.entity-selector-trait .search-loading{display:flex;align-items:center;justify-content:center;color:#25b9d7}.target-conditions-trait .search-loading i,.entity-selector-trait .search-loading i{animation:spin .6s linear infinite}.target-conditions-trait .btn-browse-tree,.entity-selector-trait .btn-browse-tree{padding:0;margin:0;background:none;border:none;cursor:pointer;font:inherit;color:inherit}.target-conditions-trait .btn-browse-tree:focus,.entity-selector-trait .btn-browse-tree:focus{outline:none}.target-conditions-trait .btn-browse-tree,.entity-selector-trait .btn-browse-tree{display:flex;align-items:center;justify-content:center;width:32px;height:32px;margin-left:auto;color:#25b9d7;background:rgba(37,185,215,.1);border-radius:.2rem;flex-shrink:0;transition:all .15s ease-in-out}.target-conditions-trait .btn-browse-tree:hover,.entity-selector-trait .btn-browse-tree:hover{background:#25b9d7;color:#fff}.target-conditions-trait .btn-browse-tree i,.entity-selector-trait .btn-browse-tree i{font-size:14px}.target-conditions-trait .numeric-range-box,.target-conditions-trait .multi-range-input-row,.entity-selector-trait .numeric-range-box,.entity-selector-trait .multi-range-input-row{display:flex;align-items:center;gap:.25rem}.target-conditions-trait .range-min-input,.target-conditions-trait .range-max-input,.entity-selector-trait .range-min-input,.entity-selector-trait .range-max-input{width:100%;padding:.5rem 1rem;font-size:.875rem;line-height:1.5;color:#212529;background-color:#fff;border:1px solid #dee2e6;border-radius:.25rem;transition:border-color .15s ease-in-out,box-shadow .15s ease-in-out}.target-conditions-trait .range-min-input:focus,.target-conditions-trait .range-max-input:focus,.entity-selector-trait .range-min-input:focus,.entity-selector-trait .range-max-input:focus{border-color:#25b9d7;outline:0;box-shadow:0 0 0 .2rem rgba(37,185,215,.25)}.target-conditions-trait .range-min-input::placeholder,.target-conditions-trait .range-max-input::placeholder,.entity-selector-trait .range-min-input::placeholder,.entity-selector-trait .range-max-input::placeholder{color:#adb5bd}.target-conditions-trait .range-min-input,.target-conditions-trait .range-max-input,.entity-selector-trait .range-min-input,.entity-selector-trait .range-max-input{width:100px;padding:.5rem;text-align:center;font-size:.875rem}.target-conditions-trait .range-min-input::-webkit-inner-spin-button,.target-conditions-trait .range-min-input::-webkit-outer-spin-button,.target-conditions-trait .range-max-input::-webkit-inner-spin-button,.target-conditions-trait .range-max-input::-webkit-outer-spin-button,.entity-selector-trait .range-min-input::-webkit-inner-spin-button,.entity-selector-trait .range-min-input::-webkit-outer-spin-button,.entity-selector-trait .range-max-input::-webkit-inner-spin-button,.entity-selector-trait .range-max-input::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.target-conditions-trait .range-min-input,.target-conditions-trait .range-max-input,.entity-selector-trait .range-min-input,.entity-selector-trait .range-max-input{-moz-appearance:textfield}.target-conditions-trait .range-separator,.entity-selector-trait .range-separator{color:#6c757d;font-size:.875rem;font-weight:500}.target-conditions-trait .btn-add-range,.entity-selector-trait .btn-add-range{padding:0;margin:0;background:none;border:none;cursor:pointer;font:inherit;color:inherit}.target-conditions-trait .btn-add-range:focus,.entity-selector-trait .btn-add-range:focus{outline:none}.target-conditions-trait .btn-add-range,.entity-selector-trait .btn-add-range{display:flex;align-items:center;justify-content:center;width:32px;height:32px;color:#fff;background:#25b9d7;border-radius:.25rem;transition:all .15s ease-in-out}.target-conditions-trait .btn-add-range:hover,.entity-selector-trait .btn-add-range:hover{background:#1a9ab7}.target-conditions-trait .btn-add-range i,.entity-selector-trait .btn-add-range i{font-size:12px}.target-conditions-trait .multi-range-container,.entity-selector-trait .multi-range-container{display:flex;flex-direction:column;gap:.5rem}.target-conditions-trait .date-range-box,.entity-selector-trait .date-range-box{display:flex;align-items:center;gap:.25rem}.target-conditions-trait .date-from-input,.target-conditions-trait .date-to-input,.entity-selector-trait .date-from-input,.entity-selector-trait .date-to-input{width:100%;padding:.5rem 1rem;font-size:.875rem;line-height:1.5;color:#212529;background-color:#fff;border:1px solid #dee2e6;border-radius:.25rem;transition:border-color .15s ease-in-out,box-shadow .15s ease-in-out}.target-conditions-trait .date-from-input:focus,.target-conditions-trait .date-to-input:focus,.entity-selector-trait .date-from-input:focus,.entity-selector-trait .date-to-input:focus{border-color:#25b9d7;outline:0;box-shadow:0 0 0 .2rem rgba(37,185,215,.25)}.target-conditions-trait .date-from-input::placeholder,.target-conditions-trait .date-to-input::placeholder,.entity-selector-trait .date-from-input::placeholder,.entity-selector-trait .date-to-input::placeholder{color:#adb5bd}.target-conditions-trait .date-from-input,.target-conditions-trait .date-to-input,.entity-selector-trait .date-from-input,.entity-selector-trait .date-to-input{width:140px;padding:.5rem;font-size:.875rem}.target-conditions-trait .multi-select-tiles,.entity-selector-trait .multi-select-tiles{display:flex;flex-wrap:wrap;gap:.25rem}.target-conditions-trait .tile-option,.entity-selector-trait .tile-option{padding:0;margin:0;background:none;border:none;cursor:pointer;font:inherit;color:inherit}.target-conditions-trait .tile-option:focus,.entity-selector-trait .tile-option:focus{outline:none}.target-conditions-trait .tile-option,.entity-selector-trait .tile-option{display:inline-flex;align-items:center;gap:.25rem;padding:.375rem .625rem;color:#495057;background:#f1f5f9;border:1px solid rgba(0,0,0,0);border-radius:.2rem;font-size:.75rem;font-weight:500;cursor:pointer;transition:all .15s ease-in-out}.target-conditions-trait .tile-option:hover,.entity-selector-trait .tile-option:hover{background:#e2e8f0}.target-conditions-trait .tile-option.selected,.entity-selector-trait .tile-option.selected{color:#25b9d7;background:rgba(37,185,215,.1);border-color:#25b9d7}.target-conditions-trait .tile-option i,.entity-selector-trait .tile-option i{font-size:12px}.target-conditions-trait .tile-label,.entity-selector-trait .tile-label{white-space:nowrap}.target-conditions-trait .select-input-box,.entity-selector-trait .select-input-box{display:inline-block}.target-conditions-trait .select-value-input,.entity-selector-trait .select-value-input{width:100%;padding:.5rem 1rem;font-size:.875rem;line-height:1.5;color:#212529;background-color:#fff;border:1px solid #dee2e6;border-radius:.25rem;transition:border-color .15s ease-in-out,box-shadow .15s ease-in-out}.target-conditions-trait .select-value-input:focus,.entity-selector-trait .select-value-input:focus{border-color:#25b9d7;outline:0;box-shadow:0 0 0 .2rem rgba(37,185,215,.25)}.target-conditions-trait .select-value-input::placeholder,.entity-selector-trait .select-value-input::placeholder{color:#adb5bd}.target-conditions-trait .select-value-input,.entity-selector-trait .select-value-input{padding:.5rem 1rem;font-size:.875rem;min-width:150px}.target-conditions-trait .boolean-input-box,.entity-selector-trait .boolean-input-box{display:inline-flex;align-items:center;padding:.5rem 1rem;background:#d4edda;color:#1e7e34;border-radius:.25rem;font-size:.875rem;font-weight:500}.target-conditions-trait .boolean-label,.entity-selector-trait .boolean-label{display:flex;align-items:center;gap:.25rem}.target-conditions-trait .boolean-label::before,.entity-selector-trait .boolean-label::before{content:"✓";font-weight:bold}.target-conditions-trait .condition-match-count,.entity-selector-trait .condition-match-count{display:inline-flex;align-items:center;justify-content:center;gap:.25rem;min-width:20px;height:20px;padding:0 .5rem;background:#25b9d7;color:#fff;font-size:.75rem;font-weight:600;border-radius:50rem;cursor:pointer;transition:all .15s ease-in-out;flex-shrink:0}.target-conditions-trait .condition-match-count:hover,.entity-selector-trait .condition-match-count:hover{transform:scale(1.05);box-shadow:0 2px 8px rgba(37,185,215,.4)}.target-conditions-trait .condition-match-count:focus,.entity-selector-trait .condition-match-count:focus{outline:none;box-shadow:0 0 0 2px rgba(37,185,215,.3),0 2px 8px rgba(37,185,215,.4)}.target-conditions-trait .condition-match-count.loading,.entity-selector-trait .condition-match-count.loading{cursor:wait}.target-conditions-trait .condition-match-count.loading i,.entity-selector-trait .condition-match-count.loading i{font-size:10px;animation:spin .6s linear infinite}.target-conditions-trait .condition-match-count.loading:hover,.entity-selector-trait .condition-match-count.loading:hover{transform:none;box-shadow:none}.target-conditions-trait .condition-match-count.inactive,.target-conditions-trait .condition-match-count.no-matches,.entity-selector-trait .condition-match-count.inactive,.entity-selector-trait .condition-match-count.no-matches{background:#94a3b8;cursor:default}.target-conditions-trait .condition-match-count.inactive:hover,.target-conditions-trait .condition-match-count.no-matches:hover,.entity-selector-trait .condition-match-count.inactive:hover,.entity-selector-trait .condition-match-count.no-matches:hover{transform:none;box-shadow:none}.target-conditions-trait .condition-match-count.popover-open,.entity-selector-trait .condition-match-count.popover-open{background:rgb(29.5119047619,147.5595238095,171.4880952381);box-shadow:0 2px 8px rgba(37,185,215,.4)}.target-conditions-trait .condition-match-count i,.entity-selector-trait .condition-match-count i{font-size:10px;line-height:1;opacity:.8}.target-conditions-trait .condition-match-count:hover i,.entity-selector-trait .condition-match-count:hover i{opacity:1}.target-conditions-trait .condition-match-count .preview-count,.entity-selector-trait .condition-match-count .preview-count{font-weight:700}.target-conditions-trait .condition-match-count,.entity-selector-trait .condition-match-count{margin-left:.5rem}.mpr-modal-backdrop{position:fixed;top:0;left:0;right:0;bottom:0;background:rgba(0,0,0,.5);z-index:1050;opacity:0;transition:opacity .2s ease-in-out}.mpr-modal-backdrop.show{opacity:1}.mpr-modal{position:fixed;top:50%;left:50%;transform:translate(-50%, -50%) scale(0.95);z-index:1051;width:90%;max-width:600px;max-height:90vh;background:#fff;border-radius:.5rem;box-shadow:0 1.5rem 4rem rgba(0,0,0,.2);opacity:0;transition:all .2s ease-in-out;overflow:hidden;display:flex;flex-direction:column}.mpr-modal.show{opacity:1;transform:translate(-50%, -50%) scale(1)}.mpr-modal.modal-sm{max-width:400px}.mpr-modal.modal-lg{max-width:800px}.mpr-modal.modal-xl{max-width:1000px}.mpr-modal.modal-fullscreen{width:95%;max-width:none;height:90vh;max-height:none}.mpr-modal-header{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:1rem 1.5rem;background:#f8f9fa;border-bottom:1px solid #dee2e6;flex-shrink:0}.mpr-modal-title{font-size:1rem;font-weight:600;color:#212529;margin:0}.mpr-modal-close{padding:0;margin:0;background:none;border:none;cursor:pointer;font:inherit;color:inherit}.mpr-modal-close:focus{outline:none}.mpr-modal-close{display:flex;align-items:center;justify-content:center;width:32px;height:32px;color:#6c757d;border-radius:.25rem;transition:all .15s ease-in-out}.mpr-modal-close:hover{background:#e2e8f0;color:#495057}.mpr-modal-close i{font-size:1.125rem}.mpr-modal-body{flex:1;overflow-y:auto;padding:1.5rem}.mpr-modal-body::-webkit-scrollbar{width:6px;height:6px}.mpr-modal-body::-webkit-scrollbar-track{background:#f8f9fa;border-radius:3px}.mpr-modal-body::-webkit-scrollbar-thumb{background:#dee2e6;border-radius:3px}.mpr-modal-body::-webkit-scrollbar-thumb:hover{background:#ced4da}.mpr-modal-footer{display:flex;align-items:center;justify-content:flex-end;gap:.5rem;padding:1rem 1.5rem;background:#f8f9fa;border-top:1px solid #dee2e6;flex-shrink:0}.mpr-modal-btn{padding:0;margin:0;background:none;border:none;cursor:pointer;font:inherit;color:inherit}.mpr-modal-btn:focus{outline:none}.mpr-modal-btn{display:inline-flex;align-items:center;justify-content:center;gap:.25rem;padding:.5rem 1rem;font-size:.875rem;font-weight:500;border-radius:.25rem;transition:all .15s ease-in-out}.mpr-modal-btn.btn-secondary{color:#495057;background:#f1f5f9}.mpr-modal-btn.btn-secondary:hover{background:#e2e8f0}.mpr-modal-btn.btn-primary{color:#fff;background:#25b9d7}.mpr-modal-btn.btn-primary:hover{background:#1a9ab7}.mpr-modal-btn.btn-danger{color:#fff;background:#dc3545}.mpr-modal-btn.btn-danger:hover{background:rgb(189.2151898734,32.7848101266,47.7721518987)}.mpr-modal-btn:disabled{opacity:.5;cursor:not-allowed}.popover-header{display:flex;align-items:center;justify-content:space-between;gap:.5rem;padding:.5rem 1rem;background:#f8f9fa;border-bottom:1px solid #dee2e6;border-radius:.3rem .3rem 0 0}.popover-title{font-size:.875rem;font-weight:600;color:#212529}.popover-close{padding:0;margin:0;background:none;border:none;cursor:pointer;font:inherit;color:inherit}.popover-close:focus{outline:none}.popover-close{display:flex;align-items:center;justify-content:center;width:24px;height:24px;color:#6c757d;border-radius:.2rem;transition:all .15s ease-in-out}.popover-close:hover{background:#e2e8f0;color:#495057}.popover-body{max-height:300px;overflow-y:auto;padding:.5rem}.popover-body::-webkit-scrollbar{width:6px;height:6px}.popover-body::-webkit-scrollbar-track{background:#f8f9fa;border-radius:3px}.popover-body::-webkit-scrollbar-thumb{background:#dee2e6;border-radius:3px}.popover-body::-webkit-scrollbar-thumb:hover{background:#ced4da}.popover-footer{display:flex;align-items:center;justify-content:space-between;gap:.5rem;padding:.5rem 1rem;background:#f8f9fa;border-top:1px solid #dee2e6;border-radius:0 0 .3rem .3rem}.popover-info{font-size:.75rem;color:#6c757d}.popover-load-more{padding:0;margin:0;background:none;border:none;cursor:pointer;font:inherit;color:inherit}.popover-load-more:focus{outline:none}.popover-load-more{display:inline-flex;align-items:center;gap:.25rem;padding:.25rem .5rem;font-size:.75rem;font-weight:500;color:#25b9d7;border-radius:.2rem;transition:all .15s ease-in-out}.popover-load-more:hover{background:rgba(37,185,215,.1)}.popover-arrow{position:absolute;width:12px;height:12px;background:#fff;border:1px solid #dee2e6;transform:rotate(45deg)}.popover-arrow.arrow-top{top:-7px;left:50%;margin-left:-6px;border-right:none;border-bottom:none}.popover-arrow.arrow-bottom{bottom:-7px;left:50%;margin-left:-6px;border-left:none;border-top:none}.target-preview-popover,.target-list-preview-popover{position:absolute;z-index:10000;min-width:320px;max-width:480px;background:#fff;border:1px solid #dee2e6;border-radius:.3rem;box-shadow:0 1rem 3rem rgba(0,0,0,.175);overflow:hidden}.target-preview-popover::before,.target-list-preview-popover::before{content:"";position:absolute;top:-8px;left:50%;transform:translateX(-50%);border-left:8px solid rgba(0,0,0,0);border-right:8px solid rgba(0,0,0,0);border-bottom:8px solid #dee2e6}.target-preview-popover::after,.target-list-preview-popover::after{content:"";position:absolute;top:-6px;left:50%;transform:translateX(-50%);border-left:6px solid rgba(0,0,0,0);border-right:6px solid rgba(0,0,0,0);border-bottom:6px solid #fff}.target-preview-popover.position-right::before,.target-preview-popover.position-right::after,.target-list-preview-popover.position-right::before,.target-list-preview-popover.position-right::after{left:20px;transform:none}.target-preview-popover.position-left::before,.target-preview-popover.position-left::after,.target-list-preview-popover.position-left::before,.target-list-preview-popover.position-left::after{left:auto;right:20px;transform:none}.preview-header{display:flex;align-items:center;justify-content:space-between;padding:.5rem 1rem;background:#f8f9fa;border-bottom:1px solid #dee2e6}.preview-header .preview-title{font-size:.875rem;font-weight:600;color:#212529}.preview-header .preview-close{padding:0;margin:0;background:none;border:none;cursor:pointer;font:inherit;color:inherit}.preview-header .preview-close:focus{outline:none}.preview-header .preview-close{display:flex;align-items:center;justify-content:center;width:24px;height:24px;color:#6c757d;border-radius:.2rem;transition:all .15s ease-in-out}.preview-header .preview-close:hover{background:#e2e8f0;color:#212529}.preview-tabs{display:flex;flex-wrap:wrap;gap:0;padding:0;background:#f8fafc;border-bottom:1px solid #dee2e6}.preview-tab{display:flex;align-items:center;gap:.375rem;padding:.5rem .75rem;background:rgba(0,0,0,0);border:0;border-bottom:2px solid rgba(0,0,0,0);margin-bottom:-1px;color:#6c757d;font-size:.75rem;font-weight:500;cursor:pointer;transition:all .15s ease-in-out;white-space:nowrap}.preview-tab:hover{background:#f1f5f9;color:#495057}.preview-tab.active{background:#fff;border-bottom-color:#25b9d7;color:#25b9d7}.preview-tab i{font-size:12px}.preview-filter{display:flex;align-items:center;gap:.5rem;padding:.5rem 1rem;background:#fff;border-bottom:1px solid #dee2e6}.preview-filter i{color:#6c757d;font-size:12px}.preview-filter .preview-filter-input{all:unset;flex:1;padding:.25rem 0;font-size:.75rem;color:#212529;box-sizing:border-box}.preview-filter .preview-filter-input::placeholder{color:#6c757d}.preview-contents{max-height:350px;overflow:hidden}.preview-content{display:none;max-height:350px;overflow-y:auto}.preview-content::-webkit-scrollbar{width:6px;height:6px}.preview-content::-webkit-scrollbar-track{background:#f8f9fa;border-radius:3px}.preview-content::-webkit-scrollbar-thumb{background:#dee2e6;border-radius:3px}.preview-content::-webkit-scrollbar-thumb:hover{background:#ced4da}.preview-content.active{display:block}.preview-items{display:flex;flex-direction:column;padding:.25rem .5rem}.preview-item{display:flex;align-items:center;gap:.5rem;padding:.5rem;background:#fff;border-radius:.2rem;transition:background .15s ease-in-out}.preview-item:hover{background:#e9ecef}.preview-item[data-id]{cursor:pointer}.preview-item-image{flex-shrink:0;width:32px;height:32px;object-fit:cover;border-radius:.2rem;background:#f1f5f9}.preview-item-no-image{display:flex;align-items:center;justify-content:center;flex-shrink:0;width:32px;height:32px;background:#f1f5f9;color:#6c757d;border-radius:.2rem;font-size:.875rem}.preview-item-info{flex:1;min-width:0;display:flex;flex-direction:column;gap:.125rem}.preview-item-name{font-size:.875rem;font-weight:500;color:#212529;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.preview-item-ref,.preview-item-meta{font-size:.75rem;color:#6c757d;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.preview-item-price{flex-shrink:0;padding:.25rem .5rem;font-size:.75rem;font-weight:600;color:#25b9d7;background:rgba(37,185,215,.1);border-radius:.2rem}.preview-footer{padding:.5rem 1rem;background:#f8fafc;border-top:1px solid #dee2e6}.load-more-controls{display:flex;align-items:center;justify-content:center;gap:.5rem;font-size:.75rem;color:#6c757d}.load-more-controls .load-more-label{white-space:nowrap}.load-more-controls .load-more-select{appearance:none;padding:.25rem 1.75rem .25rem .5rem;border:1px solid #dee2e6;border-radius:.2rem;background:#fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='8' height='8' viewBox='0 0 8 8'%3E%3Cpath fill='%23666' d='M0 2l4 4 4-4z'/%3E%3C/svg%3E") no-repeat right .5rem center;background-size:8px;font-size:.75rem;font-weight:500;color:#25b9d7;cursor:pointer;transition:all .15s ease-in-out;height:auto;min-height:0;line-height:1.3}.load-more-controls .load-more-select:hover{border-color:#25b9d7;background-color:rgba(37,185,215,.1)}.load-more-controls .load-more-select:focus{outline:none;border-color:#25b9d7;box-shadow:0 0 0 2px rgba(37,185,215,.1)}.load-more-controls .load-more-of{white-space:nowrap}.load-more-controls .remaining-count{font-weight:600;color:#495057}.load-more-controls .btn-load-more{display:flex;align-items:center;justify-content:center;padding:.25rem;margin:0;border:none;color:#25b9d7;background:rgba(37,185,215,.1);border-radius:.2rem;cursor:pointer;transition:all .15s ease-in-out;font:inherit}.load-more-controls .btn-load-more i{font-size:14px}.load-more-controls .btn-load-more:hover{background:rgba(37,185,215,.2)}.load-more-controls .btn-load-more.loading{cursor:wait}.load-more-controls .btn-load-more.loading i{animation:spin .6s linear infinite}.preview-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.5rem;padding:2rem;text-align:center;color:#6c757d}.preview-empty i{font-size:2rem;opacity:.5}.preview-empty p{margin:0;font-size:.875rem}.preview-loading{display:flex;align-items:center;justify-content:center;padding:2rem;color:#6c757d}.preview-loading i{font-size:20px;color:#25b9d7;animation:spin .6s linear infinite}.total-preview-popover{min-width:240px;max-width:320px}.total-preview-popover .preview-popover-header{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.5rem 1rem;background:#f8f9fa;border-bottom:1px solid #dee2e6}.total-preview-popover .preview-popover-header .preview-popover-title{font-weight:600;color:#212529;font-size:.875rem}.total-preview-popover .preview-popover-header .preview-popover-count{flex-shrink:0;font-size:.75rem;font-weight:500;color:#6c757d;background:#e2e8f0;padding:.125rem .5rem;border-radius:.2rem}.total-preview-popover .preview-popover-body{padding:.25rem 0}.total-preview-popover .total-summary-list{list-style:none;margin:0;padding:0}.total-preview-popover .total-summary-item{display:flex;align-items:center;gap:.5rem;padding:.5rem 1rem;cursor:pointer;transition:background-color .15s ease}.total-preview-popover .total-summary-item:hover{background:#f8fafc}.total-preview-popover .total-summary-item i{width:18px;text-align:center;color:#6c757d;font-size:14px}.total-preview-popover .total-summary-item .summary-item-label{flex:1;font-size:.875rem;color:#212529}.total-preview-popover .total-summary-item .summary-item-count{font-size:.875rem;font-weight:600;color:#25b9d7;background:rgba(37,185,215,.1);padding:2px 8px;border-radius:.2rem}.trait-total-count{cursor:pointer;transition:all .15s ease}.trait-total-count:hover{opacity:.8}.trait-total-count.popover-open{opacity:.9}.schedule-conditions-trait{background:#fff;border:1px solid #dee2e6;border-radius:.3rem}.schedule-header{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.875rem 1rem;background:#f8f9fa;border-bottom:1px solid #dee2e6;border-radius:.3rem .3rem 0 0;cursor:pointer;user-select:none;transition:background-color .15s ease-in-out}.schedule-header:hover{background:#e9ecef}.schedule-title{display:flex;align-items:center;gap:.75rem;font-size:.875rem;font-weight:600;color:#212529}.schedule-title i{color:#6c757d}.schedule-body{padding:1rem}.schedule-section{margin-bottom:1.5rem}.schedule-section:last-child{margin-bottom:0}.schedule-section-title{display:flex;align-items:center;gap:.5rem;margin-bottom:.5rem;font-size:.875rem;font-weight:600;color:#212529}.schedule-section-title i{color:#6c757d}.schedule-section-description{margin-bottom:1rem;font-size:.75rem;color:#6c757d}.datetime-range{display:flex;flex-wrap:wrap;gap:1rem}.datetime-field{flex:1;min-width:200px}.datetime-label{display:block;margin-bottom:.25rem;font-size:.75rem;font-weight:500;color:#495057}.datetime-input{width:100%;padding:.5rem 1rem;font-size:.875rem;line-height:1.5;color:#212529;background-color:#fff;border:1px solid #dee2e6;border-radius:.25rem;transition:border-color .15s ease-in-out,box-shadow .15s ease-in-out}.datetime-input:focus{border-color:#25b9d7;outline:0;box-shadow:0 0 0 .2rem rgba(37,185,215,.25)}.datetime-input::placeholder{color:#adb5bd}.weekly-schedule{display:flex;flex-direction:column;gap:.5rem}.day-row{display:flex;align-items:center;gap:1rem;padding:.5rem;background:#f8fafc;border-radius:.25rem}.day-row.disabled{opacity:.5}.day-toggle{display:flex;align-items:center;gap:.5rem;min-width:100px}.day-checkbox{width:18px;height:18px;cursor:pointer}.day-name{font-size:.875rem;font-weight:500;color:#212529}.timeline-slider{flex:1;position:relative;height:24px;background:#e2e8f0;border-radius:50rem;cursor:pointer}.timeline-fill{position:absolute;top:0;height:100%;background:#25b9d7;border-radius:50rem;transition:all .15s ease-in-out}.timeline-handle{position:absolute;top:50%;width:16px;height:16px;background:#fff;border:2px solid #25b9d7;border-radius:50%;transform:translate(-50%, -50%);cursor:grab;box-shadow:0 .125rem .25rem rgba(0,0,0,.075);transition:box-shadow .15s ease-in-out}.timeline-handle:hover{box-shadow:0 .5rem 1rem rgba(0,0,0,.15)}.timeline-handle:active{cursor:grabbing}.timeline-handle.handle-start{z-index:2}.timeline-handle.handle-end{z-index:1}.day-times{display:flex;align-items:center;gap:.25rem;min-width:120px;font-size:.75rem;font-family:monospace;color:#495057}.time-separator{color:#6c757d}.holiday-section{padding:1rem;background:#f8fafc;border-radius:.25rem}.holiday-toggle{display:flex;align-items:center;gap:.5rem;margin-bottom:1rem}.holiday-checkbox{width:18px;height:18px;cursor:pointer}.holiday-label{font-size:.875rem;font-weight:500;color:#212529}.holiday-countries{display:flex;flex-wrap:wrap;gap:.25rem}.holiday-country-chip{display:inline-flex;align-items:center;gap:.25rem;padding:.25rem .5rem;font-size:.75rem;font-weight:500;background:#e9ecef;color:#495057;border-radius:50rem}.holiday-country-chip .chip-remove{padding:0;margin:0;background:none;border:none;cursor:pointer;font:inherit;color:inherit}.holiday-country-chip .chip-remove:focus{outline:none}.holiday-country-chip .chip-remove{display:flex;align-items:center;justify-content:center;width:14px;height:14px;font-size:10px;color:#6c757d;border-radius:50%}.holiday-country-chip .chip-remove:hover{background:rgba(0,0,0,.1);color:#dc3545}.holiday-country-chip{cursor:pointer}.holiday-country-chip.selected{background:rgba(37,185,215,.1);color:#25b9d7}.server-time{display:flex;align-items:center;gap:.5rem;padding:.5rem 1rem;background:#d1ecf1;border-radius:.25rem;font-size:.75rem;color:#17a2b8}.server-time i{font-size:.875rem}.server-time .time-value{font-family:monospace;font-weight:600}.schedule-summary{display:flex;flex-direction:column;gap:.25rem;padding:1rem;background:#f8fafc;border-radius:.25rem;font-size:.875rem;color:#495057}.schedule-summary .summary-item{display:flex;align-items:center;gap:.5rem}.schedule-summary .summary-item i{color:#28a745;font-size:.875rem}.schedule-summary .summary-item.inactive i{color:#6c757d}.schedule-conditions-trait.collapsed .schedule-body{display:none}.schedule-conditions-trait.collapsed .schedule-header{border-radius:.3rem}.target-conditions-trait .target-tips-box,.entity-selector-trait .target-tips-box{margin:1.5rem 1rem 1rem;border:1px solid #dee2e6;border-radius:.3rem;overflow:hidden;background:linear-gradient(135deg, #f8fafc 0%, #f1f5f9 100%)}.target-conditions-trait .tips-header,.entity-selector-trait .tips-header{display:flex;align-items:center;gap:.625rem;padding:1rem 1.5rem;cursor:pointer;user-select:none;transition:background-color .15s ease-in-out}.target-conditions-trait .tips-header:hover,.entity-selector-trait .tips-header:hover{background:rgba(0,0,0,.02)}.target-conditions-trait .tips-header>i:first-child,.entity-selector-trait .tips-header>i:first-child{font-size:1rem;color:#ffc107}.target-conditions-trait .tips-header>span,.entity-selector-trait .tips-header>span{flex:1;font-size:13px;font-weight:600;color:#475569}.target-conditions-trait .tips-toggle,.entity-selector-trait .tips-toggle{font-size:.75rem;color:#94a3b8;transition:transform .2s}.target-conditions-trait .target-tips-box.expanded .tips-toggle,.entity-selector-trait .target-tips-box.expanded .tips-toggle{transform:rotate(180deg)}.target-conditions-trait .target-tips-box.expanded .tips-content,.entity-selector-trait .target-tips-box.expanded .tips-content{display:block}.target-conditions-trait .tips-content,.entity-selector-trait .tips-content{display:none;padding:0 1.5rem 1.5rem}.target-conditions-trait .tips-grid,.entity-selector-trait .tips-grid{display:grid;gap:1rem;grid-template-columns:repeat(auto-fit, minmax(280px, 1fr))}.target-conditions-trait .tip-item,.entity-selector-trait .tip-item{display:flex;gap:1rem;padding:1rem;background:#fff;border-radius:.25rem;border:1px solid #dee2e6}.target-conditions-trait .tip-icon,.entity-selector-trait .tip-icon{flex-shrink:0;width:2rem;height:2rem;display:flex;align-items:center;justify-content:center;background:rgba(37,185,215,.1);border-radius:.25rem;color:#25b9d7;font-size:.875rem}.target-conditions-trait .tip-text,.entity-selector-trait .tip-text{flex:1;min-width:0}.target-conditions-trait .tip-text strong,.entity-selector-trait .tip-text strong{display:block;font-size:.75rem;font-weight:600;color:#334155;margin-bottom:.25rem}.target-conditions-trait .tip-text p,.entity-selector-trait .tip-text p{font-size:11px;color:#6c757d;line-height:1.625;margin:0}.target-conditions-trait .tips-footer,.entity-selector-trait .tips-footer{margin-top:1rem;padding:.625rem 1rem;background:#fff;border-radius:.25rem;border:1px dashed #dee2e6;font-size:11px;color:#6c757d;line-height:1.625}.target-conditions-trait .tips-footer i,.entity-selector-trait .tips-footer i{color:#25b9d7;margin-right:.25rem}.condition-trait{background:#fff;border:1px solid #dee2e6;border-radius:.3rem;margin-bottom:1.5rem}.condition-trait:last-child{margin-bottom:0}.condition-trait.collapsed .condition-trait-header{border-bottom-color:rgba(0,0,0,0);border-radius:.3rem}.condition-trait.collapsed .collapse-icon{transform:rotate(180deg)}.condition-trait-header{display:flex;align-items:center;justify-content:space-between;gap:1.5rem;flex-wrap:wrap;padding:.875rem 1.5rem;background:#f8fafc;border-bottom:1px solid #dee2e6;border-radius:.3rem .3rem 0 0;cursor:pointer;transition:background-color .15s ease-in-out}.condition-trait-header:hover{background:#f1f5f9}.trait-header-left{display:flex;align-items:center;gap:1rem;min-width:0;flex:1}.trait-icon{font-size:1.125rem;color:#6c757d;flex-shrink:0}.trait-title-group{display:flex;flex-direction:column;gap:.125rem;min-width:0}.trait-title{font-size:.875rem;font-weight:600;color:#1e293b;white-space:nowrap}.trait-subtitle{font-size:.75rem;color:#6c757d;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.trait-header-right{display:flex;align-items:center;gap:1rem;flex-shrink:0;margin-left:auto}.trait-header-actions{display:flex;align-items:center;gap:.5rem}.collapse-icon{display:inline-flex;align-items:center;justify-content:center;width:1.5rem;height:1.5rem;font-size:.875rem;color:#6c757d;cursor:pointer;transition:all .2s;border-radius:.2rem;background:rgba(0,0,0,0)}.collapse-icon:hover{color:#25b9d7;background:rgba(37,185,215,.08)}.trait-show-all-toggle{display:inline-flex;align-items:center;gap:.25rem;font-size:.75rem;color:#25b9d7;cursor:pointer}.trait-show-all-toggle:hover{text-decoration:underline}.trait-total-count{display:inline-flex;align-items:center;justify-content:center;gap:.25rem;min-width:20px;height:20px;padding:0 .5rem;background:#25b9d7;color:#fff;font-size:.75rem;font-weight:600;border-radius:50rem;cursor:pointer;transition:all .15s ease-in-out;flex-shrink:0}.trait-total-count:hover{transform:scale(1.05);box-shadow:0 2px 8px rgba(37,185,215,.4)}.trait-total-count:focus{outline:none;box-shadow:0 0 0 2px rgba(37,185,215,.3),0 2px 8px rgba(37,185,215,.4)}.trait-total-count.loading{cursor:wait}.trait-total-count.loading i{font-size:10px;animation:spin .6s linear infinite}.trait-total-count.loading:hover{transform:none;box-shadow:none}.trait-total-count.inactive,.trait-total-count.no-matches{background:#94a3b8;cursor:default}.trait-total-count.inactive:hover,.trait-total-count.no-matches:hover{transform:none;box-shadow:none}.trait-total-count.popover-open{background:rgb(29.5119047619,147.5595238095,171.4880952381);box-shadow:0 2px 8px rgba(37,185,215,.4)}.trait-total-count i{font-size:10px;line-height:1;opacity:.8}.trait-total-count:hover i{opacity:1}.trait-total-count .preview-count{font-weight:700}.trait-required{color:#dc3545;font-size:.75rem}.trait-validation-error{color:#dc3545;font-size:.75rem;margin-top:.25rem}.trait-toggle{padding:0;margin:0;background:none;border:none;cursor:pointer;font:inherit;color:inherit}.trait-toggle:focus{outline:none}.trait-toggle{display:inline-flex;align-items:center;gap:.25rem;padding:.375rem .75rem;font-size:.75rem;font-weight:500;color:#495057;background:#fff;border:1px solid #dee2e6;border-radius:.25rem;transition:all .15s ease-in-out}.trait-toggle:hover{background:#f8fafc;border-color:#dee2e6}.trait-toggle.active{color:#25b9d7;border-color:#25b9d7;background:rgba(37,185,215,.1)}.condition-trait-body{padding:1.5rem;border-radius:0 0 .3rem .3rem;background:#fff;animation:slideDown .2s ease-out}.condition-trait.collapsed .condition-trait-body{display:none}.schedule-section,.context-section{margin-bottom:1.25rem;padding-bottom:1.25rem;border-bottom:1px solid #f1f5f9}.schedule-section:last-child,.context-section:last-child{margin-bottom:0;padding-bottom:0;border-bottom:0}.section-label{display:flex;align-items:center;gap:.5rem;font-size:13px;font-weight:600;color:#475569;margin-bottom:1rem}.section-label i{font-size:.875rem;color:#94a3b8;margin-right:.25rem}.section-hint{margin-top:.5rem;font-size:11px;color:#94a3b8}.form-group.condition-trait-fullwidth{display:block !important}.form-group.condition-trait-fullwidth>.control-label{display:none !important}.form-group.condition-trait-fullwidth>.col-lg-8,.form-group.condition-trait-fullwidth>.col-lg-8.col-lg-offset-3{width:100% !important;max-width:100% !important;flex:0 0 100% !important;padding-left:1.5rem !important;padding-right:1.5rem !important;margin:0 !important;margin-left:0 !important}.condition-traits-group-label{font-size:.875rem;font-weight:600;color:#334155;margin-bottom:1rem}.condition-traits-wrapper{display:flex;flex-direction:column;gap:1rem}@keyframes slideDown{from{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}.target-conditions-trait .combination-attributes-picker,.entity-selector-trait .combination-attributes-picker{display:flex;flex-direction:column;gap:.625rem}.target-conditions-trait .combination-mode-toggle,.entity-selector-trait .combination-mode-toggle{display:inline-flex;gap:.25rem;padding:.125rem;background:#f1f5f9;border-radius:.25rem;margin-bottom:.5rem}.target-conditions-trait .combination-mode-option,.entity-selector-trait .combination-mode-option{display:flex;align-items:center;gap:.25rem;cursor:pointer;font-size:11px;color:#6c757d;padding:.25rem .625rem;border-radius:.2rem;transition:all .15s ease-in-out}.target-conditions-trait .combination-mode-option input[type=radio],.entity-selector-trait .combination-mode-option input[type=radio]{display:none}.target-conditions-trait .combination-mode-option .mode-label,.entity-selector-trait .combination-mode-option .mode-label{user-select:none}.target-conditions-trait .combination-mode-option:hover,.entity-selector-trait .combination-mode-option:hover{color:#25b9d7;background:rgba(37,185,215,.1)}.target-conditions-trait .combination-mode-option:has(input[type=radio]:checked),.entity-selector-trait .combination-mode-option:has(input[type=radio]:checked){background:#25b9d7;color:#fff;font-weight:500}.target-conditions-trait .combination-groups-container,.entity-selector-trait .combination-groups-container{display:flex;flex-wrap:wrap;gap:1rem}.target-conditions-trait .combination-loading,.target-conditions-trait .combination-empty,.target-conditions-trait .combination-error,.entity-selector-trait .combination-loading,.entity-selector-trait .combination-empty,.entity-selector-trait .combination-error{color:#6c757d;font-style:italic;padding:.5rem}.target-conditions-trait .combination-error,.entity-selector-trait .combination-error{color:#dc3545}.target-conditions-trait .combinations-section,.entity-selector-trait .combinations-section{margin-bottom:1rem}.target-conditions-trait .combinations-header,.entity-selector-trait .combinations-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:.5rem}.target-conditions-trait .combinations-label,.entity-selector-trait .combinations-label{font-size:.75rem;font-weight:500;color:#6c757d}.target-conditions-trait .combinations-help,.entity-selector-trait .combinations-help{font-size:11px;color:#94a3b8}.target-conditions-trait .btn-toggle-combinations,.entity-selector-trait .btn-toggle-combinations{padding:0;margin:0;background:none;border:none;cursor:pointer;font:inherit;color:inherit}.target-conditions-trait .btn-toggle-combinations:focus,.entity-selector-trait .btn-toggle-combinations:focus{outline:none}.target-conditions-trait .btn-toggle-combinations,.entity-selector-trait .btn-toggle-combinations{display:inline-flex;align-items:center;gap:.25rem;padding:.25rem .5rem;font-size:.75rem;color:#25b9d7;background:rgba(0,0,0,0);border:1px solid #25b9d7;border-radius:.2rem;transition:all .15s ease-in-out}.target-conditions-trait .btn-toggle-combinations:hover,.entity-selector-trait .btn-toggle-combinations:hover{background:rgba(37,185,215,.1)}.target-conditions-trait .btn-remove-combinations,.entity-selector-trait .btn-remove-combinations{padding:0;margin:0;background:none;border:none;cursor:pointer;font:inherit;color:inherit}.target-conditions-trait .btn-remove-combinations:focus,.entity-selector-trait .btn-remove-combinations:focus{outline:none}.target-conditions-trait .btn-remove-combinations,.entity-selector-trait .btn-remove-combinations{display:inline-flex;align-items:center;gap:.25rem;padding:.25rem .5rem;font-size:.75rem;color:#dc3545;background:rgba(0,0,0,0)}.target-conditions-trait .btn-remove-combinations:hover,.entity-selector-trait .btn-remove-combinations:hover{text-decoration:underline}.target-conditions-trait .comb-attr-group,.entity-selector-trait .comb-attr-group{flex:none;min-width:120px;max-width:200px;background:#fff;border:1px solid #dee2e6;border-radius:.2rem;overflow:hidden}.target-conditions-trait .comb-attr-group.has-selections,.entity-selector-trait .comb-attr-group.has-selections{border-color:#25b9d7}.target-conditions-trait .comb-attr-group-header,.entity-selector-trait .comb-attr-group-header{display:flex;justify-content:space-between;align-items:center;padding:.375rem .625rem;background:#f1f5f9;border-bottom:1px solid #dee2e6;font-weight:600;font-size:.75rem;color:#1e293b}.comb-attr-group.has-selections .target-conditions-trait .comb-attr-group-header,.comb-attr-group.has-selections .entity-selector-trait .comb-attr-group-header{background:#ecfeff;border-bottom-color:#a5f3fc}.target-conditions-trait .comb-attr-group-name,.entity-selector-trait .comb-attr-group-name{flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.target-conditions-trait .comb-attr-group-count,.entity-selector-trait .comb-attr-group-count{flex-shrink:0;min-width:18px;height:18px;padding:0 .25rem;background:#dee2e6;border-radius:50rem;font-size:11px;font-weight:600;line-height:18px;text-align:center;color:#6c757d}.comb-attr-group.has-selections .target-conditions-trait .comb-attr-group-count,.comb-attr-group.has-selections .entity-selector-trait .comb-attr-group-count{background:#25b9d7;color:#fff}.target-conditions-trait .comb-attr-toolbar,.entity-selector-trait .comb-attr-toolbar{display:flex;align-items:center;gap:.25rem;padding:.25rem .375rem;background:#f8fafc;border-bottom:1px solid #f1f5f9}.target-conditions-trait .comb-toolbar-btn,.entity-selector-trait .comb-toolbar-btn{padding:0;margin:0;background:none;border:none;cursor:pointer;font:inherit;color:inherit}.target-conditions-trait .comb-toolbar-btn:focus,.entity-selector-trait .comb-toolbar-btn:focus{outline:none}.target-conditions-trait .comb-toolbar-btn,.entity-selector-trait .comb-toolbar-btn{display:flex;align-items:center;justify-content:center;width:22px;height:22px;padding:0;background:#fff;border:1px solid #dee2e6;border-radius:.2rem;color:#6c757d;cursor:pointer;font-size:.75rem;transition:all .15s ease-in-out}.target-conditions-trait .comb-toolbar-btn:hover,.entity-selector-trait .comb-toolbar-btn:hover{background:#f1f5f9;border-color:#94a3b8;color:#1e293b}.target-conditions-trait .comb-attr-search,.entity-selector-trait .comb-attr-search{flex:1;min-width:60px;padding:.125rem .375rem;border:1px solid #dee2e6;border-radius:.2rem;font-size:11px;outline:none}.target-conditions-trait .comb-attr-search:focus,.entity-selector-trait .comb-attr-search:focus{border-color:#25b9d7}.target-conditions-trait .comb-attr-search::placeholder,.entity-selector-trait .comb-attr-search::placeholder{color:#94a3b8}.target-conditions-trait .comb-attr-values,.entity-selector-trait .comb-attr-values{display:flex;flex-wrap:wrap;gap:.25rem;padding:.375rem;max-height:150px;overflow-y:auto}.target-conditions-trait .comb-attr-values::-webkit-scrollbar,.entity-selector-trait .comb-attr-values::-webkit-scrollbar{width:6px;height:6px}.target-conditions-trait .comb-attr-values::-webkit-scrollbar-track,.entity-selector-trait .comb-attr-values::-webkit-scrollbar-track{background:#f8f9fa;border-radius:3px}.target-conditions-trait .comb-attr-values::-webkit-scrollbar-thumb,.entity-selector-trait .comb-attr-values::-webkit-scrollbar-thumb{background:#dee2e6;border-radius:3px}.target-conditions-trait .comb-attr-values::-webkit-scrollbar-thumb:hover,.entity-selector-trait .comb-attr-values::-webkit-scrollbar-thumb:hover{background:#ced4da}.target-conditions-trait .comb-attr-loading,.target-conditions-trait .comb-attr-empty,.target-conditions-trait .comb-attr-error,.entity-selector-trait .comb-attr-loading,.entity-selector-trait .comb-attr-empty,.entity-selector-trait .comb-attr-error{width:100%;text-align:center;color:#94a3b8;font-size:11px;padding:.25rem}.target-conditions-trait .comb-attr-error,.entity-selector-trait .comb-attr-error{color:#dc3545}.target-conditions-trait .comb-attr-value,.entity-selector-trait .comb-attr-value{display:inline-flex;align-items:center;gap:.25rem;padding:.125rem .5rem;background:#fff;border:1px solid #94a3b8;border-radius:.75rem;font-size:11px;color:#475569;cursor:pointer;transition:all .15s ease-in-out;white-space:nowrap}.target-conditions-trait .comb-attr-value:hover,.entity-selector-trait .comb-attr-value:hover{background:#f1f5f9;border-color:#6c757d}.target-conditions-trait .comb-attr-value.selected,.entity-selector-trait .comb-attr-value.selected{background:#25b9d7;border-color:#1a9ab7;color:#fff}.target-conditions-trait .comb-attr-value.selected:hover,.entity-selector-trait .comb-attr-value.selected:hover{background:#1a9ab7;border-color:rgb(22.8277511962,135.2105263158,160.6722488038)}.target-conditions-trait .comb-attr-value-count,.entity-selector-trait .comb-attr-value-count{font-size:9px;color:#94a3b8;background:#f1f5f9;padding:1px .25rem;border-radius:.5rem;min-width:14px;text-align:center}.comb-attr-value.selected .target-conditions-trait .comb-attr-value-count,.comb-attr-value.selected .entity-selector-trait .comb-attr-value-count{color:#fff;background:hsla(0,0%,100%,.3)}.target-conditions-trait .combination-conditions-container,.entity-selector-trait .combination-conditions-container{display:flex;flex-direction:column;gap:.5rem}.target-conditions-trait .combination-condition-row,.entity-selector-trait .combination-condition-row{display:flex;align-items:center;gap:.5rem;padding:.5rem;background:#f8fafc;border-radius:.2rem}.target-conditions-trait .combination-group-select,.target-conditions-trait .combination-values-select,.entity-selector-trait .combination-group-select,.entity-selector-trait .combination-values-select{flex:1;min-width:120px}.target-conditions-trait .combination-equals,.entity-selector-trait .combination-equals{font-size:.75rem;color:#6c757d;padding:0 .25rem}.target-conditions-trait .btn-add-combination-condition,.entity-selector-trait .btn-add-combination-condition{padding:0;margin:0;background:none;border:none;cursor:pointer;font:inherit;color:inherit}.target-conditions-trait .btn-add-combination-condition:focus,.entity-selector-trait .btn-add-combination-condition:focus{outline:none}.target-conditions-trait .btn-add-combination-condition,.entity-selector-trait .btn-add-combination-condition{display:inline-flex;align-items:center;gap:.25rem;padding:.375rem .75rem;font-size:.75rem;font-weight:500;color:#25b9d7;background:rgba(0,0,0,0);border:1px dashed #25b9d7;border-radius:.2rem;transition:all .15s ease-in-out}.target-conditions-trait .btn-add-combination-condition:hover,.entity-selector-trait .btn-add-combination-condition:hover{background:rgba(37,185,215,.1)}.target-conditions-trait .btn-add-combination-condition i,.entity-selector-trait .btn-add-combination-condition i{font-size:10px}.target-conditions-trait .btn-remove-combination-row,.entity-selector-trait .btn-remove-combination-row{padding:0;margin:0;background:none;border:none;cursor:pointer;font:inherit;color:inherit}.target-conditions-trait .btn-remove-combination-row:focus,.entity-selector-trait .btn-remove-combination-row:focus{outline:none}.target-conditions-trait .btn-remove-combination-row,.entity-selector-trait .btn-remove-combination-row{display:flex;align-items:center;justify-content:center;width:24px;height:24px;color:#6c757d;border-radius:.2rem;transition:all .15s ease-in-out}.target-conditions-trait .btn-remove-combination-row:hover,.entity-selector-trait .btn-remove-combination-row:hover{background:rgba(220,53,69,.1);color:#dc3545}.target-conditions-trait .btn-remove-combination-row i,.entity-selector-trait .btn-remove-combination-row i{font-size:12px}.target-conditions-trait .method-dropdown-trigger,.entity-selector-trait .method-dropdown-trigger{display:inline-flex;align-items:center;gap:.5rem;height:36px;padding:0 1rem;border-radius:.25rem;background:#fff;color:#1e293b;font-size:.875rem;cursor:pointer;transition:all .15s ease-in-out;min-width:180px;max-width:320px;border:1px solid #dee2e6}.target-conditions-trait .method-dropdown-trigger:hover,.entity-selector-trait .method-dropdown-trigger:hover{background:#f8fafc;border-color:#dee2e6}.target-conditions-trait .method-dropdown-trigger:focus,.target-conditions-trait .method-dropdown-trigger:active,.entity-selector-trait .method-dropdown-trigger:focus,.entity-selector-trait .method-dropdown-trigger:active{outline:none;border-color:#25b9d7;box-shadow:0 0 0 3px rgba(37,185,215,.1)}.target-conditions-trait .method-trigger-icon,.entity-selector-trait .method-trigger-icon{font-size:.875rem;color:#6c757d;flex-shrink:0;width:18px;text-align:center}.target-conditions-trait .method-trigger-label,.entity-selector-trait .method-trigger-label{flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-weight:500}.target-conditions-trait .method-trigger-caret,.entity-selector-trait .method-trigger-caret{font-size:.75rem;color:#94a3b8;flex-shrink:0;margin-left:auto}.target-conditions-trait .selector-locked .method-dropdown-trigger,.entity-selector-trait .selector-locked .method-dropdown-trigger{background:#f1f5f9;color:#94a3b8;cursor:not-allowed;border-color:#dee2e6}.target-conditions-trait .selector-locked .method-dropdown-trigger:hover,.entity-selector-trait .selector-locked .method-dropdown-trigger:hover{background:#f1f5f9;border-color:#dee2e6}.target-conditions-trait .method-selector-wrapper,.entity-selector-trait .method-selector-wrapper{position:relative}.target-conditions-trait .method-select-hidden,.entity-selector-trait .method-select-hidden{position:absolute !important;opacity:0 !important;pointer-events:none !important;width:0 !important;height:0 !important;overflow:hidden !important}.method-select-hidden{position:absolute !important;opacity:0 !important;pointer-events:none !important;width:0 !important;height:0 !important;overflow:hidden !important}.method-dropdown-menu{position:absolute;z-index:1001;min-width:200px;max-width:360px;max-height:400px;overflow-y:auto;background:#fff;border-radius:.3rem;padding:.375rem 0;border:1px solid #dee2e6;box-shadow:0 10px 40px rgba(0,0,0,.15);animation:methodDropdownFadeIn .15s ease}.method-dropdown-menu::-webkit-scrollbar{width:6px;height:6px}.method-dropdown-menu::-webkit-scrollbar-track{background:#f8f9fa;border-radius:3px}.method-dropdown-menu::-webkit-scrollbar-thumb{background:#dee2e6;border-radius:3px}.method-dropdown-menu::-webkit-scrollbar-thumb:hover{background:#ced4da}@keyframes methodDropdownFadeIn{from{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}.method-dropdown-item{display:flex;align-items:center;gap:.625rem;padding:.5rem 1rem;cursor:pointer;transition:background-color .1s;position:relative}.method-dropdown-item:hover{background:#f1f5f9}.method-dropdown-item.selected{background:rgba(37,185,215,.08)}.method-dropdown-item .method-item-icon{font-size:.875rem;color:#6c757d;width:18px;text-align:center;flex-shrink:0}.method-dropdown-item.selected .method-item-icon{color:#25b9d7}.method-dropdown-item .method-item-label{flex:1;font-size:.875rem;color:#334155;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.method-dropdown-item.selected .method-item-label{color:#0e7490;font-weight:500}.method-dropdown-item .method-item-check{font-size:.75rem;flex-shrink:0;margin-left:auto;color:#25b9d7}.method-dropdown-optgroup{margin-top:.25rem}.method-dropdown-optgroup:first-child{margin-top:0}.method-optgroup-label{padding:.5rem 1rem;font-size:11px;font-weight:600;color:#6c757d;text-transform:uppercase;letter-spacing:.05em;background:#f8fafc;border-top:1px solid #f1f5f9;border-bottom:1px solid #f1f5f9}.method-dropdown-optgroup:first-child .method-optgroup-label{border-top:0}.method-optgroup-items{padding:.25rem 0}.method-optgroup-items .method-dropdown-item{padding-left:1.5rem}.method-info-placeholder{font-size:.75rem;color:#6c757d;font-style:italic}.mpr-info-wrapper{display:inline-flex;align-items:center;position:relative;cursor:help;vertical-align:middle;margin-left:.25rem}.mpr-info-wrapper .material-icons{font-size:16px;color:#6c757d;transition:color .15s ease}.mpr-info-wrapper:hover .material-icons{color:#25b9d7}.mpr-tooltip-fixed{position:fixed;background:#fff;color:#1e293b;padding:1rem 1.5rem;border-radius:.25rem;font-size:13px;line-height:1.5;white-space:normal;z-index:10500;max-width:320px;min-width:180px;text-align:left;box-shadow:rgba(0,0,0,.12) 0px 1px 1px 0px,rgba(64,68,82,.16) 0px 0px 0px 1px,rgba(64,68,82,.08) 0px 2px 5px 0px;pointer-events:none}.mpr-tooltip-fixed.pinned{pointer-events:auto;padding-right:3rem}.mpr-tooltip-fixed strong{display:block;margin-bottom:.375rem;font-weight:600;color:#25b9d7}.mpr-tooltip-fixed p{margin:0;color:#495057}.mpr-tooltip-fixed ul{margin:.5rem 0 0;padding-left:1.25rem}.mpr-tooltip-fixed ul li{margin:.25rem 0;color:#495057}.mpr-tooltip-close{position:absolute;top:.375rem;right:.375rem;padding:.125rem;border:none;background:rgba(0,0,0,0);cursor:pointer;border-radius:.2rem;line-height:1;transition:background-color .15s ease}.mpr-tooltip-close .material-icons{font-size:16px;color:#6c757d}.mpr-tooltip-close:hover{background:#f1f5f9}.mpr-tooltip-close:hover .material-icons{color:#334155}.category-tree{display:flex;flex-direction:column}.category-tree .tree-toolbar{display:flex;align-items:center;gap:.5rem;padding:.25rem .5rem;background:#f8fafc;border-bottom:1px solid #e9ecef;flex-shrink:0}.category-tree .tree-toolbar .btn-expand-all,.category-tree .tree-toolbar .btn-collapse-all{padding:0;margin:0;background:none;border:none;cursor:pointer;font:inherit;color:inherit}.category-tree .tree-toolbar .btn-expand-all:focus,.category-tree .tree-toolbar .btn-collapse-all:focus{outline:none}.category-tree .tree-toolbar .btn-expand-all,.category-tree .tree-toolbar .btn-collapse-all{display:inline-flex;align-items:center;gap:.25rem;padding:.25rem .5rem;font-size:.75rem;font-weight:500;color:#495057;background:#fff;border:1px solid #dee2e6;border-radius:.2rem;transition:all .15s ease-in-out}.category-tree .tree-toolbar .btn-expand-all:hover,.category-tree .tree-toolbar .btn-collapse-all:hover{background:#f1f5f9;border-color:#cbd5e1}.category-tree .tree-toolbar .btn-expand-all i,.category-tree .tree-toolbar .btn-collapse-all i{font-size:12px}.category-tree .tree-items{padding:0}.tree-item{display:flex;align-items:center;gap:.25rem;padding:.25rem .5rem;cursor:pointer;transition:background .15s ease-in-out;border-radius:0}.tree-item:hover{background:#f1f5f9}.tree-item.selected{background:rgba(37,185,215,.1)}.tree-item.selected .tree-name{font-weight:600;color:#25b9d7}.tree-item.selected .tree-checkbox{color:#25b9d7}.tree-item.selected .tree-checkbox i{opacity:1}.tree-item.inactive{opacity:.6}.tree-item.inactive .tree-name{font-style:italic}.tree-item.filtered-out{display:none}.tree-item.filter-match{background:#fff3cd}.tree-item.filter-match.selected{background:rgba(37,185,215,.1)}.category-tree .tree-indent{flex-shrink:0}.category-tree .tree-toggle{display:flex;align-items:center;justify-content:center;width:12px;height:12px;box-sizing:border-box;color:#495057;flex-shrink:0;border-radius:.2rem;transition:all .15s ease-in-out;cursor:pointer}.category-tree .tree-toggle:hover{background:#e2e8f0;color:#212529}.category-tree .tree-toggle.tree-leaf{cursor:default;visibility:hidden}.category-tree .tree-toggle.tree-leaf:hover{background:rgba(0,0,0,0)}.category-tree .tree-toggle i{font-size:10px;transition:transform .15s ease-in-out}.category-tree .tree-item.collapsed>.tree-toggle i{transform:rotate(-90deg)}.category-tree .tree-checkbox{display:flex;align-items:center;justify-content:center;width:12px;height:12px;box-sizing:border-box;flex-shrink:0;border:1px solid #dee2e6;border-radius:2px;background:#fff}.category-tree .tree-checkbox i{font-size:8px;opacity:0;color:#fff;transition:opacity .15s ease-in-out}.category-tree .tree-item.selected .tree-checkbox{background:#25b9d7;border-color:#25b9d7}.category-tree .tree-item.selected .tree-checkbox i{opacity:1}.category-tree .tree-icon{display:flex;align-items:center;justify-content:center;width:12px;height:12px;box-sizing:border-box;color:#6c757d;flex-shrink:0}.category-tree .tree-icon i{font-size:12px}.category-tree .tree-item.selected .tree-icon{color:#25b9d7}.category-tree .tree-name{flex:1;font-size:.875rem;color:#212529;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.category-tree .tree-count{display:inline-flex;align-items:center;justify-content:center;gap:.25rem;min-width:20px;height:20px;padding:0 .5rem;background:#25b9d7;color:#fff;font-size:.75rem;font-weight:600;border-radius:50rem;cursor:pointer;transition:all .15s ease-in-out;flex-shrink:0}.category-tree .tree-count:hover{transform:scale(1.05);box-shadow:0 2px 8px rgba(37,185,215,.4)}.category-tree .tree-count:focus{outline:none;box-shadow:0 0 0 2px rgba(37,185,215,.3),0 2px 8px rgba(37,185,215,.4)}.category-tree .tree-count.loading{cursor:wait}.category-tree .tree-count.loading i{font-size:10px;animation:spin .6s linear infinite}.category-tree .tree-count.loading:hover{transform:none;box-shadow:none}.category-tree .tree-count.inactive,.category-tree .tree-count.no-matches{background:#94a3b8;cursor:default}.category-tree .tree-count.inactive:hover,.category-tree .tree-count.no-matches:hover{transform:none;box-shadow:none}.category-tree .tree-count.popover-open{background:rgb(29.5119047619,147.5595238095,171.4880952381);box-shadow:0 2px 8px rgba(37,185,215,.4)}.category-tree .tree-count i{font-size:10px;line-height:1;opacity:.8}.category-tree .tree-count:hover i{opacity:1}.category-tree .tree-count .preview-count{font-weight:700}.category-tree .tree-count{height:18px;min-width:18px;padding:0 .5rem}.category-tree .tree-count i{font-size:10px}.category-tree .tree-count.clickable.loading{pointer-events:none}.category-tree .tree-count.clickable.loading i{animation:spin 1s linear infinite}.category-tree .tree-count.clickable.popover-open{background:rgb(29.5119047619,147.5595238095,171.4880952381)}.category-tree .btn-select-children{padding:0;margin:0;background:none;border:none;cursor:pointer;font:inherit;color:inherit}.category-tree .btn-select-children:focus{outline:none}.category-tree .btn-select-children{display:inline-flex;align-items:center;justify-content:center;width:12px;height:12px;box-sizing:border-box;color:#6c757d;border-radius:.2rem;opacity:.3;transition:all .15s ease-in-out;flex-shrink:0}.category-tree .btn-select-children i{font-size:14px}.category-tree .btn-select-children:hover{color:#25b9d7;opacity:1}.category-tree .tree-item:hover .btn-select-children{opacity:.6}.category-tree .tree-badge{display:inline-flex;align-items:center;padding:.125rem .25rem;font-size:9px;font-weight:600;text-transform:uppercase;letter-spacing:.025em;border-radius:.2rem;flex-shrink:0}.category-tree .tree-badge.inactive{color:#ffc107;background:#fff3cd}.category-tree .tree-children{display:block}.category-tree .tree-children.filter-expanded{display:block !important}.category-tree .tree-item.collapsed+.tree-children{display:none}.category-tree .tree-item.filtered-out{display:none !important}.category-tree .tree-loading,.category-tree .dropdown-empty,.category-tree .dropdown-error{display:flex;align-items:center;justify-content:center;padding:2rem;color:#6c757d;font-size:.875rem}.category-tree .tree-loading i,.category-tree .dropdown-empty i,.category-tree .dropdown-error i{margin-right:.5rem}.category-tree .dropdown-error{color:#dc3545}.target-search-dropdown.view-tree .dropdown-results{padding:0}.target-search-dropdown.view-tree .category-tree{max-height:100%;overflow-y:auto}.target-search-dropdown.view-tree .category-tree::-webkit-scrollbar{width:6px;height:6px}.target-search-dropdown.view-tree .category-tree::-webkit-scrollbar-track{background:#f8f9fa;border-radius:3px}.target-search-dropdown.view-tree .category-tree::-webkit-scrollbar-thumb{background:#dee2e6;border-radius:3px}.target-search-dropdown.view-tree .category-tree::-webkit-scrollbar-thumb:hover{background:#ced4da}.target-search-dropdown.view-tree .tree-items{max-height:calc(100% - 40px);overflow-y:auto}.target-search-dropdown.view-tree .tree-items::-webkit-scrollbar{width:6px;height:6px}.target-search-dropdown.view-tree .tree-items::-webkit-scrollbar-track{background:#f8f9fa;border-radius:3px}.target-search-dropdown.view-tree .tree-items::-webkit-scrollbar-thumb{background:#dee2e6;border-radius:3px}.target-search-dropdown.view-tree .tree-items::-webkit-scrollbar-thumb:hover{background:#ced4da}.es-validation-toast{display:flex;align-items:flex-start;gap:.5rem;padding:1rem;background:#fff;border:1px solid #dc3545;border-left:4px solid #dc3545;border-radius:.25rem;box-shadow:0 1rem 3rem rgba(0,0,0,.175);max-width:400px;animation:es-toast-slide-in .2s ease-out}.es-validation-toast .es-toast-icon{display:flex;align-items:center;justify-content:center;width:24px;height:24px;color:#dc3545;flex-shrink:0}.es-validation-toast .es-toast-icon i{font-size:18px}.es-validation-toast .es-toast-content{flex:1;min-width:0}.es-validation-toast .es-toast-title{font-size:.875rem;font-weight:600;color:#dc3545;margin-bottom:2px}.es-validation-toast .es-toast-message{font-size:.75rem;color:#495057;line-height:1.4}.es-validation-toast .es-toast-close{padding:0;margin:0;background:none;border:none;cursor:pointer;font:inherit;color:inherit}.es-validation-toast .es-toast-close:focus{outline:none}.es-validation-toast .es-toast-close{display:flex;align-items:center;justify-content:center;width:20px;height:20px;color:#6c757d;border-radius:.2rem;flex-shrink:0;transition:all .15s ease-in-out}.es-validation-toast .es-toast-close:hover{background:#f1f5f9;color:#212529}.es-validation-toast .es-toast-close i{font-size:12px}@keyframes es-toast-slide-in{from{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}} /*# sourceMappingURL=entity-selector.css.map */ diff --git a/assets/css/admin/entity-selector.css.map b/assets/css/admin/entity-selector.css.map index a545b03..0670ccb 100644 --- a/assets/css/admin/entity-selector.css.map +++ b/assets/css/admin/entity-selector.css.map @@ -1 +1 @@ -{"version":3,"sources":["_mixins.scss","layouts/_form-integration.scss","../../../prestashop-admin/assets/scss/_variables.scss","layouts/_responsive.scss","_variables.scss","components/_entity-selector.scss","components/_entity-item.scss","components/_dropdown.scss","components/_chips.scss","components/_groups.scss","components/_value-picker.scss","components/_modal.scss","components/_list-preview.scss","components/_schedule.scss","components/_tips.scss","components/_condition-trait.scss","components/_combinations.scss","components/_method-dropdown.scss","components/_tooltip.scss","components/_tree.scss","components/_validation.scss"],"names":[],"mappings":"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B,cLpbW,MKqbX,gCAEA,sHACI,eACA,uBACA,2BACA,kBACA,YHjVY,IGoVhB,gHACI,MHxbE,QGybF,WH1dD,KG2dC,yBAEA,4HACI,WHvbD,QGwbC,aHjcF,QGqcN,0NAEI,MHreD,KGseC,WLpeF,QKqeE,yBAEA,kPACI,WHreG,QGseH,aHteG,QGyeP,kRACI,8BAMZ,wFACI,aAGJ,wFACI,aAIJ,8FACI,QLxgBC,KKygBD,WH1dM,QG2dN,gCAGJ,0FACI,aACA,mBACA,8BACA,cHxbQ,MG2bZ,wFACI,UH5YU,QG6YV,YHvYkB,IGwYlB,MH3eM,QG8eV,0FPnfA,UACA,SACA,gBACA,YACA,eACA,aACA,cAEA,sGACI,aO0eJ,0FAEI,UHpZU,OGqZV,MLlhBE,QKohBF,sGACI,0BAIR,4FACI,aACA,IH7cQ,MG8cR,4DAGJ,4EACI,aACA,sBACA,WAGJ,4EACI,UHzaU,OG0aV,YHpagB,IGqahB,MHzgBM,QG4gBV,0JP5cA,WACA,mBACA,UI6Bc,QJ5Bd,YIsCoB,IJrCpB,MIlEU,QJmEV,iBItGO,KJuGP,yBACA,cEhFY,OFiFZ,qEAEA,kLACI,aE1GE,QF2CN,UACA,4CAkEA,8MACI,MIlFM,QG8gBV,0JAGI,sBACA,UHlbU,OGybd,8EACI,QHzeQ,MGgfZ,4EACI,aACA,mBACA,uBACA,IHpfQ,MGqfR,QHlfQ,KGmfR,MLnkBI,QKokBJ,UHvcU,QGycV,gFACI,mCAKR,sEACI,aACA,mBACA,IHngBQ,OGogBR,sBACA,cL3jBW,MK4jBX,eACA,6CAEA,kFACI,WH7jBE,QGgkBN,wFACI,WHvlBO,oBGylBP,sHACI,WL9lBN,QK+lBM,aL/lBN,QKimBM,0HACI,cAYhB,sEACI,aACA,mBACA,IHpiBQ,OGqiBR,OACA,YAGJ,sEACI,UHzfU,QG0fV,MHvlBM,QJhBV,gBACA,uBACA,mBOymBA,8EACI,UHhgBU,OGigBV,ML7nBI,QKioBR,wFACI,iBAGJ,wFACI,aACA,mBACA,IH3jBQ,MG4jBR,qBACA,cLpnBW,MKqnBX,eACA,6CAEA,oGACI,WHtnBE,QGynBN,0GACI,WHhpBO,oBGopBf,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oCI,QK2oCJ,mBAEA,gYACI,oBAIR,yFACI,MLnpCI,QKspCR,88BPxjCA,WACA,mBACA,UI6Bc,QJ5Bd,YIsCoB,IJrCpB,MIlEU,QJmEV,iBItGO,KJuGP,yBACA,cEhFY,OFiFZ,qEAEA,skCACI,aE1GE,QF2CN,UACA,4CAkEA,ktCACI,MIlFM,QG0nCV,88BAWI,WACA,qBACA,UHviCU,OG0iCd,iUPxkCA,WACA,mBACA,UI6Bc,QJ5Bd,YIsCoB,IJrCpB,MIlEU,QJmEV,iBItGO,KJuGP,yBACA,cEhFY,OFiFZ,qEAEA,qWACI,aE1GE,QF2CN,UACA,4CAkEA,+YACI,MIlFM,QG0oCV,iUAII,qBACA,UH/iCU,OGgjCV,gBAGJ,iUAGI,aACA,eACA,WAIJ,+FP7pCA,UACA,SACA,gBACA,YACA,eACA,aACA,cAEA,2GACI,aOopCJ,+FAEI,oBACA,mBACA,WACA,qBACA,UHlkCU,OGmkCV,MHjqCM,QGkqCN,WHnsCG,KGosCH,yBACA,cL5qCW,MK6qCX,eACA,gCAEA,2GACI,WH9qCE,QG+qCF,aHlqCG,QGqqCP,6GACI,WHzsCO,oBG0sCP,aL9sCF,QK+sCE,ML/sCF,QKitCE,yIACI,MLltCN,QKstCF,2HACI,aLrtCF,QKstCE,+BAEA,uJACI,MLztCN,QK0tCM,YHxlCU,IG4lClB,yHACI,YH9lCY,IGkmChB,2HACI,oBACA,mBACA,YACA,MLxuCA,QKyuCA,iBAEA,+HACI,eACA,ML9uCN,QKkvCE,+IACI,eACA,uBACA,cL9tCG,MK+tCH,gCAEA,2JACI,+BACA,ML1vCV,QK4vCU,+JACI,ML7vCd,QKiwCM,yKACI,WLlwCV,QKmwCU,MHrwCT,KGuwCS,6KACI,MHxwCb,KG6wCS,mKACI,mCAQpB,iQPxvCA,UACA,SACA,gBACA,YACA,eACA,aACA,cAEA,2LACI,aO+uCJ,iQAEI,oBACA,mBACA,WACA,qBACA,UH7pCU,OG8pCV,MH5vCM,QG6vCN,WHvvCO,QGwvCP,+BACA,cLvwCW,MKwwCX,eACA,gCAEA,2LACI,WH7vCG,QGgwCP,+LACI,WLvyCF,QKwyCE,MH1yCD,KGqzCP,2F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yBACA,cP3wBW,MO4wBX,eAEA,sGACI,aPtyBF,QOuyBE,aAIR,4ET/wBA,UACA,SACA,gBACA,YACA,eACA,aACA,cAEA,wFACI,aSswBJ,4EAEI,aACA,mBACA,uBACA,MAvFc,KAwFd,OAxFc,KAyFd,MPjzBI,QOkzBJ,yBACA,cP7xBW,MO8xBX,gCAEA,wFACI,WLnxBG,QKoxBH,ML1xBE,QK8xBV,0FACI,oBACA,mBACA,WACA,qBACA,WL7xBO,QK8xBP,MPl0BI,QOm0BJ,ULvsBU,OKwsBV,YLlsBgB,IKmsBhB,cL3uBS,MK4uBT,gCAEA,8GACI,eAEA,0HACI,WLz0BG,oBK00BH,MP90BN,QOo1BN,kFACI,aACA,mBACA,uBACA,gBACA,MPx1BI,QOy1BJ,UL7tBU,OK8tBV,YLvtBkB,IKwtBlB,yBACA,oBAEA,kMAEI,WACA,OACA,WACA,WP/0BG,QOg1BH,cAKR,kFACI,aACA,eACA,IPx3BC,KOy3BD,YPz3BC,KO03BD,WP13BC,KO23BD,6BAGJ,gFACI,aACA,mBACA,ILxyBQ,MK2yBZ,gFACI,UL7vBU,OK8vBV,YLxvBgB,IKyvBhB,MP33BI,QO43BJ,mBAGJ,gFTjyBA,WACA,mBACA,UI6Bc,QJ5Bd,YIsCoB,IJrCpB,MIlEU,QJmEV,iBItGO,KJuGP,yBACA,cEhFY,OFiFZ,qEAEA,4FACI,aE1GE,QF2CN,UACA,4CAkEA,0GACI,MIlFM,QKm2BV,gFAEI,WACA,qBACA,ULvwBU,OK0wBd,kFTxyBA,WACA,mBACA,UI6Bc,QJ5Bd,YIsCoB,IJrCpB,MIlEU,QJmEV,iBItGO,KJuGP,yBACA,cEhFY,OFiFZ,qEAEA,8FACI,aE1GE,QF2CN,UACA,4CAkEA,4GACI,MIlFM,QK02BV,kFAEI,WACA,mCACA,UL9wBU,OK+wBV,eACA,gBACA,mPACA,wCACA,4BACA,8BAIJ,8FACI,oBACA,mBACA,WACA,wBACA,WLr3BO,QKs3BP,MP15BI,QO25BJ,UL/xBU,OKgyBV,YL1xBgB,IK2xBhB,cLn0BS,MKo0BT,eACA,gCAEA,0GACI,WL73BG,QKg4BP,sHACI,WLn6BO,oBKo6BP,MPx6BF,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CI,eACA,MVpZE,QUqZF,mCAQR,uBACI,gBACA,gBAEA,+CACI,aACA,mBACA,8BACA,mBACA,WVhaA,QUiaA,gCAEA,sEACI,YRtSc,IQuSd,MR1YE,QQ2YF,UR9SM,QQiTV,sEACI,URnTM,OQoTN,MVhbA,QUobR,6CACI,iBAGJ,2CACI,gBACA,SACA,UAGJ,2CACI,aACA,mBACA,IRpXQ,MQqXR,mBACA,eACA,sCAEA,iDACI,WRpaE,QQuaN,6CACI,WACA,kBACA,MV7cA,QU8cA,eAGJ,+DACI,OACA,URtVM,QQuVN,MRpbE,QQubN,+DACI,UR3VM,QQ4VN,YRtVc,IQuVd,MV3dF,QU4dE,+BACA,gBACA,cVvcO,MU6cnB,mBACI,eACA,yBAEA,yBACI,WAGJ,gCACI,WCrfR,2BACI,WTKO,KSJP,yBACA,cX6Be,MWzBnB,iBACI,aACA,mBACA,8BACA,IXdK,KWeL,qBACA,WXCI,wCWCJ,8BACA,eACA,iBACA,6CAEA,uBACI,WTaM,QSTd,gBACI,aACA,mBACA,WACA,UTyGc,QSxGd,YT8GsB,IS7GtB,MTUU,QSRV,kBACI,MXzBI,QW8BZ,eACI,QX3CK,KW+CT,kBACI,cT2CY,OSzCZ,6BACI,gBAIR,wBACI,aACA,mBACA,IT+BY,MS9BZ,cT8BY,MS7BZ,UT6Ec,QS5Ed,YTkFsB,ISjFtB,MTlBU,QSoBV,0BACI,MXrDI,QWyDZ,8BACI,cXtEK,KWuEL,UTiEc,OShEd,MX5DQ,QWgEZ,gBACI,aACA,eACA,IX/EK,KWkFT,gBACI,OACA,gBAGJ,gBACI,cACA,qBACA,UT8Cc,OS7Cd,YTmDoB,ISlDpB,MTlDU,QSqDd,gBbWI,WACA,mBACA,UI6Bc,QJ5Bd,YIsCoB,IJrCpB,MIlEU,QJmEV,iBItGO,KJuGP,yBACA,cEhFY,OFiFZ,qEAEA,sBACI,aE1GE,QF2CN,UACA,4CAkEA,6BACI,MIlFM,QS4Dd,iBACI,aACA,sBACA,ITdY,MSiBhB,SACI,aACA,mBACA,IX7GK,KW8GL,QTrBY,MSsBZ,WThEU,QSiEV,cX/EY,OWiFZ,kBACI,WAIR,YACI,aACA,mBACA,ITjCY,MSkCZ,gBAGJ,cACI,WACA,YACA,eAGJ,UACI,UTIc,QSHd,YTQoB,ISPpB,MT3FU,QS+Fd,iBACI,OACA,kBACA,YACA,WT9FW,QS+FX,cT1Ca,MS2Cb,eAGJ,eACI,kBACA,MACA,YACA,WX7IM,QW8IN,cTnDa,MSoDb,gCAGJ,iBACI,kBACA,QACA,WACA,YACA,WTzJO,KS0JP,yBACA,kBACA,gCACA,YACA,WT3DW,kCS4DX,uCAEA,uBACI,WT9DO,6BSiEX,wBACI,gBAGJ,8BACI,UAGJ,4BACI,UAKR,WACI,aACA,mBACA,ITvGY,OSwGZ,gBACA,UTzDc,OS0Dd,sBACA,MTzJU,QS4Jd,gBACI,MX3LQ,QW+LZ,iBACI,QX5MK,KW6ML,WT9JU,QS+JV,cX7KY,OWgLhB,gBACI,aACA,mBACA,IT3HY,MS4HZ,cXrNK,KWwNT,kBACI,WACA,YACA,eAGJ,eACI,UTtFc,QSuFd,YTlFoB,ISmFpB,MTrLU,QSwLd,mBACI,aACA,eACA,IT/IY,OSkJhB,sBbmBI,oBACA,mBACA,IIvKY,OJwKZ,qBACA,UIzHc,OJ0Hd,YIpHoB,IJqHpB,WI9NU,QJ+NV,MI1NU,QJ2NV,cI/Ja,MJiKb,mCAhOA,UACA,SACA,gBACA,YACA,eACA,aACA,cAEA,yCACI,aAuNJ,mCAjQA,aACA,mBACA,uBAkQI,WACA,YACA,eACA,MEjQI,QFkQJ,kBAEA,yCACI,0BACA,MEpQH,QW4NT,sBAEI,eAEA,+BACI,WThOW,oBSiOX,MXrOE,QW0OV,aACI,aACA,mBACA,IT/JY,MSgKZ,mBACA,WT5NY,QS6NZ,cX1NY,OW2NZ,UTpHc,OSqHd,MX7OG,QW+OH,eACI,UTvHU,QS0Hd,yBACI,sBACA,YTtHkB,IS2H1B,kBACI,aACA,sBACA,ITrLY,OSsLZ,QX9QK,KW+QL,WThOU,QSiOV,cX/OY,OWgPZ,UTxIc,QSyId,MTxOU,QS0OV,gCACI,aACA,mBACA,IT9LQ,MSgMR,kCACI,MX7QF,QW8QE,UTlJM,QSqJV,2CACI,MXnRA,QW0RR,oDACI,aAGJ,sDACI,cXxQW,MY7Bf,kFACI,wBACA,yBACA,cZ0BW,MYzBX,gBACA,6DAIJ,0EACI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","file":"entity-selector.css","sourcesContent":["/**\n * Entity Selector Mixins\n * Reusable patterns - prefer Bootstrap utilities in HTML where possible\n */\n\n@use 'variables' as *;\n\n// =============================================================================\n// Layout\n// =============================================================================\n\n@mixin flex-center {\n display: flex;\n align-items: center;\n justify-content: center;\n}\n\n@mixin flex-between {\n display: flex;\n align-items: center;\n justify-content: space-between;\n}\n\n@mixin grid-columns($cols) {\n display: grid;\n grid-template-columns: repeat($cols, 1fr);\n gap: $es-spacing-sm;\n}\n\n// =============================================================================\n// Text\n// =============================================================================\n\n@mixin text-truncate {\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n\n// =============================================================================\n// Interactive Elements\n// =============================================================================\n\n// Reset button styles\n@mixin button-reset {\n padding: 0;\n margin: 0;\n background: none;\n border: none;\n cursor: pointer;\n font: inherit;\n color: inherit;\n\n &:focus {\n outline: none;\n }\n}\n\n// Focus ring (Bootstrap 4 style)\n@mixin focus-ring($color: $es-primary) {\n outline: 0;\n box-shadow: 0 0 0 0.2rem rgba($color, 0.25);\n}\n\n// Interactive hover state\n@mixin interactive-item {\n cursor: pointer;\n transition: background-color $es-transition-fast, color $es-transition-fast;\n\n &:hover {\n background-color: $es-bg-hover;\n }\n}\n\n// =============================================================================\n// Cards & Containers\n// =============================================================================\n\n@mixin card {\n background: $es-white;\n border: 1px solid $es-border-color;\n border-radius: $es-radius-lg;\n}\n\n@mixin dropdown-container {\n position: absolute;\n z-index: $es-z-dropdown;\n background: $es-white;\n border: 1px solid $es-border-color;\n border-radius: $es-radius-lg;\n box-shadow: $es-shadow-lg;\n}\n\n// =============================================================================\n// Form Elements\n// =============================================================================\n\n// Reset input styles (for inputs in custom wrappers)\n@mixin input-reset {\n padding: 0;\n margin: 0;\n background: none;\n border: none;\n font: inherit;\n color: inherit;\n\n &:focus {\n outline: none;\n }\n}\n\n@mixin input-base {\n width: 100%;\n padding: $es-spacing-sm $es-spacing-md;\n font-size: $es-font-size-sm;\n line-height: $es-line-height-normal;\n color: $es-text-primary;\n background-color: $es-white;\n border: 1px solid $es-border-color;\n border-radius: $es-radius-md;\n transition: border-color $es-transition-fast, box-shadow $es-transition-fast;\n\n &:focus {\n border-color: $es-primary;\n @include focus-ring($es-primary);\n }\n\n &::placeholder {\n color: $es-text-light;\n }\n}\n\n// =============================================================================\n// Scrollbar\n// =============================================================================\n\n@mixin custom-scrollbar {\n &::-webkit-scrollbar {\n width: 6px;\n height: 6px;\n }\n\n &::-webkit-scrollbar-track {\n background: $es-gray-100;\n border-radius: 3px;\n }\n\n &::-webkit-scrollbar-thumb {\n background: $es-gray-300;\n border-radius: 3px;\n\n &:hover {\n background: $es-gray-400;\n }\n }\n}\n\n// =============================================================================\n// Badges & Chips\n// =============================================================================\n\n@mixin badge($bg: $es-gray-200, $color: $es-gray-700) {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n padding: 0.125rem 0.5rem;\n font-size: $es-font-size-xs;\n font-weight: $es-font-weight-medium;\n line-height: 1;\n background-color: $bg;\n color: $color;\n border-radius: $es-radius-full;\n}\n\n// Count badge with preview icon (used for tab badges, match counts, totals)\n// Note: Eye icon is provided in HTML via \n@mixin count-badge($bg: $es-primary) {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n gap: 0.25rem;\n min-width: 20px;\n height: 20px;\n padding: 0 0.5rem;\n background: $bg;\n color: $es-white;\n font-size: $es-font-size-xs;\n font-weight: $es-font-weight-semibold;\n border-radius: $es-radius-full;\n cursor: pointer;\n transition: all $es-transition-fast;\n flex-shrink: 0;\n\n &:hover {\n transform: scale(1.05);\n box-shadow: 0 2px 8px rgba($bg, 0.4);\n }\n\n // Focus state - maintain styled appearance\n &:focus {\n outline: none;\n box-shadow: 0 0 0 2px rgba($bg, 0.3), 0 2px 8px rgba($bg, 0.4);\n }\n\n // Loading state - spinner icon replaces eye\n &.loading {\n cursor: wait;\n\n i {\n font-size: 10px;\n animation: spin 0.6s linear infinite;\n }\n\n &:hover {\n transform: none;\n box-shadow: none;\n }\n }\n\n // Inactive/empty state\n &.inactive,\n &.no-matches {\n background: $es-slate-400;\n cursor: default;\n\n &:hover {\n transform: none;\n box-shadow: none;\n }\n }\n\n // Popover open state\n &.popover-open {\n background: darken($bg, 10%);\n box-shadow: 0 2px 8px rgba($bg, 0.4);\n }\n\n // Icon inside badge (eye, spinner, etc.)\n i {\n font-size: 10px;\n line-height: 1;\n opacity: 0.8;\n }\n\n &:hover i {\n opacity: 1;\n }\n\n .preview-count {\n font-weight: $es-font-weight-bold;\n }\n}\n\n@keyframes spin {\n from { transform: rotate(0deg); }\n to { transform: rotate(360deg); }\n}\n\n@mixin chip {\n display: inline-flex;\n align-items: center;\n gap: $es-spacing-xs;\n padding: $es-spacing-xs $es-spacing-sm;\n font-size: $es-font-size-xs;\n font-weight: $es-font-weight-medium;\n background: $es-gray-200;\n color: $es-gray-700;\n border-radius: $es-radius-full;\n\n .chip-remove {\n @include button-reset;\n @include flex-center;\n width: 14px;\n height: 14px;\n font-size: 10px;\n color: $es-text-muted;\n border-radius: 50%;\n\n &:hover {\n background: rgba(0, 0, 0, 0.1);\n color: $es-danger;\n }\n }\n}\n\n// =============================================================================\n// Toggle Switch\n// =============================================================================\n\n@mixin toggle-switch($width: 36px, $height: 20px) {\n position: relative;\n width: $width;\n height: $height;\n border-radius: $height;\n background: $es-gray-400;\n transition: background-color $es-transition-normal;\n cursor: pointer;\n\n &::after {\n content: '';\n position: absolute;\n top: 2px;\n left: 2px;\n width: $height - 4px;\n height: $height - 4px;\n background: $es-white;\n border-radius: 50%;\n box-shadow: 0 1px 3px rgba(0, 0, 0, 0.2);\n transition: transform $es-transition-normal;\n }\n\n &.active {\n background: $es-success;\n\n &::after {\n transform: translateX($width - $height);\n }\n }\n}\n\n// =============================================================================\n// Screen Reader Only\n// =============================================================================\n\n@mixin sr-only {\n position: absolute;\n width: 1px;\n height: 1px;\n padding: 0;\n margin: -1px;\n overflow: hidden;\n clip: rect(0, 0, 0, 0);\n white-space: nowrap;\n border: 0;\n}\n","/**\n * Form Integration Styles\n * Handles PrestaShop admin form layout overrides\n */\n\n@use '../variables' as *;\n\n// Base border reset for all entity-selector elements\n.target-conditions-trait,\n.target-conditions-trait *,\n.entity-selector-trait,\n.entity-selector-trait *,\n.method-dropdown-menu,\n.method-dropdown-menu *,\n.target-preview-popover,\n.target-preview-popover * {\n border-style: solid;\n border-width: 0;\n border-color: $es-border-color;\n}\n\n// Full-width form group override using :has()\n.form-group:has(.entity-selector-trait),\n.form-group:has(.target-conditions-trait),\n.form-group:has(.condition-trait) {\n display: block;\n\n > .control-label {\n display: none;\n }\n\n > .col-lg-8 {\n width: 100%;\n max-width: 100%;\n padding-left: $es-spacing-md;\n padding-right: $es-spacing-md;\n flex: 0 0 100% !important;\n }\n}\n\n// Fallback class for browsers without :has() support\n.form-group.condition-trait-fullwidth {\n display: block;\n\n > .control-label {\n display: none;\n }\n\n > .col-lg-8 {\n width: 100%;\n max-width: 100%;\n padding-left: $es-spacing-md;\n padding-right: $es-spacing-md;\n flex: 0 0 100% !important;\n }\n}\n\n// Dropdown overflow fix\n// When dropdown is open, parent containers must allow overflow\n.panel:has(.target-search-dropdown.show),\n.card:has(.target-search-dropdown.show),\n.form-wrapper:has(.target-search-dropdown.show),\n.panel-body:has(.target-search-dropdown.show),\n.card-body:has(.target-search-dropdown.show),\n.form-group:has(.target-search-dropdown.show),\n.col-lg-8:has(.target-search-dropdown.show),\n.col-lg-12:has(.target-search-dropdown.show) {\n overflow: visible !important;\n}\n\n// Target conditions wrapper hierarchy overflow fix\n.target-conditions-trait:has(.target-search-dropdown.show),\n.entity-selector-trait:has(.target-search-dropdown.show),\n.condition-trait-body:has(.target-search-dropdown.show),\n.target-block-content:has(.target-search-dropdown.show),\n.target-block-groups:has(.target-search-dropdown.show),\n.target-group:has(.target-search-dropdown.show),\n.target-group-body:has(.target-search-dropdown.show),\n.target-search-wrapper:has(.target-search-dropdown.show) {\n overflow: visible !important;\n}\n","/**\n * MPR Admin Variables\n * @package prestashop-admin\n */\n\n// Spacing scale (Bootstrap 4 compatible)\n$spacer: 1rem;\n$spacers: (\n 0: 0,\n 1: $spacer * 0.25,\n 2: $spacer * 0.5,\n 3: $spacer,\n 4: $spacer * 1.5,\n 5: $spacer * 3\n);\n\n// Colors - PrestaShop Admin Theme\n$primary: #25b9d7;\n$secondary: #6c757d;\n$success: #28a745;\n$danger: #dc3545;\n$warning: #ffc107;\n$info: #17a2b8;\n$light: #f8f9fa;\n$dark: #343a40;\n\n$colors: (\n primary: $primary,\n secondary: $secondary,\n success: $success,\n danger: $danger,\n warning: $warning,\n info: $info,\n light: $light,\n dark: $dark\n);\n\n// Border\n$border-color: #dee2e6;\n$border-radius: 0.25rem;\n$border-radius-sm: 0.2rem;\n$border-radius-lg: 0.3rem;\n\n// Breakpoints\n$breakpoint-sm: 576px;\n$breakpoint-md: 768px;\n$breakpoint-lg: 991px;\n$breakpoint-xl: 1200px;\n","/**\n * Responsive Styles\n * Media query adjustments for different screen sizes\n */\n\n@use '../variables' as *;\n\n// Tablet and below\n@media (max-width: 991px) {\n .target-conditions-trait,\n .entity-selector-trait {\n .condition-trait-header {\n flex-direction: column;\n align-items: flex-start;\n gap: $es-spacing-sm;\n }\n\n .trait-header-right {\n width: 100%;\n justify-content: flex-end;\n }\n\n .target-block-tabs {\n flex-wrap: wrap;\n }\n }\n}\n\n// Mobile\n@media (max-width: 767px) {\n .target-conditions-trait,\n .entity-selector-trait {\n .target-block-tab {\n padding: $es-spacing-sm;\n font-size: $es-font-size-xs;\n }\n\n .target-group-header {\n flex-direction: column;\n align-items: flex-start;\n }\n\n .target-search-dropdown {\n width: 100% !important;\n left: 0 !important;\n right: 0 !important;\n }\n\n .dropdown-results-grid {\n grid-template-columns: 1fr !important;\n }\n }\n}\n\n// High-resolution displays\n@media (min-width: 1600px) {\n .target-conditions-trait,\n .entity-selector-trait {\n .dropdown-results-grid.view-grid-3 {\n grid-template-columns: repeat(4, 1fr);\n }\n }\n}\n","/**\n * Entity Selector Variables\n * Bootstrap 4 compatible values for PrestaShop admin theme\n *\n * Imports shared variables from prestashop-admin package\n * and maps them to $es-* prefixed aliases for this package\n */\n\n// Import shared variables from prestashop-admin\n@use '../../../prestashop-admin/assets/scss/variables' as admin;\n\n// =============================================================================\n// Base Colors\n// =============================================================================\n\n$es-white: #ffffff !default;\n$es-black: #000000 !default;\n\n// Primary (from prestashop-admin)\n$es-primary: admin.$primary !default;\n$es-primary-hover: #1a9ab7 !default;\n$es-primary-light: rgba(37, 185, 215, 0.1) !default;\n\n// Semantic colors (from prestashop-admin)\n$es-success: admin.$success !default;\n$es-success-light: #d4edda !default;\n$es-success-dark: #1e7e34 !default;\n\n$es-danger: admin.$danger !default;\n$es-danger-light: #f8d7da !default;\n$es-danger-dark: #bd2130 !default;\n\n$es-warning: admin.$warning !default;\n$es-warning-light: #fff3cd !default;\n\n$es-info: admin.$info !default;\n$es-info-light: #d1ecf1 !default;\n\n// =============================================================================\n// Gray Scale (Bootstrap 4)\n// =============================================================================\n\n$es-gray-100: admin.$light !default;\n$es-gray-200: #e9ecef !default;\n$es-gray-300: admin.$border-color !default;\n$es-gray-400: #ced4da !default;\n$es-gray-500: #adb5bd !default;\n$es-gray-600: admin.$secondary !default;\n$es-gray-700: #495057 !default;\n$es-gray-800: admin.$dark !default;\n$es-gray-900: #212529 !default;\n\n// Slate (subtle variations)\n$es-slate-50: #f8fafc !default;\n$es-slate-100: #f1f5f9 !default;\n$es-slate-200: #e2e8f0 !default;\n$es-slate-300: #cbd5e1 !default;\n$es-slate-400: #94a3b8 !default;\n$es-slate-500: #64748b !default;\n$es-slate-600: #475569 !default;\n$es-slate-700: #334155 !default;\n$es-slate-800: #1e293b !default;\n$es-slate-900: #0f172a !default;\n\n// Cyan\n$es-cyan-50: #ecfeff !default;\n$es-cyan-100: #cffafe !default;\n$es-cyan-200: #a5f3fc !default;\n$es-cyan-500: #06b6d4 !default;\n$es-cyan-600: #0891b2 !default;\n$es-cyan-700: #0e7490 !default;\n\n// =============================================================================\n// Semantic Aliases\n// =============================================================================\n\n$es-bg-header: $es-gray-100 !default;\n$es-bg-hover: $es-gray-200 !default;\n$es-bg-active: $es-gray-200 !default;\n$es-bg-body: $es-white !default;\n\n$es-border-color: admin.$border-color !default;\n$es-border-light: $es-gray-200 !default;\n$es-border-dark: $es-gray-400 !default;\n\n$es-text-primary: $es-gray-900 !default;\n$es-text-secondary: $es-gray-700 !default;\n$es-text-muted: $es-gray-600 !default;\n$es-text-light: $es-gray-500 !default;\n\n// =============================================================================\n// Spacing (Bootstrap 4 compatible, derived from admin.$spacer)\n// =============================================================================\n\n$es-spacing-xs: admin.$spacer * 0.25 !default; // 4px\n$es-spacing-sm: admin.$spacer * 0.5 !default; // 8px\n$es-spacing-md: admin.$spacer !default; // 16px\n$es-spacing-lg: admin.$spacer * 1.5 !default; // 24px\n$es-spacing-xl: admin.$spacer * 2 !default; // 32px\n\n// =============================================================================\n// Border Radius (from prestashop-admin)\n// =============================================================================\n\n$es-radius-sm: admin.$border-radius-sm !default;\n$es-radius-md: admin.$border-radius !default;\n$es-radius-lg: admin.$border-radius-lg !default;\n$es-radius-xl: 0.5rem !default;\n$es-radius-full: 50rem !default;\n\n// =============================================================================\n// Box Shadows (Bootstrap 4 compatible)\n// =============================================================================\n\n$es-shadow-sm: 0 0.125rem 0.25rem rgba(0, 0, 0, 0.075) !default;\n$es-shadow-md: 0 0.5rem 1rem rgba(0, 0, 0, 0.15) !default;\n$es-shadow-lg: 0 1rem 3rem rgba(0, 0, 0, 0.175) !default;\n$es-shadow-xl: 0 1.5rem 4rem rgba(0, 0, 0, 0.2) !default;\n\n// =============================================================================\n// Transitions\n// =============================================================================\n\n$es-transition-fast: 0.15s ease-in-out !default;\n$es-transition-normal: 0.2s ease-in-out !default;\n$es-transition-slow: 0.3s ease-in-out !default;\n\n// =============================================================================\n// Z-Index (below Bootstrap modal)\n// =============================================================================\n\n$es-z-dropdown: 1000 !default;\n$es-z-modal: 1050 !default;\n$es-z-popover: 1060 !default;\n$es-z-tooltip: 1070 !default;\n\n// =============================================================================\n// Typography\n// =============================================================================\n\n$es-font-family: -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, \"Helvetica Neue\", Arial, sans-serif !default;\n\n$es-font-size-xs: 0.75rem !default; // 12px\n$es-font-size-sm: 0.875rem !default; // 14px\n$es-font-size-base: 1rem !default; // 16px\n$es-font-size-lg: 1.125rem !default; // 18px\n\n$es-font-weight-normal: 400 !default;\n$es-font-weight-medium: 500 !default;\n$es-font-weight-semibold: 600 !default;\n$es-font-weight-bold: 700 !default;\n\n$es-line-height-tight: 1.25 !default;\n$es-line-height-normal: 1.5 !default;\n","/**\n * Entity Selector - Main Component Styles\n * Wrapper, header, body, tabs, blocks\n */\n\n@use '../variables' as *;\n@use '../mixins' as *;\n\n// Main wrapper (supports both .target-conditions-trait and .entity-selector-trait)\n.target-conditions-trait,\n.entity-selector-trait {\n position: relative;\n overflow: visible;\n background: $es-white;\n border: 1px solid $es-border-color;\n border-radius: $es-radius-lg;\n\n // Trait Header (collapsible)\n .condition-trait-header {\n display: flex;\n align-items: center;\n justify-content: space-between;\n flex-wrap: wrap;\n gap: $es-spacing-md;\n padding: 0.875rem $es-spacing-md;\n background: $es-bg-header;\n border-bottom: 1px solid $es-border-color;\n border-radius: $es-radius-lg $es-radius-lg 0 0;\n cursor: pointer;\n user-select: none;\n transition: background-color $es-transition-fast;\n\n &:hover {\n background: $es-bg-hover;\n }\n }\n\n .trait-header-left {\n display: flex;\n align-items: center;\n gap: 0.75rem;\n min-width: 0;\n flex: 1;\n }\n\n .trait-icon {\n font-size: $es-font-size-lg;\n color: $es-text-muted;\n flex-shrink: 0;\n }\n\n .trait-title-group {\n display: flex;\n flex-direction: column;\n gap: 0.125rem;\n min-width: 0;\n }\n\n .trait-title {\n font-size: $es-font-size-sm;\n font-weight: $es-font-weight-semibold;\n color: $es-text-primary;\n white-space: nowrap;\n }\n\n .trait-subtitle {\n font-size: $es-font-size-xs;\n color: $es-text-muted;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n }\n\n // Total count badge in header\n .trait-total-count {\n @include count-badge($es-primary);\n margin-left: $es-spacing-sm;\n }\n\n // Show all toggle switch\n .trait-show-all-toggle {\n display: inline-flex;\n align-items: center;\n gap: $es-spacing-sm;\n margin-right: 0.75rem;\n padding: 0.25rem $es-spacing-sm;\n border-radius: $es-radius-sm;\n cursor: pointer;\n user-select: none;\n transition: background-color $es-transition-fast;\n\n &:hover {\n background: rgba(0, 0, 0, 0.05);\n }\n\n .toggle-label {\n font-size: $es-font-size-xs;\n font-weight: $es-font-weight-medium;\n color: $es-text-muted;\n }\n\n .show-all-checkbox {\n display: none;\n }\n\n .toggle-slider {\n position: relative;\n width: 36px;\n height: 20px;\n background: $es-slate-300;\n border-radius: $es-radius-full;\n transition: background-color $es-transition-normal;\n\n &::after {\n content: '';\n position: absolute;\n top: 2px;\n left: 2px;\n width: 16px;\n height: 16px;\n background: $es-white;\n border-radius: 50%;\n box-shadow: 0 1px 3px rgba(0, 0, 0, 0.2);\n transition: transform $es-transition-normal;\n }\n }\n\n .show-all-checkbox:checked + .toggle-slider {\n background: $es-success;\n\n &::after {\n transform: translateX(16px);\n }\n }\n }\n\n // Validation error states\n &.has-validation-error {\n border-color: $es-danger;\n box-shadow: 0 0 0 3px rgba($es-danger, 0.1);\n\n .condition-trait-header {\n border-bottom-color: $es-danger;\n }\n }\n\n .trait-validation-error {\n display: flex;\n align-items: center;\n gap: $es-spacing-sm;\n padding: 0.625rem $es-spacing-md;\n background: $es-danger-light;\n color: #b91c1c;\n font-size: $es-font-size-sm;\n font-weight: $es-font-weight-medium;\n border-bottom: 1px solid #fecaca;\n\n i {\n color: $es-danger;\n }\n }\n\n // Required indicator\n &.trait-required .trait-title::after {\n content: ' *';\n color: $es-danger;\n }\n\n // Body\n .condition-trait-body {\n padding: 0;\n background: $es-white;\n border-radius: 0 0 $es-radius-lg $es-radius-lg;\n }\n\n // Block type tabs\n .target-block-tabs {\n display: flex;\n flex-wrap: wrap;\n gap: 0;\n padding: 0;\n background: $es-slate-100;\n border-bottom: 1px solid $es-border-color;\n }\n\n .target-block-tab {\n position: relative;\n display: flex;\n align-items: center;\n gap: $es-spacing-sm;\n flex: none;\n min-width: 0;\n padding: 0.625rem $es-spacing-md;\n margin-bottom: -1px;\n background: transparent;\n border: 0;\n border-bottom: 2px solid transparent;\n color: $es-text-muted;\n font-size: $es-font-size-sm;\n font-weight: $es-font-weight-medium;\n cursor: pointer;\n transition: all $es-transition-fast;\n\n &:hover {\n background: $es-slate-200;\n color: $es-slate-700;\n }\n\n &.active {\n background: $es-white;\n border-bottom-color: $es-cyan-500;\n color: $es-primary;\n }\n\n i {\n font-size: $es-font-size-sm;\n }\n\n .tab-label {\n white-space: nowrap;\n }\n\n .tab-badge {\n @include count-badge($es-primary);\n }\n\n &.has-data:not(.active) .tab-badge {\n @include count-badge($es-slate-400);\n }\n }\n\n // Block container\n .target-block-container {\n display: none;\n\n &.active {\n display: block;\n }\n }\n\n .target-block-content {\n padding: $es-spacing-md;\n }\n\n .target-block-groups {\n display: flex;\n flex-direction: column;\n gap: $es-spacing-md;\n }\n\n // Block header (for standalone blocks)\n .target-block-header {\n display: flex;\n align-items: center;\n justify-content: space-between;\n padding: $es-spacing-sm $es-spacing-md;\n background: $es-bg-header;\n border-bottom: 1px solid $es-border-color;\n }\n\n // Empty state\n .target-block-empty {\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n gap: $es-spacing-sm;\n padding: $es-spacing-xl;\n text-align: center;\n color: $es-text-muted;\n\n i {\n font-size: 2rem;\n opacity: 0.5;\n }\n\n p {\n margin: 0;\n font-size: $es-font-size-sm;\n }\n }\n\n // Collapse toggle\n .trait-collapse-toggle,\n .collapse-toggle {\n display: flex;\n align-items: center;\n justify-content: center;\n width: 24px;\n height: 24px;\n color: $es-text-muted;\n cursor: pointer;\n transition: transform $es-transition-normal;\n\n &.collapsed {\n transform: rotate(-90deg);\n }\n }\n\n // Header actions\n .trait-header-right {\n display: flex;\n align-items: center;\n gap: $es-spacing-sm;\n }\n\n // Collapsed state\n &.collapsed {\n .condition-trait-body {\n display: none;\n }\n\n .condition-trait-header {\n border-radius: $es-radius-lg;\n }\n }\n}\n\n// Single mode specific styles\n.target-conditions-trait.single-mode,\n.entity-selector-trait.single-mode {\n .target-block-tabs {\n display: none;\n }\n\n .target-block-container {\n display: block;\n }\n}\n\n// Header action buttons\n.target-conditions-trait,\n.entity-selector-trait {\n .header-actions {\n display: flex;\n align-items: center;\n gap: $es-spacing-xs;\n }\n\n .header-action-btn {\n @include button-reset;\n display: inline-flex;\n align-items: center;\n gap: 0.25rem;\n padding: 0.25rem $es-spacing-sm;\n font-size: $es-font-size-xs;\n font-weight: $es-font-weight-medium;\n color: $es-text-muted;\n background: transparent;\n border-radius: $es-radius-sm;\n transition: all $es-transition-fast;\n\n &:hover {\n background: $es-slate-200;\n color: $es-text-secondary;\n }\n\n i {\n font-size: 12px;\n }\n }\n}\n","/**\n * Entity Item - Shared Base Component\n * Unified styling for entity items in chips, lists, and previews\n *\n * Variants:\n * - .entity-item (base) - default list-row style\n * - .entity-item.chip-style - pill/chip style (compact)\n * - .entity-item.card-style - card/grid style\n */\n\n@use '../variables' as *;\n@use '../mixins' as *;\n\n// =============================================================================\n// Entity Item Sizing\n// =============================================================================\n\n$entity-item-image-sm: 20px;\n$entity-item-image-md: 32px;\n$entity-item-image-lg: 48px;\n\n// =============================================================================\n// Base Entity Item (list-row layout)\n// =============================================================================\n\n.entity-item {\n display: flex;\n align-items: center;\n gap: $es-spacing-sm;\n padding: $es-spacing-sm;\n background: $es-white;\n border-radius: $es-radius-sm;\n transition: background $es-transition-fast;\n\n &:hover {\n background: $es-bg-hover;\n }\n\n // Clickable variant\n &.clickable {\n cursor: pointer;\n }\n\n // Selected state\n &.selected {\n background: $es-primary-light;\n }\n}\n\n// -----------------------------------------------------------------------------\n// Entity Item Image\n// -----------------------------------------------------------------------------\n\n.entity-item-image {\n flex-shrink: 0;\n width: $entity-item-image-md;\n height: $entity-item-image-md;\n object-fit: cover;\n border-radius: $es-radius-sm;\n background: $es-slate-100;\n}\n\n// Size variants\n.entity-item-image--sm {\n width: $entity-item-image-sm;\n height: $entity-item-image-sm;\n border-radius: 50%;\n}\n\n.entity-item-image--lg {\n width: $entity-item-image-lg;\n height: $entity-item-image-lg;\n}\n\n// No-image placeholder\n.entity-item-no-image {\n display: flex;\n align-items: center;\n justify-content: center;\n flex-shrink: 0;\n width: $entity-item-image-md;\n height: $entity-item-image-md;\n background: $es-slate-100;\n color: $es-text-muted;\n border-radius: $es-radius-sm;\n font-size: $es-font-size-sm;\n\n &--sm {\n width: $entity-item-image-sm;\n height: $entity-item-image-sm;\n font-size: 10px;\n border-radius: 50%;\n }\n}\n\n// -----------------------------------------------------------------------------\n// Entity Item Info (name + meta)\n// -----------------------------------------------------------------------------\n\n.entity-item-info {\n flex: 1;\n min-width: 0;\n display: flex;\n flex-direction: column;\n gap: 0.125rem;\n}\n\n.entity-item-name {\n font-size: $es-font-size-sm;\n font-weight: $es-font-weight-medium;\n color: $es-text-primary;\n @include text-truncate;\n}\n\n.entity-item-meta {\n font-size: $es-font-size-xs;\n color: $es-text-muted;\n @include text-truncate;\n}\n\n// -----------------------------------------------------------------------------\n// Entity Item Badge/Price (right side)\n// -----------------------------------------------------------------------------\n\n.entity-item-badge {\n flex-shrink: 0;\n padding: 0.125rem 0.5rem;\n font-size: $es-font-size-xs;\n font-weight: $es-font-weight-medium;\n background: $es-slate-100;\n color: $es-text-muted;\n border-radius: $es-radius-sm;\n}\n\n.entity-item-price {\n flex-shrink: 0;\n font-size: $es-font-size-sm;\n font-weight: $es-font-weight-semibold;\n color: $es-primary;\n}\n\n// -----------------------------------------------------------------------------\n// Entity Item Actions (remove button, etc.)\n// -----------------------------------------------------------------------------\n\n.entity-item-action {\n @include button-reset;\n display: flex;\n align-items: center;\n justify-content: center;\n flex-shrink: 0;\n width: 20px;\n height: 20px;\n color: $es-text-muted;\n border-radius: 50%;\n transition: all $es-transition-fast;\n\n &:hover {\n background: rgba(0, 0, 0, 0.1);\n color: $es-danger;\n }\n\n i {\n font-size: 10px;\n }\n}\n\n// =============================================================================\n// Chip Style Variant (compact pill)\n// =============================================================================\n\n.entity-item.chip-style {\n display: inline-flex;\n gap: 0.375rem;\n padding: 0.25rem 0.5rem;\n background: $es-slate-100;\n border-radius: $es-radius-full;\n\n &:hover {\n background: $es-slate-200;\n }\n\n .entity-item-image {\n width: $entity-item-image-sm;\n height: $entity-item-image-sm;\n border-radius: 50%;\n }\n\n .entity-item-no-image {\n width: $entity-item-image-sm;\n height: $entity-item-image-sm;\n font-size: 10px;\n border-radius: 50%;\n }\n\n .entity-item-info {\n flex-direction: row;\n align-items: center;\n gap: 0.25rem;\n }\n\n .entity-item-name {\n font-size: $es-font-size-xs;\n }\n\n .entity-item-meta {\n display: none;\n }\n\n .entity-item-action {\n width: 16px;\n height: 16px;\n margin-left: 0.125rem;\n }\n}\n\n// =============================================================================\n// List Style Variant (bordered rows)\n// =============================================================================\n\n.entity-item.list-style {\n padding: $es-spacing-sm 0;\n background: transparent;\n border-bottom: 1px solid $es-border-color;\n border-radius: 0;\n\n &:last-child {\n border-bottom: none;\n }\n\n &:hover {\n background: $es-bg-hover;\n }\n}\n\n// =============================================================================\n// Entity Item Container (wrapper for multiple items)\n// =============================================================================\n\n.entity-items-container {\n display: flex;\n flex-direction: column;\n background: $es-slate-50;\n border: 1px solid $es-border-color;\n border-radius: $es-radius-md;\n overflow: hidden;\n}\n\n// Toolbar (filter, sort, count, clear)\n.entity-items-toolbar {\n display: none;\n align-items: center;\n flex-wrap: nowrap;\n gap: $es-spacing-sm;\n padding: $es-spacing-sm $es-spacing-md;\n padding-bottom: 0;\n background: transparent;\n\n &.has-items {\n display: flex;\n }\n}\n\n// Filter input\n.entity-items-filter {\n all: unset;\n display: block;\n flex: 1 1 auto;\n min-width: 80px;\n width: auto;\n height: auto;\n padding: 0.2rem 0.5rem 0.2rem 1.5rem;\n background: $es-white url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='10' viewBox='0 0 24 24' fill='none' stroke='%2394a3b8' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='11' cy='11' r='8'/%3E%3Cpath d='m21 21-4.35-4.35'/%3E%3C/svg%3E\") no-repeat 0.375rem center;\n background-size: 10px;\n border: 1px solid $es-slate-300;\n border-radius: $es-radius-sm;\n font-size: 11px;\n line-height: 1.4;\n color: $es-text-primary;\n box-sizing: border-box;\n transition: all $es-transition-fast;\n\n &::placeholder {\n color: $es-text-muted;\n font-size: 11px;\n }\n\n &:focus {\n outline: none;\n border-color: $es-primary;\n box-shadow: 0 0 0 2px rgba($es-primary, 0.1);\n }\n}\n\n// Sort dropdown\n.entity-items-sort {\n all: unset;\n flex: 0 0 auto;\n padding: 0.2rem 1.25rem 0.2rem 0.5rem;\n border: 1px solid $es-border-color;\n border-radius: $es-radius-sm;\n background: $es-white url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='8' height='8' viewBox='0 0 8 8'%3E%3Cpath fill='%23666' d='M0 2l4 4 4-4z'/%3E%3C/svg%3E\") no-repeat right 0.375rem center;\n background-size: 8px;\n font-size: 10px;\n line-height: 1.4;\n color: $es-text-secondary;\n cursor: pointer;\n box-sizing: border-box;\n white-space: nowrap;\n\n &:hover {\n border-color: $es-primary;\n }\n\n &:focus {\n outline: none;\n border-color: $es-primary;\n box-shadow: 0 0 0 2px rgba($es-primary, 0.1);\n }\n}\n\n// Count badge\n.entity-items-count {\n display: inline-flex;\n align-items: center;\n flex-shrink: 0;\n gap: 0.125rem;\n padding: 0.2rem 0.5rem;\n background: $es-slate-200;\n color: $es-text-secondary;\n font-size: 10px;\n font-weight: $es-font-weight-semibold;\n border-radius: $es-radius-sm;\n white-space: nowrap;\n line-height: 1.4;\n\n &.has-filter {\n background: $es-cyan-100;\n color: $es-cyan-700;\n }\n}\n\n// Clear button\n.entity-items-clear {\n @include button-reset;\n display: inline-flex;\n align-items: center;\n flex-shrink: 0;\n gap: 0.25rem;\n padding: 0.2rem 0.5rem;\n color: $es-danger;\n font-size: 10px;\n font-weight: $es-font-weight-medium;\n background: rgba($es-danger, 0.1);\n border-radius: $es-radius-sm;\n transition: all $es-transition-fast;\n white-space: nowrap;\n line-height: 1.4;\n\n &:hover {\n background: $es-danger;\n color: $es-white;\n }\n\n i {\n font-size: 9px;\n flex-shrink: 0;\n }\n}\n\n// Items list area\n.entity-items-list {\n display: flex;\n flex-wrap: wrap;\n gap: $es-spacing-xs;\n padding: $es-spacing-sm $es-spacing-md $es-spacing-md;\n min-height: 40px;\n max-height: 300px;\n overflow-y: auto;\n @include custom-scrollbar;\n\n &:empty {\n display: none;\n }\n\n // List layout (vertical)\n &.list-layout {\n flex-direction: column;\n flex-wrap: nowrap;\n gap: 0;\n padding: $es-spacing-sm;\n }\n}\n\n// Load more section\n.entity-items-load-more {\n display: flex;\n align-items: center;\n justify-content: center;\n gap: $es-spacing-sm;\n padding: $es-spacing-sm $es-spacing-md;\n background: transparent;\n border-top: 1px dashed $es-border-color;\n\n .load-more-label {\n font-size: $es-font-size-xs;\n color: $es-text-muted;\n }\n\n .load-more-select {\n appearance: none;\n padding: 0.25rem 1.75rem 0.25rem 0.5rem;\n border: 1px solid $es-border-color;\n border-radius: $es-radius-sm;\n background: $es-white url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='8' height='8' viewBox='0 0 8 8'%3E%3Cpath fill='%23666' d='M0 2l4 4 4-4z'/%3E%3C/svg%3E\") no-repeat right 0.5rem center;\n background-size: 8px;\n font-size: $es-font-size-xs;\n font-weight: $es-font-weight-medium;\n color: $es-primary;\n cursor: pointer;\n transition: all $es-transition-fast;\n height: auto;\n min-height: 0;\n line-height: 1.3;\n\n &:hover {\n border-color: $es-primary;\n background-color: $es-primary-light;\n }\n\n &:focus {\n outline: none;\n border-color: $es-primary;\n box-shadow: 0 0 0 2px rgba($es-primary, 0.1);\n }\n }\n\n .load-more-remaining {\n font-size: $es-font-size-xs;\n color: $es-text-muted;\n\n .remaining-count {\n font-weight: $es-font-weight-semibold;\n color: $es-text-secondary;\n }\n }\n\n .btn-load-more {\n display: flex;\n align-items: center;\n justify-content: center;\n padding: $es-spacing-xs;\n margin: 0;\n border: none;\n color: $es-primary;\n background: $es-primary-light;\n border-radius: $es-radius-sm;\n cursor: pointer;\n transition: all $es-transition-fast;\n font: inherit;\n\n i {\n font-size: 14px;\n }\n\n &:hover {\n background: rgba($es-primary, 0.2);\n }\n\n &.loading {\n cursor: wait;\n\n i {\n animation: spin 0.6s linear infinite;\n }\n }\n }\n}\n\n// =============================================================================\n// Empty & Loading States\n// =============================================================================\n\n.entity-items-empty {\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n gap: $es-spacing-sm;\n padding: $es-spacing-xl;\n text-align: center;\n color: $es-text-muted;\n\n i {\n font-size: 2rem;\n opacity: 0.5;\n }\n\n p {\n margin: 0;\n font-size: $es-font-size-sm;\n }\n}\n\n.entity-items-loading {\n display: flex;\n align-items: center;\n justify-content: center;\n padding: $es-spacing-xl;\n color: $es-text-muted;\n\n i {\n font-size: 20px;\n animation: spin 0.6s linear infinite;\n }\n}\n","/**\n * Search Dropdown Component\n * Includes search input, filter panel, results grid\n */\n\n@use '../variables' as *;\n@use '../mixins' as *;\n\n.target-conditions-trait,\n.entity-selector-trait {\n\n // Search wrapper\n .target-search-wrapper {\n position: relative;\n }\n\n // Search dropdown\n .target-search-dropdown {\n @include dropdown-container;\n display: none;\n width: 600px;\n max-width: calc(100vw - 40px);\n\n &.show {\n display: block;\n }\n }\n\n // Dropdown header\n .dropdown-header {\n display: flex;\n align-items: center;\n gap: $es-spacing-sm;\n padding: $es-spacing-md;\n background: $es-bg-header;\n border-bottom: 1px solid $es-border-color;\n border-radius: $es-radius-lg $es-radius-lg 0 0;\n }\n\n .dropdown-search-input {\n @include input-base;\n flex: 1;\n padding: $es-spacing-sm $es-spacing-md;\n }\n\n .dropdown-close-btn {\n @include button-reset;\n display: flex;\n align-items: center;\n justify-content: center;\n width: 32px;\n height: 32px;\n color: $es-text-muted;\n border-radius: $es-radius-md;\n transition: all $es-transition-fast;\n\n &:hover {\n background: $es-slate-200;\n color: $es-text-secondary;\n }\n }\n\n // Dropdown controls bar\n .dropdown-controls {\n display: flex;\n align-items: center;\n justify-content: space-between;\n gap: $es-spacing-sm;\n padding: $es-spacing-sm $es-spacing-md;\n background: $es-white;\n border-bottom: 1px solid $es-border-color;\n }\n\n .dropdown-controls-left,\n .dropdown-controls-right {\n display: flex;\n align-items: center;\n gap: $es-spacing-sm;\n }\n\n // View mode buttons\n .view-mode-btn {\n @include button-reset;\n display: flex;\n align-items: center;\n justify-content: center;\n width: 28px;\n height: 28px;\n color: $es-text-muted;\n background: transparent;\n border-radius: $es-radius-sm;\n transition: all $es-transition-fast;\n\n &:hover {\n background: $es-slate-100;\n color: $es-text-secondary;\n }\n\n &.active {\n background: $es-primary;\n color: $es-white;\n }\n }\n\n // Results count\n .dropdown-results-count {\n font-size: $es-font-size-xs;\n color: $es-text-muted;\n }\n\n // Dropdown body\n .dropdown-body {\n max-height: 400px;\n overflow-y: auto;\n @include custom-scrollbar;\n }\n\n // Results container\n .dropdown-results {\n padding: 0 $es-spacing-sm;\n }\n\n // Results count text\n .results-count {\n font-size: $es-font-size-xs;\n color: $es-text-muted;\n padding: $es-spacing-xs $es-spacing-sm;\n }\n\n // Results header (for list view columns)\n .results-header {\n display: flex;\n align-items: center;\n gap: $es-spacing-sm;\n padding: $es-spacing-xs $es-spacing-md;\n background: $es-slate-100;\n border-bottom: 1px solid $es-border-color;\n font-size: $es-font-size-xs;\n font-weight: $es-font-weight-semibold;\n color: $es-text-secondary;\n }\n\n // Grid view\n .dropdown-results-grid {\n display: grid;\n gap: $es-spacing-sm;\n\n &.view-list {\n grid-template-columns: 1fr;\n }\n\n &.view-grid-2 {\n grid-template-columns: repeat(2, 1fr);\n }\n\n &.view-grid-3 {\n grid-template-columns: repeat(3, 1fr);\n }\n }\n\n // Result item (both class names for compatibility)\n // Note: Main dropdown-item styling is in the global .target-search-dropdown section below\n .dropdown-result-item {\n display: flex;\n align-items: center;\n gap: $es-spacing-sm;\n padding: $es-spacing-sm 0;\n background: $es-white;\n border: none;\n border-bottom: 1px solid $es-border-color;\n border-radius: 0;\n cursor: pointer;\n transition: background $es-transition-fast;\n\n &:last-child {\n border-bottom: none;\n }\n\n &:hover {\n background: $es-bg-hover;\n }\n\n &.selected {\n background: $es-primary-light;\n }\n\n &.disabled {\n opacity: 0.5;\n cursor: not-allowed;\n\n &:hover {\n background: $es-white;\n }\n }\n }\n\n .result-item-image,\n .result-image {\n flex-shrink: 0;\n width: 40px;\n height: 40px;\n overflow: hidden;\n border-radius: $es-radius-sm;\n background: $es-slate-100;\n\n img {\n width: 100%;\n height: 100%;\n object-fit: cover;\n }\n }\n\n .result-icon {\n display: flex;\n align-items: center;\n justify-content: center;\n flex-shrink: 0;\n width: 40px;\n height: 40px;\n background: $es-slate-100;\n border-radius: $es-radius-sm;\n color: $es-text-muted;\n\n i {\n font-size: 16px;\n }\n }\n\n .result-item-info,\n .result-info {\n flex: 1;\n min-width: 0;\n }\n\n .result-item-name,\n .result-name {\n font-size: $es-font-size-sm;\n font-weight: $es-font-weight-medium;\n color: $es-text-primary;\n @include text-truncate;\n }\n\n .result-item-meta,\n .result-subtitle {\n font-size: $es-font-size-xs;\n color: $es-text-muted;\n }\n\n .subtitle-line {\n @include text-truncate;\n }\n\n .subtitle-line-primary {\n color: $es-text-secondary;\n }\n\n .subtitle-line-secondary {\n color: $es-text-muted;\n font-size: 11px;\n }\n\n // Result columns (for product list view)\n .result-col {\n flex-shrink: 0;\n width: 70px;\n text-align: right;\n font-size: $es-font-size-xs;\n }\n\n .result-col-price {\n color: $es-text-secondary;\n }\n\n .result-col-sale {\n color: $es-danger;\n font-weight: $es-font-weight-semibold;\n }\n\n .result-col-stock {\n .col-value {\n &.stock-ok {\n color: $es-success;\n }\n\n &.stock-low {\n color: $es-warning;\n }\n\n &.stock-out {\n color: $es-danger;\n }\n }\n }\n\n .result-col-sales {\n color: $es-text-muted;\n }\n\n .col-value {\n display: block;\n }\n\n .result-item-checkbox,\n .result-checkbox {\n display: flex;\n align-items: center;\n justify-content: center;\n flex-shrink: 0;\n width: 18px;\n height: 18px;\n border: 2px solid $es-border-dark;\n border-radius: $es-radius-sm;\n transition: all $es-transition-fast;\n\n i {\n display: none;\n font-size: 10px;\n color: $es-white;\n }\n\n .dropdown-result-item.selected &,\n .dropdown-item.selected & {\n background: $es-primary;\n border-color: $es-primary;\n\n i {\n display: block;\n }\n }\n }\n\n // Product-specific result item\n .result-item-product {\n display: flex;\n align-items: center;\n gap: $es-spacing-sm;\n }\n\n // No results state\n .no-results {\n display: flex;\n align-items: center;\n justify-content: center;\n gap: $es-spacing-sm;\n padding: $es-spacing-xl;\n color: $es-text-muted;\n font-size: $es-font-size-sm;\n\n i {\n font-size: 1.25rem;\n opacity: 0.5;\n }\n }\n\n // Empty state\n .dropdown-empty {\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n gap: $es-spacing-sm;\n padding: $es-spacing-xl;\n text-align: center;\n color: $es-text-muted;\n\n i {\n font-size: 2rem;\n opacity: 0.5;\n }\n\n p {\n margin: 0;\n font-size: $es-font-size-sm;\n }\n }\n\n // Loading state\n .dropdown-loading {\n display: flex;\n align-items: center;\n justify-content: center;\n padding: $es-spacing-xl;\n color: $es-text-muted;\n\n i {\n font-size: 1.5rem;\n animation: spin 1s linear infinite;\n }\n }\n\n // Unified dropdown footer - combines load more and actions\n .dropdown-footer {\n display: flex;\n align-items: center;\n justify-content: space-between;\n gap: $es-spacing-md;\n padding: $es-spacing-sm $es-spacing-md;\n background: $es-slate-50;\n border-top: 1px solid $es-border-color;\n border-radius: 0 0 $es-radius-lg $es-radius-lg;\n }\n\n // Left side: load more controls\n .dropdown-footer-left {\n display: flex;\n align-items: center;\n gap: $es-spacing-xs;\n font-size: $es-font-size-xs;\n color: $es-text-muted;\n\n .load-label {\n color: $es-text-muted;\n }\n\n .load-more-select,\n select.load-more-select {\n appearance: none;\n padding: 0.25rem 1.5rem 0.25rem 0.5rem;\n border: 1px solid $es-border-color;\n border-radius: $es-radius-sm;\n background: $es-white url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='8' height='8' viewBox='0 0 8 8'%3E%3Cpath fill='%23666' d='M0 2l4 4 4-4z'/%3E%3C/svg%3E\") no-repeat right 0.4rem center;\n background-size: 8px;\n font-size: $es-font-size-xs;\n color: $es-text-secondary;\n cursor: pointer;\n min-width: 55px;\n\n &:hover {\n border-color: $es-primary;\n }\n\n &:focus {\n outline: none;\n border-color: $es-primary;\n }\n }\n\n .remaining-text {\n color: $es-text-muted;\n\n strong {\n color: $es-text-secondary;\n font-weight: $es-font-weight-semibold;\n }\n }\n\n .btn-load-all {\n @include button-reset;\n padding: 0.25rem 0.5rem;\n font-size: $es-font-size-xs;\n color: $es-primary;\n background: transparent;\n border-radius: $es-radius-sm;\n transition: all $es-transition-fast;\n\n &:hover {\n background: $es-primary-light;\n }\n }\n }\n\n // Right side: action buttons\n .dropdown-footer-right {\n display: flex;\n align-items: center;\n gap: $es-spacing-sm;\n }\n\n .dropdown-action-btn {\n @include button-reset;\n display: inline-flex;\n align-items: center;\n gap: 0.375rem;\n padding: 0.375rem 0.75rem;\n font-size: $es-font-size-xs;\n font-weight: $es-font-weight-medium;\n border-radius: $es-radius-sm;\n transition: all $es-transition-fast;\n\n .btn-shortcut {\n font-size: 10px;\n padding: 0.125rem 0.25rem;\n background: rgba(0, 0, 0, 0.08);\n border-radius: 3px;\n font-weight: $es-font-weight-normal;\n }\n\n &.btn-cancel {\n color: $es-text-secondary;\n background: $es-white;\n border: 1px solid $es-border-color;\n\n &:hover {\n background: $es-slate-100;\n border-color: $es-border-dark;\n }\n }\n\n &.btn-apply,\n &.btn-save {\n color: $es-white;\n background: $es-primary;\n border: 1px solid $es-primary;\n\n &:hover {\n background: $es-primary-hover;\n border-color: $es-primary-hover;\n }\n\n .btn-shortcut {\n background: rgba(255, 255, 255, 0.2);\n }\n }\n }\n\n // Legacy support - hide old load more section when new footer exists\n .dropdown-load-more {\n display: none;\n }\n\n .load-more-controls {\n display: none;\n }\n\n // Filter panel\n .dropdown-filter-panel {\n padding: $es-spacing-md;\n background: $es-slate-50;\n border-bottom: 1px solid $es-border-color;\n }\n\n .filter-panel-header {\n display: flex;\n align-items: center;\n justify-content: space-between;\n margin-bottom: $es-spacing-sm;\n }\n\n .filter-panel-title {\n font-size: $es-font-size-sm;\n font-weight: $es-font-weight-semibold;\n color: $es-text-primary;\n }\n\n .filter-panel-toggle {\n @include button-reset;\n font-size: $es-font-size-xs;\n color: $es-primary;\n\n &:hover {\n text-decoration: underline;\n }\n }\n\n .filter-panel-content {\n display: grid;\n gap: $es-spacing-sm;\n grid-template-columns: repeat(auto-fill, minmax(150px, 1fr));\n }\n\n .filter-group {\n display: flex;\n flex-direction: column;\n gap: 0.25rem;\n }\n\n .filter-label {\n font-size: $es-font-size-xs;\n font-weight: $es-font-weight-medium;\n color: $es-text-secondary;\n }\n\n .filter-select,\n .filter-input {\n @include input-base;\n padding: 0.375rem $es-spacing-sm;\n font-size: $es-font-size-xs;\n }\n}\n\n// Category tree view\n.target-conditions-trait,\n.entity-selector-trait {\n .category-tree {\n padding: $es-spacing-sm;\n }\n\n .tree-container {\n // Contains tree items\n }\n\n .tree-loading {\n display: flex;\n align-items: center;\n justify-content: center;\n gap: $es-spacing-sm;\n padding: $es-spacing-xl;\n color: $es-text-muted;\n font-size: $es-font-size-sm;\n\n i {\n animation: spin 0.6s linear infinite;\n }\n }\n\n // Tree item (used by JavaScript)\n .tree-item {\n display: flex;\n align-items: center;\n gap: $es-spacing-xs;\n padding: 0.375rem $es-spacing-sm;\n border-radius: $es-radius-sm;\n cursor: pointer;\n transition: background-color $es-transition-fast;\n\n &:hover {\n background: $es-bg-hover;\n }\n\n &.selected {\n background: $es-primary-light;\n\n .tree-checkbox {\n background: $es-primary;\n border-color: $es-primary;\n\n i {\n display: block;\n }\n }\n }\n\n &.has-children {\n // Parent node styling\n }\n }\n\n // tree-toggle, btn-select-children, tree-checkbox, tree-icon styles in _tree.scss\n\n .tree-info {\n display: flex;\n align-items: center;\n gap: $es-spacing-xs;\n flex: 1;\n min-width: 0;\n }\n\n .tree-name {\n font-size: $es-font-size-sm;\n color: $es-text-primary;\n @include text-truncate;\n }\n\n .tree-subtitle {\n font-size: $es-font-size-xs;\n color: $es-text-muted;\n }\n\n // Legacy category tree classes (for compatibility)\n .category-tree-item {\n padding: 0.25rem 0;\n }\n\n .category-tree-node {\n display: flex;\n align-items: center;\n gap: $es-spacing-sm;\n padding: $es-spacing-xs $es-spacing-sm;\n border-radius: $es-radius-sm;\n cursor: pointer;\n transition: background-color $es-transition-fast;\n\n &:hover {\n background: $es-bg-hover;\n }\n\n &.selected {\n background: $es-primary-light;\n }\n }\n\n .category-tree-toggle {\n display: flex;\n align-items: center;\n justify-content: center;\n width: 16px;\n height: 16px;\n color: $es-text-muted;\n transition: transform $es-transition-fast;\n\n &.expanded {\n transform: rotate(90deg);\n }\n\n &.empty {\n visibility: hidden;\n }\n }\n\n .category-tree-checkbox {\n flex-shrink: 0;\n width: 16px;\n height: 16px;\n border: 2px solid $es-border-dark;\n border-radius: 3px;\n transition: all $es-transition-fast;\n\n &.checked {\n background: $es-primary;\n border-color: $es-primary;\n\n &::after {\n content: '\\2713';\n display: flex;\n align-items: center;\n justify-content: center;\n width: 100%;\n height: 100%;\n color: $es-white;\n font-size: 10px;\n }\n }\n\n &.indeterminate {\n background: $es-primary;\n border-color: $es-primary;\n\n &::after {\n content: '\\2212';\n display: flex;\n align-items: center;\n justify-content: center;\n width: 100%;\n height: 100%;\n color: $es-white;\n font-size: 10px;\n }\n }\n }\n\n .category-tree-name {\n flex: 1;\n font-size: $es-font-size-sm;\n color: $es-text-primary;\n @include text-truncate;\n }\n\n .category-tree-count {\n font-size: $es-font-size-xs;\n color: $es-text-muted;\n }\n\n .category-tree-children {\n margin-left: 24px;\n }\n\n // Search history\n .search-history-list {\n padding: $es-spacing-sm;\n }\n\n .history-item {\n display: flex;\n align-items: center;\n gap: $es-spacing-sm;\n padding: $es-spacing-sm;\n border-radius: $es-radius-sm;\n cursor: pointer;\n transition: background-color $es-transition-fast;\n\n &:hover {\n background: $es-bg-hover;\n }\n\n > i {\n color: $es-text-muted;\n font-size: 14px;\n }\n }\n\n .history-query {\n flex: 1;\n font-size: $es-font-size-sm;\n color: $es-text-primary;\n }\n\n .btn-delete-history {\n @include button-reset;\n display: flex;\n align-items: center;\n justify-content: center;\n width: 24px;\n height: 24px;\n color: $es-text-muted;\n border-radius: $es-radius-sm;\n opacity: 0;\n transition: all $es-transition-fast;\n\n .history-item:hover & {\n opacity: 1;\n }\n\n &:hover {\n background: $es-danger-light;\n color: $es-danger;\n }\n\n i {\n font-size: 12px;\n }\n }\n\n // Filter panel\n .filter-panel {\n display: none;\n padding: $es-spacing-md;\n background: $es-slate-50;\n border-bottom: 1px solid $es-border-color;\n\n &.show {\n display: block;\n }\n }\n\n .filter-row {\n display: flex;\n flex-wrap: wrap;\n align-items: center;\n gap: $es-spacing-sm;\n margin-bottom: $es-spacing-sm;\n\n &:last-child {\n margin-bottom: 0;\n }\n }\n\n // View mode select\n .view-mode-select {\n @include input-base;\n padding: 0.25rem 0.5rem;\n font-size: $es-font-size-xs;\n min-width: 80px;\n }\n}\n\n// =============================================================================\n// Global dropdown styles (when appended to body instead of inside wrapper)\n// Duplicates key styles for when dropdown is outside .entity-selector-trait\n// =============================================================================\nbody > .target-search-dropdown,\n.target-search-dropdown {\n @include dropdown-container;\n display: none;\n width: 600px;\n max-width: calc(100vw - 40px);\n\n &.show {\n display: block;\n }\n\n // Dropdown header\n .dropdown-header {\n display: flex;\n align-items: center;\n gap: $es-spacing-sm;\n padding: $es-spacing-md;\n background: $es-bg-header;\n border-bottom: 1px solid $es-border-color;\n border-radius: $es-radius-lg $es-radius-lg 0 0;\n flex-wrap: wrap;\n }\n\n .results-count {\n font-size: $es-font-size-sm;\n font-weight: $es-font-weight-semibold;\n color: $es-text-primary;\n white-space: nowrap;\n }\n\n .dropdown-actions {\n display: flex;\n align-items: center;\n gap: $es-spacing-xs;\n flex-wrap: wrap;\n flex: 1;\n justify-content: flex-end;\n }\n\n .btn-select-all,\n .btn-clear-selection {\n @include button-reset;\n display: inline-flex;\n align-items: center;\n gap: 0.25rem;\n padding: 0.25rem 0.5rem;\n font-size: $es-font-size-xs;\n color: $es-text-secondary;\n background: $es-white;\n border: 1px solid $es-border-color;\n border-radius: $es-radius-sm;\n cursor: pointer;\n transition: all $es-transition-fast;\n\n &:hover {\n background: $es-bg-hover;\n border-color: $es-slate-300;\n }\n\n kbd {\n font-size: 0.65rem;\n padding: 0.125rem 0.25rem;\n background: $es-slate-100;\n border-radius: 2px;\n color: $es-text-muted;\n }\n }\n\n .sort-controls {\n display: flex;\n align-items: center;\n // No gap - elements are connected\n }\n\n .sort-field-select {\n @include input-base;\n padding: 0.25rem 0.5rem;\n font-size: $es-font-size-xs;\n min-width: 80px;\n height: 28px; // Match btn-sort-dir height\n border-radius: $es-radius-sm 0 0 $es-radius-sm;\n border-right: none;\n }\n\n .btn-sort-dir {\n display: flex;\n align-items: center;\n justify-content: center;\n width: 38px;\n min-width: 38px;\n flex-shrink: 0;\n height: 28px;\n padding: 0;\n margin: 0;\n color: $es-text-muted;\n background: $es-white;\n border: 1px solid $es-border-color;\n border-radius: 0 $es-radius-sm $es-radius-sm 0;\n cursor: pointer;\n transition: all $es-transition-fast;\n\n i {\n font-size: 14px;\n }\n\n &:hover {\n background: $es-bg-hover;\n color: $es-text-primary;\n }\n\n &.active {\n background: $es-primary-light;\n border-color: $es-primary;\n color: $es-primary;\n }\n }\n\n .view-mode-select {\n @include input-base;\n padding: 0.25rem 0.5rem;\n font-size: $es-font-size-xs;\n min-width: 80px;\n margin-left: 0.25rem;\n }\n\n .btn-toggle-filters,\n .btn-show-history {\n display: flex;\n align-items: center;\n justify-content: center;\n width: 32px;\n min-width: 32px;\n flex-shrink: 0;\n height: 28px;\n padding: 0;\n margin: 0;\n color: $es-text-muted;\n background: $es-white;\n border: 1px solid $es-border-color;\n border-radius: $es-radius-sm;\n cursor: pointer;\n transition: all $es-transition-fast;\n\n i {\n font-size: 14px;\n }\n\n &:hover {\n background: $es-bg-hover;\n color: $es-text-primary;\n }\n\n &.active {\n background: $es-primary-light;\n border-color: $es-primary;\n color: $es-primary;\n }\n }\n\n .refine-compact {\n display: flex;\n align-items: center;\n // No gap - elements are connected\n\n // Connected to refine-input\n .btn-refine-negate {\n display: flex;\n align-items: center;\n justify-content: center;\n width: 32px;\n min-width: 32px;\n flex-shrink: 0;\n height: 28px;\n padding: 0;\n margin: 0;\n color: $es-text-muted;\n background: $es-white;\n border: 1px solid $es-border-color;\n border-right: none;\n border-radius: $es-radius-sm 0 0 $es-radius-sm;\n cursor: pointer;\n transition: all $es-transition-fast;\n\n &:hover {\n background: $es-bg-hover;\n color: $es-text-primary;\n }\n\n &.active {\n background: $es-danger-light;\n color: $es-danger;\n border-color: $es-danger;\n }\n }\n\n .refine-input {\n @include input-base;\n width: 100px;\n padding: 0.25rem 0.5rem;\n font-size: $es-font-size-xs;\n border-radius: 0 $es-radius-sm $es-radius-sm 0;\n }\n\n .btn-clear-refine {\n display: flex;\n align-items: center;\n justify-content: center;\n width: 28px;\n height: 28px;\n padding: 0;\n margin: 0;\n margin-left: -1px; // Overlap input border when visible\n color: $es-text-muted;\n background: $es-white;\n border: 1px solid $es-border-color;\n border-radius: 0 $es-radius-sm $es-radius-sm 0;\n cursor: pointer;\n transition: all $es-transition-fast;\n\n &:hover {\n background: $es-bg-hover;\n color: $es-text-primary;\n }\n }\n }\n\n // Filter panel\n .filter-panel {\n display: none;\n padding: $es-spacing-md;\n background: $es-slate-50;\n border-bottom: 1px solid $es-border-color;\n\n &.show {\n display: block;\n }\n }\n\n .filter-row {\n display: flex;\n align-items: center;\n gap: $es-spacing-sm;\n flex-wrap: wrap;\n margin-bottom: $es-spacing-sm;\n\n &:last-child {\n margin-bottom: 0;\n }\n }\n\n .filter-label {\n display: inline-flex;\n align-items: center;\n gap: 0.25rem;\n font-size: $es-font-size-xs;\n color: $es-text-secondary;\n cursor: pointer;\n\n input[type=\"checkbox\"] {\n margin: 0;\n }\n }\n\n .filter-price-range {\n display: flex;\n align-items: center;\n gap: 0.25rem;\n\n .filter-price-label {\n font-size: $es-font-size-xs;\n color: $es-text-muted;\n }\n\n .filter-price-min,\n .filter-price-max {\n @include input-base;\n width: 70px;\n padding: 0.25rem 0.5rem;\n font-size: $es-font-size-xs;\n }\n\n .filter-price-sep {\n color: $es-text-muted;\n }\n }\n\n .btn-clear-filters {\n @include button-reset;\n display: flex;\n align-items: center;\n justify-content: center;\n width: 24px;\n height: 24px;\n color: $es-text-muted;\n border-radius: $es-radius-sm;\n cursor: pointer;\n margin-left: auto;\n\n &:hover {\n background: $es-slate-200;\n color: $es-text-primary;\n }\n }\n\n // Multi-row filters\n .filter-row-multi {\n flex-direction: column;\n align-items: stretch;\n gap: $es-spacing-sm;\n }\n\n .filter-subrow {\n display: flex;\n align-items: center;\n gap: $es-spacing-sm;\n flex-wrap: wrap;\n }\n\n .filter-range-group,\n .filter-date-group,\n .filter-select-group {\n display: flex;\n align-items: center;\n gap: 0.25rem;\n }\n\n .filter-range-label,\n .filter-date-label,\n .filter-select-label,\n .filter-row-label {\n font-size: $es-font-size-xs;\n color: $es-text-muted;\n white-space: nowrap;\n\n i {\n margin-right: 0.25rem;\n }\n }\n\n .filter-range-sep {\n color: $es-text-muted;\n }\n\n .filter-product-count-min,\n .filter-product-count-max,\n .filter-sales-min,\n .filter-sales-max,\n .filter-turnover-min,\n .filter-turnover-max,\n .filter-date-add-from,\n .filter-date-add-to,\n .filter-last-product-from,\n .filter-last-product-to {\n @include input-base;\n width: 70px;\n padding: 0.25rem 0.5rem;\n font-size: $es-font-size-xs;\n }\n\n .filter-depth-select,\n .filter-attribute-group-select,\n .filter-feature-group-select {\n @include input-base;\n padding: 0.25rem 0.5rem;\n font-size: $es-font-size-xs;\n min-width: 100px;\n }\n\n .filter-attributes-container,\n .filter-features-container,\n .filter-values-container {\n display: flex;\n flex-wrap: wrap;\n gap: 0.25rem;\n }\n\n // Filter group toggle buttons (attribute/feature groups)\n .filter-group-toggle {\n @include button-reset;\n display: inline-flex;\n align-items: center;\n gap: 0.25rem;\n padding: 0.25rem 0.5rem;\n font-size: $es-font-size-xs;\n color: $es-text-secondary;\n background: $es-white;\n border: 1px solid $es-border-color;\n border-radius: $es-radius-sm;\n cursor: pointer;\n transition: all $es-transition-fast;\n\n &:hover {\n background: $es-bg-hover;\n border-color: $es-slate-300;\n }\n\n &.active {\n background: $es-primary-light;\n border-color: $es-primary;\n color: $es-primary;\n\n .toggle-count {\n color: $es-primary;\n }\n }\n\n &.has-selection {\n border-color: $es-success;\n background: rgba($es-success, 0.05);\n\n .toggle-count {\n color: $es-success;\n font-weight: $es-font-weight-semibold;\n }\n }\n\n .toggle-name {\n font-weight: $es-font-weight-medium;\n }\n\n // Count with eye icon (like group-count-badge)\n .toggle-count {\n display: inline-flex;\n align-items: center;\n gap: 0.125rem;\n color: $es-text-muted;\n font-size: 0.65rem;\n\n i {\n font-size: 10px;\n color: $es-primary;\n }\n\n // Clickable preview badge\n &.clickable {\n cursor: pointer;\n padding: 0.125rem 0.25rem;\n border-radius: $es-radius-sm;\n transition: all $es-transition-fast;\n\n &:hover {\n background: rgba($es-primary, 0.1);\n color: $es-primary;\n\n i {\n color: $es-primary;\n }\n }\n\n &.popover-open {\n background: $es-primary;\n color: $es-white;\n\n i {\n color: $es-white;\n }\n }\n\n &.loading {\n i {\n animation: spin 0.6s linear infinite;\n }\n }\n }\n }\n }\n\n // Filter value chips\n .filter-chip {\n @include button-reset;\n display: inline-flex;\n align-items: center;\n gap: 0.25rem;\n padding: 0.25rem 0.5rem;\n font-size: $es-font-size-xs;\n color: $es-text-secondary;\n background: $es-slate-100;\n border: 1px solid transparent;\n border-radius: $es-radius-sm;\n cursor: pointer;\n transition: all $es-transition-fast;\n\n &:hover {\n background: $es-slate-200;\n }\n\n &.active {\n background: $es-primary;\n color: $es-white;\n }\n }\n\n // Filter attribute chip (specific)\n .filter-attr-chip,\n .filter-feat-chip {\n @extend .filter-chip;\n }\n\n // Filter row for values (expandable)\n .filter-row-values {\n display: flex;\n align-items: center;\n gap: $es-spacing-sm;\n padding: $es-spacing-sm;\n background: $es-white;\n border: 1px solid $es-border-color;\n border-radius: $es-radius-sm;\n\n .filter-values-container {\n display: flex;\n flex-wrap: wrap;\n align-items: center;\n gap: 0.25rem;\n flex: 1;\n }\n\n .filter-values-label {\n font-size: $es-font-size-xs;\n font-weight: $es-font-weight-semibold;\n color: $es-text-secondary;\n white-space: nowrap;\n }\n\n .btn-close-values {\n @include button-reset;\n display: flex;\n align-items: center;\n justify-content: center;\n flex-shrink: 0;\n width: 20px;\n height: 20px;\n color: $es-text-muted;\n border-radius: $es-radius-sm;\n\n &:hover {\n background: $es-slate-200;\n color: $es-text-primary;\n }\n }\n }\n\n // Filter chip name and count\n .chip-name {\n font-weight: $es-font-weight-medium;\n }\n\n .chip-count {\n font-size: 0.6rem;\n color: $es-text-muted;\n margin-left: 0.125rem;\n }\n\n .filter-chip.active .chip-count {\n color: rgba(255, 255, 255, 0.8);\n }\n\n // Dropdown content\n .dropdown-content {\n max-height: 400px;\n overflow-y: auto;\n @include custom-scrollbar;\n }\n\n .dropdown-items {\n display: flex;\n flex-direction: column;\n gap: $es-spacing-xs;\n padding: $es-spacing-sm;\n }\n\n .item-checkbox {\n flex-shrink: 0;\n width: 16px;\n height: 16px;\n border: 2px solid $es-border-dark;\n border-radius: 3px;\n transition: all $es-transition-fast;\n\n .dropdown-item.selected & {\n background: $es-primary;\n border-color: $es-primary;\n }\n }\n\n .item-image {\n flex-shrink: 0;\n width: 40px;\n height: 40px;\n object-fit: cover;\n border-radius: $es-radius-sm;\n background: $es-slate-100;\n }\n\n .item-info {\n flex: 1;\n min-width: 0;\n }\n\n .item-name {\n font-size: $es-font-size-sm;\n font-weight: $es-font-weight-medium;\n color: $es-text-primary;\n @include text-truncate;\n }\n\n .item-meta {\n font-size: $es-font-size-xs;\n color: $es-text-muted;\n @include text-truncate;\n }\n\n // Dropdown footer - unified structure\n .dropdown-footer {\n display: flex;\n align-items: center;\n justify-content: space-between;\n gap: $es-spacing-md;\n padding: $es-spacing-sm $es-spacing-md;\n background: $es-slate-50;\n border-top: 1px solid $es-border-color;\n border-radius: 0 0 $es-radius-lg $es-radius-lg;\n }\n\n .dropdown-footer-left {\n display: flex;\n align-items: center;\n gap: $es-spacing-xs;\n font-size: $es-font-size-xs;\n color: $es-text-muted;\n\n .load-label {\n color: $es-text-muted;\n }\n\n .load-more-select,\n select.load-more-select {\n appearance: none;\n padding: 0.25rem 1.5rem 0.25rem 0.5rem;\n border: 1px solid $es-border-color;\n border-radius: $es-radius-sm;\n background: $es-white url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='8' height='8' viewBox='0 0 8 8'%3E%3Cpath fill='%23666' d='M0 2l4 4 4-4z'/%3E%3C/svg%3E\") no-repeat right 0.4rem center;\n background-size: 8px;\n font-size: $es-font-size-xs;\n color: $es-text-secondary;\n cursor: pointer;\n min-width: 55px;\n\n &:hover {\n border-color: $es-primary;\n }\n\n &:focus {\n outline: none;\n border-color: $es-primary;\n }\n }\n\n .remaining-text {\n color: $es-text-muted;\n\n strong {\n color: $es-text-secondary;\n font-weight: $es-font-weight-semibold;\n }\n }\n }\n\n .dropdown-footer-right {\n display: flex;\n align-items: center;\n gap: $es-spacing-sm;\n }\n\n .dropdown-action-btn {\n @include button-reset;\n display: inline-flex;\n align-items: center;\n gap: 0.375rem;\n padding: 0.375rem 0.75rem;\n font-size: $es-font-size-xs;\n font-weight: $es-font-weight-medium;\n border-radius: $es-radius-sm;\n transition: all $es-transition-fast;\n white-space: nowrap;\n\n .btn-shortcut {\n font-size: 10px;\n padding: 0.125rem 0.25rem;\n background: rgba(0, 0, 0, 0.08);\n border-radius: 3px;\n font-weight: $es-font-weight-normal;\n }\n\n &.btn-cancel {\n color: $es-text-secondary;\n background: $es-white;\n border: 1px solid $es-border-color;\n\n &:hover {\n background: $es-slate-100;\n border-color: $es-border-dark;\n }\n }\n\n &.btn-apply,\n &.btn-save {\n color: $es-white;\n background: $es-primary;\n border: 1px solid $es-primary;\n\n &:hover {\n background: $es-primary-hover;\n border-color: $es-primary-hover;\n }\n\n .btn-shortcut {\n background: rgba(255, 255, 255, 0.2);\n }\n }\n }\n\n .dropdown-footer-info {\n font-size: $es-font-size-xs;\n color: $es-text-muted;\n }\n\n // Legacy button support\n .btn-cancel-dropdown {\n @include button-reset;\n display: inline-flex;\n align-items: center;\n gap: 0.25rem;\n padding: 0.375rem 0.75rem;\n font-size: $es-font-size-sm;\n color: $es-white;\n background: $es-primary;\n border: 1px solid $es-primary;\n border-radius: $es-radius-sm;\n cursor: pointer;\n\n &:hover {\n background: $es-primary-hover;\n border-color: $es-primary-hover;\n }\n\n i {\n font-size: 10px;\n }\n\n kbd {\n font-size: 0.65rem;\n padding: 0.125rem 0.25rem;\n background: rgba(255, 255, 255, 0.2);\n border-radius: 2px;\n color: rgba(255, 255, 255, 0.8);\n }\n }\n\n // Filter chips in dropdown\n .filter-chips-row {\n display: flex;\n flex-wrap: wrap;\n gap: $es-spacing-xs;\n padding: $es-spacing-xs $es-spacing-md;\n border-bottom: 1px solid $es-border-color;\n }\n\n .filter-chip {\n @include chip;\n }\n\n // Empty and loading states\n .dropdown-empty,\n .dropdown-loading {\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n padding: $es-spacing-xl;\n text-align: center;\n color: $es-text-muted;\n font-size: $es-font-size-sm;\n\n i {\n font-size: 2rem;\n opacity: 0.5;\n margin-bottom: $es-spacing-sm;\n }\n }\n\n // Search history panel\n .search-history-panel {\n display: none;\n padding: $es-spacing-sm;\n background: $es-white;\n border-bottom: 1px solid $es-border-color;\n\n &.show {\n display: block;\n }\n }\n\n .history-item {\n display: flex;\n align-items: center;\n gap: $es-spacing-sm;\n padding: $es-spacing-xs $es-spacing-sm;\n border-radius: $es-radius-sm;\n cursor: pointer;\n transition: background $es-transition-fast;\n\n &:hover {\n background: $es-bg-hover;\n }\n\n i {\n color: $es-text-muted;\n font-size: $es-font-size-sm;\n }\n\n span {\n flex: 1;\n font-size: $es-font-size-sm;\n color: $es-text-primary;\n }\n\n .btn-remove-history,\n .btn-delete-history {\n @include button-reset;\n display: flex;\n align-items: center;\n justify-content: center;\n width: 20px;\n height: 20px;\n color: $es-text-muted;\n border-radius: $es-radius-sm;\n transition: all $es-transition-fast;\n\n &:hover {\n background: $es-slate-200;\n color: $es-danger;\n }\n }\n }\n\n // Search history list container\n .search-history-list {\n display: flex;\n flex-direction: column;\n gap: $es-spacing-xs;\n }\n\n // Results header (for list view columns)\n .results-header {\n display: flex;\n align-items: center;\n gap: $es-spacing-sm;\n padding: $es-spacing-xs $es-spacing-md;\n background: $es-slate-100;\n border-bottom: 1px solid $es-border-color;\n font-size: $es-font-size-xs;\n font-weight: $es-font-weight-semibold;\n color: $es-text-secondary;\n\n .header-spacer {\n width: 58px; // checkbox + image width\n flex-shrink: 0;\n }\n\n .header-col {\n flex-shrink: 0;\n width: 70px;\n text-align: right;\n }\n\n .header-col-name {\n flex: 1;\n text-align: left;\n }\n }\n\n // Results container\n .dropdown-results {\n padding: 0 $es-spacing-sm;\n background: $es-white;\n min-height: 200px;\n }\n\n // Dropdown item (search result)\n .dropdown-item {\n position: relative;\n display: flex;\n align-items: center;\n gap: $es-spacing-sm;\n padding: $es-spacing-sm 0;\n background: $es-white;\n border: none;\n border-bottom: 1px solid $es-border-color;\n border-radius: 0;\n cursor: pointer;\n transition: background $es-transition-fast;\n\n &:last-child {\n border-bottom: none;\n }\n\n &:hover {\n background: $es-bg-hover;\n }\n\n &.selected {\n background: $es-primary-light;\n\n .result-checkbox {\n background: $es-primary;\n border-color: $es-primary;\n color: $es-white;\n\n i {\n display: block;\n }\n }\n }\n\n &.disabled {\n opacity: 0.5;\n cursor: not-allowed;\n }\n }\n\n // Checkbox indicator\n .result-checkbox {\n display: flex;\n align-items: center;\n justify-content: center;\n flex-shrink: 0;\n width: 18px;\n height: 18px;\n background: $es-white;\n border: 2px solid $es-border-dark;\n border-radius: 3px;\n transition: all $es-transition-fast;\n\n i {\n display: none;\n font-size: 10px;\n }\n }\n\n // View mode classes (applied to dropdown container) - no gap/padding for shared borders\n &.view-cols-2 .dropdown-results { display: grid; grid-template-columns: repeat(2, 1fr); gap: 0; padding: 0; border-top: 1px solid $es-border-color; border-left: 1px solid $es-border-color; }\n &.view-cols-3 .dropdown-results { display: grid; grid-template-columns: repeat(3, 1fr); gap: 0; padding: 0; border-top: 1px solid $es-border-color; border-left: 1px solid $es-border-color; }\n &.view-cols-4 .dropdown-results { display: grid; grid-template-columns: repeat(4, 1fr); gap: 0; padding: 0; border-top: 1px solid $es-border-color; border-left: 1px solid $es-border-color; }\n &.view-cols-5 .dropdown-results { display: grid; grid-template-columns: repeat(5, 1fr); gap: 0; padding: 0; border-top: 1px solid $es-border-color; border-left: 1px solid $es-border-color; }\n &.view-cols-6 .dropdown-results { display: grid; grid-template-columns: repeat(6, 1fr); gap: 0; padding: 0; border-top: 1px solid $es-border-color; border-left: 1px solid $es-border-color; }\n &.view-cols-7 .dropdown-results { display: grid; grid-template-columns: repeat(7, 1fr); gap: 0; padding: 0; border-top: 1px solid $es-border-color; border-left: 1px solid $es-border-color; }\n &.view-cols-8 .dropdown-results { display: grid; grid-template-columns: repeat(8, 1fr); gap: 0; padding: 0; border-top: 1px solid $es-border-color; border-left: 1px solid $es-border-color; }\n\n // Grid view item styling (compact cards with shared borders)\n &.view-cols-2,\n &.view-cols-3,\n &.view-cols-4,\n &.view-cols-5,\n &.view-cols-6,\n &.view-cols-7,\n &.view-cols-8 {\n .dropdown-item {\n flex-direction: column;\n align-items: center;\n text-align: center;\n padding: $es-spacing-sm;\n border: none;\n border-right: 1px solid $es-border-color;\n border-bottom: 1px solid $es-border-color;\n border-radius: 0;\n\n .result-checkbox {\n position: absolute;\n top: $es-spacing-xs;\n left: $es-spacing-xs;\n }\n\n .result-image,\n .result-icon {\n width: 48px;\n height: 48px;\n margin-bottom: $es-spacing-xs;\n }\n\n .result-info {\n width: 100%;\n }\n\n .result-name {\n font-size: $es-font-size-xs;\n line-height: 1.3;\n display: -webkit-box;\n -webkit-line-clamp: 2;\n -webkit-box-orient: vertical;\n overflow: hidden;\n }\n\n .result-subtitle {\n display: none;\n }\n\n // Show compact product info in grid\n .result-col {\n display: none;\n }\n\n .result-grid-info {\n display: flex;\n flex-wrap: wrap;\n justify-content: center;\n gap: 0.25rem;\n margin-top: $es-spacing-xs;\n font-size: 0.65rem;\n\n .grid-price {\n color: $es-text-primary;\n font-weight: $es-font-weight-semibold;\n }\n\n .grid-stock {\n color: $es-text-muted;\n\n &.stock-out { color: $es-danger; }\n &.stock-low { color: $es-warning; }\n }\n\n .grid-discount {\n color: $es-success;\n font-weight: $es-font-weight-medium;\n }\n }\n }\n\n // Hide results header in grid views\n .results-header {\n display: none;\n }\n }\n\n // Remove right border from last item in each row (per column count)\n &.view-cols-2 .dropdown-results .dropdown-item:nth-child(2n) { border-right: none; }\n &.view-cols-3 .dropdown-results .dropdown-item:nth-child(3n) { border-right: none; }\n &.view-cols-4 .dropdown-results .dropdown-item:nth-child(4n) { border-right: none; }\n &.view-cols-5 .dropdown-results .dropdown-item:nth-child(5n) { border-right: none; }\n &.view-cols-6 .dropdown-results .dropdown-item:nth-child(6n) { border-right: none; }\n &.view-cols-7 .dropdown-results .dropdown-item:nth-child(7n) { border-right: none; }\n &.view-cols-8 .dropdown-results .dropdown-item:nth-child(8n) { border-right: none; }\n\n // Smaller items for higher column counts\n &.view-cols-5,\n &.view-cols-6,\n &.view-cols-7,\n &.view-cols-8 {\n .dropdown-item {\n .result-image,\n .result-icon {\n width: 40px;\n height: 40px;\n }\n\n .result-name {\n font-size: 0.65rem;\n }\n }\n }\n\n // Product-specific result item\n .result-item-product {\n display: flex;\n align-items: center;\n gap: $es-spacing-sm;\n flex: 1;\n min-width: 0;\n }\n\n .result-item-image,\n .result-image {\n flex-shrink: 0;\n width: 40px;\n height: 40px;\n overflow: hidden;\n border-radius: $es-radius-sm;\n background: $es-slate-100;\n\n img {\n width: 100%;\n height: 100%;\n object-fit: cover;\n }\n }\n\n .result-icon {\n display: flex;\n align-items: center;\n justify-content: center;\n flex-shrink: 0;\n width: 40px;\n height: 40px;\n background: $es-slate-100;\n border-radius: $es-radius-sm;\n color: $es-text-muted;\n\n i {\n font-size: 16px;\n }\n }\n\n .result-item-info,\n .result-info {\n flex: 1;\n min-width: 0;\n }\n\n .result-item-name,\n .result-name {\n font-size: $es-font-size-sm;\n font-weight: $es-font-weight-medium;\n color: $es-text-primary;\n @include text-truncate;\n }\n\n .result-item-meta,\n .result-subtitle {\n font-size: $es-font-size-xs;\n color: $es-text-muted;\n }\n\n .subtitle-line {\n @include text-truncate;\n }\n\n .subtitle-line-primary {\n color: $es-text-secondary;\n }\n\n .subtitle-line-secondary {\n color: $es-text-muted;\n font-size: 11px;\n }\n\n // Result columns (for product list view)\n .result-col {\n flex-shrink: 0;\n width: 70px;\n text-align: right;\n font-size: $es-font-size-xs;\n }\n\n .result-col-price {\n color: $es-text-secondary;\n }\n\n .result-col-sale {\n color: $es-danger;\n font-weight: $es-font-weight-semibold;\n }\n\n .result-col-stock {\n .col-value {\n &.stock-ok {\n color: $es-success;\n }\n\n &.stock-low {\n color: $es-warning;\n }\n\n &.stock-out {\n color: $es-danger;\n }\n }\n }\n\n .result-col-sales {\n color: $es-text-muted;\n }\n\n .col-value {\n display: block;\n }\n\n // Result checkbox\n .result-item-checkbox,\n .result-checkbox {\n display: flex;\n align-items: center;\n justify-content: center;\n flex-shrink: 0;\n width: 18px;\n height: 18px;\n border: 2px solid $es-border-dark;\n border-radius: $es-radius-sm;\n transition: all $es-transition-fast;\n\n i {\n display: none;\n font-size: 10px;\n color: $es-white;\n }\n\n .dropdown-result-item.selected &,\n .dropdown-item.selected & {\n background: $es-primary;\n border-color: $es-primary;\n\n i {\n display: block;\n }\n }\n }\n\n // No results state\n .no-results {\n display: flex;\n align-items: center;\n justify-content: center;\n gap: $es-spacing-sm;\n padding: $es-spacing-xl;\n color: $es-text-muted;\n font-size: $es-font-size-sm;\n\n i {\n font-size: 1.25rem;\n opacity: 0.5;\n }\n }\n\n // Load more controls\n .load-more-controls {\n display: flex;\n align-items: center;\n justify-content: center;\n gap: $es-spacing-sm;\n padding: $es-spacing-sm $es-spacing-md;\n font-size: $es-font-size-xs;\n color: $es-text-muted;\n\n .load-more-label,\n .load-more-of {\n white-space: nowrap;\n }\n\n .remaining-count {\n font-weight: $es-font-weight-semibold;\n color: $es-text-secondary;\n }\n\n .load-more-select {\n @include input-base;\n padding: 0.25rem 0.5rem;\n font-size: $es-font-size-xs;\n min-width: 60px;\n }\n\n .btn-load-more {\n display: flex;\n align-items: center;\n justify-content: center;\n padding: $es-spacing-xs;\n margin: 0;\n border: none;\n color: $es-primary;\n background: $es-primary-light !important;\n border-radius: $es-radius-sm;\n cursor: pointer;\n transition: all $es-transition-fast;\n font: inherit;\n\n i {\n font-size: 14px;\n }\n\n &:hover {\n background: rgba($es-primary, 0.2) !important;\n }\n }\n }\n\n // Load more button\n .dropdown-load-more {\n display: flex;\n justify-content: center;\n padding: $es-spacing-md;\n border-top: 1px solid $es-border-color;\n\n .load-more-btn {\n @include button-reset;\n display: inline-flex;\n align-items: center;\n gap: $es-spacing-xs;\n padding: $es-spacing-sm $es-spacing-md;\n font-size: $es-font-size-sm;\n font-weight: $es-font-weight-medium;\n color: $es-primary;\n background: $es-primary-light;\n border-radius: $es-radius-md;\n transition: all $es-transition-fast;\n\n &:hover {\n background: rgba($es-primary, 0.2);\n }\n\n &.loading {\n opacity: 0.7;\n cursor: wait;\n }\n }\n }\n\n // Dropdown body\n .dropdown-body {\n max-height: 400px;\n overflow-y: auto;\n @include custom-scrollbar;\n }\n\n // Tree view styles (for categories)\n .tree-container {\n padding: $es-spacing-sm;\n }\n\n .tree-loading {\n display: flex;\n align-items: center;\n justify-content: center;\n gap: $es-spacing-sm;\n padding: $es-spacing-xl;\n color: $es-text-muted;\n font-size: $es-font-size-sm;\n\n i {\n animation: spin 0.6s linear infinite;\n }\n }\n\n .tree-item {\n display: flex;\n align-items: center;\n gap: $es-spacing-xs;\n padding: 0.375rem $es-spacing-sm;\n border-radius: $es-radius-sm;\n cursor: pointer;\n transition: background-color $es-transition-fast;\n\n &:hover {\n background: $es-bg-hover;\n }\n\n &.selected {\n background: $es-primary-light;\n\n .tree-checkbox {\n background: $es-primary;\n border-color: $es-primary;\n\n i {\n display: block;\n }\n }\n }\n }\n\n // tree-toggle, btn-select-children, tree-checkbox, tree-icon styles in _tree.scss\n\n .tree-info {\n display: flex;\n align-items: center;\n gap: $es-spacing-xs;\n flex: 1;\n min-width: 0;\n }\n\n .tree-name {\n font-size: $es-font-size-sm;\n color: $es-text-primary;\n @include text-truncate;\n }\n\n .tree-subtitle {\n font-size: $es-font-size-xs;\n color: $es-text-muted;\n }\n}\n\n// ============================================================================\n// Standalone dropdown styles (for when dropdown is appended to body)\n// These selectors work because .target-search-dropdown is on the dropdown itself\n// ============================================================================\n\n.target-search-dropdown {\n // Results container - scrollable\n .dropdown-results {\n max-height: 400px;\n overflow-y: auto;\n padding: 0 $es-spacing-sm;\n @include custom-scrollbar;\n }\n\n // Results header (for list view columns)\n .results-header {\n display: flex;\n align-items: center;\n gap: $es-spacing-sm;\n padding: $es-spacing-xs $es-spacing-md;\n background: $es-slate-100;\n border-bottom: 1px solid $es-border-color;\n font-size: $es-font-size-xs;\n font-weight: $es-font-weight-semibold;\n color: $es-text-secondary;\n\n .header-spacer {\n width: 58px; // checkbox + image width\n flex-shrink: 0;\n }\n\n .header-col {\n flex-shrink: 0;\n width: 70px;\n text-align: right;\n }\n\n .header-col-name {\n flex: 1;\n text-align: left;\n }\n }\n\n // Hide results-header by default, show only for products in list view\n &:not(.view-list) .results-header,\n &.view-tree .results-header {\n display: none;\n }\n\n // Result item for products\n .result-item-product {\n display: flex;\n align-items: center;\n gap: $es-spacing-sm;\n flex: 1;\n min-width: 0;\n }\n\n // Result columns for product data\n .result-col {\n flex-shrink: 0;\n width: 70px;\n text-align: right;\n font-size: $es-font-size-xs;\n }\n\n .result-col-price {\n color: $es-text-secondary;\n }\n\n .result-col-sale {\n color: $es-danger;\n font-weight: $es-font-weight-semibold;\n }\n\n .result-col-stock {\n .col-value {\n &.stock-ok { color: $es-success; }\n &.stock-low { color: $es-warning; }\n &.stock-out { color: $es-danger; }\n }\n }\n\n .result-col-sales {\n color: $es-text-muted;\n }\n\n // Dropdown item styling\n .dropdown-item {\n display: flex;\n align-items: center;\n gap: $es-spacing-sm;\n padding: 0;\n border: none;\n border-bottom: 1px solid $es-border-color;\n border-radius: 0;\n cursor: pointer;\n transition: background-color $es-transition-fast;\n\n &:last-child {\n border-bottom: none;\n }\n\n &:hover {\n background: $es-bg-hover;\n }\n\n &.selected {\n background: $es-primary-light;\n }\n }\n\n // Result checkbox styling\n .result-checkbox {\n flex-shrink: 0;\n display: flex;\n align-items: center;\n justify-content: center;\n width: 18px;\n height: 18px;\n border: 2px solid $es-border-dark;\n border-radius: 3px;\n transition: all $es-transition-fast;\n\n i {\n font-size: 10px;\n color: transparent;\n }\n\n .dropdown-item.selected & {\n background: $es-primary;\n border-color: $es-primary;\n\n i {\n color: $es-white;\n }\n }\n }\n\n // Result image\n .result-image {\n flex-shrink: 0;\n width: 40px;\n height: 40px;\n overflow: hidden;\n border-radius: $es-radius-sm;\n background: $es-slate-100;\n\n img {\n width: 100%;\n height: 100%;\n object-fit: cover;\n }\n }\n\n // Result icon (for non-image entities)\n .result-icon {\n flex-shrink: 0;\n display: flex;\n align-items: center;\n justify-content: center;\n width: 40px;\n height: 40px;\n background: $es-slate-100;\n border-radius: $es-radius-sm;\n\n i {\n font-size: 16px;\n color: $es-text-muted;\n }\n }\n\n // Result info container\n .result-info {\n flex: 1;\n min-width: 0;\n }\n\n .result-name {\n font-size: $es-font-size-sm;\n font-weight: $es-font-weight-medium;\n color: $es-text-primary;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n }\n\n .result-subtitle {\n font-size: $es-font-size-xs;\n color: $es-text-muted;\n }\n\n .subtitle-line {\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n }\n\n .subtitle-line-primary {\n color: $es-text-secondary;\n }\n\n .subtitle-line-secondary {\n color: $es-text-muted;\n font-size: 11px;\n }\n\n // Hide columns in grid/tree views\n &[class*=\"view-cols-\"] .result-col,\n &.view-tree .result-col {\n display: none;\n }\n\n // Entity search box - full width\n .entity-search-box {\n display: flex;\n align-items: center;\n gap: $es-spacing-sm;\n width: 100%;\n padding: $es-spacing-sm $es-spacing-md;\n background: $es-white;\n border: none;\n border-bottom: 1px solid $es-border-color;\n border-radius: 0;\n\n .entity-search-icon {\n color: $es-text-muted;\n flex-shrink: 0;\n margin-left: $es-spacing-xs;\n }\n\n // Override Bootstrap/parent form input styles\n input.entity-search-input,\n input.entity-search-input[type=\"text\"] {\n flex: 1;\n min-width: 0;\n width: auto !important;\n max-width: none !important;\n height: auto;\n padding: 0;\n margin: 0;\n border: none !important;\n outline: none;\n background: transparent !important;\n font-size: $es-font-size-sm;\n color: $es-text-primary;\n box-shadow: none !important;\n\n &::placeholder {\n color: $es-text-muted;\n }\n\n &:focus {\n border: none !important;\n box-shadow: none !important;\n outline: none;\n }\n }\n\n .search-loading {\n color: $es-text-muted;\n }\n }\n}\n\n// Body-level dropdown (when appended to body for z-index)\nbody > .target-search-dropdown {\n // Override dropdown-item border when inside body-appended dropdown\n .dropdown-item {\n border: none;\n border-radius: 0;\n\n &:not(:last-child) {\n border-bottom: 1px solid $es-border-color;\n }\n }\n}\n\n@keyframes spin {\n from {\n transform: rotate(0deg);\n }\n to {\n transform: rotate(360deg);\n }\n}\n","/**\n * Chips Component\n * Entity chips, selection pills, tags\n */\n\n@use '../variables' as *;\n@use '../mixins' as *;\n\n.target-conditions-trait,\n.entity-selector-trait {\n\n // Chips container wrapper with toolbar\n .chips-wrapper {\n display: flex;\n flex-direction: column;\n margin-top: $es-spacing-sm;\n background: $es-slate-50;\n border: 1px solid $es-border-color;\n border-radius: $es-radius-md;\n overflow: hidden;\n }\n\n // Chips toolbar - integrated filter bar inside chips area\n .chips-toolbar {\n display: none;\n align-items: center;\n flex-wrap: nowrap;\n gap: $es-spacing-sm;\n padding: $es-spacing-sm $es-spacing-md;\n padding-bottom: 0;\n background: transparent;\n\n &.has-chips {\n display: flex;\n }\n\n // Filter input - takes available space, icon embedded as background\n // Using [type=\"text\"] for specificity over .bootstrap input[type=\"text\"]\n input[type=\"text\"].chips-search-input {\n all: unset;\n display: block;\n flex: 1 1 auto;\n min-width: 80px;\n width: auto;\n height: auto;\n padding: 0.2rem 0.5rem 0.2rem 1.5rem;\n background: $es-white url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='10' viewBox='0 0 24 24' fill='none' stroke='%2394a3b8' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='11' cy='11' r='8'/%3E%3Cpath d='m21 21-4.35-4.35'/%3E%3C/svg%3E\") no-repeat 0.375rem center;\n background-size: 10px;\n border: 1px solid $es-slate-300;\n border-radius: $es-radius-sm;\n font-size: 11px;\n line-height: 1.4;\n color: $es-text-primary;\n box-sizing: border-box;\n transition: all $es-transition-fast;\n\n &::placeholder {\n color: $es-text-muted;\n font-size: 11px;\n }\n\n &:focus {\n outline: none;\n border-color: $es-primary;\n box-shadow: 0 0 0 2px rgba($es-primary, 0.1);\n }\n }\n\n // Sort dropdown - compact, auto width\n select.chips-sort-select {\n all: unset;\n flex: 0 0 auto;\n padding: 0.2rem 1.25rem 0.2rem 0.5rem;\n border: 1px solid $es-border-color;\n border-radius: $es-radius-sm;\n background: $es-white url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='8' height='8' viewBox='0 0 8 8'%3E%3Cpath fill='%23666' d='M0 2l4 4 4-4z'/%3E%3C/svg%3E\") no-repeat right 0.375rem center;\n background-size: 8px;\n font-size: 10px;\n line-height: 1.4;\n color: $es-text-secondary;\n cursor: pointer;\n box-sizing: border-box;\n white-space: nowrap;\n\n &:hover {\n border-color: $es-primary;\n }\n\n &:focus {\n outline: none;\n border-color: $es-primary;\n box-shadow: 0 0 0 2px rgba($es-primary, 0.1);\n }\n }\n }\n\n // Count badge - smaller, pill style\n .chips-count {\n display: inline-flex;\n align-items: center;\n flex-shrink: 0; // Don't shrink\n gap: 0.125rem;\n padding: 0.2rem 0.5rem;\n background: $es-slate-200;\n color: $es-text-secondary;\n font-size: 10px;\n font-weight: $es-font-weight-semibold;\n border-radius: $es-radius-sm;\n white-space: nowrap;\n line-height: 1.4;\n\n &.has-filter {\n background: $es-cyan-100;\n color: $es-cyan-700;\n }\n\n .count-filtered {\n font-weight: $es-font-weight-bold;\n }\n\n .count-separator {\n opacity: 0.6;\n margin: 0 0.125rem;\n }\n }\n\n .chips-actions {\n display: flex;\n align-items: center;\n gap: $es-spacing-xs;\n margin-left: auto;\n }\n\n // Clear button - subtle, chip-like\n .btn-chips-clear {\n @include button-reset;\n display: inline-flex;\n align-items: center;\n flex-shrink: 0; // Don't shrink\n gap: 0.25rem;\n padding: 0.2rem 0.5rem;\n color: $es-danger;\n font-size: 10px;\n font-weight: $es-font-weight-medium;\n background: rgba($es-danger, 0.1);\n border-radius: $es-radius-sm;\n transition: all $es-transition-fast;\n white-space: nowrap; // Prevent text wrapping\n line-height: 1.4;\n\n &:hover {\n background: $es-danger;\n color: $es-white;\n }\n\n i {\n font-size: 9px;\n flex-shrink: 0;\n }\n\n .clear-text {\n // Hide text on small screens, keep icon\n @media (max-width: 480px) {\n display: none;\n }\n }\n }\n\n // Chips container - flows naturally from toolbar\n .entity-chips {\n display: flex;\n flex-wrap: wrap;\n gap: $es-spacing-xs;\n padding: $es-spacing-sm $es-spacing-md $es-spacing-md;\n min-height: 40px;\n max-height: 300px;\n overflow-y: auto;\n\n &:empty {\n display: none;\n }\n }\n\n // Load more section with select dropdown\n .chips-load-more {\n display: flex;\n align-items: center;\n justify-content: center;\n gap: $es-spacing-sm;\n padding: $es-spacing-sm $es-spacing-md;\n background: transparent;\n border-top: 1px dashed $es-border-color;\n\n .load-more-label {\n font-size: $es-font-size-xs;\n color: $es-text-muted;\n }\n\n .load-more-select,\n select.load-more-select {\n appearance: none;\n padding: 0.25rem 1.75rem 0.25rem 0.5rem !important;\n border: 1px solid $es-border-color !important;\n border-radius: $es-radius-sm !important;\n background: $es-white url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='8' height='8' viewBox='0 0 8 8'%3E%3Cpath fill='%23666' d='M0 2l4 4 4-4z'/%3E%3C/svg%3E\") no-repeat right 0.5rem center !important;\n background-size: 8px !important;\n font-size: $es-font-size-xs !important;\n font-weight: $es-font-weight-medium;\n color: $es-primary;\n cursor: pointer;\n transition: all $es-transition-fast;\n height: auto !important;\n min-height: 0 !important;\n line-height: 1.3 !important;\n\n &:hover {\n border-color: $es-primary !important;\n background-color: $es-primary-light !important;\n }\n\n &:focus {\n outline: none !important;\n border-color: $es-primary !important;\n box-shadow: 0 0 0 2px rgba($es-primary, 0.1) !important;\n }\n }\n\n .load-more-remaining {\n font-size: $es-font-size-xs;\n color: $es-text-muted;\n }\n }\n\n // Individual chip\n .entity-chip {\n display: inline-flex;\n align-items: center;\n gap: 0.375rem;\n padding: 0.25rem 0.5rem;\n background: $es-slate-100;\n color: $es-text-secondary;\n font-size: $es-font-size-xs;\n font-weight: $es-font-weight-medium;\n border-radius: $es-radius-full;\n transition: all $es-transition-fast;\n\n &:hover {\n background: $es-slate-200;\n }\n\n // Chip with image\n &.has-image {\n padding-left: 0.25rem;\n }\n\n // Hidden by search filter or pagination\n &.chip-filtered-out,\n &.chip-paginated-out {\n display: none;\n }\n }\n\n .chip-image {\n width: 20px;\n height: 20px;\n object-fit: cover;\n border-radius: 50%;\n flex-shrink: 0;\n }\n\n .chip-icon {\n display: flex;\n align-items: center;\n justify-content: center;\n font-size: 12px;\n color: $es-text-muted;\n flex-shrink: 0;\n\n // Product/entity images inside chip\n img {\n width: 20px;\n height: 20px;\n object-fit: cover;\n border-radius: $es-radius-sm;\n }\n }\n\n .chip-text,\n .chip-name {\n // Show full name, no truncation\n word-break: break-word;\n }\n\n .chip-remove {\n @include button-reset;\n display: flex;\n align-items: center;\n justify-content: center;\n width: 16px;\n height: 16px;\n margin-left: 0.125rem;\n color: $es-text-muted;\n border-radius: 50%;\n flex-shrink: 0;\n transition: all $es-transition-fast;\n\n &:hover {\n background: rgba(0, 0, 0, 0.1);\n color: $es-danger;\n }\n\n i {\n font-size: 10px;\n }\n }\n\n // Chip variants\n .entity-chip.chip-primary {\n background: $es-primary-light;\n color: $es-primary;\n\n &:hover {\n background: rgba($es-primary, 0.2);\n }\n }\n\n .entity-chip.chip-success {\n background: $es-success-light;\n color: $es-success-dark;\n\n &:hover {\n background: rgba($es-success, 0.2);\n }\n }\n\n .entity-chip.chip-danger {\n background: $es-danger-light;\n color: $es-danger;\n\n &:hover {\n background: rgba($es-danger, 0.2);\n }\n }\n\n .entity-chip.chip-warning {\n background: $es-warning-light;\n color: darken($es-warning, 20%);\n\n &:hover {\n background: rgba($es-warning, 0.3);\n }\n }\n\n // Chip loading state\n .entity-chip.loading,\n .entity-chip-loading {\n opacity: 0.7;\n\n .chip-remove {\n display: none;\n }\n\n .chip-icon i {\n animation: spin 0.6s linear infinite;\n }\n }\n\n // Hidden chip (collapsed view)\n .entity-chip.chip-hidden {\n display: none;\n }\n\n // Chips expanded/collapsed states\n .entity-chips.chips-collapsed,\n .entity-chips.chips-expanded {\n position: relative;\n }\n\n // Show more/less toggle\n .chips-show-more-toggle {\n display: inline-flex;\n align-items: center;\n gap: 0.25rem;\n padding: 0.25rem 0.5rem;\n color: $es-primary;\n font-size: $es-font-size-xs;\n font-weight: $es-font-weight-medium;\n cursor: pointer;\n transition: color $es-transition-fast;\n\n &:hover {\n color: $es-primary-hover;\n }\n\n i {\n font-size: 10px;\n }\n }\n\n .chips-collapse-toggle,\n .chips-expand-toggle {\n // Specific variants inherit from .chips-show-more-toggle\n }\n\n // More chips indicator\n .chips-more {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n padding: 0.25rem 0.5rem;\n background: $es-slate-200;\n color: $es-text-secondary;\n font-size: $es-font-size-xs;\n font-weight: $es-font-weight-semibold;\n border-radius: $es-radius-full;\n cursor: pointer;\n transition: all $es-transition-fast;\n\n &:hover {\n background: $es-slate-300;\n }\n }\n\n // Add chip button\n .chip-add-btn {\n @include button-reset;\n display: inline-flex;\n align-items: center;\n gap: 0.25rem;\n padding: 0.25rem 0.5rem;\n background: transparent;\n color: $es-primary;\n font-size: $es-font-size-xs;\n font-weight: $es-font-weight-medium;\n border: 1px dashed $es-primary;\n border-radius: $es-radius-full;\n transition: all $es-transition-fast;\n\n &:hover {\n background: $es-primary-light;\n }\n\n i {\n font-size: 10px;\n }\n }\n\n // Inline chips (compact mode)\n .entity-chips.inline {\n display: inline-flex;\n padding: 0;\n min-height: auto;\n\n .entity-chip {\n padding: 0.125rem 0.375rem;\n font-size: 11px;\n }\n }\n\n // Selected chips section in include/exclude\n .selected-chips-container {\n display: flex;\n flex-direction: column;\n gap: $es-spacing-xs;\n }\n\n .selected-chips-label {\n font-size: $es-font-size-xs;\n font-weight: $es-font-weight-medium;\n color: $es-text-muted;\n }\n\n // Pattern chips (for name/reference patterns)\n .entity-chip.chip-pattern {\n background: #fef3c7;\n color: #92400e;\n font-family: monospace;\n\n &:hover {\n background: #fde68a;\n }\n\n .chip-icon {\n color: #d97706;\n }\n }\n\n // Range chips (price, quantity, etc.)\n .entity-chip.chip-range,\n .range-chip {\n display: inline-flex;\n align-items: center;\n gap: 0.375rem;\n padding: 0.25rem 0.5rem;\n background: $es-cyan-50;\n color: $es-cyan-600;\n font-size: $es-font-size-xs;\n font-weight: $es-font-weight-medium;\n border-radius: $es-radius-full;\n transition: all $es-transition-fast;\n\n &:hover {\n background: $es-cyan-100;\n }\n }\n\n .range-chip-text {\n font-family: monospace;\n }\n\n .btn-remove-range {\n @include button-reset;\n display: flex;\n align-items: center;\n justify-content: center;\n width: 16px;\n height: 16px;\n color: $es-cyan-600;\n border-radius: 50%;\n transition: all $es-transition-fast;\n\n &:hover {\n background: rgba(0, 0, 0, 0.1);\n color: $es-danger;\n }\n\n i {\n font-size: 10px;\n }\n }\n\n // Multi-range chips container\n .multi-range-chips {\n display: flex;\n flex-wrap: wrap;\n gap: $es-spacing-xs;\n margin-bottom: $es-spacing-xs;\n\n &:empty {\n display: none;\n }\n }\n\n // Pattern chips container\n .pattern-chips {\n display: flex;\n flex-wrap: wrap;\n gap: $es-spacing-xs;\n padding: $es-spacing-sm 0;\n min-height: 32px;\n\n &:empty::before {\n content: attr(data-placeholder);\n color: $es-text-muted;\n font-size: $es-font-size-xs;\n font-style: italic;\n }\n }\n\n // Pattern tag\n .pattern-tag {\n display: inline-flex;\n align-items: center;\n gap: 0.25rem;\n padding: 0.25rem 0.5rem;\n background: #fef3c7;\n color: #92400e;\n font-size: $es-font-size-xs;\n font-weight: $es-font-weight-medium;\n border-radius: $es-radius-sm;\n transition: all $es-transition-fast;\n\n &:hover {\n background: #fde68a;\n }\n\n &.case-sensitive {\n .case-icon {\n color: $es-success;\n font-weight: $es-font-weight-bold;\n }\n }\n\n &.draft-tag {\n background: $es-white;\n border: 1px solid $es-border-color;\n padding: 0;\n flex: 1;\n min-width: 150px;\n\n &:hover {\n background: $es-white;\n }\n\n .pattern-input {\n flex: 1;\n min-width: 100px;\n padding: 0.375rem;\n border: 0;\n background: transparent;\n font-size: $es-font-size-sm;\n font-family: inherit;\n\n &:focus {\n outline: none;\n }\n\n &::placeholder {\n color: $es-text-muted;\n font-style: italic;\n }\n }\n }\n }\n\n .pattern-tag-text {\n font-family: monospace;\n max-width: 200px;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n }\n\n .btn-toggle-case {\n @include button-reset;\n display: flex;\n align-items: center;\n justify-content: center;\n width: 24px;\n height: 24px;\n color: $es-text-muted;\n border-radius: $es-radius-sm;\n transition: all $es-transition-fast;\n\n &:hover {\n background: rgba(0, 0, 0, 0.1);\n }\n }\n\n .case-icon {\n font-size: 11px;\n font-weight: $es-font-weight-semibold;\n font-family: monospace;\n }\n\n .btn-remove-pattern {\n @include button-reset;\n display: flex;\n align-items: center;\n justify-content: center;\n width: 18px;\n height: 18px;\n color: #d97706;\n border-radius: $es-radius-sm;\n transition: all $es-transition-fast;\n\n &:hover {\n background: rgba(0, 0, 0, 0.1);\n color: $es-danger;\n }\n\n i {\n font-size: 10px;\n }\n }\n\n .btn-add-pattern {\n @include button-reset;\n display: flex;\n align-items: center;\n justify-content: center;\n width: 28px;\n height: 28px;\n color: $es-primary;\n border-radius: $es-radius-sm;\n transition: all $es-transition-fast;\n\n &:hover {\n background: $es-primary-light;\n }\n\n i {\n font-size: 12px;\n }\n }\n\n // Pattern match count (in draft tag)\n .pattern-match-count {\n display: inline-flex;\n align-items: center;\n gap: 0.25rem;\n padding: 0 0.375rem;\n color: $es-text-muted;\n font-size: $es-font-size-xs;\n cursor: pointer;\n\n &.count-zero {\n color: $es-warning;\n }\n\n &.count-found {\n color: $es-success;\n }\n\n .count-value {\n font-weight: $es-font-weight-semibold;\n }\n }\n\n // Pattern input row\n .pattern-input-row {\n display: flex;\n align-items: stretch;\n gap: $es-spacing-xs;\n }\n}\n\n// Bootstrap specificity overrides for chips toolbar form elements\n// PrestaShop admin uses #content .mpr-config-form... with high specificity\n// We need to match or exceed that specificity\n#content.bootstrap,\n#content .bootstrap,\n.bootstrap #content {\n .target-conditions-trait,\n .entity-selector-trait {\n .chips-wrapper .chips-toolbar {\n // Double class for extra specificity\n input[type=\"text\"].chips-search-input.chips-search-input {\n all: unset;\n display: block;\n flex: 1 1 auto;\n min-width: 80px;\n width: auto;\n height: auto;\n padding: 0.2rem 0.5rem 0.2rem 1.5rem;\n background: $es-white url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='10' viewBox='0 0 24 24' fill='none' stroke='%2394a3b8' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='11' cy='11' r='8'/%3E%3Cpath d='m21 21-4.35-4.35'/%3E%3C/svg%3E\") no-repeat 0.375rem center;\n background-size: 10px;\n border: 1px solid $es-slate-300;\n border-radius: $es-radius-sm;\n font-size: 11px;\n line-height: 1.4;\n color: $es-text-primary;\n box-sizing: border-box;\n transition: all $es-transition-fast;\n\n &::placeholder {\n color: $es-text-muted;\n font-size: 11px;\n }\n\n &:focus {\n outline: none;\n border-color: $es-primary;\n box-shadow: 0 0 0 2px rgba($es-primary, 0.1);\n }\n }\n\n // Double class for extra specificity\n select.chips-sort-select.chips-sort-select {\n all: unset;\n flex: 0 0 auto;\n padding: 0.2rem 1.25rem 0.2rem 0.5rem;\n border: 1px solid $es-border-color;\n border-radius: $es-radius-sm;\n background: $es-white url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='8' height='8' viewBox='0 0 8 8'%3E%3Cpath fill='%23666' d='M0 2l4 4 4-4z'/%3E%3C/svg%3E\") no-repeat right 0.375rem center;\n background-size: 8px;\n font-size: 10px;\n line-height: 1.4;\n color: $es-text-secondary;\n cursor: pointer;\n box-sizing: border-box;\n white-space: nowrap;\n height: auto;\n\n &:hover {\n border-color: $es-primary;\n }\n\n &:focus {\n outline: none;\n border-color: $es-primary;\n box-shadow: 0 0 0 2px rgba($es-primary, 0.1);\n }\n }\n }\n }\n}\n","/**\n * Groups Component\n * Selection groups, include/exclude sections, method selectors\n */\n\n@use '../variables' as *;\n@use '../mixins' as *;\n\n.target-conditions-trait,\n.entity-selector-trait {\n\n // Group container\n .target-group {\n background: $es-white;\n border: 1px solid $es-border-color;\n border-radius: $es-radius-lg;\n overflow: hidden;\n }\n\n // Group header\n .target-group-header {\n display: flex;\n align-items: center;\n justify-content: space-between;\n gap: $es-spacing-md;\n padding: $es-spacing-sm $es-spacing-md;\n background: $es-bg-header;\n border-bottom: 1px solid $es-border-color;\n }\n\n .target-group-title {\n display: flex;\n align-items: center;\n gap: $es-spacing-sm;\n font-size: $es-font-size-sm;\n font-weight: $es-font-weight-semibold;\n color: $es-text-primary;\n\n .group-number {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n min-width: 20px;\n height: 20px;\n padding: 0 0.25rem;\n background: $es-primary;\n color: $es-white;\n font-size: $es-font-size-xs;\n font-weight: $es-font-weight-bold;\n border-radius: $es-radius-full;\n }\n }\n\n .target-group-actions {\n display: flex;\n align-items: center;\n gap: $es-spacing-xs;\n }\n\n .group-action-btn {\n @include button-reset;\n display: flex;\n align-items: center;\n justify-content: center;\n width: 28px;\n height: 28px;\n color: $es-text-muted;\n border-radius: $es-radius-sm;\n transition: all $es-transition-fast;\n\n &:hover {\n background: $es-slate-200;\n color: $es-text-secondary;\n }\n\n &.danger:hover {\n background: $es-danger-light;\n color: $es-danger;\n }\n }\n\n // Group body\n .target-group-body,\n .group-body {\n padding: $es-spacing-md;\n }\n\n // Include section\n .include-section {\n margin-bottom: $es-spacing-md;\n }\n\n .section-label {\n display: flex;\n align-items: center;\n gap: $es-spacing-xs;\n margin-bottom: $es-spacing-sm;\n font-size: $es-font-size-xs;\n font-weight: $es-font-weight-semibold;\n text-transform: uppercase;\n letter-spacing: 0.05em;\n\n &.label-include {\n color: $es-success-dark;\n\n i {\n color: $es-success;\n }\n }\n\n &.label-exclude {\n color: $es-danger;\n\n i {\n color: $es-danger;\n }\n }\n }\n\n // Method selector\n .method-selector {\n display: flex;\n align-items: center;\n gap: $es-spacing-sm;\n margin-bottom: $es-spacing-sm;\n }\n\n .method-selector-wrapper {\n flex: 1;\n position: relative;\n }\n\n .method-select {\n @include input-base;\n padding-right: 2rem;\n cursor: pointer;\n appearance: none;\n background-image: url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 20 20'%3E%3Cpath stroke='%236b7280' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' d='m6 8 4 4 4-4'/%3E%3C/svg%3E\");\n background-position: right 0.5rem center;\n background-repeat: no-repeat;\n background-size: 1.5em 1.5em;\n }\n\n .method-help-btn {\n @include button-reset;\n display: flex;\n align-items: center;\n justify-content: center;\n width: 28px;\n height: 28px;\n color: $es-text-muted;\n border-radius: $es-radius-full;\n transition: all $es-transition-fast;\n\n &:hover {\n background: $es-slate-100;\n color: $es-primary;\n }\n }\n\n // Value picker (search trigger)\n .value-picker {\n position: relative;\n }\n\n .value-picker-trigger {\n @include button-reset;\n display: flex;\n align-items: center;\n gap: $es-spacing-sm;\n width: 100%;\n padding: $es-spacing-sm $es-spacing-md;\n background: $es-white;\n border: 1px solid $es-border-color;\n border-radius: $es-radius-md;\n color: $es-text-muted;\n font-size: $es-font-size-sm;\n text-align: left;\n transition: all $es-transition-fast;\n\n &:hover {\n border-color: $es-slate-300;\n }\n\n &:focus {\n border-color: $es-primary;\n @include focus-ring($es-primary);\n }\n\n i {\n color: $es-text-light;\n }\n }\n\n // Pattern input (text input for patterns)\n .pattern-input-wrapper {\n position: relative;\n }\n\n .pattern-input {\n @include input-base;\n font-family: monospace;\n }\n\n .pattern-add-btn {\n @include button-reset;\n position: absolute;\n right: 0.25rem;\n top: 50%;\n transform: translateY(-50%);\n display: flex;\n align-items: center;\n justify-content: center;\n width: 28px;\n height: 28px;\n color: $es-primary;\n border-radius: $es-radius-sm;\n transition: all $es-transition-fast;\n\n &:hover {\n background: $es-primary-light;\n }\n }\n\n // Multi-range input (price ranges)\n .multi-range-container {\n display: flex;\n flex-direction: column;\n gap: $es-spacing-sm;\n }\n\n .range-row {\n display: flex;\n align-items: center;\n gap: $es-spacing-sm;\n }\n\n .range-input {\n @include input-base;\n width: 100px;\n text-align: center;\n }\n\n .range-separator {\n color: $es-text-muted;\n font-size: $es-font-size-sm;\n }\n\n .range-remove-btn {\n @include button-reset;\n display: flex;\n align-items: center;\n justify-content: center;\n width: 24px;\n height: 24px;\n color: $es-text-muted;\n border-radius: $es-radius-sm;\n transition: all $es-transition-fast;\n\n &:hover {\n background: $es-danger-light;\n color: $es-danger;\n }\n }\n\n .range-add-btn {\n @include button-reset;\n display: inline-flex;\n align-items: center;\n gap: 0.25rem;\n padding: 0.25rem 0.5rem;\n color: $es-primary;\n font-size: $es-font-size-xs;\n font-weight: $es-font-weight-medium;\n border-radius: $es-radius-sm;\n transition: all $es-transition-fast;\n\n &:hover {\n background: $es-primary-light;\n }\n }\n\n // Multi-select tiles (stock status, etc.)\n .multi-select-tiles {\n display: flex;\n flex-wrap: wrap;\n gap: $es-spacing-xs;\n }\n\n .multi-select-tile {\n @include button-reset;\n display: inline-flex;\n align-items: center;\n gap: 0.25rem;\n padding: 0.375rem 0.75rem;\n background: $es-slate-100;\n color: $es-text-secondary;\n font-size: $es-font-size-xs;\n font-weight: $es-font-weight-medium;\n border: 1px solid transparent;\n border-radius: $es-radius-full;\n transition: all $es-transition-fast;\n\n &:hover {\n background: $es-slate-200;\n }\n\n &.selected {\n background: $es-primary-light;\n color: $es-primary;\n border-color: $es-primary;\n }\n }\n\n // Exclude section\n .exclude-section {\n margin-top: $es-spacing-md;\n padding-top: $es-spacing-md;\n border-top: 1px dashed $es-border-color;\n }\n\n // Legacy exclude-rows (if used elsewhere)\n .exclude-rows {\n display: flex;\n flex-direction: column;\n gap: $es-spacing-sm;\n }\n\n .exclude-row-content {\n flex: 1;\n }\n\n .exclude-remove-btn {\n @include button-reset;\n display: flex;\n align-items: center;\n justify-content: center;\n width: 24px;\n height: 24px;\n color: $es-text-muted;\n border-radius: $es-radius-sm;\n flex-shrink: 0;\n transition: all $es-transition-fast;\n\n &:hover {\n background: $es-danger-light;\n color: $es-danger;\n }\n }\n\n .add-exclude-btn {\n @include button-reset;\n display: inline-flex;\n align-items: center;\n gap: 0.25rem;\n margin-top: $es-spacing-sm;\n padding: 0.25rem 0.5rem;\n color: $es-danger;\n font-size: $es-font-size-xs;\n font-weight: $es-font-weight-medium;\n border: 1px dashed $es-danger;\n border-radius: $es-radius-sm;\n transition: all $es-transition-fast;\n\n &:hover {\n background: $es-danger-light;\n }\n }\n\n // Add group button (used in block-footer)\n .btn-add-group {\n @include button-reset;\n display: inline-flex;\n align-items: center;\n gap: 0.375rem;\n padding: 0.5rem 0.875rem;\n color: $es-primary;\n font-size: $es-font-size-sm;\n font-weight: $es-font-weight-medium;\n background: rgba($es-primary, 0.05);\n border: 1px dashed $es-primary;\n border-radius: 0.375rem;\n cursor: pointer;\n transition: all $es-transition-fast;\n\n &:hover {\n background: rgba($es-primary, 0.1);\n }\n\n i {\n font-size: 12px;\n }\n }\n\n // Block footer\n .block-footer {\n display: flex;\n align-items: center;\n gap: $es-spacing-sm;\n padding: $es-spacing-md;\n border-top: 1px solid $es-border-color;\n }\n\n // Block body\n .block-body {\n padding: 0;\n }\n\n // Groups container\n .groups-container {\n padding: $es-spacing-md;\n }\n\n // Groups empty state\n .groups-empty-state {\n display: flex;\n align-items: center;\n justify-content: center;\n padding: $es-spacing-xl;\n color: $es-text-muted;\n font-size: $es-font-size-sm;\n }\n\n // Selection group\n .selection-group {\n background: $es-white;\n border: 1px solid $es-border-color;\n border-radius: $es-radius-lg;\n margin-bottom: $es-spacing-md;\n\n &:last-child {\n margin-bottom: 0;\n }\n\n &.collapsed {\n .group-body {\n display: none;\n }\n\n .group-collapse-toggle i {\n transform: rotate(-90deg);\n }\n }\n }\n\n // Group header\n .group-header {\n display: flex;\n align-items: center;\n gap: $es-spacing-sm;\n padding: $es-spacing-sm $es-spacing-md;\n background: $es-bg-header;\n border-bottom: 1px solid $es-border-color;\n border-radius: $es-radius-lg $es-radius-lg 0 0;\n cursor: pointer;\n\n &.group-header-single {\n padding: $es-spacing-xs $es-spacing-md;\n background: transparent;\n border-bottom: none;\n }\n }\n\n .group-collapse-toggle {\n display: flex;\n align-items: center;\n justify-content: center;\n width: 20px;\n color: $es-text-muted;\n\n i {\n transition: transform $es-transition-fast;\n }\n }\n\n .group-name-wrapper {\n flex: 1;\n display: flex;\n align-items: center;\n gap: $es-spacing-sm;\n }\n\n .group-name-input {\n flex: 1;\n padding: 0.25rem 0.5rem;\n font-size: $es-font-size-sm;\n font-weight: $es-font-weight-semibold;\n color: $es-text-primary;\n background: transparent;\n border: 1px solid transparent;\n border-radius: $es-radius-sm;\n transition: all $es-transition-fast;\n\n &:hover,\n &:focus {\n background: $es-white;\n border-color: $es-border-color;\n outline: none;\n }\n\n &::placeholder {\n color: $es-text-muted;\n font-weight: $es-font-weight-medium;\n }\n }\n\n .group-count-badge {\n @include count-badge($es-primary);\n }\n\n .btn-remove-group {\n @include button-reset;\n display: flex;\n align-items: center;\n justify-content: center;\n width: 28px;\n height: 28px;\n color: $es-text-muted;\n border-radius: $es-radius-sm;\n transition: all $es-transition-fast;\n\n &:hover {\n background: $es-danger-light;\n color: $es-danger;\n }\n }\n\n // Group include section - green accent to distinguish from exclude\n .group-include {\n margin-bottom: $es-spacing-md;\n padding: $es-spacing-sm;\n background: rgba($es-success, 0.03);\n border: 1px solid rgba($es-success, 0.2);\n border-radius: $es-radius-md;\n }\n\n .section-row {\n display: flex;\n flex-direction: column;\n gap: $es-spacing-sm;\n }\n\n // Method selector wrapper (from PHP)\n .method-selector-wrapper {\n display: flex;\n align-items: center;\n gap: $es-spacing-sm;\n }\n\n .method-info-placeholder {\n display: flex;\n align-items: center;\n min-width: 20px;\n }\n\n .include-method-select,\n .exclude-method-select {\n flex: 1;\n @include input-base;\n cursor: pointer;\n }\n\n // Lock indicator for method selector (when excludes are present)\n .selector-locked {\n .include-method-select {\n opacity: 0.7;\n cursor: not-allowed;\n }\n }\n\n .lock-indicator {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n width: 24px;\n height: 24px;\n color: $es-warning;\n cursor: help;\n\n i {\n font-size: 14px;\n }\n\n .mpr-tooltip {\n display: none;\n position: absolute;\n bottom: calc(100% + 8px);\n left: 50%;\n transform: translateX(-50%);\n padding: $es-spacing-xs $es-spacing-sm;\n background: $es-slate-800;\n color: $es-white;\n font-size: $es-font-size-xs;\n font-weight: $es-font-weight-normal;\n white-space: nowrap;\n border-radius: $es-radius-sm;\n z-index: 100;\n }\n\n &:hover .mpr-tooltip {\n display: block;\n }\n }\n\n // Group excludes section\n .group-excludes {\n margin-top: $es-spacing-md;\n }\n\n .except-separator {\n display: flex;\n align-items: center;\n gap: $es-spacing-sm;\n margin: 0 0 $es-spacing-sm 0;\n\n // Lines on both sides\n &::before,\n &::after {\n content: '';\n flex: 1;\n height: 1px;\n background: rgba($es-danger, 0.3);\n }\n }\n\n .except-label {\n display: inline-flex;\n align-items: center;\n gap: 0.25rem;\n padding: 0.25rem 0.75rem;\n background: $es-danger-light;\n color: $es-danger;\n font-size: $es-font-size-xs;\n font-weight: $es-font-weight-semibold;\n border-radius: $es-radius-full;\n white-space: nowrap;\n flex-shrink: 0;\n\n i {\n font-size: 10px;\n }\n }\n\n .exclude-rows-container {\n display: flex;\n flex-direction: column;\n gap: $es-spacing-sm;\n }\n\n .exclude-row {\n display: flex;\n flex-direction: column;\n padding: $es-spacing-sm;\n background: rgba($es-danger, 0.03);\n border: 1px solid rgba($es-danger, 0.15);\n border-radius: $es-radius-md;\n\n // Value picker inside exclude row - full width\n .value-picker {\n width: 100%;\n margin-top: $es-spacing-sm;\n }\n }\n\n .exclude-header-row {\n display: flex;\n align-items: center;\n justify-content: space-between;\n gap: $es-spacing-sm;\n width: 100%;\n\n .method-selector-wrapper {\n flex: 1;\n }\n\n // Delete button at the far right\n .btn-remove-exclude-row {\n flex-shrink: 0;\n margin-left: auto;\n }\n }\n\n .btn-remove-exclude-row {\n @include button-reset;\n display: flex;\n align-items: center;\n justify-content: center;\n width: 28px;\n height: 28px;\n color: $es-text-muted;\n border-radius: $es-radius-sm;\n transition: all $es-transition-fast;\n\n &:hover {\n background: $es-danger-light;\n color: $es-danger;\n }\n }\n\n .btn-add-exclude,\n .btn-add-another-exclude {\n @include button-reset;\n display: inline-flex;\n align-items: center;\n gap: 0.25rem;\n margin-top: $es-spacing-sm;\n padding: 0.375rem 0.625rem;\n color: $es-danger;\n font-size: $es-font-size-xs;\n font-weight: $es-font-weight-medium;\n background: transparent;\n border: 1px dashed rgba($es-danger, 0.5);\n border-radius: $es-radius-sm;\n transition: all $es-transition-fast;\n\n &:hover {\n background: $es-danger-light;\n border-color: $es-danger;\n }\n\n i {\n font-size: 10px;\n }\n }\n\n // Group modifiers (inline version from PHP)\n // Uses negative margins to break out of .group-body padding\n .group-modifiers {\n display: flex;\n flex-wrap: wrap;\n align-items: center;\n gap: $es-spacing-md;\n padding: $es-spacing-sm $es-spacing-md;\n margin: $es-spacing-md (-$es-spacing-md) (-$es-spacing-md);\n background: $es-slate-50;\n border-top: 1px solid $es-border-color;\n border-radius: 0 0 $es-radius-lg $es-radius-lg;\n }\n\n .modifier-inline {\n display: flex;\n align-items: center;\n gap: 0.375rem;\n }\n\n // Common height for all modifier controls\n $modifier-height: 26px;\n\n .group-modifier-limit {\n width: 50px;\n max-width: 50px;\n height: $modifier-height;\n padding: 0 0.375rem;\n font-size: $es-font-size-xs;\n text-align: center;\n border: 1px solid $es-border-color;\n border-radius: $es-radius-sm;\n\n &:focus {\n border-color: $es-primary;\n outline: none;\n }\n }\n\n // Sort modifier - input group style (select + button glued together)\n .modifier-sort {\n gap: 0; // Remove gap to glue select + button together\n\n .modifier-label {\n margin-right: 0.375rem; // Keep space between label and input group\n }\n\n .group-modifier-sort {\n height: $modifier-height;\n padding: 0 0.5rem;\n font-size: $es-font-size-xs;\n border: 1px solid $es-border-color;\n border-radius: $es-radius-sm 0 0 $es-radius-sm;\n border-right: none;\n cursor: pointer;\n\n &:focus {\n border-color: $es-primary;\n outline: none;\n position: relative;\n z-index: 1;\n }\n }\n\n .btn-sort-dir {\n @include button-reset;\n display: flex;\n align-items: center;\n justify-content: center;\n width: $modifier-height;\n height: $modifier-height;\n color: $es-text-muted;\n background: $es-slate-100;\n border: 1px solid $es-border-color;\n border-radius: 0 $es-radius-sm $es-radius-sm 0;\n transition: all $es-transition-fast;\n\n &:hover {\n background: $es-slate-200;\n color: $es-text-secondary;\n }\n\n i {\n font-size: 11px;\n }\n }\n }\n\n // Fallback for elements outside .modifier-sort context\n .group-modifier-sort {\n height: $modifier-height;\n padding: 0 0.5rem;\n font-size: $es-font-size-xs;\n border: 1px solid $es-border-color;\n border-radius: $es-radius-sm;\n cursor: pointer;\n\n &:focus {\n border-color: $es-primary;\n outline: none;\n }\n }\n\n .btn-sort-dir {\n @include button-reset;\n display: flex;\n align-items: center;\n justify-content: center;\n width: $modifier-height;\n height: $modifier-height;\n color: $es-text-muted;\n border: 1px solid $es-border-color;\n border-radius: $es-radius-sm;\n transition: all $es-transition-fast;\n\n &:hover {\n background: $es-slate-100;\n color: $es-text-secondary;\n }\n }\n\n .group-preview-badge {\n display: inline-flex;\n align-items: center;\n gap: 0.25rem;\n padding: 0.25rem 0.5rem;\n background: $es-slate-100;\n color: $es-text-muted;\n font-size: $es-font-size-xs;\n font-weight: $es-font-weight-medium;\n border-radius: $es-radius-full;\n transition: all $es-transition-fast;\n\n &.clickable {\n cursor: pointer;\n\n &:hover {\n background: $es-primary-light;\n color: $es-primary;\n }\n }\n }\n\n // OR separator between groups\n .group-separator {\n display: flex;\n align-items: center;\n justify-content: center;\n padding: $es-spacing-sm 0;\n color: $es-text-muted;\n font-size: $es-font-size-xs;\n font-weight: $es-font-weight-semibold;\n text-transform: uppercase;\n letter-spacing: 0.1em;\n\n &::before,\n &::after {\n content: '';\n flex: 1;\n height: 1px;\n background: $es-border-color;\n margin: 0 $es-spacing-md;\n }\n }\n\n // Group modifiers (limit, sort)\n .group-modifiers {\n display: flex;\n flex-wrap: wrap;\n gap: $es-spacing-md;\n padding-top: $es-spacing-md;\n margin-top: $es-spacing-md;\n border-top: 1px solid $es-border-color;\n }\n\n .modifier-group {\n display: flex;\n align-items: center;\n gap: $es-spacing-sm;\n }\n\n .modifier-label {\n font-size: $es-font-size-xs;\n font-weight: $es-font-weight-medium;\n color: $es-text-muted;\n white-space: nowrap;\n }\n\n .modifier-input {\n @include input-base;\n width: 80px;\n padding: 0.25rem 0.5rem;\n font-size: $es-font-size-xs;\n }\n\n .modifier-select {\n @include input-base;\n width: auto;\n padding: 0.25rem 1.5rem 0.25rem 0.5rem;\n font-size: $es-font-size-xs;\n cursor: pointer;\n appearance: none;\n background-image: url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 20 20'%3E%3Cpath stroke='%236b7280' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' d='m6 8 4 4 4-4'/%3E%3C/svg%3E\");\n background-position: right 0.25rem center;\n background-repeat: no-repeat;\n background-size: 1.25em 1.25em;\n }\n\n // Condition match count badge\n .condition-match-count {\n display: inline-flex;\n align-items: center;\n gap: 0.25rem;\n padding: 0.125rem 0.375rem;\n background: $es-slate-100;\n color: $es-text-muted;\n font-size: $es-font-size-xs;\n font-weight: $es-font-weight-medium;\n border-radius: $es-radius-full;\n cursor: pointer;\n transition: all $es-transition-fast;\n\n &:hover {\n background: $es-slate-200;\n }\n\n &.has-results {\n background: $es-primary-light;\n color: $es-primary;\n }\n\n i {\n font-size: 10px;\n }\n }\n}\n","/**\n * Value Picker Component\n * Search boxes, input types, range inputs\n */\n\n@use '../variables' as *;\n@use '../mixins' as *;\n\n.target-conditions-trait,\n.entity-selector-trait {\n\n // Value picker container\n .value-picker {\n padding: $es-spacing-sm 0;\n\n &[style*=\"display: none\"],\n &[style*=\"display:none\"] {\n padding: 0;\n }\n }\n\n .include-picker,\n .exclude-picker {\n // Section-specific picker styles\n }\n\n // Entity search box\n .entity-search-box {\n position: relative;\n display: flex;\n align-items: center;\n gap: $es-spacing-sm;\n padding: $es-spacing-xs;\n background: $es-white;\n border: 1px solid $es-border-color;\n border-radius: $es-radius-md;\n transition: all $es-transition-fast;\n\n &:focus-within {\n border-color: $es-primary;\n box-shadow: 0 0 0 2px rgba($es-primary, 0.1);\n }\n }\n\n // Separation between chips and search box\n .chips-wrapper + .entity-search-box {\n margin-top: $es-spacing-md;\n }\n\n .entity-search-icon {\n color: $es-text-muted;\n font-size: 14px;\n flex-shrink: 0;\n margin-left: $es-spacing-xs;\n }\n\n // Override parent form's max-width on search input\n input.entity-search-input,\n input.entity-search-input[type=\"text\"] {\n @include input-reset;\n flex: 1;\n min-width: 0;\n width: auto !important;\n max-width: none !important;\n padding: 0.375rem;\n font-size: $es-font-size-sm;\n color: $es-text-primary;\n border: none !important;\n background: transparent !important;\n box-shadow: none !important;\n\n &::placeholder {\n color: $es-text-muted;\n }\n\n &:focus {\n border: none !important;\n box-shadow: none !important;\n outline: none;\n }\n }\n\n .search-loading {\n display: flex;\n align-items: center;\n justify-content: center;\n color: $es-primary;\n\n i {\n animation: spin 0.6s linear infinite;\n }\n }\n\n // Browse tree button (for categories)\n .btn-browse-tree {\n @include button-reset;\n display: flex;\n align-items: center;\n justify-content: center;\n width: 32px;\n height: 32px;\n margin-left: auto;\n color: $es-primary;\n background: $es-primary-light;\n border-radius: $es-radius-sm;\n flex-shrink: 0;\n transition: all $es-transition-fast;\n\n &:hover {\n background: $es-primary;\n color: $es-white;\n }\n\n i {\n font-size: 14px;\n }\n }\n\n // Numeric range box\n .numeric-range-box,\n .multi-range-input-row {\n display: flex;\n align-items: center;\n gap: $es-spacing-xs;\n }\n\n .range-min-input,\n .range-max-input {\n @include input-base;\n width: 100px;\n padding: $es-spacing-sm;\n text-align: center;\n font-size: $es-font-size-sm;\n\n &::-webkit-inner-spin-button,\n &::-webkit-outer-spin-button {\n -webkit-appearance: none;\n margin: 0;\n }\n -moz-appearance: textfield;\n }\n\n .range-separator {\n color: $es-text-muted;\n font-size: $es-font-size-sm;\n font-weight: $es-font-weight-medium;\n }\n\n .btn-add-range {\n @include button-reset;\n display: flex;\n align-items: center;\n justify-content: center;\n width: 32px;\n height: 32px;\n color: $es-white;\n background: $es-primary;\n border-radius: $es-radius-md;\n transition: all $es-transition-fast;\n\n &:hover {\n background: $es-primary-hover;\n }\n\n i {\n font-size: 12px;\n }\n }\n\n // Multi-range container\n .multi-range-container {\n display: flex;\n flex-direction: column;\n gap: $es-spacing-sm;\n }\n\n // Date range box\n .date-range-box {\n display: flex;\n align-items: center;\n gap: $es-spacing-xs;\n }\n\n .date-from-input,\n .date-to-input {\n @include input-base;\n width: 140px;\n padding: $es-spacing-sm;\n font-size: $es-font-size-sm;\n }\n\n // Multi-select tiles\n .multi-select-tiles {\n display: flex;\n flex-wrap: wrap;\n gap: $es-spacing-xs;\n }\n\n .tile-option {\n @include button-reset;\n display: inline-flex;\n align-items: center;\n gap: 0.25rem;\n padding: 0.375rem 0.625rem;\n color: $es-text-secondary;\n background: $es-slate-100;\n border: 1px solid transparent;\n border-radius: $es-radius-sm;\n font-size: $es-font-size-xs;\n font-weight: $es-font-weight-medium;\n cursor: pointer;\n transition: all $es-transition-fast;\n\n &:hover {\n background: $es-slate-200;\n }\n\n &.selected {\n color: $es-primary;\n background: $es-primary-light;\n border-color: $es-primary;\n }\n\n i {\n font-size: 12px;\n }\n }\n\n .tile-label {\n white-space: nowrap;\n }\n\n // Select input box\n .select-input-box {\n display: inline-block;\n }\n\n .select-value-input {\n @include input-base;\n padding: $es-spacing-sm $es-spacing-md;\n font-size: $es-font-size-sm;\n min-width: 150px;\n }\n\n // Boolean input box\n .boolean-input-box {\n display: inline-flex;\n align-items: center;\n padding: $es-spacing-sm $es-spacing-md;\n background: $es-success-light;\n color: $es-success-dark;\n border-radius: $es-radius-md;\n font-size: $es-font-size-sm;\n font-weight: $es-font-weight-medium;\n }\n\n .boolean-label {\n display: flex;\n align-items: center;\n gap: 0.25rem;\n\n &::before {\n content: '\\2713';\n font-weight: bold;\n }\n }\n\n // Condition match count badge\n .condition-match-count {\n @include count-badge($es-primary);\n margin-left: $es-spacing-sm;\n }\n}\n","/**\n * Modal Component\n * Preview modals, confirmation dialogs\n */\n\n@use '../variables' as *;\n@use '../mixins' as *;\n\n// Modal backdrop\n.mpr-modal-backdrop {\n position: fixed;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n background: rgba(0, 0, 0, 0.5);\n z-index: $es-z-modal;\n opacity: 0;\n transition: opacity $es-transition-normal;\n\n &.show {\n opacity: 1;\n }\n}\n\n// Modal container\n.mpr-modal {\n position: fixed;\n top: 50%;\n left: 50%;\n transform: translate(-50%, -50%) scale(0.95);\n z-index: $es-z-modal + 1;\n width: 90%;\n max-width: 600px;\n max-height: 90vh;\n background: $es-white;\n border-radius: $es-radius-xl;\n box-shadow: $es-shadow-xl;\n opacity: 0;\n transition: all $es-transition-normal;\n overflow: hidden;\n display: flex;\n flex-direction: column;\n\n &.show {\n opacity: 1;\n transform: translate(-50%, -50%) scale(1);\n }\n\n &.modal-sm {\n max-width: 400px;\n }\n\n &.modal-lg {\n max-width: 800px;\n }\n\n &.modal-xl {\n max-width: 1000px;\n }\n\n &.modal-fullscreen {\n width: 95%;\n max-width: none;\n height: 90vh;\n max-height: none;\n }\n}\n\n// Modal header\n.mpr-modal-header {\n display: flex;\n align-items: center;\n justify-content: space-between;\n gap: $es-spacing-md;\n padding: $es-spacing-md $es-spacing-lg;\n background: $es-bg-header;\n border-bottom: 1px solid $es-border-color;\n flex-shrink: 0;\n}\n\n.mpr-modal-title {\n font-size: $es-font-size-base;\n font-weight: $es-font-weight-semibold;\n color: $es-text-primary;\n margin: 0;\n}\n\n.mpr-modal-close {\n @include button-reset;\n display: flex;\n align-items: center;\n justify-content: center;\n width: 32px;\n height: 32px;\n color: $es-text-muted;\n border-radius: $es-radius-md;\n transition: all $es-transition-fast;\n\n &:hover {\n background: $es-slate-200;\n color: $es-text-secondary;\n }\n\n i {\n font-size: $es-font-size-lg;\n }\n}\n\n// Modal body\n.mpr-modal-body {\n flex: 1;\n overflow-y: auto;\n padding: $es-spacing-lg;\n @include custom-scrollbar;\n}\n\n// Modal footer\n.mpr-modal-footer {\n display: flex;\n align-items: center;\n justify-content: flex-end;\n gap: $es-spacing-sm;\n padding: $es-spacing-md $es-spacing-lg;\n background: $es-bg-header;\n border-top: 1px solid $es-border-color;\n flex-shrink: 0;\n}\n\n.mpr-modal-btn {\n @include button-reset;\n display: inline-flex;\n align-items: center;\n justify-content: center;\n gap: $es-spacing-xs;\n padding: $es-spacing-sm $es-spacing-md;\n font-size: $es-font-size-sm;\n font-weight: $es-font-weight-medium;\n border-radius: $es-radius-md;\n transition: all $es-transition-fast;\n\n &.btn-secondary {\n color: $es-text-secondary;\n background: $es-slate-100;\n\n &:hover {\n background: $es-slate-200;\n }\n }\n\n &.btn-primary {\n color: $es-white;\n background: $es-primary;\n\n &:hover {\n background: $es-primary-hover;\n }\n }\n\n &.btn-danger {\n color: $es-white;\n background: $es-danger;\n\n &:hover {\n background: darken($es-danger, 10%);\n }\n }\n\n &:disabled {\n opacity: 0.5;\n cursor: not-allowed;\n }\n}\n\n// Preview popover styles moved to _list-preview.scss\n\n.popover-header {\n display: flex;\n align-items: center;\n justify-content: space-between;\n gap: $es-spacing-sm;\n padding: $es-spacing-sm $es-spacing-md;\n background: $es-bg-header;\n border-bottom: 1px solid $es-border-color;\n border-radius: $es-radius-lg $es-radius-lg 0 0;\n}\n\n.popover-title {\n font-size: $es-font-size-sm;\n font-weight: $es-font-weight-semibold;\n color: $es-text-primary;\n}\n\n.popover-close {\n @include button-reset;\n display: flex;\n align-items: center;\n justify-content: center;\n width: 24px;\n height: 24px;\n color: $es-text-muted;\n border-radius: $es-radius-sm;\n transition: all $es-transition-fast;\n\n &:hover {\n background: $es-slate-200;\n color: $es-text-secondary;\n }\n}\n\n.popover-body {\n max-height: 300px;\n overflow-y: auto;\n padding: $es-spacing-sm;\n @include custom-scrollbar;\n}\n\n.popover-footer {\n display: flex;\n align-items: center;\n justify-content: space-between;\n gap: $es-spacing-sm;\n padding: $es-spacing-sm $es-spacing-md;\n background: $es-bg-header;\n border-top: 1px solid $es-border-color;\n border-radius: 0 0 $es-radius-lg $es-radius-lg;\n}\n\n.popover-info {\n font-size: $es-font-size-xs;\n color: $es-text-muted;\n}\n\n.popover-load-more {\n @include button-reset;\n display: inline-flex;\n align-items: center;\n gap: 0.25rem;\n padding: 0.25rem 0.5rem;\n font-size: $es-font-size-xs;\n font-weight: $es-font-weight-medium;\n color: $es-primary;\n border-radius: $es-radius-sm;\n transition: all $es-transition-fast;\n\n &:hover {\n background: $es-primary-light;\n }\n}\n\n// Popover arrow\n.popover-arrow {\n position: absolute;\n width: 12px;\n height: 12px;\n background: $es-white;\n border: 1px solid $es-border-color;\n transform: rotate(45deg);\n\n &.arrow-top {\n top: -7px;\n left: 50%;\n margin-left: -6px;\n border-right: none;\n border-bottom: none;\n }\n\n &.arrow-bottom {\n bottom: -7px;\n left: 50%;\n margin-left: -6px;\n border-left: none;\n border-top: none;\n }\n}\n","/**\n * List Preview Component\n * Popover and modal views for entity preview\n *\n * Uses shared entity-item base for item styling.\n * This file only contains popover/modal container styles.\n */\n\n@use '../variables' as *;\n@use '../mixins' as *;\n\n// =============================================================================\n// Preview Popover Container\n// =============================================================================\n\n.target-preview-popover,\n.target-list-preview-popover {\n position: absolute;\n z-index: 10000;\n min-width: 320px;\n max-width: 480px;\n background: $es-white;\n border: 1px solid $es-border-color;\n border-radius: $es-radius-lg;\n box-shadow: $es-shadow-lg;\n overflow: hidden;\n\n // Arrow pointing to badge\n &::before {\n content: '';\n position: absolute;\n top: -8px;\n left: 50%;\n transform: translateX(-50%);\n border-left: 8px solid transparent;\n border-right: 8px solid transparent;\n border-bottom: 8px solid $es-border-color;\n }\n\n &::after {\n content: '';\n position: absolute;\n top: -6px;\n left: 50%;\n transform: translateX(-50%);\n border-left: 6px solid transparent;\n border-right: 6px solid transparent;\n border-bottom: 6px solid $es-white;\n }\n\n // Positioned to the right - arrow on left\n &.position-right {\n &::before,\n &::after {\n left: 20px;\n transform: none;\n }\n }\n\n // Positioned to the left - arrow on right\n &.position-left {\n &::before,\n &::after {\n left: auto;\n right: 20px;\n transform: none;\n }\n }\n}\n\n// =============================================================================\n// Preview Header\n// =============================================================================\n\n.preview-header {\n display: flex;\n align-items: center;\n justify-content: space-between;\n padding: $es-spacing-sm $es-spacing-md;\n background: $es-bg-header;\n border-bottom: 1px solid $es-border-color;\n\n .preview-title {\n font-size: $es-font-size-sm;\n font-weight: $es-font-weight-semibold;\n color: $es-text-primary;\n }\n\n .preview-close {\n @include button-reset;\n display: flex;\n align-items: center;\n justify-content: center;\n width: 24px;\n height: 24px;\n color: $es-text-muted;\n border-radius: $es-radius-sm;\n transition: all $es-transition-fast;\n\n &:hover {\n background: $es-slate-200;\n color: $es-text-primary;\n }\n }\n}\n\n// =============================================================================\n// Preview Tabs (entity type switcher)\n// =============================================================================\n\n.preview-tabs {\n display: flex;\n flex-wrap: wrap;\n gap: 0;\n padding: 0;\n background: $es-slate-50;\n border-bottom: 1px solid $es-border-color;\n}\n\n.preview-tab {\n display: flex;\n align-items: center;\n gap: 0.375rem;\n padding: 0.5rem 0.75rem;\n background: transparent;\n border: 0;\n border-bottom: 2px solid transparent;\n margin-bottom: -1px;\n color: $es-text-muted;\n font-size: $es-font-size-xs;\n font-weight: $es-font-weight-medium;\n cursor: pointer;\n transition: all $es-transition-fast;\n white-space: nowrap;\n\n &:hover {\n background: $es-slate-100;\n color: $es-text-secondary;\n }\n\n &.active {\n background: $es-white;\n border-bottom-color: $es-primary;\n color: $es-primary;\n }\n\n i {\n font-size: 12px;\n }\n}\n\n// =============================================================================\n// Preview Filter\n// =============================================================================\n\n.preview-filter {\n display: flex;\n align-items: center;\n gap: $es-spacing-sm;\n padding: $es-spacing-sm $es-spacing-md;\n background: $es-white;\n border-bottom: 1px solid $es-border-color;\n\n i {\n color: $es-text-muted;\n font-size: 12px;\n }\n\n .preview-filter-input {\n all: unset;\n flex: 1;\n padding: 0.25rem 0;\n font-size: $es-font-size-xs;\n color: $es-text-primary;\n box-sizing: border-box;\n\n &::placeholder {\n color: $es-text-muted;\n }\n }\n}\n\n// =============================================================================\n// Preview Contents (tabbed content areas)\n// =============================================================================\n\n.preview-contents {\n max-height: 350px;\n overflow: hidden;\n}\n\n.preview-content {\n display: none;\n max-height: 350px;\n overflow-y: auto;\n @include custom-scrollbar;\n\n &.active {\n display: block;\n }\n}\n\n// =============================================================================\n// Preview Items Container\n// =============================================================================\n\n.preview-items {\n display: flex;\n flex-direction: column;\n padding: $es-spacing-xs $es-spacing-sm;\n}\n\n// =============================================================================\n// Preview Item - Uses entity-item patterns\n// Maps legacy classes to shared styling\n// =============================================================================\n\n.preview-item {\n display: flex;\n align-items: center;\n gap: $es-spacing-sm;\n padding: $es-spacing-sm;\n background: $es-white;\n border-radius: $es-radius-sm;\n transition: background $es-transition-fast;\n\n &:hover {\n background: $es-bg-hover;\n }\n\n // Clickable items\n &[data-id] {\n cursor: pointer;\n }\n}\n\n// Image - matches chip image sizing for consistency\n.preview-item-image {\n flex-shrink: 0;\n width: 32px;\n height: 32px;\n object-fit: cover;\n border-radius: $es-radius-sm;\n background: $es-slate-100;\n}\n\n// No-image placeholder\n.preview-item-no-image {\n display: flex;\n align-items: center;\n justify-content: center;\n flex-shrink: 0;\n width: 32px;\n height: 32px;\n background: $es-slate-100;\n color: $es-text-muted;\n border-radius: $es-radius-sm;\n font-size: $es-font-size-sm;\n}\n\n// Info container\n.preview-item-info {\n flex: 1;\n min-width: 0;\n display: flex;\n flex-direction: column;\n gap: 0.125rem;\n}\n\n// Name\n.preview-item-name {\n font-size: $es-font-size-sm;\n font-weight: $es-font-weight-medium;\n color: $es-text-primary;\n @include text-truncate;\n}\n\n// Meta/ref (category, email, etc.)\n.preview-item-ref,\n.preview-item-meta {\n font-size: $es-font-size-xs;\n color: $es-text-muted;\n @include text-truncate;\n}\n\n// Price badge\n.preview-item-price {\n flex-shrink: 0;\n padding: 0.25rem 0.5rem;\n font-size: $es-font-size-xs;\n font-weight: $es-font-weight-semibold;\n color: $es-primary;\n background: $es-primary-light;\n border-radius: $es-radius-sm;\n}\n\n// =============================================================================\n// Preview Footer (load more)\n// =============================================================================\n\n.preview-footer {\n padding: $es-spacing-sm $es-spacing-md;\n background: $es-slate-50;\n border-top: 1px solid $es-border-color;\n}\n\n.load-more-controls {\n display: flex;\n align-items: center;\n justify-content: center;\n gap: $es-spacing-sm;\n font-size: $es-font-size-xs;\n color: $es-text-muted;\n\n .load-more-label {\n white-space: nowrap;\n }\n\n .load-more-select {\n appearance: none;\n padding: 0.25rem 1.75rem 0.25rem 0.5rem;\n border: 1px solid $es-border-color;\n border-radius: $es-radius-sm;\n background: $es-white url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='8' height='8' viewBox='0 0 8 8'%3E%3Cpath fill='%23666' d='M0 2l4 4 4-4z'/%3E%3C/svg%3E\") no-repeat right 0.5rem center;\n background-size: 8px;\n font-size: $es-font-size-xs;\n font-weight: $es-font-weight-medium;\n color: $es-primary;\n cursor: pointer;\n transition: all $es-transition-fast;\n height: auto;\n min-height: 0;\n line-height: 1.3;\n\n &:hover {\n border-color: $es-primary;\n background-color: $es-primary-light;\n }\n\n &:focus {\n outline: none;\n border-color: $es-primary;\n box-shadow: 0 0 0 2px rgba($es-primary, 0.1);\n }\n }\n\n .load-more-of {\n white-space: nowrap;\n }\n\n .remaining-count {\n font-weight: $es-font-weight-semibold;\n color: $es-text-secondary;\n }\n\n .btn-load-more {\n display: flex;\n align-items: center;\n justify-content: center;\n padding: $es-spacing-xs;\n margin: 0;\n border: none;\n color: $es-primary;\n background: $es-primary-light;\n border-radius: $es-radius-sm;\n cursor: pointer;\n transition: all $es-transition-fast;\n font: inherit;\n\n i {\n font-size: 14px;\n }\n\n &:hover {\n background: rgba($es-primary, 0.2);\n }\n\n &.loading {\n cursor: wait;\n\n i {\n animation: spin 0.6s linear infinite;\n }\n }\n }\n}\n\n// =============================================================================\n// Preview States\n// =============================================================================\n\n.preview-empty {\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n gap: $es-spacing-sm;\n padding: $es-spacing-xl;\n text-align: center;\n color: $es-text-muted;\n\n i {\n font-size: 2rem;\n opacity: 0.5;\n }\n\n p {\n margin: 0;\n font-size: $es-font-size-sm;\n }\n}\n\n.preview-loading {\n display: flex;\n align-items: center;\n justify-content: center;\n padding: $es-spacing-xl;\n color: $es-text-muted;\n\n i {\n font-size: 20px;\n color: $es-primary;\n animation: spin 0.6s linear infinite;\n }\n}\n\n// =============================================================================\n// Total Summary Popover (header total badge click)\n// =============================================================================\n\n.total-preview-popover {\n min-width: 240px;\n max-width: 320px;\n\n .preview-popover-header {\n display: flex;\n align-items: center;\n justify-content: space-between;\n padding: $es-spacing-sm $es-spacing-md;\n background: $es-bg-header;\n border-bottom: 1px solid $es-border-color;\n\n .preview-popover-title {\n font-weight: $es-font-weight-semibold;\n color: $es-text-primary;\n font-size: $es-font-size-sm;\n }\n\n .preview-popover-count {\n font-size: $es-font-size-xs;\n color: $es-text-muted;\n }\n }\n\n .preview-popover-body {\n padding: $es-spacing-xs 0;\n }\n\n .total-summary-list {\n list-style: none;\n margin: 0;\n padding: 0;\n }\n\n .total-summary-item {\n display: flex;\n align-items: center;\n gap: $es-spacing-sm;\n padding: $es-spacing-sm $es-spacing-md;\n cursor: pointer;\n transition: background-color 0.15s ease;\n\n &:hover {\n background: $es-slate-50;\n }\n\n i {\n width: 18px;\n text-align: center;\n color: $es-text-muted;\n font-size: 14px;\n }\n\n .summary-item-label {\n flex: 1;\n font-size: $es-font-size-sm;\n color: $es-text-primary;\n }\n\n .summary-item-count {\n font-size: $es-font-size-sm;\n font-weight: $es-font-weight-semibold;\n color: $es-primary;\n background: rgba($es-primary, 0.1);\n padding: 2px 8px;\n border-radius: $es-radius-sm;\n }\n }\n}\n\n// Make trait-total-count clickable\n.trait-total-count {\n cursor: pointer;\n transition: all 0.15s ease;\n\n &:hover {\n opacity: 0.8;\n }\n\n &.popover-open {\n opacity: 0.9;\n }\n}\n","/**\n * Schedule Conditions Component\n * DateTime picker, weekly timeline, holidays\n */\n\n@use '../variables' as *;\n@use '../mixins' as *;\n\n// Schedule conditions wrapper\n.schedule-conditions-trait {\n background: $es-white;\n border: 1px solid $es-border-color;\n border-radius: $es-radius-lg;\n}\n\n// Schedule header\n.schedule-header {\n display: flex;\n align-items: center;\n justify-content: space-between;\n gap: $es-spacing-md;\n padding: 0.875rem $es-spacing-md;\n background: $es-bg-header;\n border-bottom: 1px solid $es-border-color;\n border-radius: $es-radius-lg $es-radius-lg 0 0;\n cursor: pointer;\n user-select: none;\n transition: background-color $es-transition-fast;\n\n &:hover {\n background: $es-bg-hover;\n }\n}\n\n.schedule-title {\n display: flex;\n align-items: center;\n gap: 0.75rem;\n font-size: $es-font-size-sm;\n font-weight: $es-font-weight-semibold;\n color: $es-text-primary;\n\n i {\n color: $es-text-muted;\n }\n}\n\n// Schedule body\n.schedule-body {\n padding: $es-spacing-md;\n}\n\n// Schedule section\n.schedule-section {\n margin-bottom: $es-spacing-lg;\n\n &:last-child {\n margin-bottom: 0;\n }\n}\n\n.schedule-section-title {\n display: flex;\n align-items: center;\n gap: $es-spacing-sm;\n margin-bottom: $es-spacing-sm;\n font-size: $es-font-size-sm;\n font-weight: $es-font-weight-semibold;\n color: $es-text-primary;\n\n i {\n color: $es-text-muted;\n }\n}\n\n.schedule-section-description {\n margin-bottom: $es-spacing-md;\n font-size: $es-font-size-xs;\n color: $es-text-muted;\n}\n\n// DateTime range picker\n.datetime-range {\n display: flex;\n flex-wrap: wrap;\n gap: $es-spacing-md;\n}\n\n.datetime-field {\n flex: 1;\n min-width: 200px;\n}\n\n.datetime-label {\n display: block;\n margin-bottom: 0.25rem;\n font-size: $es-font-size-xs;\n font-weight: $es-font-weight-medium;\n color: $es-text-secondary;\n}\n\n.datetime-input {\n @include input-base;\n}\n\n// Weekly schedule\n.weekly-schedule {\n display: flex;\n flex-direction: column;\n gap: $es-spacing-sm;\n}\n\n.day-row {\n display: flex;\n align-items: center;\n gap: $es-spacing-md;\n padding: $es-spacing-sm;\n background: $es-slate-50;\n border-radius: $es-radius-md;\n\n &.disabled {\n opacity: 0.5;\n }\n}\n\n.day-toggle {\n display: flex;\n align-items: center;\n gap: $es-spacing-sm;\n min-width: 100px;\n}\n\n.day-checkbox {\n width: 18px;\n height: 18px;\n cursor: pointer;\n}\n\n.day-name {\n font-size: $es-font-size-sm;\n font-weight: $es-font-weight-medium;\n color: $es-text-primary;\n}\n\n// Timeline slider\n.timeline-slider {\n flex: 1;\n position: relative;\n height: 24px;\n background: $es-slate-200;\n border-radius: $es-radius-full;\n cursor: pointer;\n}\n\n.timeline-fill {\n position: absolute;\n top: 0;\n height: 100%;\n background: $es-primary;\n border-radius: $es-radius-full;\n transition: all $es-transition-fast;\n}\n\n.timeline-handle {\n position: absolute;\n top: 50%;\n width: 16px;\n height: 16px;\n background: $es-white;\n border: 2px solid $es-primary;\n border-radius: 50%;\n transform: translate(-50%, -50%);\n cursor: grab;\n box-shadow: $es-shadow-sm;\n transition: box-shadow $es-transition-fast;\n\n &:hover {\n box-shadow: $es-shadow-md;\n }\n\n &:active {\n cursor: grabbing;\n }\n\n &.handle-start {\n z-index: 2;\n }\n\n &.handle-end {\n z-index: 1;\n }\n}\n\n// Time display\n.day-times {\n display: flex;\n align-items: center;\n gap: $es-spacing-xs;\n min-width: 120px;\n font-size: $es-font-size-xs;\n font-family: monospace;\n color: $es-text-secondary;\n}\n\n.time-separator {\n color: $es-text-muted;\n}\n\n// Holiday exclusions\n.holiday-section {\n padding: $es-spacing-md;\n background: $es-slate-50;\n border-radius: $es-radius-md;\n}\n\n.holiday-toggle {\n display: flex;\n align-items: center;\n gap: $es-spacing-sm;\n margin-bottom: $es-spacing-md;\n}\n\n.holiday-checkbox {\n width: 18px;\n height: 18px;\n cursor: pointer;\n}\n\n.holiday-label {\n font-size: $es-font-size-sm;\n font-weight: $es-font-weight-medium;\n color: $es-text-primary;\n}\n\n.holiday-countries {\n display: flex;\n flex-wrap: wrap;\n gap: $es-spacing-xs;\n}\n\n.holiday-country-chip {\n @include chip;\n cursor: pointer;\n\n &.selected {\n background: $es-primary-light;\n color: $es-primary;\n }\n}\n\n// Server time display\n.server-time {\n display: flex;\n align-items: center;\n gap: $es-spacing-sm;\n padding: $es-spacing-sm $es-spacing-md;\n background: $es-info-light;\n border-radius: $es-radius-md;\n font-size: $es-font-size-xs;\n color: $es-info;\n\n i {\n font-size: $es-font-size-sm;\n }\n\n .time-value {\n font-family: monospace;\n font-weight: $es-font-weight-semibold;\n }\n}\n\n// Schedule summary\n.schedule-summary {\n display: flex;\n flex-direction: column;\n gap: $es-spacing-xs;\n padding: $es-spacing-md;\n background: $es-slate-50;\n border-radius: $es-radius-md;\n font-size: $es-font-size-sm;\n color: $es-text-secondary;\n\n .summary-item {\n display: flex;\n align-items: center;\n gap: $es-spacing-sm;\n\n i {\n color: $es-success;\n font-size: $es-font-size-sm;\n }\n\n &.inactive i {\n color: $es-text-muted;\n }\n }\n}\n\n// Collapsed state\n.schedule-conditions-trait.collapsed {\n .schedule-body {\n display: none;\n }\n\n .schedule-header {\n border-radius: $es-radius-lg;\n }\n}\n","/**\n * Tips Box Component\n * Pro tips and help information display\n */\n\n@use '../variables' as *;\n@use '../mixins' as *;\n\n.target-conditions-trait,\n.entity-selector-trait {\n\n // Tips box container\n .target-tips-box {\n margin: $es-spacing-lg $es-spacing-md $es-spacing-md;\n border: 1px solid $es-border-color;\n border-radius: $es-radius-lg;\n overflow: hidden;\n background: linear-gradient(135deg, #f8fafc 0%, #f1f5f9 100%);\n }\n\n // Tips header (clickable to expand/collapse)\n .tips-header {\n display: flex;\n align-items: center;\n gap: 0.625rem;\n padding: $es-spacing-md $es-spacing-lg;\n cursor: pointer;\n user-select: none;\n transition: background-color $es-transition-fast;\n\n &:hover {\n background: rgba(0, 0, 0, 0.02);\n }\n\n // Lightbulb icon\n > i:first-child {\n font-size: 1rem;\n color: $es-warning;\n }\n\n // Title text\n > span {\n flex: 1;\n font-size: 13px;\n font-weight: $es-font-weight-semibold;\n color: $es-slate-600;\n }\n }\n\n // Toggle chevron icon\n .tips-toggle {\n font-size: $es-font-size-xs;\n color: $es-slate-400;\n transition: transform 0.2s;\n }\n\n // Expanded state\n .target-tips-box.expanded {\n .tips-toggle {\n transform: rotate(180deg);\n }\n\n .tips-content {\n display: block;\n }\n }\n\n // Tips content (hidden by default)\n .tips-content {\n display: none;\n padding: 0 $es-spacing-lg $es-spacing-lg;\n }\n\n // Tips grid layout\n .tips-grid {\n display: grid;\n gap: $es-spacing-md;\n grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));\n }\n\n // Individual tip item\n .tip-item {\n display: flex;\n gap: $es-spacing-md;\n padding: $es-spacing-md;\n background: $es-white;\n border-radius: $es-radius-md;\n border: 1px solid $es-border-color;\n }\n\n // Tip icon\n .tip-icon {\n flex-shrink: 0;\n width: 2rem;\n height: 2rem;\n display: flex;\n align-items: center;\n justify-content: center;\n background: $es-primary-light;\n border-radius: $es-radius-md;\n color: $es-primary;\n font-size: $es-font-size-sm;\n }\n\n // Tip text content\n .tip-text {\n flex: 1;\n min-width: 0;\n\n strong {\n display: block;\n font-size: $es-font-size-xs;\n font-weight: $es-font-weight-semibold;\n color: $es-slate-700;\n margin-bottom: 0.25rem;\n }\n\n p {\n font-size: 11px;\n color: $es-text-muted;\n line-height: 1.625;\n margin: 0;\n }\n }\n\n // Tips footer\n .tips-footer {\n margin-top: $es-spacing-md;\n padding: 0.625rem $es-spacing-md;\n background: $es-white;\n border-radius: $es-radius-md;\n border: 1px dashed $es-gray-300;\n font-size: 11px;\n color: $es-text-muted;\n line-height: 1.625;\n\n i {\n color: $es-primary;\n margin-right: 0.25rem;\n }\n }\n}\n","/**\n * Condition Trait Base Styles\n * Shared styling for all condition trait components\n */\n\n@use '../variables' as *;\n@use '../mixins' as *;\n\n// Base condition trait container\n.condition-trait {\n background: $es-white;\n border: 1px solid $es-border-color;\n border-radius: $es-radius-lg;\n margin-bottom: $es-spacing-lg;\n\n &:last-child {\n margin-bottom: 0;\n }\n}\n\n// Collapsed state\n.condition-trait.collapsed {\n .condition-trait-header {\n border-bottom-color: transparent;\n border-radius: $es-radius-lg;\n }\n\n .collapse-icon {\n transform: rotate(180deg);\n }\n}\n\n// =============================================================================\n// Trait Header\n// =============================================================================\n\n.condition-trait-header {\n display: flex;\n align-items: center;\n justify-content: space-between;\n gap: $es-spacing-lg;\n flex-wrap: wrap;\n padding: 0.875rem $es-spacing-lg;\n background: $es-slate-50;\n border-bottom: 1px solid $es-border-color;\n border-radius: $es-radius-lg $es-radius-lg 0 0;\n cursor: pointer;\n transition: background-color $es-transition-fast;\n\n &:hover {\n background: $es-slate-100;\n }\n}\n\n.trait-header-left {\n display: flex;\n align-items: center;\n gap: $es-spacing-md;\n min-width: 0;\n flex: 1;\n}\n\n.trait-icon {\n font-size: 1.125rem;\n color: $es-text-muted;\n flex-shrink: 0;\n}\n\n.trait-title-group {\n display: flex;\n flex-direction: column;\n gap: 0.125rem;\n min-width: 0;\n}\n\n.trait-title {\n font-size: $es-font-size-sm;\n font-weight: $es-font-weight-semibold;\n color: $es-slate-800;\n white-space: nowrap;\n}\n\n.trait-subtitle {\n font-size: $es-font-size-xs;\n color: $es-text-muted;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n}\n\n.trait-header-right {\n display: flex;\n align-items: center;\n gap: $es-spacing-md;\n flex-shrink: 0;\n margin-left: auto;\n}\n\n.trait-header-actions {\n display: flex;\n align-items: center;\n gap: $es-spacing-sm;\n}\n\n// Collapse icon\n.collapse-icon {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n width: 1.5rem;\n height: 1.5rem;\n font-size: $es-font-size-sm;\n color: $es-text-muted;\n cursor: pointer;\n transition: all 0.2s;\n border-radius: $es-radius-sm;\n background: transparent;\n\n &:hover {\n color: $es-primary;\n background: rgba($es-primary, 0.08);\n }\n}\n\n// Show all toggle\n.trait-show-all-toggle {\n display: inline-flex;\n align-items: center;\n gap: 0.25rem;\n font-size: $es-font-size-xs;\n color: $es-primary;\n cursor: pointer;\n\n &:hover {\n text-decoration: underline;\n }\n}\n\n// Trait total count badge (global fallback)\n.trait-total-count {\n @include count-badge($es-primary);\n}\n\n// Required indicator\n.trait-required {\n color: $es-danger;\n font-size: $es-font-size-xs;\n}\n\n// Validation error\n.trait-validation-error {\n color: $es-danger;\n font-size: $es-font-size-xs;\n margin-top: 0.25rem;\n}\n\n// Trait toggle button\n.trait-toggle {\n @include button-reset;\n display: inline-flex;\n align-items: center;\n gap: 0.25rem;\n padding: 0.375rem 0.75rem;\n font-size: $es-font-size-xs;\n font-weight: $es-font-weight-medium;\n color: $es-text-secondary;\n background: $es-white;\n border: 1px solid $es-border-color;\n border-radius: $es-radius-md;\n transition: all $es-transition-fast;\n\n &:hover {\n background: $es-slate-50;\n border-color: $es-gray-300;\n }\n\n &.active {\n color: $es-primary;\n border-color: $es-primary;\n background: $es-primary-light;\n }\n}\n\n// =============================================================================\n// Trait Body\n// =============================================================================\n\n.condition-trait-body {\n padding: $es-spacing-lg;\n border-radius: 0 0 $es-radius-lg $es-radius-lg;\n background: $es-white;\n animation: slideDown 0.2s ease-out;\n}\n\n// Condition trait collapsed - hide body\n.condition-trait.collapsed .condition-trait-body {\n display: none;\n}\n\n// =============================================================================\n// Section Styles\n// =============================================================================\n\n.schedule-section,\n.context-section {\n margin-bottom: 1.25rem;\n padding-bottom: 1.25rem;\n border-bottom: 1px solid $es-slate-100;\n\n &:last-child {\n margin-bottom: 0;\n padding-bottom: 0;\n border-bottom: 0;\n }\n}\n\n.section-label {\n display: flex;\n align-items: center;\n gap: 0.5rem;\n font-size: 13px;\n font-weight: $es-font-weight-semibold;\n color: $es-slate-600;\n margin-bottom: $es-spacing-md;\n\n i {\n font-size: $es-font-size-sm;\n color: $es-slate-400;\n margin-right: 0.25rem;\n }\n}\n\n.section-content {\n // Container for section content\n}\n\n.section-hint {\n margin-top: 0.5rem;\n font-size: 11px;\n color: $es-slate-400;\n}\n\n// =============================================================================\n// Full-width Form Group Override\n// =============================================================================\n\n.form-group.condition-trait-fullwidth {\n display: block !important;\n\n > .control-label {\n display: none !important;\n }\n\n > .col-lg-8,\n > .col-lg-8.col-lg-offset-3 {\n width: 100% !important;\n max-width: 100% !important;\n flex: 0 0 100% !important;\n padding-left: $es-spacing-lg !important;\n padding-right: $es-spacing-lg !important;\n margin: 0 !important;\n margin-left: 0 !important;\n }\n}\n\n// Condition traits group label\n.condition-traits-group-label {\n font-size: $es-font-size-sm;\n font-weight: $es-font-weight-semibold;\n color: $es-slate-700;\n margin-bottom: $es-spacing-md;\n}\n\n.condition-traits-wrapper {\n display: flex;\n flex-direction: column;\n gap: $es-spacing-md;\n}\n\n// =============================================================================\n// Animations\n// =============================================================================\n\n@keyframes slideDown {\n from {\n opacity: 0;\n transform: translateY(-10px);\n }\n to {\n opacity: 1;\n transform: translateY(0);\n }\n}\n","/**\n * Combination Attributes Picker Component\n * Product attribute combination selection styles\n */\n\n@use '../variables' as *;\n@use '../mixins' as *;\n\n.target-conditions-trait,\n.entity-selector-trait {\n\n // Main container\n .combination-attributes-picker {\n display: flex;\n flex-direction: column;\n gap: 0.625rem;\n }\n\n // Mode toggle (Any/All)\n .combination-mode-toggle {\n display: inline-flex;\n gap: 0.25rem;\n padding: 0.125rem;\n background: $es-slate-100;\n border-radius: $es-radius-md;\n margin-bottom: 0.5rem;\n }\n\n .combination-mode-option {\n display: flex;\n align-items: center;\n gap: 0.25rem;\n cursor: pointer;\n font-size: 11px;\n color: $es-text-muted;\n padding: 0.25rem 0.625rem;\n border-radius: $es-radius-sm;\n transition: all $es-transition-fast;\n\n input[type=\"radio\"] {\n display: none;\n }\n\n .mode-label {\n user-select: none;\n }\n\n &:hover {\n color: $es-primary;\n background: rgba($es-primary, 0.1);\n }\n\n &:has(input[type=\"radio\"]:checked) {\n background: $es-primary;\n color: $es-white;\n font-weight: $es-font-weight-medium;\n }\n }\n\n // Groups container\n .combination-groups-container {\n display: flex;\n flex-wrap: wrap;\n gap: $es-spacing-md;\n }\n\n // Loading/Empty/Error states\n .combination-loading,\n .combination-empty,\n .combination-error {\n color: $es-text-muted;\n font-style: italic;\n padding: 0.5rem;\n }\n\n .combination-error {\n color: $es-danger;\n }\n\n // Section header\n .combinations-section {\n margin-bottom: $es-spacing-md;\n }\n\n .combinations-header {\n display: flex;\n align-items: center;\n justify-content: space-between;\n margin-bottom: $es-spacing-sm;\n }\n\n .combinations-label {\n font-size: $es-font-size-xs;\n font-weight: $es-font-weight-medium;\n color: $es-text-muted;\n }\n\n .combinations-help {\n font-size: 11px;\n color: $es-slate-400;\n }\n\n // Toggle combinations button\n .btn-toggle-combinations {\n @include button-reset;\n display: inline-flex;\n align-items: center;\n gap: 0.25rem;\n padding: 0.25rem 0.5rem;\n font-size: $es-font-size-xs;\n color: $es-primary;\n background: transparent;\n border: 1px solid $es-primary;\n border-radius: $es-radius-sm;\n transition: all $es-transition-fast;\n\n &:hover {\n background: $es-primary-light;\n }\n }\n\n .btn-remove-combinations {\n @include button-reset;\n display: inline-flex;\n align-items: center;\n gap: 0.25rem;\n padding: 0.25rem 0.5rem;\n font-size: $es-font-size-xs;\n color: $es-danger;\n background: transparent;\n\n &:hover {\n text-decoration: underline;\n }\n }\n\n // =============================================================================\n // Attribute Group\n // =============================================================================\n\n .comb-attr-group {\n flex: none;\n min-width: 120px;\n max-width: 200px;\n background: $es-white;\n border: 1px solid $es-gray-300;\n border-radius: $es-radius-sm;\n overflow: hidden;\n\n &.has-selections {\n border-color: $es-primary;\n }\n }\n\n .comb-attr-group-header {\n display: flex;\n justify-content: space-between;\n align-items: center;\n padding: 0.375rem 0.625rem;\n background: $es-slate-100;\n border-bottom: 1px solid $es-gray-300;\n font-weight: $es-font-weight-semibold;\n font-size: $es-font-size-xs;\n color: $es-slate-800;\n\n .comb-attr-group.has-selections & {\n background: $es-cyan-50;\n border-bottom-color: $es-cyan-200;\n }\n }\n\n .comb-attr-group-name {\n flex: 1;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n }\n\n .comb-attr-group-count {\n flex-shrink: 0;\n min-width: 18px;\n height: 18px;\n padding: 0 0.25rem;\n background: $es-gray-300;\n border-radius: $es-radius-full;\n font-size: 11px;\n font-weight: $es-font-weight-semibold;\n line-height: 18px;\n text-align: center;\n color: $es-text-muted;\n\n .comb-attr-group.has-selections & {\n background: $es-primary;\n color: $es-white;\n }\n }\n\n // Toolbar\n .comb-attr-toolbar {\n display: flex;\n align-items: center;\n gap: 0.25rem;\n padding: 0.25rem 0.375rem;\n background: $es-slate-50;\n border-bottom: 1px solid $es-slate-100;\n }\n\n .comb-toolbar-btn {\n @include button-reset;\n display: flex;\n align-items: center;\n justify-content: center;\n width: 22px;\n height: 22px;\n padding: 0;\n background: $es-white;\n border: 1px solid $es-gray-300;\n border-radius: $es-radius-sm;\n color: $es-text-muted;\n cursor: pointer;\n font-size: $es-font-size-xs;\n transition: all $es-transition-fast;\n\n &:hover {\n background: $es-slate-100;\n border-color: $es-slate-400;\n color: $es-slate-800;\n }\n }\n\n .comb-attr-search {\n flex: 1;\n min-width: 60px;\n padding: 0.125rem 0.375rem;\n border: 1px solid $es-gray-300;\n border-radius: $es-radius-sm;\n font-size: 11px;\n outline: none;\n\n &:focus {\n border-color: $es-primary;\n }\n\n &::placeholder {\n color: $es-slate-400;\n }\n }\n\n // Values container\n .comb-attr-values {\n display: flex;\n flex-wrap: wrap;\n gap: 0.25rem;\n padding: 0.375rem;\n max-height: 150px;\n overflow-y: auto;\n @include custom-scrollbar;\n }\n\n .comb-attr-loading,\n .comb-attr-empty,\n .comb-attr-error {\n width: 100%;\n text-align: center;\n color: $es-slate-400;\n font-size: 11px;\n padding: 0.25rem;\n }\n\n .comb-attr-error {\n color: $es-danger;\n }\n\n // Individual value\n .comb-attr-value {\n display: inline-flex;\n align-items: center;\n gap: 0.25rem;\n padding: 0.125rem 0.5rem;\n background: $es-white;\n border: 1px solid $es-slate-400;\n border-radius: 0.75rem;\n font-size: 11px;\n color: $es-slate-600;\n cursor: pointer;\n transition: all $es-transition-fast;\n white-space: nowrap;\n\n &:hover {\n background: $es-slate-100;\n border-color: $es-text-muted;\n }\n\n &.selected {\n background: $es-primary;\n border-color: $es-primary-hover;\n color: $es-white;\n\n &:hover {\n background: $es-primary-hover;\n border-color: darken($es-primary-hover, 5%);\n }\n }\n }\n\n .comb-attr-value-count {\n font-size: 9px;\n color: $es-slate-400;\n background: $es-slate-100;\n padding: 1px 0.25rem;\n border-radius: 0.5rem;\n min-width: 14px;\n text-align: center;\n\n .comb-attr-value.selected & {\n color: $es-white;\n background: rgba(255, 255, 255, 0.3);\n }\n }\n\n // =============================================================================\n // Combination Conditions (Row-based)\n // =============================================================================\n\n .combination-conditions-container {\n display: flex;\n flex-direction: column;\n gap: $es-spacing-sm;\n }\n\n .combination-condition-row {\n display: flex;\n align-items: center;\n gap: $es-spacing-sm;\n padding: $es-spacing-sm;\n background: $es-slate-50;\n border-radius: $es-radius-sm;\n }\n\n .combination-group-select,\n .combination-values-select {\n flex: 1;\n min-width: 120px;\n }\n\n .combination-equals {\n font-size: $es-font-size-xs;\n color: $es-text-muted;\n padding: 0 0.25rem;\n }\n\n .btn-add-combination-condition {\n @include button-reset;\n display: inline-flex;\n align-items: center;\n gap: 0.25rem;\n padding: 0.375rem 0.75rem;\n font-size: $es-font-size-xs;\n font-weight: $es-font-weight-medium;\n color: $es-primary;\n background: transparent;\n border: 1px dashed $es-primary;\n border-radius: $es-radius-sm;\n transition: all $es-transition-fast;\n\n &:hover {\n background: $es-primary-light;\n }\n\n i {\n font-size: 10px;\n }\n }\n\n .btn-remove-combination-row {\n @include button-reset;\n display: flex;\n align-items: center;\n justify-content: center;\n width: 24px;\n height: 24px;\n color: $es-text-muted;\n border-radius: $es-radius-sm;\n transition: all $es-transition-fast;\n\n &:hover {\n background: rgba($es-danger, 0.1);\n color: $es-danger;\n }\n\n i {\n font-size: 12px;\n }\n }\n}\n","/**\n * Method Dropdown Component\n * Custom select dropdown with icons for method selection\n */\n\n@use '../variables' as *;\n@use '../mixins' as *;\n\n.target-conditions-trait,\n.entity-selector-trait {\n\n // Method dropdown trigger button\n .method-dropdown-trigger {\n display: inline-flex;\n align-items: center;\n gap: 0.5rem;\n height: 36px;\n padding: 0 $es-spacing-md;\n border-radius: $es-radius-md;\n background: $es-white;\n color: $es-slate-800;\n font-size: $es-font-size-sm;\n cursor: pointer;\n transition: all $es-transition-fast;\n min-width: 180px;\n max-width: 320px;\n border: 1px solid $es-border-color;\n\n &:hover {\n background: $es-slate-50;\n border-color: $es-gray-300;\n }\n\n &:focus,\n &:active {\n outline: none;\n border-color: $es-primary;\n box-shadow: 0 0 0 3px rgba($es-primary, 0.1);\n }\n }\n\n .method-trigger-icon {\n font-size: $es-font-size-sm;\n color: $es-text-muted;\n flex-shrink: 0;\n width: 18px;\n text-align: center;\n }\n\n .method-trigger-label {\n flex: 1;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n font-weight: $es-font-weight-medium;\n }\n\n .method-trigger-caret {\n font-size: $es-font-size-xs;\n color: $es-slate-400;\n flex-shrink: 0;\n margin-left: auto;\n }\n\n // Locked state\n .selector-locked .method-dropdown-trigger {\n background: $es-slate-100;\n color: $es-slate-400;\n cursor: not-allowed;\n border-color: $es-border-color;\n\n &:hover {\n background: $es-slate-100;\n border-color: $es-border-color;\n }\n }\n\n // Method selector wrapper\n .method-selector-wrapper {\n position: relative;\n }\n\n // Hidden select (for form submission)\n .method-select-hidden {\n position: absolute !important;\n opacity: 0 !important;\n pointer-events: none !important;\n width: 0 !important;\n height: 0 !important;\n overflow: hidden !important;\n }\n}\n\n// Global fallback for hidden method selects\n.method-select-hidden {\n position: absolute !important;\n opacity: 0 !important;\n pointer-events: none !important;\n width: 0 !important;\n height: 0 !important;\n overflow: hidden !important;\n}\n\n// =============================================================================\n// Method Dropdown Menu (appended to body, outside trait wrappers)\n// =============================================================================\n\n.method-dropdown-menu {\n position: absolute;\n z-index: $es-z-dropdown + 1;\n min-width: 200px;\n max-width: 360px;\n max-height: 400px;\n overflow-y: auto;\n background: $es-white;\n border-radius: $es-radius-lg;\n padding: 0.375rem 0;\n border: 1px solid $es-border-color;\n box-shadow: 0 10px 40px rgba(0, 0, 0, 0.15);\n animation: methodDropdownFadeIn 0.15s ease;\n @include custom-scrollbar;\n}\n\n@keyframes methodDropdownFadeIn {\n from {\n opacity: 0;\n transform: translateY(-4px);\n }\n to {\n opacity: 1;\n transform: translateY(0);\n }\n}\n\n// Method dropdown item\n.method-dropdown-item {\n display: flex;\n align-items: center;\n gap: 0.625rem;\n padding: 0.5rem $es-spacing-md;\n cursor: pointer;\n transition: background-color 0.1s;\n position: relative;\n\n &:hover {\n background: $es-slate-100;\n }\n\n &.selected {\n background: rgba($es-primary, 0.08);\n }\n\n .method-item-icon {\n font-size: $es-font-size-sm;\n color: $es-text-muted;\n width: 18px;\n text-align: center;\n flex-shrink: 0;\n }\n\n &.selected .method-item-icon {\n color: $es-primary;\n }\n\n .method-item-label {\n flex: 1;\n font-size: $es-font-size-sm;\n color: $es-slate-700;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n }\n\n &.selected .method-item-label {\n color: $es-cyan-700;\n font-weight: $es-font-weight-medium;\n }\n\n .method-item-check {\n font-size: $es-font-size-xs;\n flex-shrink: 0;\n margin-left: auto;\n color: $es-primary;\n }\n}\n\n// Method dropdown optgroup\n.method-dropdown-optgroup {\n margin-top: 0.25rem;\n\n &:first-child {\n margin-top: 0;\n }\n}\n\n.method-optgroup-label {\n padding: 0.5rem $es-spacing-md;\n font-size: 11px;\n font-weight: $es-font-weight-semibold;\n color: $es-text-muted;\n text-transform: uppercase;\n letter-spacing: 0.05em;\n background: $es-slate-50;\n border-top: 1px solid $es-slate-100;\n border-bottom: 1px solid $es-slate-100;\n\n .method-dropdown-optgroup:first-child & {\n border-top: 0;\n }\n}\n\n.method-optgroup-items {\n padding: 0.25rem 0;\n\n .method-dropdown-item {\n padding-left: $es-spacing-lg;\n }\n}\n\n// Method info placeholder\n.method-info-placeholder {\n font-size: $es-font-size-xs;\n color: $es-text-muted;\n font-style: italic;\n}\n","/**\n * Tooltip Component\n * Info tooltips for method help\n */\n\n@use '../variables' as *;\n\n// =============================================================================\n// Info Wrapper (tooltip trigger)\n// =============================================================================\n\n.mpr-info-wrapper {\n display: inline-flex;\n align-items: center;\n position: relative;\n cursor: help;\n vertical-align: middle;\n margin-left: 0.25rem;\n\n .material-icons {\n font-size: 16px;\n color: $es-text-muted;\n transition: color 0.15s ease;\n }\n\n &:hover .material-icons {\n color: $es-primary;\n }\n}\n\n// =============================================================================\n// Fixed Tooltip (appended to body on hover)\n// =============================================================================\n\n.mpr-tooltip-fixed {\n position: fixed;\n background: $es-white;\n color: $es-slate-800;\n padding: $es-spacing-md $es-spacing-lg;\n border-radius: $es-radius-md;\n font-size: 13px;\n line-height: 1.5;\n white-space: normal;\n z-index: 10500;\n max-width: 320px;\n min-width: 180px;\n text-align: left;\n box-shadow: rgba(0, 0, 0, 0.12) 0px 1px 1px 0px,\n rgba(64, 68, 82, 0.16) 0px 0px 0px 1px,\n rgba(64, 68, 82, 0.08) 0px 2px 5px 0px;\n pointer-events: none;\n\n // Pinned tooltip allows interaction\n &.pinned {\n pointer-events: auto;\n padding-right: $es-spacing-xl + 1rem;\n }\n\n strong {\n display: block;\n margin-bottom: 0.375rem;\n font-weight: $es-font-weight-semibold;\n color: $es-primary;\n }\n\n p {\n margin: 0;\n color: $es-text-secondary;\n }\n\n ul {\n margin: 0.5rem 0 0;\n padding-left: 1.25rem;\n\n li {\n margin: 0.25rem 0;\n color: $es-text-secondary;\n }\n }\n}\n\n// Close button for pinned tooltips\n.mpr-tooltip-close {\n position: absolute;\n top: 0.375rem;\n right: 0.375rem;\n padding: 0.125rem;\n border: none;\n background: transparent;\n cursor: pointer;\n border-radius: $es-radius-sm;\n line-height: 1;\n transition: background-color 0.15s ease;\n\n .material-icons {\n font-size: 16px;\n color: $es-text-muted;\n }\n\n &:hover {\n background: $es-slate-100;\n\n .material-icons {\n color: $es-slate-700;\n }\n }\n}\n","/**\n * Category Tree Component\n * Hierarchical tree view for category selection inside dropdown\n */\n\n@use '../variables' as *;\n@use '../mixins' as *;\n\n// Category tree container (inside dropdown)\n.category-tree {\n display: flex;\n flex-direction: column;\n}\n\n// Tree toolbar inside dropdown\n.category-tree .tree-toolbar {\n display: flex;\n align-items: center;\n gap: $es-spacing-sm;\n padding: $es-spacing-xs $es-spacing-sm;\n background: $es-slate-50;\n border-bottom: 1px solid $es-border-light;\n flex-shrink: 0;\n\n .btn-expand-all,\n .btn-collapse-all {\n @include button-reset;\n display: inline-flex;\n align-items: center;\n gap: 0.25rem;\n padding: $es-spacing-xs $es-spacing-sm;\n font-size: $es-font-size-xs;\n font-weight: $es-font-weight-medium;\n color: $es-text-secondary;\n background: $es-white;\n border: 1px solid $es-border-color;\n border-radius: $es-radius-sm;\n transition: all $es-transition-fast;\n\n &:hover {\n background: $es-slate-100;\n border-color: $es-slate-300;\n }\n\n i {\n font-size: 12px;\n }\n }\n}\n\n// Tree items container\n.category-tree .tree-items {\n padding: 0;\n}\n\n// Tree item\n.tree-item {\n display: flex;\n align-items: center;\n gap: $es-spacing-xs;\n padding: $es-spacing-xs $es-spacing-sm;\n cursor: pointer;\n transition: background $es-transition-fast;\n border-radius: 0;\n\n &:hover {\n background: $es-slate-100;\n }\n\n &.selected {\n background: $es-primary-light;\n\n .tree-name {\n font-weight: $es-font-weight-semibold;\n color: $es-primary;\n }\n\n .tree-checkbox {\n color: $es-primary;\n\n i {\n opacity: 1;\n }\n }\n }\n\n &.inactive {\n opacity: 0.6;\n\n .tree-name {\n font-style: italic;\n }\n }\n\n &.filtered-out {\n display: none;\n }\n\n &.filter-match {\n background: $es-warning-light;\n\n &.selected {\n background: $es-primary-light;\n }\n }\n}\n\n// All tree element styles nested under .category-tree for specificity\n.category-tree {\n // Tree indentation\n .tree-indent {\n flex-shrink: 0;\n }\n\n // Tree toggle (expand/collapse)\n .tree-toggle {\n display: flex;\n align-items: center;\n justify-content: center;\n width: 12px;\n height: 12px;\n box-sizing: border-box;\n color: $es-text-secondary;\n flex-shrink: 0;\n border-radius: $es-radius-sm;\n transition: all $es-transition-fast;\n cursor: pointer;\n\n &:hover {\n background: $es-slate-200;\n color: $es-text-primary;\n }\n\n &.tree-leaf {\n cursor: default;\n visibility: hidden;\n\n &:hover {\n background: transparent;\n }\n }\n\n i {\n font-size: 10px;\n transition: transform $es-transition-fast;\n }\n }\n\n .tree-item.collapsed > .tree-toggle i {\n transform: rotate(-90deg);\n }\n\n // Tree checkbox indicator - 12x12 to match PrestaShop admin standards\n .tree-checkbox {\n display: flex;\n align-items: center;\n justify-content: center;\n width: 12px;\n height: 12px;\n box-sizing: border-box;\n flex-shrink: 0;\n border: 1px solid $es-border-color;\n border-radius: 2px;\n background: $es-white;\n\n i {\n font-size: 8px;\n opacity: 0;\n color: $es-white;\n transition: opacity $es-transition-fast;\n }\n }\n\n .tree-item.selected .tree-checkbox {\n background: $es-primary;\n border-color: $es-primary;\n\n i {\n opacity: 1;\n }\n }\n\n // Tree icon\n .tree-icon {\n display: flex;\n align-items: center;\n justify-content: center;\n width: 12px;\n height: 12px;\n box-sizing: border-box;\n color: $es-text-muted;\n flex-shrink: 0;\n\n i {\n font-size: 12px; // match visual weight of other icons\n }\n }\n\n .tree-item.selected .tree-icon {\n color: $es-primary;\n }\n\n // Tree name\n .tree-name {\n flex: 1;\n font-size: $es-font-size-sm;\n color: $es-text-primary;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n }\n\n // Tree product/page count with preview\n .tree-count {\n @include count-badge($es-primary);\n height: 18px;\n min-width: 18px;\n padding: 0 $es-spacing-sm;\n\n i {\n font-size: 10px;\n }\n\n &.clickable {\n &.loading {\n pointer-events: none;\n\n i {\n animation: spin 1s linear infinite;\n }\n }\n\n &.popover-open {\n background: darken($es-primary, 10%);\n }\n }\n }\n\n // Select children button - positioned on the left next to toggle\n .btn-select-children {\n @include button-reset;\n display: inline-flex;\n align-items: center;\n justify-content: center;\n width: 12px;\n height: 12px;\n box-sizing: border-box;\n color: $es-text-muted;\n border-radius: $es-radius-sm;\n opacity: 0.3;\n transition: all $es-transition-fast;\n flex-shrink: 0;\n\n i {\n font-size: 14px; // larger to visually match other icons\n }\n\n &:hover {\n color: $es-primary;\n opacity: 1;\n }\n }\n\n .tree-item:hover .btn-select-children {\n opacity: 0.6;\n }\n\n // Tree badge (inactive, etc.)\n .tree-badge {\n display: inline-flex;\n align-items: center;\n padding: 0.125rem $es-spacing-xs;\n font-size: 9px;\n font-weight: $es-font-weight-semibold;\n text-transform: uppercase;\n letter-spacing: 0.025em;\n border-radius: $es-radius-sm;\n flex-shrink: 0;\n\n &.inactive {\n color: $es-warning;\n background: $es-warning-light;\n }\n }\n\n // Tree children container\n .tree-children {\n display: block;\n\n &.filter-expanded {\n display: block !important;\n }\n }\n\n .tree-item.collapsed + .tree-children {\n display: none;\n }\n\n // Filtering - must be inside .category-tree for specificity\n .tree-item.filtered-out {\n display: none !important;\n }\n} // end .category-tree\n\n// Loading/empty/error states\n.category-tree .tree-loading,\n.category-tree .dropdown-empty,\n.category-tree .dropdown-error {\n display: flex;\n align-items: center;\n justify-content: center;\n padding: $es-spacing-xl;\n color: $es-text-muted;\n font-size: $es-font-size-sm;\n\n i {\n margin-right: $es-spacing-sm;\n }\n}\n\n.category-tree .dropdown-error {\n color: $es-danger;\n}\n\n// Tree view mode in dropdown\n.target-search-dropdown.view-tree {\n .dropdown-results {\n padding: 0;\n }\n\n .category-tree {\n max-height: 100%;\n overflow-y: auto;\n @include custom-scrollbar;\n }\n\n .tree-items {\n max-height: calc(100% - 40px);\n overflow-y: auto;\n @include custom-scrollbar;\n }\n}\n","/**\n * Validation Toast Component\n * Error notifications for selection conflicts\n */\n\n@use '../variables' as *;\n@use '../mixins' as *;\n\n// Validation error toast\n.es-validation-toast {\n display: flex;\n align-items: flex-start;\n gap: $es-spacing-sm;\n padding: $es-spacing-md;\n background: $es-white;\n border: 1px solid $es-danger;\n border-left: 4px solid $es-danger;\n border-radius: $es-radius-md;\n box-shadow: $es-shadow-lg;\n max-width: 400px;\n animation: es-toast-slide-in 0.2s ease-out;\n\n .es-toast-icon {\n display: flex;\n align-items: center;\n justify-content: center;\n width: 24px;\n height: 24px;\n color: $es-danger;\n flex-shrink: 0;\n\n i {\n font-size: 18px;\n }\n }\n\n .es-toast-content {\n flex: 1;\n min-width: 0;\n }\n\n .es-toast-title {\n font-size: $es-font-size-sm;\n font-weight: $es-font-weight-semibold;\n color: $es-danger;\n margin-bottom: 2px;\n }\n\n .es-toast-message {\n font-size: $es-font-size-xs;\n color: $es-text-secondary;\n line-height: 1.4;\n }\n\n .es-toast-close {\n @include button-reset;\n display: flex;\n align-items: center;\n justify-content: center;\n width: 20px;\n height: 20px;\n color: $es-text-muted;\n border-radius: $es-radius-sm;\n flex-shrink: 0;\n transition: all $es-transition-fast;\n\n &:hover {\n background: $es-slate-100;\n color: $es-text-primary;\n }\n\n i {\n font-size: 12px;\n }\n }\n}\n\n@keyframes es-toast-slide-in {\n from {\n opacity: 0;\n transform: translateY(-10px);\n }\n to {\n opacity: 1;\n transform: translateY(0);\n }\n}\n"]} \ No newline at end of file +{"version":3,"sources":["_mixins.scss","layouts/_form-integration.scss","../../../prestashop-admin/assets/scss/_variables.scss","layouts/_responsive.scss","_variables.scss","components/_entity-selector.scss","components/_entity-item.scss","components/_dropdown.scss","components/_chips.scss","components/_groups.scss","components/_value-picker.scss","components/_modal.scss","components/_list-preview.scss","components/_schedule.scss","components/_tips.scss","components/_condition-trait.scss","components/_combinations.scss","components/_method-dropdown.scss","components/_tooltip.scss","components/_tree.scss","components/_validation.scss"],"names":[],"mappings":"AA6PA,gBACI,4BACA,6BCvPJ,oMAQI,mBACA,eACA,aCoBW,QDhBf,oHAGI,cAEA,iKACI,aAGJ,kJACI,WACA,eACA,aC5BC,KD6BD,cC7BC,KD8BD,yBAKR,sCACI,cAEA,qDACI,aAGJ,gDACI,WACA,eACA,aC7CC,KD8CD,cC9CC,KD+CD,yBAMR,mWAQI,4BAIJ,ybAQI,4BEvEJ,yBAGQ,gGACI,sBACA,uBACA,ICiFI,MD9ER,wFACI,WACA,yBAGJ,sFACI,gBAMZ,yBAGQ,oFACI,QC8DI,MD7DJ,UC4GM,ODzGV,0FACI,sBACA,uBAGJ,gGACI,sBACA,kBACA,mBAGJ,8FACI,sCAMZ,0BAGQ,sHACI,sCElDZ,gDAEI,kBACA,iBACA,WDEO,KCDP,yBACA,cH0Be,MGvBf,gGACI,aACA,mBACA,8BACA,eACA,IHjBC,KGkBD,qBACA,WHFA,QGGA,gCACA,8BACA,eACA,iBACA,6CAEA,4GACI,WDUE,QCNV,sFACI,aACA,mBACA,WACA,YACA,OAGJ,wEACI,UDmGU,SClGV,MH7BI,QG8BJ,cAGJ,sFACI,aACA,sBACA,YACA,YAGJ,0EACI,UDoFU,QCnFV,YDyFkB,ICxFlB,MDXM,QCYN,mBAGJ,gFACI,UD4EU,OC3EV,MHjDI,QGkDJ,mBACA,gBACA,uBAIJ,sFLuGA,oBACA,mBACA,uBACA,WACA,eACA,YACA,gBACA,WEvKM,QFwKN,MI1KO,KJ2KP,UI5Cc,OJ6Cd,YItCsB,IJuCtB,cIhFa,MJiFb,eACA,gCACA,cAEA,kGACI,sBACA,yCAIJ,kGACI,aACA,uEAIJ,sGACI,YAEA,0GACI,eACA,mCAGJ,kHACI,eACA,gBAKR,oNAEI,WIrKO,QJsKP,eAEA,4OACI,eACA,gBAKR,gHACI,4DACA,yCAIJ,0FACI,eACA,cACA,WAGJ,sGACI,UAGJ,oHACI,YInGc,IC5ElB,sFAEI,YDmBQ,MCfZ,8FACI,oBACA,mBACA,IDYQ,MCXR,oBACA,qBACA,cH9CW,MG+CX,eACA,iBACA,6CAEA,0GACI,2BAGJ,0HACI,UD8CM,OC7CN,YDmDY,IClDZ,MHhFA,QGmFJ,oIACI,aAGJ,4HACI,kBACA,WACA,YACA,WDrDG,QCsDH,cDFK,MCGL,4CAEA,0IACI,WACA,kBACA,QACA,SACA,WACA,YACA,WDzGL,KC0GK,kBACA,oCACA,qCAIR,kLACI,WH7GF,QG+GE,gMACI,2BAMZ,0FACI,aHtHC,QGuHD,wCAEA,0IACI,oBH1HH,QG8HL,gGACI,aACA,mBACA,IDtDQ,MCuDR,qBACA,WD1HU,QC2HV,cACA,UDVU,QCWV,YDNgB,ICOhB,gCAEA,oGACI,MH1IH,QG+IL,sHACI,aACA,MHjJC,QGqJL,4FACI,UACA,WD5JG,KC6JH,8BAIJ,sFACI,aACA,eACA,MACA,UACA,WD/HO,QCgIP,gCAGJ,oFACI,kBACA,aACA,mBACA,ID9FQ,MC+FR,UACA,YACA,qBACA,mBACA,yBACA,SACA,sCACA,MHnLI,QGoLJ,UDvDU,QCwDV,YDnDgB,ICoDhB,eACA,gCAEA,gGACI,WDrJG,QCsJH,MDjJG,QCoJP,kGACI,WDlMD,KCmMC,oBD9IE,QC+IF,MHlMF,QGqMF,wFACI,UDxEM,QC2EV,0GACI,mBAGJ,0GL7CJ,oBACA,mBACA,uBACA,WACA,eACA,YACA,gBACA,WEvKM,QFwKN,MI1KO,KJ2KP,UI5Cc,OJ6Cd,YItCsB,IJuCtB,cIhFa,MJiFb,eACA,gCACA,cAEA,sHACI,sBACA,yCAIJ,sHACI,aACA,uEAIJ,0HACI,YAEA,8HACI,eACA,mCAGJ,sIACI,eACA,gBAKR,4PAEI,WIrKO,QJsKP,eAEA,oRACI,eACA,gBAKR,oIACI,4DACA,yCAIJ,8GACI,eACA,cACA,WAGJ,0HACI,UAGJ,wIACI,YInGc,IC4Ed,sJLjDJ,oBACA,mBACA,uBACA,WACA,eACA,YACA,gBACA,WI/HW,QJgIX,MI1KO,KJ2KP,UI5Cc,OJ6Cd,YItCsB,IJuCtB,cIhFa,MJiFb,eACA,gCACA,cAEA,kKACI,sBACA,0CAIJ,kKACI,aACA,yEAIJ,sKACI,YAEA,0KACI,eACA,mCAGJ,kLACI,eACA,gBAKR,oVAEI,WIrKO,QJsKP,eAEA,4WACI,eACA,gBAKR,gLACI,kDACA,0CAIJ,0JACI,eACA,cACA,WAGJ,sKACI,UAGJ,oLACI,YInGc,ICkFlB,gGACI,aAEA,8GACI,cAIR,4FACI,QH3OC,KG8OL,0FACI,aACA,sBACA,IHjPC,KGqPL,0FACI,aACA,mBACA,8BACA,mBACA,WHzOA,QG0OA,gCAIJ,wFACI,aACA,sBACA,mBACA,uBACA,ID3KQ,MC4KR,QDzKQ,KC0KR,kBACA,MH3PI,QG6PJ,4FACI,eACA,WAGJ,4FACI,SACA,UDvIM,QC4Id,gLAEI,aACA,mBACA,uBACA,WACA,YACA,MHhRI,QGiRJ,eACA,qCAEA,wNACI,yBAKR,wFACI,aACA,mBACA,IDhNQ,MCqNR,gHACI,aAGJ,oHACI,cHhRO,MGwRf,8GACI,aAGJ,wHACI,cAOJ,gFACI,aACA,mBACA,IDlPQ,OCqPZ,sFLtSA,UACA,SACA,gBACA,YACA,eACA,aACA,cAEA,kGACI,aK6RJ,sFAEI,oBACA,mBACA,WACA,qBACA,UD3MU,OC4MV,YDtMgB,ICuMhB,MHzUI,QG0UJ,yBACA,cHrTW,MGsTX,gCAEA,kGACI,WD1SG,QC2SH,MDlTE,QCqTN,0FACI,eC7UZ,aACI,aACA,mBACA,IFmEY,MElEZ,QFkEY,MEjEZ,WFfO,KEgBP,cJSe,MIRf,uCAEA,mBACI,WFQM,QEJV,uBACI,eAIJ,sBACI,WFxBW,oBEgCnB,mBACI,cACA,MArCmB,KAsCnB,OAtCmB,KAuCnB,iBACA,cJlBe,MImBf,WFLW,QESf,uBACI,MA/CmB,KAgDnB,OAhDmB,KAiDnB,kBAGJ,uBACI,MAnDmB,KAoDnB,OApDmB,KAwDvB,sBACI,aACA,mBACA,uBACA,cACA,MA9DmB,KA+DnB,OA/DmB,KAgEnB,WF5BW,QE6BX,MJjEQ,QIkER,cJ5Ce,MI6Cf,UF0Dc,QExDd,0BACI,MAvEe,KAwEf,OAxEe,KAyEf,eACA,kBAQR,kBACI,OACA,YACA,aACA,sBACA,YAGJ,kBACI,UFmCc,QElCd,YFuCoB,IEtCpB,MF5DU,QJhBV,gBACA,uBACA,mBM8EJ,kBACI,UF2Bc,OE1Bd,MJlGQ,QFgBR,gBACA,uBACA,mBMwFJ,mBACI,cACA,sBACA,UFec,OEdd,YFoBoB,IEnBpB,WF3EW,QE4EX,MJhHQ,QIiHR,cJ3Fe,MI8FnB,mBACI,cACA,UFOc,QENd,YFYsB,IEXtB,MJzHM,QIgIV,oBNpGI,UACA,SACA,gBACA,YACA,eACA,aACA,cAEA,0BACI,aM2FR,oBAEI,aACA,mBACA,uBACA,cACA,WACA,YACA,MJvIQ,QIwIR,kBACA,gCAEA,0BACI,0BACA,MJ3IC,QI8IL,sBACI,eAQR,wBACI,oBACA,YACA,qBACA,WFzHW,QE0HX,cFpEa,MEsEb,8BACI,WF5HO,QE+HX,2CACI,MAtKe,KAuKf,OAvKe,KAwKf,kBAGJ,8CACI,MA5Ke,KA6Kf,OA7Ke,KA8Kf,eACA,kBAGJ,0CACI,mBACA,mBACA,WAGJ,0CACI,UF5DU,OE+Dd,0CACI,aAGJ,4CACI,WACA,YACA,oBAQR,wBACI,gBACA,yBACA,gCACA,gBAEA,mCACI,mBAGJ,8BACI,WF5LM,QEoMd,wBACI,aACA,sBACA,WF7LU,QE8LV,yBACA,cJ7MY,OI8MZ,gBAIJ,sBACI,aACA,mBACA,iBACA,IF9JY,ME+JZ,mBACA,iBACA,yBAEA,gCACI,aAKR,qBACI,UACA,cACA,cACA,eACA,WACA,YACA,iCACA,uUACA,qBACA,yBACA,cJ3Oe,MI4Of,eACA,gBACA,MFpOU,QEqOV,sBACA,gCAEA,kCACI,MJzQI,QI0QJ,eAGJ,2BACI,aACA,aJhRE,QIiRF,yCAKR,mBACI,UACA,cACA,kCACA,yBACA,cJpQe,MIqQf,kNACA,oBACA,eACA,gBACA,MFjQU,QEkQV,eACA,sBACA,mBAEA,yBACI,aJtSE,QIySN,yBACI,aACA,aJ3SE,QI4SF,yCAKR,oBACI,oBACA,mBACA,cACA,YACA,oBACA,WFjRW,QEkRX,MFzRU,QE0RV,eACA,YFtLsB,IEuLtB,cJpSe,MIqSf,mBACA,gBAEA,+BACI,WF/QM,QEgRN,MF5QM,QEiRd,oBN1SI,UACA,SACA,gBACA,YACA,eACA,aACA,cAEA,0BACI,aMiSR,oBAEI,oBACA,mBACA,cACA,WACA,oBACA,MJ1UK,QI2UL,eACA,YF5MoB,IE6MpB,8BACA,cJ1Te,MI2Tf,gCACA,mBACA,gBAEA,0BACI,WJpVC,QIqVD,MF1VG,KE6VP,sBACI,cACA,cAKR,mBACI,aACA,eACA,IFxRY,OEyRZ,wBACA,gBACA,iBACA,gBNjPA,sCACI,UACA,WAGJ,4CACI,WExHA,QFyHA,kBAGJ,4CACI,WE9GO,QF+GP,kBAEA,kDACI,WI3GE,QEgVV,yBACI,aAIJ,+BACI,sBACA,iBACA,MACA,QFvSQ,ME4ShB,wBACI,aACA,mBACA,uBACA,IFhTY,MEiTZ,mBACA,yBACA,8BAEA,yCACI,UFvQU,OEwQV,MJpYI,QIuYR,0CACI,gBACA,oCACA,yBACA,cJrXW,MIsXX,gNACA,oBACA,UFlRU,OEmRV,YF7QgB,IE8QhB,MJjZE,QIkZF,eACA,gCACA,YACA,aACA,gBAEA,gDACI,aJzZF,QI0ZE,iBFtZO,oBEyZX,gDACI,aACA,aJ/ZF,QIgaE,yCAIR,6CACI,UFxSU,OEySV,MJraI,QIuaJ,8DACI,YFrSc,IEsSd,MF3YE,QE+YV,uCACI,aACA,mBACA,uBACA,QFrWQ,OEsWR,SACA,YACA,MJrbE,QIsbF,WFlbW,oBEmbX,cJhaW,MIiaX,eACA,gCACA,aAEA,yCACI,eAGJ,6CACI,+BAGJ,+CACI,YAEA,iDACI,mCAUhB,oBACI,aACA,sBACA,mBACA,uBACA,IFzYY,ME0YZ,QFvYY,KEwYZ,kBACA,MJzdQ,QI2dR,sBACI,eACA,WAGJ,sBACI,SACA,UFrWU,QEyWlB,sBACI,aACA,mBACA,uBACA,QF1ZY,KE2ZZ,MJ3eQ,QI6eR,wBACI,eACA,mCCrfJ,8FACI,kBAIJ,gGPoEA,kBACA,QI6CY,KJ5CZ,WIxEO,KJyEP,yBACA,cEhDe,MFiDf,WI0BW,6BGjGP,aACA,YACA,6BAEA,0GACI,cAKR,kFACI,aACA,mBACA,IH+DQ,MG9DR,QL3BC,KK4BD,WLXA,QKYA,gCACA,8BAGJ,8FPyEA,WACA,mBACA,UI6Bc,QJ5Bd,YIsCoB,IJrCpB,MIlEU,QJmEV,iBItGO,KJuGP,yBACA,cEhFY,OFiFZ,qEAEA,0GACI,aE1GE,QF2CN,UACA,4CAkEA,wHACI,MIlFM,QGPV,8FAEI,OACA,mBAGJ,kGPCA,SACA,gBACA,YACA,eACA,aACA,cAEA,oGACI,aOTJ,wFAEI,aACA,mBACA,uBACA,WACA,YACA,MLlCI,QKmCJ,cLdQ,OKeR,gCAEA,oGACI,WHFG,QGGH,MHVE,QGeV,sFACI,aACA,mBACA,8BACA,IH4BQ,MG3BR,mBACA,WHtDG,KGuDH,gCAGJ,kMAEI,aACA,mBACA,IHkBQ,MGdZ,8EPpCA,UACA,SACA,gBACA,YACA,eACA,aACA,cAEA,0FACI,aO2BJ,8EAEI,aACA,mBACA,uBACA,WACA,YACA,MLtEI,QKuEJ,yBACA,cLlDW,MKmDX,gCAEA,0FACI,WHxCG,QGyCH,MH/CE,QGkDN,4FACI,WLlFF,QKmFE,MHrFD,KG0FP,gGACI,UHoCU,OGnCV,MLzFI,QK6FR,8EACI,iBACA,gBPwBJ,oHACI,UACA,WAGJ,gIACI,WExHA,QFyHA,kBAGJ,gIACI,WE9GO,QF+GP,kBAEA,4IACI,WI3GE,QGyEV,oFACI,gBAIJ,8EACI,UHkBU,OGjBV,ML3GI,QK4GJ,qBAIJ,gFACI,aACA,mBACA,IHtCQ,MGuCR,oBACA,WHjFO,QGkFP,gCACA,UHKU,OGJV,YHWkB,IGVlB,MH3FM,QG+FV,8FACI,aACA,IHlDQ,MGoDR,kHACI,0BAGJ,sHACI,qCAGJ,sHACI,qCAMR,4FACI,aACA,mBACA,IHtEQ,MGuER,gBACA,WHxJG,KGyJH,YACA,gCACA,gBACA,eACA,uCAEA,kHACI,mBAGJ,wGACI,WHxIE,QG2IN,8GACI,WHlKO,oBGqKX,8GACI,WACA,mBAEA,0HACI,WHhLL,KGqLP,kKAEI,cACA,WACA,YACA,gBACA,cLlKW,MKmKX,WHrJO,QGuJP,kLACI,WACA,YACA,iBAIR,0EACI,aACA,mBACA,uBACA,cACA,WACA,YACA,WHrKO,QGsKP,cLpLW,MKqLX,ML3MI,QK6MJ,8EACI,eAIR,8JAEI,OACA,YAGJ,8JAEI,UH7FU,QG8FV,YHzFgB,IG0FhB,MH5LM,QJhBV,gBACA,uBACA,mBO8MA,sKAEI,UHtGU,OGuGV,MLnOI,QKsOR,8EPtNA,gBACA,uBACA,mBOwNA,8FACI,MH7MM,QGgNV,kGACI,ML/OI,QKgPJ,eAIJ,wEACI,cACA,WACA,iBACA,UH5HU,OG+Hd,oFACI,MH9NM,QGiOV,kFACI,ML9PC,QK+PD,YH9HkB,IGmId,4HACI,MLtQN,QKyQE,8HACI,MLxQN,QK2QE,8HACI,ML7QP,QKkRL,oFACI,MLrRI,QKwRR,sEACI,cAGJ,8KAEI,aACA,mBACA,uBACA,cACA,WACA,YACA,yBACA,cL/QW,MKgRX,gCAEA,sLACI,aACA,eACA,MH9SD,KGiTH,wjBAEI,WLjTF,QKkTE,aLlTF,QKoTE,wkBACI,cAMZ,0FACI,aACA,mBACA,IHhPQ,MGoPZ,wEACI,aACA,mBACA,uBACA,IHxPQ,MGyPR,QHtPQ,KGuPR,MLvUI,QKwUJ,UH3MU,QG6MV,4EACI,kBACA,WAKR,gFACI,aACA,sBACA,mBACA,uBACA,IHzQQ,MG0QR,QHvQQ,KGwQR,kBACA,MLzVI,QK2VJ,oFACI,eACA,WAGJ,oFACI,SACA,UHrOM,QG0Od,oFACI,aACA,mBACA,uBACA,QH3RQ,KG4RR,ML5WI,QK8WJ,wFACI,iBACA,kCAKR,kFACI,aACA,mBACA,8BACA,ILrYC,KKsYD,mBACA,WHxVM,QGyVN,6BACA,8BAIJ,4FACI,aACA,mBACA,IHxTQ,OGyTR,UHzQU,OG0QV,MLtYI,QKwYJ,oHACI,MLzYA,QK4YJ,4QAEI,gBACA,mCACA,yBACA,cL3XO,MK4XP,gNACA,oBACA,UHxRM,OGyRN,MHvXE,QGwXF,eACA,eAEA,oSACI,aL3ZN,QK8ZE,oSACI,aACA,aLhaN,QKoaF,4HACI,MLpaA,QKsaA,0IACI,MHzYF,QG0YE,YHrSU,IGySlB,wHPjZJ,UACA,SACA,gBACA,YACA,eACA,aACA,cAEA,oIACI,aOwYA,wHAEI,qBACA,UHnTM,OGoTN,MLjbF,QKkbE,yBACA,cL5ZO,MK6ZP,gCAEA,oIACI,WHnbG,oBGybf,8FACI,aACA,mBACA,IHlXQ,MGqXZ,0FPvaA,UACA,SACA,gBACA,YACA,eACA,aACA,cAEA,sGACI,aO8ZJ,0FAEI,oBACA,mBACA,YACA,uBACA,UH5UU,OG6UV,YHvUgB,IGwUhB,cLpbW,MKqbX,gCAEA,sHACI,eACA,uBACA,2BACA,kBACA,YHjVY,IGoVhB,gHACI,MHxbE,QGybF,WH1dD,KG2dC,yBAEA,4HACI,WHvbD,QGwbC,aHjcF,QGqcN,0NAEI,MHreD,KGseC,WLpeF,QKqeE,yBAEA,kPACI,WHreG,QGseH,aHteG,QGyeP,kRACI,8BAMZ,wFACI,aAGJ,wFACI,aAIJ,8FACI,QLxgBC,KKygBD,WH1dM,QG2dN,gCAGJ,0FACI,aACA,mBACA,8BACA,cHxbQ,MG2bZ,wFACI,UH5YU,QG6YV,YHvYkB,IGwYlB,MH3eM,QG8eV,0FPnfA,UACA,SACA,gBACA,YACA,eACA,aACA,cAEA,sGACI,aO0eJ,0FAEI,UHpZU,OGqZV,MLlhBE,QKohBF,sGACI,0BAIR,4FACI,aACA,IH7cQ,MG8cR,4DAGJ,4EACI,aACA,sBACA,WAGJ,4EACI,UHzaU,OG0aV,YHpagB,IGqahB,MHzgBM,QG4gBV,0JP5cA,WACA,mBACA,UI6Bc,QJ5Bd,YIsCoB,IJrCpB,MIlEU,QJmEV,iBItGO,KJuGP,yBACA,cEhFY,OFiFZ,qEAEA,kLACI,aE1GE,QF2CN,UACA,4CAkEA,8MACI,MIlFM,QG8gBV,0JAGI,sBACA,UHlbU,OGybd,8EACI,QHzeQ,MGgfZ,4EACI,aACA,mBACA,uBACA,IHpfQ,MGqfR,QHlfQ,KGmfR,MLnkBI,QKokBJ,UHvcU,QGycV,gFACI,mCAKR,sEACI,aACA,mBACA,IHngBQ,OGogBR,sBACA,cL3jBW,MK4jBX,eACA,6CAEA,kFACI,WH7jBE,QGgkBN,wFACI,WHvlBO,oBGylBP,sHACI,WL9lBN,QK+lBM,aL/lBN,QKimBM,0HACI,cAYhB,sEACI,aACA,mBACA,IHpiBQ,OGqiBR,OACA,YAGJ,sEACI,UHzfU,QG0fV,MHvlBM,QJhBV,gBACA,uBACA,mBOymBA,8EACI,UHhgBU,OGigBV,ML7nBI,QKioBR,wFACI,iBAGJ,wFACI,aACA,mBACA,IH3jBQ,MG4jBR,qBACA,cLpnBW,MKqnBX,eACA,6CAEA,oGACI,WHtnBE,QGynBN,0GACI,WHhpBO,oBGopBf,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oCI,QK2oCJ,mBAEA,gYACI,oBAIR,yFACI,MLnpCI,QKspCR,88BPxjCA,WACA,mBACA,UI6Bc,QJ5Bd,YIsCoB,IJrCpB,MIlEU,QJmEV,iBItGO,KJuGP,yBACA,cEhFY,OFiFZ,qEAEA,skCACI,aE1GE,QF2CN,UACA,4CAkEA,ktCACI,MIlFM,QG0nCV,88BAWI,WACA,qBACA,UHviCU,OG0iCd,iUPxkCA,WACA,mBACA,UI6Bc,QJ5Bd,YIsCoB,IJrCpB,MIlEU,QJmEV,iBItGO,KJuGP,yBACA,cEhFY,OFiFZ,qEAEA,qWACI,aE1GE,QF2CN,UACA,4CAkEA,+YACI,MIlFM,QG0oCV,iUAII,qBACA,UH/iCU,OGgjCV,gBAGJ,iUAGI,aACA,eACA,WAIJ,+FP7pCA,UACA,SACA,gBACA,YACA,eACA,aACA,cAEA,2GACI,aOopCJ,+FAEI,oBACA,mBACA,WACA,qBACA,UHlkCU,OGmkCV,MHjqCM,QGkqCN,WHnsCG,KGosCH,yBACA,cL5qCW,MK6qCX,eACA,gCAEA,2GACI,WH9qCE,QG+qCF,aHlqCG,QGqqCP,6GACI,WHzsCO,oBG0sCP,aL9sCF,QK+sCE,ML/sCF,QKitCE,yIACI,MLltCN,QKstCF,2HACI,aLrtCF,QKstCE,+BAEA,uJACI,MLztCN,QK0tCM,YHxlCU,IG4lClB,yHACI,YH9lCY,IGkmChB,2HACI,oBACA,mBACA,YACA,MLxuCA,QKyuCA,iBAEA,+HACI,eACA,ML9uCN,QKkvCE,+IACI,eACA,uBACA,cL9tCG,MK+tCH,gCAEA,2JACI,+BACA,ML1vCV,QK4vCU,+JACI,ML7vCd,QKiwCM,yKACI,WLlwCV,QKmwCU,MHrwCT,KGuwCS,6KACI,MHxwCb,KG6wCS,mKACI,mCAQpB,iQPxvCA,UACA,SACA,gBACA,YACA,eACA,aACA,cAEA,2LACI,aO+uCJ,iQAEI,oBACA,mBACA,WACA,qBACA,UH7pCU,OG8pCV,MH5vCM,QG6vCN,WHvvCO,QGwvCP,+BACA,cLvwCW,MKwwCX,eACA,gCAEA,2LACI,WH7vCG,QGgwCP,+LACI,WLvyCF,QKwyCE,MH1yCD,KGqzCP,2F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yBACA,cP3wBW,MO4wBX,eAEA,sGACI,aPtyBF,QOuyBE,aAIR,4ET/wBA,UACA,SACA,gBACA,YACA,eACA,aACA,cAEA,wFACI,aSswBJ,4EAEI,aACA,mBACA,uBACA,MAvFc,KAwFd,OAxFc,KAyFd,MPjzBI,QOkzBJ,yBACA,cP7xBW,MO8xBX,gCAEA,wFACI,WLnxBG,QKoxBH,ML1xBE,QK8xBV,0FACI,oBACA,mBACA,WACA,qBACA,WL7xBO,QK8xBP,MPl0BI,QOm0BJ,ULvsBU,OKwsBV,YLlsBgB,IKmsBhB,cL3uBS,MK4uBT,gCAEA,8GACI,eAEA,0HACI,WLz0BG,oBK00BH,MP90BN,QOo1BN,kFACI,aACA,mBACA,uBACA,gBACA,MPx1BI,QOy1BJ,UL7tBU,OK8tBV,YLvtBkB,IKwtBlB,yBACA,oBAEA,kMAEI,WACA,OACA,WACA,WP/0BG,QOg1BH,cAKR,kFACI,aACA,eACA,IPx3BC,KOy3BD,YPz3BC,KO03BD,WP13BC,KO23BD,6BAGJ,gFACI,aACA,mBACA,ILxyBQ,MK2yBZ,gFACI,UL7vBU,OK8vBV,YLxvBgB,IKyvBhB,MP33BI,QO43BJ,mBAGJ,gFTjyBA,WACA,mBACA,UI6Bc,QJ5Bd,YIsCoB,IJrCpB,MIlEU,QJmEV,iBItGO,KJuGP,yBACA,cEhFY,OFiFZ,qEAEA,4FACI,aE1GE,QF2CN,UACA,4CAkEA,0GACI,MIlFM,QKm2BV,gFAEI,WACA,qBACA,ULvwBU,OK0wBd,kFTxyBA,WACA,mBACA,UI6Bc,QJ5Bd,YIsCoB,IJrCpB,MIlEU,QJmEV,iBItGO,KJuGP,yBACA,cEhFY,OFiFZ,qEAEA,8FACI,aE1GE,QF2CN,UACA,4CAkEA,4GACI,MIlFM,QK02BV,kFAEI,WACA,mCACA,UL9wBU,OK+wBV,eACA,gBACA,mPACA,wCACA,4BACA,8BAIJ,8FACI,oBACA,mBACA,WACA,wBACA,WLr3BO,QKs3BP,MP15BI,QO25BJ,UL/xBU,OKgyBV,YL1xBgB,IK2xBhB,cLn0BS,MKo0BT,eACA,gCAEA,0GACI,WL73BG,QKg4BP,sHACI,WLn6BO,oBKo6BP,MPx6BF,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CI,eACA,MVpZE,QUqZF,mCAQR,uBACI,gBACA,gBAEA,+CACI,aACA,mBACA,8BACA,IVhbC,KUibD,mBACA,WVjaA,QUkaA,gCAEA,sEACI,YRvSc,IQwSd,MR3YE,QQ4YF,UR/SM,QQkTV,sEACI,cACA,URrTM,OQsTN,YRhTY,IQiTZ,MVnbA,QUobA,WR/YG,QQgZH,sBACA,cVhaO,MUoaf,6CACI,iBAGJ,2CACI,gBACA,SACA,UAGJ,2CACI,aACA,mBACA,IR1XQ,MQ2XR,mBACA,eACA,sCAEA,iDACI,WR1aE,QQ6aN,6CACI,WACA,kBACA,MVndA,QUodA,eAGJ,+DACI,OACA,UR5VM,QQ6VN,MR1bE,QQ6bN,+DACI,URjWM,QQkWN,YR5Vc,IQ6Vd,MVjeF,QUkeE,+BACA,gBACA,cV7cO,MUmdnB,mBACI,eACA,yBAEA,yBACI,WAGJ,gCACI,WC3fR,2BACI,WTKO,KSJP,yBACA,cX6Be,MWzBnB,iBACI,aACA,mBACA,8BACA,IXdK,KWeL,qBACA,WXCI,wCWCJ,8BACA,eACA,iBACA,6CAEA,uBACI,WTaM,QSTd,gBACI,aACA,mBACA,WACA,UTyGc,QSxGd,YT8GsB,IS7GtB,MTUU,QSRV,kBACI,MXzBI,QW8BZ,eACI,QX3CK,KW+CT,kBACI,cT2CY,OSzCZ,6BACI,gBAIR,wBACI,aACA,mBACA,IT+BY,MS9BZ,cT8BY,MS7BZ,UT6Ec,QS5Ed,YTkFsB,ISjFtB,MTlBU,QSoBV,0BACI,MXrDI,QWyDZ,8BACI,cXtEK,KWuEL,UTiEc,OShEd,MX5DQ,QWgEZ,gBACI,aACA,eACA,IX/EK,KWkFT,gBACI,OACA,gBAGJ,gBACI,cACA,qBACA,UT8Cc,OS7Cd,YTmDoB,ISlDpB,MTlDU,QSqDd,gBbWI,WACA,mBACA,UI6Bc,QJ5Bd,YIsCoB,IJrCpB,MIlEU,QJmEV,iBItGO,KJuGP,yBACA,cEhFY,OFiFZ,qEAEA,sBACI,aE1GE,QF2CN,UACA,4CAkEA,6BACI,MIlFM,QS4Dd,iBACI,aACA,sBACA,ITdY,MSiBhB,SACI,aACA,mBACA,IX7GK,KW8GL,QTrBY,MSsBZ,WThEU,QSiEV,cX/EY,OWiFZ,kBACI,WAIR,YACI,aACA,mBACA,ITjCY,MSkCZ,gBAGJ,cACI,WACA,YACA,eAGJ,UACI,UTIc,QSHd,YTQoB,ISPpB,MT3FU,QS+Fd,iBACI,OACA,kBACA,YACA,WT9FW,QS+FX,cT1Ca,MS2Cb,eAGJ,eACI,kBACA,MACA,YACA,WX7IM,QW8IN,cTnDa,MSoDb,gCAGJ,iBACI,kBACA,QACA,WACA,YACA,WTzJO,KS0JP,yBACA,kBACA,gCACA,YACA,WT3DW,kCS4DX,uCAEA,uBACI,WT9DO,6BSiEX,wBACI,gBAGJ,8BACI,UAGJ,4BACI,UAKR,WACI,aACA,mBACA,ITvGY,OSwGZ,gBACA,UTzDc,OS0Dd,sBACA,MTzJU,QS4Jd,gBACI,MX3LQ,QW+LZ,iBACI,QX5MK,KW6ML,WT9JU,QS+JV,cX7KY,OWgLhB,gBACI,aACA,mBACA,IT3HY,MS4HZ,cXrNK,KWwNT,kBACI,WACA,YACA,eAGJ,eACI,UTtFc,QSuFd,YTlFoB,ISmFpB,MTrLU,QSwLd,mBACI,aACA,eACA,IT/IY,OSkJhB,sBbmBI,oBACA,mBACA,IIvKY,OJwKZ,qBACA,UIzHc,OJ0Hd,YIpHoB,IJqHpB,WI9NU,QJ+NV,MI1NU,QJ2NV,cI/Ja,MJiKb,mCAhOA,UACA,SACA,gBACA,YACA,eACA,aACA,cAEA,yCACI,aAuNJ,mCAjQA,aACA,mBACA,uBAkQI,WACA,YACA,eACA,MEjQI,QFkQJ,kBAEA,yCACI,0BACA,MEpQH,QW4NT,sBAEI,eAEA,+BACI,WThOW,oBSiOX,MXrOE,QW0OV,aACI,aACA,mBACA,IT/JY,MSgKZ,mBACA,WT5NY,QS6NZ,cX1NY,OW2NZ,UTpHc,OSqHd,MX7OG,QW+OH,eACI,UTvHU,QS0Hd,yBACI,sBACA,YTtHkB,IS2H1B,kBACI,aACA,sBACA,ITrLY,OSsLZ,QX9QK,KW+QL,WThOU,QSiOV,cX/OY,OWgPZ,UTxIc,QSyId,MTxOU,QS0OV,gCACI,aACA,mBACA,IT9LQ,MSgMR,kCACI,MX7QF,QW8QE,UTlJM,QSqJV,2CACI,MXnRA,QW0RR,oDACI,aAGJ,sDACI,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","file":"entity-selector.css","sourcesContent":["/**\n * Entity Selector Mixins\n * Reusable patterns - prefer Bootstrap utilities in HTML where possible\n */\n\n@use 'variables' as *;\n\n// =============================================================================\n// Layout\n// =============================================================================\n\n@mixin flex-center {\n display: flex;\n align-items: center;\n justify-content: center;\n}\n\n@mixin flex-between {\n display: flex;\n align-items: center;\n justify-content: space-between;\n}\n\n@mixin grid-columns($cols) {\n display: grid;\n grid-template-columns: repeat($cols, 1fr);\n gap: $es-spacing-sm;\n}\n\n// =============================================================================\n// Text\n// =============================================================================\n\n@mixin text-truncate {\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n\n// =============================================================================\n// Interactive Elements\n// =============================================================================\n\n// Reset button styles\n@mixin button-reset {\n padding: 0;\n margin: 0;\n background: none;\n border: none;\n cursor: pointer;\n font: inherit;\n color: inherit;\n\n &:focus {\n outline: none;\n }\n}\n\n// Focus ring (Bootstrap 4 style)\n@mixin focus-ring($color: $es-primary) {\n outline: 0;\n box-shadow: 0 0 0 0.2rem rgba($color, 0.25);\n}\n\n// Interactive hover state\n@mixin interactive-item {\n cursor: pointer;\n transition: background-color $es-transition-fast, color $es-transition-fast;\n\n &:hover {\n background-color: $es-bg-hover;\n }\n}\n\n// =============================================================================\n// Cards & Containers\n// =============================================================================\n\n@mixin card {\n background: $es-white;\n border: 1px solid $es-border-color;\n border-radius: $es-radius-lg;\n}\n\n@mixin dropdown-container {\n position: absolute;\n z-index: $es-z-dropdown;\n background: $es-white;\n border: 1px solid $es-border-color;\n border-radius: $es-radius-lg;\n box-shadow: $es-shadow-lg;\n}\n\n// =============================================================================\n// Form Elements\n// =============================================================================\n\n// Reset input styles (for inputs in custom wrappers)\n@mixin input-reset {\n padding: 0;\n margin: 0;\n background: none;\n border: none;\n font: inherit;\n color: inherit;\n\n &:focus {\n outline: none;\n }\n}\n\n@mixin input-base {\n width: 100%;\n padding: $es-spacing-sm $es-spacing-md;\n font-size: $es-font-size-sm;\n line-height: $es-line-height-normal;\n color: $es-text-primary;\n background-color: $es-white;\n border: 1px solid $es-border-color;\n border-radius: $es-radius-md;\n transition: border-color $es-transition-fast, box-shadow $es-transition-fast;\n\n &:focus {\n border-color: $es-primary;\n @include focus-ring($es-primary);\n }\n\n &::placeholder {\n color: $es-text-light;\n }\n}\n\n// =============================================================================\n// Scrollbar\n// =============================================================================\n\n@mixin custom-scrollbar {\n &::-webkit-scrollbar {\n width: 6px;\n height: 6px;\n }\n\n &::-webkit-scrollbar-track {\n background: $es-gray-100;\n border-radius: 3px;\n }\n\n &::-webkit-scrollbar-thumb {\n background: $es-gray-300;\n border-radius: 3px;\n\n &:hover {\n background: $es-gray-400;\n }\n }\n}\n\n// =============================================================================\n// Badges & Chips\n// =============================================================================\n\n@mixin badge($bg: $es-gray-200, $color: $es-gray-700) {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n padding: 0.125rem 0.5rem;\n font-size: $es-font-size-xs;\n font-weight: $es-font-weight-medium;\n line-height: 1;\n background-color: $bg;\n color: $color;\n border-radius: $es-radius-full;\n}\n\n// Count badge with preview icon (used for tab badges, match counts, totals)\n// Note: Eye icon is provided in HTML via \n@mixin count-badge($bg: $es-primary) {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n gap: 0.25rem;\n min-width: 20px;\n height: 20px;\n padding: 0 0.5rem;\n background: $bg;\n color: $es-white;\n font-size: $es-font-size-xs;\n font-weight: $es-font-weight-semibold;\n border-radius: $es-radius-full;\n cursor: pointer;\n transition: all $es-transition-fast;\n flex-shrink: 0;\n\n &:hover {\n transform: scale(1.05);\n box-shadow: 0 2px 8px rgba($bg, 0.4);\n }\n\n // Focus state - maintain styled appearance\n &:focus {\n outline: none;\n box-shadow: 0 0 0 2px rgba($bg, 0.3), 0 2px 8px rgba($bg, 0.4);\n }\n\n // Loading state - spinner icon replaces eye\n &.loading {\n cursor: wait;\n\n i {\n font-size: 10px;\n animation: spin 0.6s linear infinite;\n }\n\n &:hover {\n transform: none;\n box-shadow: none;\n }\n }\n\n // Inactive/empty state\n &.inactive,\n &.no-matches {\n background: $es-slate-400;\n cursor: default;\n\n &:hover {\n transform: none;\n box-shadow: none;\n }\n }\n\n // Popover open state\n &.popover-open {\n background: darken($bg, 10%);\n box-shadow: 0 2px 8px rgba($bg, 0.4);\n }\n\n // Icon inside badge (eye, spinner, etc.)\n i {\n font-size: 10px;\n line-height: 1;\n opacity: 0.8;\n }\n\n &:hover i {\n opacity: 1;\n }\n\n .preview-count {\n font-weight: $es-font-weight-bold;\n }\n}\n\n@keyframes spin {\n from { transform: rotate(0deg); }\n to { transform: rotate(360deg); }\n}\n\n@mixin chip {\n display: inline-flex;\n align-items: center;\n gap: $es-spacing-xs;\n padding: $es-spacing-xs $es-spacing-sm;\n font-size: $es-font-size-xs;\n font-weight: $es-font-weight-medium;\n background: $es-gray-200;\n color: $es-gray-700;\n border-radius: $es-radius-full;\n\n .chip-remove {\n @include button-reset;\n @include flex-center;\n width: 14px;\n height: 14px;\n font-size: 10px;\n color: $es-text-muted;\n border-radius: 50%;\n\n &:hover {\n background: rgba(0, 0, 0, 0.1);\n color: $es-danger;\n }\n }\n}\n\n// =============================================================================\n// Toggle Switch\n// =============================================================================\n\n@mixin toggle-switch($width: 36px, $height: 20px) {\n position: relative;\n width: $width;\n height: $height;\n border-radius: $height;\n background: $es-gray-400;\n transition: background-color $es-transition-normal;\n cursor: pointer;\n\n &::after {\n content: '';\n position: absolute;\n top: 2px;\n left: 2px;\n width: $height - 4px;\n height: $height - 4px;\n background: $es-white;\n border-radius: 50%;\n box-shadow: 0 1px 3px rgba(0, 0, 0, 0.2);\n transition: transform $es-transition-normal;\n }\n\n &.active {\n background: $es-success;\n\n &::after {\n transform: translateX($width - $height);\n }\n }\n}\n\n// =============================================================================\n// Screen Reader Only\n// =============================================================================\n\n@mixin sr-only {\n position: absolute;\n width: 1px;\n height: 1px;\n padding: 0;\n margin: -1px;\n overflow: hidden;\n clip: rect(0, 0, 0, 0);\n white-space: nowrap;\n border: 0;\n}\n","/**\n * Form Integration Styles\n * Handles PrestaShop admin form layout overrides\n */\n\n@use '../variables' as *;\n\n// Base border reset for all entity-selector elements\n.target-conditions-trait,\n.target-conditions-trait *,\n.entity-selector-trait,\n.entity-selector-trait *,\n.method-dropdown-menu,\n.method-dropdown-menu *,\n.target-preview-popover,\n.target-preview-popover * {\n border-style: solid;\n border-width: 0;\n border-color: $es-border-color;\n}\n\n// Full-width form group override using :has()\n.form-group:has(.entity-selector-trait),\n.form-group:has(.target-conditions-trait),\n.form-group:has(.condition-trait) {\n display: block;\n\n > .control-label {\n display: none;\n }\n\n > .col-lg-8 {\n width: 100%;\n max-width: 100%;\n padding-left: $es-spacing-md;\n padding-right: $es-spacing-md;\n flex: 0 0 100% !important;\n }\n}\n\n// Fallback class for browsers without :has() support\n.form-group.condition-trait-fullwidth {\n display: block;\n\n > .control-label {\n display: none;\n }\n\n > .col-lg-8 {\n width: 100%;\n max-width: 100%;\n padding-left: $es-spacing-md;\n padding-right: $es-spacing-md;\n flex: 0 0 100% !important;\n }\n}\n\n// Dropdown overflow fix\n// When dropdown is open, parent containers must allow overflow\n.panel:has(.target-search-dropdown.show),\n.card:has(.target-search-dropdown.show),\n.form-wrapper:has(.target-search-dropdown.show),\n.panel-body:has(.target-search-dropdown.show),\n.card-body:has(.target-search-dropdown.show),\n.form-group:has(.target-search-dropdown.show),\n.col-lg-8:has(.target-search-dropdown.show),\n.col-lg-12:has(.target-search-dropdown.show) {\n overflow: visible !important;\n}\n\n// Target conditions wrapper hierarchy overflow fix\n.target-conditions-trait:has(.target-search-dropdown.show),\n.entity-selector-trait:has(.target-search-dropdown.show),\n.condition-trait-body:has(.target-search-dropdown.show),\n.target-block-content:has(.target-search-dropdown.show),\n.target-block-groups:has(.target-search-dropdown.show),\n.target-group:has(.target-search-dropdown.show),\n.target-group-body:has(.target-search-dropdown.show),\n.target-search-wrapper:has(.target-search-dropdown.show) {\n overflow: visible !important;\n}\n","/**\n * MPR Admin Variables\n * @package prestashop-admin\n */\n\n// Spacing scale (Bootstrap 4 compatible)\n$spacer: 1rem;\n$spacers: (\n 0: 0,\n 1: $spacer * 0.25,\n 2: $spacer * 0.5,\n 3: $spacer,\n 4: $spacer * 1.5,\n 5: $spacer * 3\n);\n\n// Colors - PrestaShop Admin Theme\n$primary: #25b9d7;\n$secondary: #6c757d;\n$success: #28a745;\n$danger: #dc3545;\n$warning: #ffc107;\n$info: #17a2b8;\n$light: #f8f9fa;\n$dark: #343a40;\n\n$colors: (\n primary: $primary,\n secondary: $secondary,\n success: $success,\n danger: $danger,\n warning: $warning,\n info: $info,\n light: $light,\n dark: $dark\n);\n\n// Border\n$border-color: #dee2e6;\n$border-radius: 0.25rem;\n$border-radius-sm: 0.2rem;\n$border-radius-lg: 0.3rem;\n\n// Breakpoints\n$breakpoint-sm: 576px;\n$breakpoint-md: 768px;\n$breakpoint-lg: 991px;\n$breakpoint-xl: 1200px;\n","/**\n * Responsive Styles\n * Media query adjustments for different screen sizes\n */\n\n@use '../variables' as *;\n\n// Tablet and below\n@media (max-width: 991px) {\n .target-conditions-trait,\n .entity-selector-trait {\n .condition-trait-header {\n flex-direction: column;\n align-items: flex-start;\n gap: $es-spacing-sm;\n }\n\n .trait-header-right {\n width: 100%;\n justify-content: flex-end;\n }\n\n .target-block-tabs {\n flex-wrap: wrap;\n }\n }\n}\n\n// Mobile\n@media (max-width: 767px) {\n .target-conditions-trait,\n .entity-selector-trait {\n .target-block-tab {\n padding: $es-spacing-sm;\n font-size: $es-font-size-xs;\n }\n\n .target-group-header {\n flex-direction: column;\n align-items: flex-start;\n }\n\n .target-search-dropdown {\n width: 100% !important;\n left: 0 !important;\n right: 0 !important;\n }\n\n .dropdown-results-grid {\n grid-template-columns: 1fr !important;\n }\n }\n}\n\n// High-resolution displays\n@media (min-width: 1600px) {\n .target-conditions-trait,\n .entity-selector-trait {\n .dropdown-results-grid.view-grid-3 {\n grid-template-columns: repeat(4, 1fr);\n }\n }\n}\n","/**\n * Entity Selector Variables\n * Bootstrap 4 compatible values for PrestaShop admin theme\n *\n * Imports shared variables from prestashop-admin package\n * and maps them to $es-* prefixed aliases for this package\n */\n\n// Import shared variables from prestashop-admin\n@use '../../../prestashop-admin/assets/scss/variables' as admin;\n\n// =============================================================================\n// Base Colors\n// =============================================================================\n\n$es-white: #ffffff !default;\n$es-black: #000000 !default;\n\n// Primary (from prestashop-admin)\n$es-primary: admin.$primary !default;\n$es-primary-hover: #1a9ab7 !default;\n$es-primary-light: rgba(37, 185, 215, 0.1) !default;\n\n// Semantic colors (from prestashop-admin)\n$es-success: admin.$success !default;\n$es-success-light: #d4edda !default;\n$es-success-dark: #1e7e34 !default;\n\n$es-danger: admin.$danger !default;\n$es-danger-light: #f8d7da !default;\n$es-danger-dark: #bd2130 !default;\n\n$es-warning: admin.$warning !default;\n$es-warning-light: #fff3cd !default;\n\n$es-info: admin.$info !default;\n$es-info-light: #d1ecf1 !default;\n\n// =============================================================================\n// Gray Scale (Bootstrap 4)\n// =============================================================================\n\n$es-gray-100: admin.$light !default;\n$es-gray-200: #e9ecef !default;\n$es-gray-300: admin.$border-color !default;\n$es-gray-400: #ced4da !default;\n$es-gray-500: #adb5bd !default;\n$es-gray-600: admin.$secondary !default;\n$es-gray-700: #495057 !default;\n$es-gray-800: admin.$dark !default;\n$es-gray-900: #212529 !default;\n\n// Slate (subtle variations)\n$es-slate-50: #f8fafc !default;\n$es-slate-100: #f1f5f9 !default;\n$es-slate-200: #e2e8f0 !default;\n$es-slate-300: #cbd5e1 !default;\n$es-slate-400: #94a3b8 !default;\n$es-slate-500: #64748b !default;\n$es-slate-600: #475569 !default;\n$es-slate-700: #334155 !default;\n$es-slate-800: #1e293b !default;\n$es-slate-900: #0f172a !default;\n\n// Cyan\n$es-cyan-50: #ecfeff !default;\n$es-cyan-100: #cffafe !default;\n$es-cyan-200: #a5f3fc !default;\n$es-cyan-500: #06b6d4 !default;\n$es-cyan-600: #0891b2 !default;\n$es-cyan-700: #0e7490 !default;\n\n// =============================================================================\n// Semantic Aliases\n// =============================================================================\n\n$es-bg-header: $es-gray-100 !default;\n$es-bg-hover: $es-gray-200 !default;\n$es-bg-active: $es-gray-200 !default;\n$es-bg-body: $es-white !default;\n\n$es-border-color: admin.$border-color !default;\n$es-border-light: $es-gray-200 !default;\n$es-border-dark: $es-gray-400 !default;\n\n$es-text-primary: $es-gray-900 !default;\n$es-text-secondary: $es-gray-700 !default;\n$es-text-muted: $es-gray-600 !default;\n$es-text-light: $es-gray-500 !default;\n\n// =============================================================================\n// Spacing (Bootstrap 4 compatible, derived from admin.$spacer)\n// =============================================================================\n\n$es-spacing-xs: admin.$spacer * 0.25 !default; // 4px\n$es-spacing-sm: admin.$spacer * 0.5 !default; // 8px\n$es-spacing-md: admin.$spacer !default; // 16px\n$es-spacing-lg: admin.$spacer * 1.5 !default; // 24px\n$es-spacing-xl: admin.$spacer * 2 !default; // 32px\n\n// =============================================================================\n// Border Radius (from prestashop-admin)\n// =============================================================================\n\n$es-radius-sm: admin.$border-radius-sm !default;\n$es-radius-md: admin.$border-radius !default;\n$es-radius-lg: admin.$border-radius-lg !default;\n$es-radius-xl: 0.5rem !default;\n$es-radius-full: 50rem !default;\n\n// =============================================================================\n// Box Shadows (Bootstrap 4 compatible)\n// =============================================================================\n\n$es-shadow-sm: 0 0.125rem 0.25rem rgba(0, 0, 0, 0.075) !default;\n$es-shadow-md: 0 0.5rem 1rem rgba(0, 0, 0, 0.15) !default;\n$es-shadow-lg: 0 1rem 3rem rgba(0, 0, 0, 0.175) !default;\n$es-shadow-xl: 0 1.5rem 4rem rgba(0, 0, 0, 0.2) !default;\n\n// =============================================================================\n// Transitions\n// =============================================================================\n\n$es-transition-fast: 0.15s ease-in-out !default;\n$es-transition-normal: 0.2s ease-in-out !default;\n$es-transition-slow: 0.3s ease-in-out !default;\n\n// =============================================================================\n// Z-Index (below Bootstrap modal)\n// =============================================================================\n\n$es-z-dropdown: 1000 !default;\n$es-z-modal: 1050 !default;\n$es-z-popover: 1060 !default;\n$es-z-tooltip: 1070 !default;\n\n// =============================================================================\n// Typography\n// =============================================================================\n\n$es-font-family: -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, \"Helvetica Neue\", Arial, sans-serif !default;\n\n$es-font-size-xs: 0.75rem !default; // 12px\n$es-font-size-sm: 0.875rem !default; // 14px\n$es-font-size-base: 1rem !default; // 16px\n$es-font-size-lg: 1.125rem !default; // 18px\n\n$es-font-weight-normal: 400 !default;\n$es-font-weight-medium: 500 !default;\n$es-font-weight-semibold: 600 !default;\n$es-font-weight-bold: 700 !default;\n\n$es-line-height-tight: 1.25 !default;\n$es-line-height-normal: 1.5 !default;\n","/**\n * Entity Selector - Main Component Styles\n * Wrapper, header, body, tabs, blocks\n */\n\n@use '../variables' as *;\n@use '../mixins' as *;\n\n// Main wrapper (supports both .target-conditions-trait and .entity-selector-trait)\n.target-conditions-trait,\n.entity-selector-trait {\n position: relative;\n overflow: visible;\n background: $es-white;\n border: 1px solid $es-border-color;\n border-radius: $es-radius-lg;\n\n // Trait Header (collapsible)\n .condition-trait-header {\n display: flex;\n align-items: center;\n justify-content: space-between;\n flex-wrap: wrap;\n gap: $es-spacing-md;\n padding: 0.875rem $es-spacing-md;\n background: $es-bg-header;\n border-bottom: 1px solid $es-border-color;\n border-radius: $es-radius-lg $es-radius-lg 0 0;\n cursor: pointer;\n user-select: none;\n transition: background-color $es-transition-fast;\n\n &:hover {\n background: $es-bg-hover;\n }\n }\n\n .trait-header-left {\n display: flex;\n align-items: center;\n gap: 0.75rem;\n min-width: 0;\n flex: 1;\n }\n\n .trait-icon {\n font-size: $es-font-size-lg;\n color: $es-text-muted;\n flex-shrink: 0;\n }\n\n .trait-title-group {\n display: flex;\n flex-direction: column;\n gap: 0.125rem;\n min-width: 0;\n }\n\n .trait-title {\n font-size: $es-font-size-sm;\n font-weight: $es-font-weight-semibold;\n color: $es-text-primary;\n white-space: nowrap;\n }\n\n .trait-subtitle {\n font-size: $es-font-size-xs;\n color: $es-text-muted;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n }\n\n // Total count badge in header\n .trait-total-count {\n @include count-badge($es-primary);\n margin-left: $es-spacing-sm;\n }\n\n // Show all toggle switch\n .trait-show-all-toggle {\n display: inline-flex;\n align-items: center;\n gap: $es-spacing-sm;\n margin-right: 0.75rem;\n padding: 0.25rem $es-spacing-sm;\n border-radius: $es-radius-sm;\n cursor: pointer;\n user-select: none;\n transition: background-color $es-transition-fast;\n\n &:hover {\n background: rgba(0, 0, 0, 0.05);\n }\n\n .toggle-label {\n font-size: $es-font-size-xs;\n font-weight: $es-font-weight-medium;\n color: $es-text-muted;\n }\n\n .show-all-checkbox {\n display: none;\n }\n\n .toggle-slider {\n position: relative;\n width: 36px;\n height: 20px;\n background: $es-slate-300;\n border-radius: $es-radius-full;\n transition: background-color $es-transition-normal;\n\n &::after {\n content: '';\n position: absolute;\n top: 2px;\n left: 2px;\n width: 16px;\n height: 16px;\n background: $es-white;\n border-radius: 50%;\n box-shadow: 0 1px 3px rgba(0, 0, 0, 0.2);\n transition: transform $es-transition-normal;\n }\n }\n\n .show-all-checkbox:checked + .toggle-slider {\n background: $es-success;\n\n &::after {\n transform: translateX(16px);\n }\n }\n }\n\n // Validation error states\n &.has-validation-error {\n border-color: $es-danger;\n box-shadow: 0 0 0 3px rgba($es-danger, 0.1);\n\n .condition-trait-header {\n border-bottom-color: $es-danger;\n }\n }\n\n .trait-validation-error {\n display: flex;\n align-items: center;\n gap: $es-spacing-sm;\n padding: 0.625rem $es-spacing-md;\n background: $es-danger-light;\n color: #b91c1c;\n font-size: $es-font-size-sm;\n font-weight: $es-font-weight-medium;\n border-bottom: 1px solid #fecaca;\n\n i {\n color: $es-danger;\n }\n }\n\n // Required indicator\n &.trait-required .trait-title::after {\n content: ' *';\n color: $es-danger;\n }\n\n // Body\n .condition-trait-body {\n padding: 0;\n background: $es-white;\n border-radius: 0 0 $es-radius-lg $es-radius-lg;\n }\n\n // Block type tabs\n .target-block-tabs {\n display: flex;\n flex-wrap: wrap;\n gap: 0;\n padding: 0;\n background: $es-slate-100;\n border-bottom: 1px solid $es-border-color;\n }\n\n .target-block-tab {\n position: relative;\n display: flex;\n align-items: center;\n gap: $es-spacing-sm;\n flex: none;\n min-width: 0;\n padding: 0.625rem $es-spacing-md;\n margin-bottom: -1px;\n background: transparent;\n border: 0;\n border-bottom: 2px solid transparent;\n color: $es-text-muted;\n font-size: $es-font-size-sm;\n font-weight: $es-font-weight-medium;\n cursor: pointer;\n transition: all $es-transition-fast;\n\n &:hover {\n background: $es-slate-200;\n color: $es-slate-700;\n }\n\n &.active {\n background: $es-white;\n border-bottom-color: $es-cyan-500;\n color: $es-primary;\n }\n\n i {\n font-size: $es-font-size-sm;\n }\n\n .tab-label {\n white-space: nowrap;\n }\n\n .tab-badge {\n @include count-badge($es-primary);\n }\n\n &.has-data:not(.active) .tab-badge {\n @include count-badge($es-slate-400);\n }\n }\n\n // Block container\n .target-block-container {\n display: none;\n\n &.active {\n display: block;\n }\n }\n\n .target-block-content {\n padding: $es-spacing-md;\n }\n\n .target-block-groups {\n display: flex;\n flex-direction: column;\n gap: $es-spacing-md;\n }\n\n // Block header (for standalone blocks)\n .target-block-header {\n display: flex;\n align-items: center;\n justify-content: space-between;\n padding: $es-spacing-sm $es-spacing-md;\n background: $es-bg-header;\n border-bottom: 1px solid $es-border-color;\n }\n\n // Empty state\n .target-block-empty {\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n gap: $es-spacing-sm;\n padding: $es-spacing-xl;\n text-align: center;\n color: $es-text-muted;\n\n i {\n font-size: 2rem;\n opacity: 0.5;\n }\n\n p {\n margin: 0;\n font-size: $es-font-size-sm;\n }\n }\n\n // Collapse toggle\n .trait-collapse-toggle,\n .collapse-toggle {\n display: flex;\n align-items: center;\n justify-content: center;\n width: 24px;\n height: 24px;\n color: $es-text-muted;\n cursor: pointer;\n transition: transform $es-transition-normal;\n\n &.collapsed {\n transform: rotate(-90deg);\n }\n }\n\n // Header actions\n .trait-header-right {\n display: flex;\n align-items: center;\n gap: $es-spacing-sm;\n }\n\n // Collapsed state\n &.collapsed {\n .condition-trait-body {\n display: none;\n }\n\n .condition-trait-header {\n border-radius: $es-radius-lg;\n }\n }\n}\n\n// Single mode specific styles\n.target-conditions-trait.single-mode,\n.entity-selector-trait.single-mode {\n .target-block-tabs {\n display: none;\n }\n\n .target-block-container {\n display: block;\n }\n}\n\n// Header action buttons\n.target-conditions-trait,\n.entity-selector-trait {\n .header-actions {\n display: flex;\n align-items: center;\n gap: $es-spacing-xs;\n }\n\n .header-action-btn {\n @include button-reset;\n display: inline-flex;\n align-items: center;\n gap: 0.25rem;\n padding: 0.25rem $es-spacing-sm;\n font-size: $es-font-size-xs;\n font-weight: $es-font-weight-medium;\n color: $es-text-muted;\n background: transparent;\n border-radius: $es-radius-sm;\n transition: all $es-transition-fast;\n\n &:hover {\n background: $es-slate-200;\n color: $es-text-secondary;\n }\n\n i {\n font-size: 12px;\n }\n }\n}\n","/**\n * Entity Item - Shared Base Component\n * Unified styling for entity items in chips, lists, and previews\n *\n * Variants:\n * - .entity-item (base) - default list-row style\n * - .entity-item.chip-style - pill/chip style (compact)\n * - .entity-item.card-style - card/grid style\n */\n\n@use '../variables' as *;\n@use '../mixins' as *;\n\n// =============================================================================\n// Entity Item Sizing\n// =============================================================================\n\n$entity-item-image-sm: 20px;\n$entity-item-image-md: 32px;\n$entity-item-image-lg: 48px;\n\n// =============================================================================\n// Base Entity Item (list-row layout)\n// =============================================================================\n\n.entity-item {\n display: flex;\n align-items: center;\n gap: $es-spacing-sm;\n padding: $es-spacing-sm;\n background: $es-white;\n border-radius: $es-radius-sm;\n transition: background $es-transition-fast;\n\n &:hover {\n background: $es-bg-hover;\n }\n\n // Clickable variant\n &.clickable {\n cursor: pointer;\n }\n\n // Selected state\n &.selected {\n background: $es-primary-light;\n }\n}\n\n// -----------------------------------------------------------------------------\n// Entity Item Image\n// -----------------------------------------------------------------------------\n\n.entity-item-image {\n flex-shrink: 0;\n width: $entity-item-image-md;\n height: $entity-item-image-md;\n object-fit: cover;\n border-radius: $es-radius-sm;\n background: $es-slate-100;\n}\n\n// Size variants\n.entity-item-image--sm {\n width: $entity-item-image-sm;\n height: $entity-item-image-sm;\n border-radius: 50%;\n}\n\n.entity-item-image--lg {\n width: $entity-item-image-lg;\n height: $entity-item-image-lg;\n}\n\n// No-image placeholder\n.entity-item-no-image {\n display: flex;\n align-items: center;\n justify-content: center;\n flex-shrink: 0;\n width: $entity-item-image-md;\n height: $entity-item-image-md;\n background: $es-slate-100;\n color: $es-text-muted;\n border-radius: $es-radius-sm;\n font-size: $es-font-size-sm;\n\n &--sm {\n width: $entity-item-image-sm;\n height: $entity-item-image-sm;\n font-size: 10px;\n border-radius: 50%;\n }\n}\n\n// -----------------------------------------------------------------------------\n// Entity Item Info (name + meta)\n// -----------------------------------------------------------------------------\n\n.entity-item-info {\n flex: 1;\n min-width: 0;\n display: flex;\n flex-direction: column;\n gap: 0.125rem;\n}\n\n.entity-item-name {\n font-size: $es-font-size-sm;\n font-weight: $es-font-weight-medium;\n color: $es-text-primary;\n @include text-truncate;\n}\n\n.entity-item-meta {\n font-size: $es-font-size-xs;\n color: $es-text-muted;\n @include text-truncate;\n}\n\n// -----------------------------------------------------------------------------\n// Entity Item Badge/Price (right side)\n// -----------------------------------------------------------------------------\n\n.entity-item-badge {\n flex-shrink: 0;\n padding: 0.125rem 0.5rem;\n font-size: $es-font-size-xs;\n font-weight: $es-font-weight-medium;\n background: $es-slate-100;\n color: $es-text-muted;\n border-radius: $es-radius-sm;\n}\n\n.entity-item-price {\n flex-shrink: 0;\n font-size: $es-font-size-sm;\n font-weight: $es-font-weight-semibold;\n color: $es-primary;\n}\n\n// -----------------------------------------------------------------------------\n// Entity Item Actions (remove button, etc.)\n// -----------------------------------------------------------------------------\n\n.entity-item-action {\n @include button-reset;\n display: flex;\n align-items: center;\n justify-content: center;\n flex-shrink: 0;\n width: 20px;\n height: 20px;\n color: $es-text-muted;\n border-radius: 50%;\n transition: all $es-transition-fast;\n\n &:hover {\n background: rgba(0, 0, 0, 0.1);\n color: $es-danger;\n }\n\n i {\n font-size: 10px;\n }\n}\n\n// =============================================================================\n// Chip Style Variant (compact pill)\n// =============================================================================\n\n.entity-item.chip-style {\n display: inline-flex;\n gap: 0.375rem;\n padding: 0.25rem 0.5rem;\n background: $es-slate-100;\n border-radius: $es-radius-full;\n\n &:hover {\n background: $es-slate-200;\n }\n\n .entity-item-image {\n width: $entity-item-image-sm;\n height: $entity-item-image-sm;\n border-radius: 50%;\n }\n\n .entity-item-no-image {\n width: $entity-item-image-sm;\n height: $entity-item-image-sm;\n font-size: 10px;\n border-radius: 50%;\n }\n\n .entity-item-info {\n flex-direction: row;\n align-items: center;\n gap: 0.25rem;\n }\n\n .entity-item-name {\n font-size: $es-font-size-xs;\n }\n\n .entity-item-meta {\n display: none;\n }\n\n .entity-item-action {\n width: 16px;\n height: 16px;\n margin-left: 0.125rem;\n }\n}\n\n// =============================================================================\n// List Style Variant (bordered rows)\n// =============================================================================\n\n.entity-item.list-style {\n padding: $es-spacing-sm 0;\n background: transparent;\n border-bottom: 1px solid $es-border-color;\n border-radius: 0;\n\n &:last-child {\n border-bottom: none;\n }\n\n &:hover {\n background: $es-bg-hover;\n }\n}\n\n// =============================================================================\n// Entity Item Container (wrapper for multiple items)\n// =============================================================================\n\n.entity-items-container {\n display: flex;\n flex-direction: column;\n background: $es-slate-50;\n border: 1px solid $es-border-color;\n border-radius: $es-radius-md;\n overflow: hidden;\n}\n\n// Toolbar (filter, sort, count, clear)\n.entity-items-toolbar {\n display: none;\n align-items: center;\n flex-wrap: nowrap;\n gap: $es-spacing-sm;\n padding: $es-spacing-sm $es-spacing-md;\n padding-bottom: 0;\n background: transparent;\n\n &.has-items {\n display: flex;\n }\n}\n\n// Filter input\n.entity-items-filter {\n all: unset;\n display: block;\n flex: 1 1 auto;\n min-width: 80px;\n width: auto;\n height: auto;\n padding: 0.2rem 0.5rem 0.2rem 1.5rem;\n background: $es-white url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='10' viewBox='0 0 24 24' fill='none' stroke='%2394a3b8' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='11' cy='11' r='8'/%3E%3Cpath d='m21 21-4.35-4.35'/%3E%3C/svg%3E\") no-repeat 0.375rem center;\n background-size: 10px;\n border: 1px solid $es-slate-300;\n border-radius: $es-radius-sm;\n font-size: 11px;\n line-height: 1.4;\n color: $es-text-primary;\n box-sizing: border-box;\n transition: all $es-transition-fast;\n\n &::placeholder {\n color: $es-text-muted;\n font-size: 11px;\n }\n\n &:focus {\n outline: none;\n border-color: $es-primary;\n box-shadow: 0 0 0 2px rgba($es-primary, 0.1);\n }\n}\n\n// Sort dropdown\n.entity-items-sort {\n all: unset;\n flex: 0 0 auto;\n padding: 0.2rem 1.25rem 0.2rem 0.5rem;\n border: 1px solid $es-border-color;\n border-radius: $es-radius-sm;\n background: $es-white url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='8' height='8' viewBox='0 0 8 8'%3E%3Cpath fill='%23666' d='M0 2l4 4 4-4z'/%3E%3C/svg%3E\") no-repeat right 0.375rem center;\n background-size: 8px;\n font-size: 10px;\n line-height: 1.4;\n color: $es-text-secondary;\n cursor: pointer;\n box-sizing: border-box;\n white-space: nowrap;\n\n &:hover {\n border-color: $es-primary;\n }\n\n &:focus {\n outline: none;\n border-color: $es-primary;\n box-shadow: 0 0 0 2px rgba($es-primary, 0.1);\n }\n}\n\n// Count badge\n.entity-items-count {\n display: inline-flex;\n align-items: center;\n flex-shrink: 0;\n gap: 0.125rem;\n padding: 0.2rem 0.5rem;\n background: $es-slate-200;\n color: $es-text-secondary;\n font-size: 10px;\n font-weight: $es-font-weight-semibold;\n border-radius: $es-radius-sm;\n white-space: nowrap;\n line-height: 1.4;\n\n &.has-filter {\n background: $es-cyan-100;\n color: $es-cyan-700;\n }\n}\n\n// Clear button\n.entity-items-clear {\n @include button-reset;\n display: inline-flex;\n align-items: center;\n flex-shrink: 0;\n gap: 0.25rem;\n padding: 0.2rem 0.5rem;\n color: $es-danger;\n font-size: 10px;\n font-weight: $es-font-weight-medium;\n background: rgba($es-danger, 0.1);\n border-radius: $es-radius-sm;\n transition: all $es-transition-fast;\n white-space: nowrap;\n line-height: 1.4;\n\n &:hover {\n background: $es-danger;\n color: $es-white;\n }\n\n i {\n font-size: 9px;\n flex-shrink: 0;\n }\n}\n\n// Items list area\n.entity-items-list {\n display: flex;\n flex-wrap: wrap;\n gap: $es-spacing-xs;\n padding: $es-spacing-sm $es-spacing-md $es-spacing-md;\n min-height: 40px;\n max-height: 300px;\n overflow-y: auto;\n @include custom-scrollbar;\n\n &:empty {\n display: none;\n }\n\n // List layout (vertical)\n &.list-layout {\n flex-direction: column;\n flex-wrap: nowrap;\n gap: 0;\n padding: $es-spacing-sm;\n }\n}\n\n// Load more section\n.entity-items-load-more {\n display: flex;\n align-items: center;\n justify-content: center;\n gap: $es-spacing-sm;\n padding: $es-spacing-sm $es-spacing-md;\n background: transparent;\n border-top: 1px dashed $es-border-color;\n\n .load-more-label {\n font-size: $es-font-size-xs;\n color: $es-text-muted;\n }\n\n .load-more-select {\n appearance: none;\n padding: 0.25rem 1.75rem 0.25rem 0.5rem;\n border: 1px solid $es-border-color;\n border-radius: $es-radius-sm;\n background: $es-white url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='8' height='8' viewBox='0 0 8 8'%3E%3Cpath fill='%23666' d='M0 2l4 4 4-4z'/%3E%3C/svg%3E\") no-repeat right 0.5rem center;\n background-size: 8px;\n font-size: $es-font-size-xs;\n font-weight: $es-font-weight-medium;\n color: $es-primary;\n cursor: pointer;\n transition: all $es-transition-fast;\n height: auto;\n min-height: 0;\n line-height: 1.3;\n\n &:hover {\n border-color: $es-primary;\n background-color: $es-primary-light;\n }\n\n &:focus {\n outline: none;\n border-color: $es-primary;\n box-shadow: 0 0 0 2px rgba($es-primary, 0.1);\n }\n }\n\n .load-more-remaining {\n font-size: $es-font-size-xs;\n color: $es-text-muted;\n\n .remaining-count {\n font-weight: $es-font-weight-semibold;\n color: $es-text-secondary;\n }\n }\n\n .btn-load-more {\n display: flex;\n align-items: center;\n justify-content: center;\n padding: $es-spacing-xs;\n margin: 0;\n border: none;\n color: $es-primary;\n background: $es-primary-light;\n border-radius: $es-radius-sm;\n cursor: pointer;\n transition: all $es-transition-fast;\n font: inherit;\n\n i {\n font-size: 14px;\n }\n\n &:hover {\n background: rgba($es-primary, 0.2);\n }\n\n &.loading {\n cursor: wait;\n\n i {\n animation: spin 0.6s linear infinite;\n }\n }\n }\n}\n\n// =============================================================================\n// Empty & Loading States\n// =============================================================================\n\n.entity-items-empty {\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n gap: $es-spacing-sm;\n padding: $es-spacing-xl;\n text-align: center;\n color: $es-text-muted;\n\n i {\n font-size: 2rem;\n opacity: 0.5;\n }\n\n p {\n margin: 0;\n font-size: $es-font-size-sm;\n }\n}\n\n.entity-items-loading {\n display: flex;\n align-items: center;\n justify-content: center;\n padding: $es-spacing-xl;\n color: $es-text-muted;\n\n i {\n font-size: 20px;\n animation: spin 0.6s linear infinite;\n }\n}\n","/**\n * Search Dropdown Component\n * Includes search input, filter panel, results grid\n */\n\n@use '../variables' as *;\n@use '../mixins' as *;\n\n.target-conditions-trait,\n.entity-selector-trait {\n\n // Search wrapper\n .target-search-wrapper {\n position: relative;\n }\n\n // Search dropdown\n .target-search-dropdown {\n @include dropdown-container;\n display: none;\n width: 600px;\n max-width: calc(100vw - 40px);\n\n &.show {\n display: block;\n }\n }\n\n // Dropdown header\n .dropdown-header {\n display: flex;\n align-items: center;\n gap: $es-spacing-sm;\n padding: $es-spacing-md;\n background: $es-bg-header;\n border-bottom: 1px solid $es-border-color;\n border-radius: $es-radius-lg $es-radius-lg 0 0;\n }\n\n .dropdown-search-input {\n @include input-base;\n flex: 1;\n padding: $es-spacing-sm $es-spacing-md;\n }\n\n .dropdown-close-btn {\n @include button-reset;\n display: flex;\n align-items: center;\n justify-content: center;\n width: 32px;\n height: 32px;\n color: $es-text-muted;\n border-radius: $es-radius-md;\n transition: all $es-transition-fast;\n\n &:hover {\n background: $es-slate-200;\n color: $es-text-secondary;\n }\n }\n\n // Dropdown controls bar\n .dropdown-controls {\n display: flex;\n align-items: center;\n justify-content: space-between;\n gap: $es-spacing-sm;\n padding: $es-spacing-sm $es-spacing-md;\n background: $es-white;\n border-bottom: 1px solid $es-border-color;\n }\n\n .dropdown-controls-left,\n .dropdown-controls-right {\n display: flex;\n align-items: center;\n gap: $es-spacing-sm;\n }\n\n // View mode buttons\n .view-mode-btn {\n @include button-reset;\n display: flex;\n align-items: center;\n justify-content: center;\n width: 28px;\n height: 28px;\n color: $es-text-muted;\n background: transparent;\n border-radius: $es-radius-sm;\n transition: all $es-transition-fast;\n\n &:hover {\n background: $es-slate-100;\n color: $es-text-secondary;\n }\n\n &.active {\n background: $es-primary;\n color: $es-white;\n }\n }\n\n // Results count\n .dropdown-results-count {\n font-size: $es-font-size-xs;\n color: $es-text-muted;\n }\n\n // Dropdown body\n .dropdown-body {\n max-height: 400px;\n overflow-y: auto;\n @include custom-scrollbar;\n }\n\n // Results container\n .dropdown-results {\n padding: 0 $es-spacing-sm;\n }\n\n // Results count text\n .results-count {\n font-size: $es-font-size-xs;\n color: $es-text-muted;\n padding: $es-spacing-xs $es-spacing-sm;\n }\n\n // Results header (for list view columns)\n .results-header {\n display: flex;\n align-items: center;\n gap: $es-spacing-sm;\n padding: $es-spacing-xs $es-spacing-md;\n background: $es-slate-100;\n border-bottom: 1px solid $es-border-color;\n font-size: $es-font-size-xs;\n font-weight: $es-font-weight-semibold;\n color: $es-text-secondary;\n }\n\n // Grid view\n .dropdown-results-grid {\n display: grid;\n gap: $es-spacing-sm;\n\n &.view-list {\n grid-template-columns: 1fr;\n }\n\n &.view-grid-2 {\n grid-template-columns: repeat(2, 1fr);\n }\n\n &.view-grid-3 {\n grid-template-columns: repeat(3, 1fr);\n }\n }\n\n // Result item (both class names for compatibility)\n // Note: Main dropdown-item styling is in the global .target-search-dropdown section below\n .dropdown-result-item {\n display: flex;\n align-items: center;\n gap: $es-spacing-sm;\n padding: $es-spacing-sm 0;\n background: $es-white;\n border: none;\n border-bottom: 1px solid $es-border-color;\n border-radius: 0;\n cursor: pointer;\n transition: background $es-transition-fast;\n\n &:last-child {\n border-bottom: none;\n }\n\n &:hover {\n background: $es-bg-hover;\n }\n\n &.selected {\n background: $es-primary-light;\n }\n\n &.disabled {\n opacity: 0.5;\n cursor: not-allowed;\n\n &:hover {\n background: $es-white;\n }\n }\n }\n\n .result-item-image,\n .result-image {\n flex-shrink: 0;\n width: 40px;\n height: 40px;\n overflow: hidden;\n border-radius: $es-radius-sm;\n background: $es-slate-100;\n\n img {\n width: 100%;\n height: 100%;\n object-fit: cover;\n }\n }\n\n .result-icon {\n display: flex;\n align-items: center;\n justify-content: center;\n flex-shrink: 0;\n width: 40px;\n height: 40px;\n background: $es-slate-100;\n border-radius: $es-radius-sm;\n color: $es-text-muted;\n\n i {\n font-size: 16px;\n }\n }\n\n .result-item-info,\n .result-info {\n flex: 1;\n min-width: 0;\n }\n\n .result-item-name,\n .result-name {\n font-size: $es-font-size-sm;\n font-weight: $es-font-weight-medium;\n color: $es-text-primary;\n @include text-truncate;\n }\n\n .result-item-meta,\n .result-subtitle {\n font-size: $es-font-size-xs;\n color: $es-text-muted;\n }\n\n .subtitle-line {\n @include text-truncate;\n }\n\n .subtitle-line-primary {\n color: $es-text-secondary;\n }\n\n .subtitle-line-secondary {\n color: $es-text-muted;\n font-size: 11px;\n }\n\n // Result columns (for product list view)\n .result-col {\n flex-shrink: 0;\n width: 70px;\n text-align: right;\n font-size: $es-font-size-xs;\n }\n\n .result-col-price {\n color: $es-text-secondary;\n }\n\n .result-col-sale {\n color: $es-danger;\n font-weight: $es-font-weight-semibold;\n }\n\n .result-col-stock {\n .col-value {\n &.stock-ok {\n color: $es-success;\n }\n\n &.stock-low {\n color: $es-warning;\n }\n\n &.stock-out {\n color: $es-danger;\n }\n }\n }\n\n .result-col-sales {\n color: $es-text-muted;\n }\n\n .col-value {\n display: block;\n }\n\n .result-item-checkbox,\n .result-checkbox {\n display: flex;\n align-items: center;\n justify-content: center;\n flex-shrink: 0;\n width: 18px;\n height: 18px;\n border: 2px solid $es-border-dark;\n border-radius: $es-radius-sm;\n transition: all $es-transition-fast;\n\n i {\n display: none;\n font-size: 10px;\n color: $es-white;\n }\n\n .dropdown-result-item.selected &,\n .dropdown-item.selected & {\n background: $es-primary;\n border-color: $es-primary;\n\n i {\n display: block;\n }\n }\n }\n\n // Product-specific result item\n .result-item-product {\n display: flex;\n align-items: center;\n gap: $es-spacing-sm;\n }\n\n // No results state\n .no-results {\n display: flex;\n align-items: center;\n justify-content: center;\n gap: $es-spacing-sm;\n padding: $es-spacing-xl;\n color: $es-text-muted;\n font-size: $es-font-size-sm;\n\n i {\n font-size: 1.25rem;\n opacity: 0.5;\n }\n }\n\n // Empty state\n .dropdown-empty {\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n gap: $es-spacing-sm;\n padding: $es-spacing-xl;\n text-align: center;\n color: $es-text-muted;\n\n i {\n font-size: 2rem;\n opacity: 0.5;\n }\n\n p {\n margin: 0;\n font-size: $es-font-size-sm;\n }\n }\n\n // Loading state\n .dropdown-loading {\n display: flex;\n align-items: center;\n justify-content: center;\n padding: $es-spacing-xl;\n color: $es-text-muted;\n\n i {\n font-size: 1.5rem;\n animation: spin 1s linear infinite;\n }\n }\n\n // Unified dropdown footer - combines load more and actions\n .dropdown-footer {\n display: flex;\n align-items: center;\n justify-content: space-between;\n gap: $es-spacing-md;\n padding: $es-spacing-sm $es-spacing-md;\n background: $es-slate-50;\n border-top: 1px solid $es-border-color;\n border-radius: 0 0 $es-radius-lg $es-radius-lg;\n }\n\n // Left side: load more controls\n .dropdown-footer-left {\n display: flex;\n align-items: center;\n gap: $es-spacing-xs;\n font-size: $es-font-size-xs;\n color: $es-text-muted;\n\n .load-label {\n color: $es-text-muted;\n }\n\n .load-more-select,\n select.load-more-select {\n appearance: none;\n padding: 0.25rem 1.5rem 0.25rem 0.5rem;\n border: 1px solid $es-border-color;\n border-radius: $es-radius-sm;\n background: $es-white url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='8' height='8' viewBox='0 0 8 8'%3E%3Cpath fill='%23666' d='M0 2l4 4 4-4z'/%3E%3C/svg%3E\") no-repeat right 0.4rem center;\n background-size: 8px;\n font-size: $es-font-size-xs;\n color: $es-text-secondary;\n cursor: pointer;\n min-width: 55px;\n\n &:hover {\n border-color: $es-primary;\n }\n\n &:focus {\n outline: none;\n border-color: $es-primary;\n }\n }\n\n .remaining-text {\n color: $es-text-muted;\n\n strong {\n color: $es-text-secondary;\n font-weight: $es-font-weight-semibold;\n }\n }\n\n .btn-load-all {\n @include button-reset;\n padding: 0.25rem 0.5rem;\n font-size: $es-font-size-xs;\n color: $es-primary;\n background: transparent;\n border-radius: $es-radius-sm;\n transition: all $es-transition-fast;\n\n &:hover {\n background: $es-primary-light;\n }\n }\n }\n\n // Right side: action buttons\n .dropdown-footer-right {\n display: flex;\n align-items: center;\n gap: $es-spacing-sm;\n }\n\n .dropdown-action-btn {\n @include button-reset;\n display: inline-flex;\n align-items: center;\n gap: 0.375rem;\n padding: 0.375rem 0.75rem;\n font-size: $es-font-size-xs;\n font-weight: $es-font-weight-medium;\n border-radius: $es-radius-sm;\n transition: all $es-transition-fast;\n\n .btn-shortcut {\n font-size: 10px;\n padding: 0.125rem 0.25rem;\n background: rgba(0, 0, 0, 0.08);\n border-radius: 3px;\n font-weight: $es-font-weight-normal;\n }\n\n &.btn-cancel {\n color: $es-text-secondary;\n background: $es-white;\n border: 1px solid $es-border-color;\n\n &:hover {\n background: $es-slate-100;\n border-color: $es-border-dark;\n }\n }\n\n &.btn-apply,\n &.btn-save {\n color: $es-white;\n background: $es-primary;\n border: 1px solid $es-primary;\n\n &:hover {\n background: $es-primary-hover;\n border-color: $es-primary-hover;\n }\n\n .btn-shortcut {\n background: rgba(255, 255, 255, 0.2);\n }\n }\n }\n\n // Legacy support - hide old load more section when new footer exists\n .dropdown-load-more {\n display: none;\n }\n\n .load-more-controls {\n display: none;\n }\n\n // Filter panel\n .dropdown-filter-panel {\n padding: $es-spacing-md;\n background: $es-slate-50;\n border-bottom: 1px solid $es-border-color;\n }\n\n .filter-panel-header {\n display: flex;\n align-items: center;\n justify-content: space-between;\n margin-bottom: $es-spacing-sm;\n }\n\n .filter-panel-title {\n font-size: $es-font-size-sm;\n font-weight: $es-font-weight-semibold;\n color: $es-text-primary;\n }\n\n .filter-panel-toggle {\n @include button-reset;\n font-size: $es-font-size-xs;\n color: $es-primary;\n\n &:hover {\n text-decoration: underline;\n }\n }\n\n .filter-panel-content {\n display: grid;\n gap: $es-spacing-sm;\n grid-template-columns: repeat(auto-fill, minmax(150px, 1fr));\n }\n\n .filter-group {\n display: flex;\n flex-direction: column;\n gap: 0.25rem;\n }\n\n .filter-label {\n font-size: $es-font-size-xs;\n font-weight: $es-font-weight-medium;\n color: $es-text-secondary;\n }\n\n .filter-select,\n .filter-input {\n @include input-base;\n padding: 0.375rem $es-spacing-sm;\n font-size: $es-font-size-xs;\n }\n}\n\n// Category tree view\n.target-conditions-trait,\n.entity-selector-trait {\n .category-tree {\n padding: $es-spacing-sm;\n }\n\n .tree-container {\n // Contains tree items\n }\n\n .tree-loading {\n display: flex;\n align-items: center;\n justify-content: center;\n gap: $es-spacing-sm;\n padding: $es-spacing-xl;\n color: $es-text-muted;\n font-size: $es-font-size-sm;\n\n i {\n animation: spin 0.6s linear infinite;\n }\n }\n\n // Tree item (used by JavaScript)\n .tree-item {\n display: flex;\n align-items: center;\n gap: $es-spacing-xs;\n padding: 0.375rem $es-spacing-sm;\n border-radius: $es-radius-sm;\n cursor: pointer;\n transition: background-color $es-transition-fast;\n\n &:hover {\n background: $es-bg-hover;\n }\n\n &.selected {\n background: $es-primary-light;\n\n .tree-checkbox {\n background: $es-primary;\n border-color: $es-primary;\n\n i {\n display: block;\n }\n }\n }\n\n &.has-children {\n // Parent node styling\n }\n }\n\n // tree-toggle, btn-select-children, tree-checkbox, tree-icon styles in _tree.scss\n\n .tree-info {\n display: flex;\n align-items: center;\n gap: $es-spacing-xs;\n flex: 1;\n min-width: 0;\n }\n\n .tree-name {\n font-size: $es-font-size-sm;\n color: $es-text-primary;\n @include text-truncate;\n }\n\n .tree-subtitle {\n font-size: $es-font-size-xs;\n color: $es-text-muted;\n }\n\n // Legacy category tree classes (for compatibility)\n .category-tree-item {\n padding: 0.25rem 0;\n }\n\n .category-tree-node {\n display: flex;\n align-items: center;\n gap: $es-spacing-sm;\n padding: $es-spacing-xs $es-spacing-sm;\n border-radius: $es-radius-sm;\n cursor: pointer;\n transition: background-color $es-transition-fast;\n\n &:hover {\n background: $es-bg-hover;\n }\n\n &.selected {\n background: $es-primary-light;\n }\n }\n\n .category-tree-toggle {\n display: flex;\n align-items: center;\n justify-content: center;\n width: 16px;\n height: 16px;\n color: $es-text-muted;\n transition: transform $es-transition-fast;\n\n &.expanded {\n transform: rotate(90deg);\n }\n\n &.empty {\n visibility: hidden;\n }\n }\n\n .category-tree-checkbox {\n flex-shrink: 0;\n width: 16px;\n height: 16px;\n border: 2px solid $es-border-dark;\n border-radius: 3px;\n transition: all $es-transition-fast;\n\n &.checked {\n background: $es-primary;\n border-color: $es-primary;\n\n &::after {\n content: '\\2713';\n display: flex;\n align-items: center;\n justify-content: center;\n width: 100%;\n height: 100%;\n color: $es-white;\n font-size: 10px;\n }\n }\n\n &.indeterminate {\n background: $es-primary;\n border-color: $es-primary;\n\n &::after {\n content: '\\2212';\n display: flex;\n align-items: center;\n justify-content: center;\n width: 100%;\n height: 100%;\n color: $es-white;\n font-size: 10px;\n }\n }\n }\n\n .category-tree-name {\n flex: 1;\n font-size: $es-font-size-sm;\n color: $es-text-primary;\n @include text-truncate;\n }\n\n .category-tree-count {\n font-size: $es-font-size-xs;\n color: $es-text-muted;\n }\n\n .category-tree-children {\n margin-left: 24px;\n }\n\n // Search history\n .search-history-list {\n padding: $es-spacing-sm;\n }\n\n .history-item {\n display: flex;\n align-items: center;\n gap: $es-spacing-sm;\n padding: $es-spacing-sm;\n border-radius: $es-radius-sm;\n cursor: pointer;\n transition: background-color $es-transition-fast;\n\n &:hover {\n background: $es-bg-hover;\n }\n\n > i {\n color: $es-text-muted;\n font-size: 14px;\n }\n }\n\n .history-query {\n flex: 1;\n font-size: $es-font-size-sm;\n color: $es-text-primary;\n }\n\n .btn-delete-history {\n @include button-reset;\n display: flex;\n align-items: center;\n justify-content: center;\n width: 24px;\n height: 24px;\n color: $es-text-muted;\n border-radius: $es-radius-sm;\n opacity: 0;\n transition: all $es-transition-fast;\n\n .history-item:hover & {\n opacity: 1;\n }\n\n &:hover {\n background: $es-danger-light;\n color: $es-danger;\n }\n\n i {\n font-size: 12px;\n }\n }\n\n // Filter panel\n .filter-panel {\n display: none;\n padding: $es-spacing-md;\n background: $es-slate-50;\n border-bottom: 1px solid $es-border-color;\n\n &.show {\n display: block;\n }\n }\n\n .filter-row {\n display: flex;\n flex-wrap: wrap;\n align-items: center;\n gap: $es-spacing-sm;\n margin-bottom: $es-spacing-sm;\n\n &:last-child {\n margin-bottom: 0;\n }\n }\n\n // View mode select\n .view-mode-select {\n @include input-base;\n padding: 0.25rem 0.5rem;\n font-size: $es-font-size-xs;\n min-width: 80px;\n }\n}\n\n// =============================================================================\n// Global dropdown styles (when appended to body instead of inside wrapper)\n// Duplicates key styles for when dropdown is outside .entity-selector-trait\n// =============================================================================\nbody > .target-search-dropdown,\n.target-search-dropdown {\n @include dropdown-container;\n display: none;\n width: 600px;\n max-width: calc(100vw - 40px);\n\n &.show {\n display: block;\n }\n\n // Dropdown header\n .dropdown-header {\n display: flex;\n align-items: center;\n gap: $es-spacing-sm;\n padding: $es-spacing-md;\n background: $es-bg-header;\n border-bottom: 1px solid $es-border-color;\n border-radius: $es-radius-lg $es-radius-lg 0 0;\n flex-wrap: wrap;\n }\n\n .results-count {\n font-size: $es-font-size-sm;\n font-weight: $es-font-weight-semibold;\n color: $es-text-primary;\n white-space: nowrap;\n }\n\n .dropdown-actions {\n display: flex;\n align-items: center;\n gap: $es-spacing-xs;\n flex-wrap: wrap;\n flex: 1;\n justify-content: flex-end;\n }\n\n .btn-select-all,\n .btn-clear-selection {\n @include button-reset;\n display: inline-flex;\n align-items: center;\n gap: 0.25rem;\n padding: 0.25rem 0.5rem;\n font-size: $es-font-size-xs;\n color: $es-text-secondary;\n background: $es-white;\n border: 1px solid $es-border-color;\n border-radius: $es-radius-sm;\n cursor: pointer;\n transition: all $es-transition-fast;\n\n &:hover {\n background: $es-bg-hover;\n border-color: $es-slate-300;\n }\n\n kbd {\n font-size: 0.65rem;\n padding: 0.125rem 0.25rem;\n background: $es-slate-100;\n border-radius: 2px;\n color: $es-text-muted;\n }\n }\n\n .sort-controls {\n display: flex;\n align-items: center;\n // No gap - elements are connected\n }\n\n .sort-field-select {\n @include input-base;\n padding: 0.25rem 0.5rem;\n font-size: $es-font-size-xs;\n min-width: 80px;\n height: 28px; // Match btn-sort-dir height\n border-radius: $es-radius-sm 0 0 $es-radius-sm;\n border-right: none;\n }\n\n .btn-sort-dir {\n display: flex;\n align-items: center;\n justify-content: center;\n width: 38px;\n min-width: 38px;\n flex-shrink: 0;\n height: 28px;\n padding: 0;\n margin: 0;\n color: $es-text-muted;\n background: $es-white;\n border: 1px solid $es-border-color;\n border-radius: 0 $es-radius-sm $es-radius-sm 0;\n cursor: pointer;\n transition: all $es-transition-fast;\n\n i {\n font-size: 14px;\n }\n\n &:hover {\n background: $es-bg-hover;\n color: $es-text-primary;\n }\n\n &.active {\n background: $es-primary-light;\n border-color: $es-primary;\n color: $es-primary;\n }\n }\n\n .view-mode-select {\n @include input-base;\n padding: 0.25rem 0.5rem;\n font-size: $es-font-size-xs;\n min-width: 80px;\n margin-left: 0.25rem;\n }\n\n .btn-toggle-filters,\n .btn-show-history {\n display: flex;\n align-items: center;\n justify-content: center;\n width: 32px;\n min-width: 32px;\n flex-shrink: 0;\n height: 28px;\n padding: 0;\n margin: 0;\n color: $es-text-muted;\n background: $es-white;\n border: 1px solid $es-border-color;\n border-radius: $es-radius-sm;\n cursor: pointer;\n transition: all $es-transition-fast;\n\n i {\n font-size: 14px;\n }\n\n &:hover {\n background: $es-bg-hover;\n color: $es-text-primary;\n }\n\n &.active {\n background: $es-primary-light;\n border-color: $es-primary;\n color: $es-primary;\n }\n }\n\n .refine-compact {\n display: flex;\n align-items: center;\n // No gap - elements are connected\n\n // Connected to refine-input\n .btn-refine-negate {\n display: flex;\n align-items: center;\n justify-content: center;\n width: 32px;\n min-width: 32px;\n flex-shrink: 0;\n height: 28px;\n padding: 0;\n margin: 0;\n color: $es-text-muted;\n background: $es-white;\n border: 1px solid $es-border-color;\n border-right: none;\n border-radius: $es-radius-sm 0 0 $es-radius-sm;\n cursor: pointer;\n transition: all $es-transition-fast;\n\n &:hover {\n background: $es-bg-hover;\n color: $es-text-primary;\n }\n\n &.active {\n background: $es-danger-light;\n color: $es-danger;\n border-color: $es-danger;\n }\n }\n\n .refine-input {\n @include input-base;\n width: 100px;\n padding: 0.25rem 0.5rem;\n font-size: $es-font-size-xs;\n border-radius: 0 $es-radius-sm $es-radius-sm 0;\n }\n\n .btn-clear-refine {\n display: flex;\n align-items: center;\n justify-content: center;\n width: 28px;\n height: 28px;\n padding: 0;\n margin: 0;\n margin-left: -1px; // Overlap input border when visible\n color: $es-text-muted;\n background: $es-white;\n border: 1px solid $es-border-color;\n border-radius: 0 $es-radius-sm $es-radius-sm 0;\n cursor: pointer;\n transition: all $es-transition-fast;\n\n &:hover {\n background: $es-bg-hover;\n color: $es-text-primary;\n }\n }\n }\n\n // Filter panel\n .filter-panel {\n display: none;\n padding: $es-spacing-md;\n background: $es-slate-50;\n border-bottom: 1px solid $es-border-color;\n\n &.show {\n display: block;\n }\n }\n\n .filter-row {\n display: flex;\n align-items: center;\n gap: $es-spacing-sm;\n flex-wrap: wrap;\n margin-bottom: $es-spacing-sm;\n\n &:last-child {\n margin-bottom: 0;\n }\n }\n\n .filter-label {\n display: inline-flex;\n align-items: center;\n gap: 0.25rem;\n font-size: $es-font-size-xs;\n color: $es-text-secondary;\n cursor: pointer;\n\n input[type=\"checkbox\"] {\n margin: 0;\n }\n }\n\n .filter-price-range {\n display: flex;\n align-items: center;\n gap: 0.25rem;\n\n .filter-price-label {\n font-size: $es-font-size-xs;\n color: $es-text-muted;\n }\n\n .filter-price-min,\n .filter-price-max {\n @include input-base;\n width: 70px;\n padding: 0.25rem 0.5rem;\n font-size: $es-font-size-xs;\n }\n\n .filter-price-sep {\n color: $es-text-muted;\n }\n }\n\n .btn-clear-filters {\n @include button-reset;\n display: flex;\n align-items: center;\n justify-content: center;\n width: 24px;\n height: 24px;\n color: $es-text-muted;\n border-radius: $es-radius-sm;\n cursor: pointer;\n margin-left: auto;\n\n &:hover {\n background: $es-slate-200;\n color: $es-text-primary;\n }\n }\n\n // Multi-row filters\n .filter-row-multi {\n flex-direction: column;\n align-items: stretch;\n gap: $es-spacing-sm;\n }\n\n .filter-subrow {\n display: flex;\n align-items: center;\n gap: $es-spacing-sm;\n flex-wrap: wrap;\n }\n\n .filter-range-group,\n .filter-date-group,\n .filter-select-group {\n display: flex;\n align-items: center;\n gap: 0.25rem;\n }\n\n .filter-range-label,\n .filter-date-label,\n .filter-select-label,\n .filter-row-label {\n font-size: $es-font-size-xs;\n color: $es-text-muted;\n white-space: nowrap;\n\n i {\n margin-right: 0.25rem;\n }\n }\n\n .filter-range-sep {\n color: $es-text-muted;\n }\n\n .filter-product-count-min,\n .filter-product-count-max,\n .filter-sales-min,\n .filter-sales-max,\n .filter-turnover-min,\n .filter-turnover-max,\n .filter-date-add-from,\n .filter-date-add-to,\n .filter-last-product-from,\n .filter-last-product-to {\n @include input-base;\n width: 70px;\n padding: 0.25rem 0.5rem;\n font-size: $es-font-size-xs;\n }\n\n .filter-depth-select,\n .filter-attribute-group-select,\n .filter-feature-group-select {\n @include input-base;\n padding: 0.25rem 0.5rem;\n font-size: $es-font-size-xs;\n min-width: 100px;\n }\n\n .filter-attributes-container,\n .filter-features-container,\n .filter-values-container {\n display: flex;\n flex-wrap: wrap;\n gap: 0.25rem;\n }\n\n // Filter group toggle buttons (attribute/feature groups)\n .filter-group-toggle {\n @include button-reset;\n display: inline-flex;\n align-items: center;\n gap: 0.25rem;\n padding: 0.25rem 0.5rem;\n font-size: $es-font-size-xs;\n color: $es-text-secondary;\n background: $es-white;\n border: 1px solid $es-border-color;\n border-radius: $es-radius-sm;\n cursor: pointer;\n transition: all $es-transition-fast;\n\n &:hover {\n background: $es-bg-hover;\n border-color: $es-slate-300;\n }\n\n &.active {\n background: $es-primary-light;\n border-color: $es-primary;\n color: $es-primary;\n\n .toggle-count {\n color: $es-primary;\n }\n }\n\n &.has-selection {\n border-color: $es-success;\n background: rgba($es-success, 0.05);\n\n .toggle-count {\n color: $es-success;\n font-weight: $es-font-weight-semibold;\n }\n }\n\n .toggle-name {\n font-weight: $es-font-weight-medium;\n }\n\n // Count with eye icon (like group-count-badge)\n .toggle-count {\n display: inline-flex;\n align-items: center;\n gap: 0.125rem;\n color: $es-text-muted;\n font-size: 0.65rem;\n\n i {\n font-size: 10px;\n color: $es-primary;\n }\n\n // Clickable preview badge\n &.clickable {\n cursor: pointer;\n padding: 0.125rem 0.25rem;\n border-radius: $es-radius-sm;\n transition: all $es-transition-fast;\n\n &:hover {\n background: rgba($es-primary, 0.1);\n color: $es-primary;\n\n i {\n color: $es-primary;\n }\n }\n\n &.popover-open {\n background: $es-primary;\n color: $es-white;\n\n i {\n color: $es-white;\n }\n }\n\n &.loading {\n i {\n animation: spin 0.6s linear infinite;\n }\n }\n }\n }\n }\n\n // Filter value chips\n .filter-chip {\n @include button-reset;\n display: inline-flex;\n align-items: center;\n gap: 0.25rem;\n padding: 0.25rem 0.5rem;\n font-size: $es-font-size-xs;\n color: $es-text-secondary;\n background: $es-slate-100;\n border: 1px solid transparent;\n border-radius: $es-radius-sm;\n cursor: pointer;\n transition: all $es-transition-fast;\n\n &:hover {\n background: $es-slate-200;\n }\n\n &.active {\n background: $es-primary;\n color: $es-white;\n }\n }\n\n // Filter attribute chip (specific)\n .filter-attr-chip,\n .filter-feat-chip {\n @extend .filter-chip;\n }\n\n // Filter row for values (expandable)\n .filter-row-values {\n display: flex;\n align-items: center;\n gap: $es-spacing-sm;\n padding: $es-spacing-sm;\n background: $es-white;\n border: 1px solid $es-border-color;\n border-radius: $es-radius-sm;\n\n .filter-values-container {\n display: flex;\n flex-wrap: wrap;\n align-items: center;\n gap: 0.25rem;\n flex: 1;\n }\n\n .filter-values-label {\n font-size: $es-font-size-xs;\n font-weight: $es-font-weight-semibold;\n color: $es-text-secondary;\n white-space: nowrap;\n }\n\n .btn-close-values {\n @include button-reset;\n display: flex;\n align-items: center;\n justify-content: center;\n flex-shrink: 0;\n width: 20px;\n height: 20px;\n color: $es-text-muted;\n border-radius: $es-radius-sm;\n\n &:hover {\n background: $es-slate-200;\n color: $es-text-primary;\n }\n }\n }\n\n // Filter chip name and count\n .chip-name {\n font-weight: $es-font-weight-medium;\n }\n\n .chip-count {\n font-size: 0.6rem;\n color: $es-text-muted;\n margin-left: 0.125rem;\n }\n\n .filter-chip.active .chip-count {\n color: rgba(255, 255, 255, 0.8);\n }\n\n // Dropdown content\n .dropdown-content {\n max-height: 400px;\n overflow-y: auto;\n @include custom-scrollbar;\n }\n\n .dropdown-items {\n display: flex;\n flex-direction: column;\n gap: $es-spacing-xs;\n padding: $es-spacing-sm;\n }\n\n .item-checkbox {\n flex-shrink: 0;\n width: 16px;\n height: 16px;\n border: 2px solid $es-border-dark;\n border-radius: 3px;\n transition: all $es-transition-fast;\n\n .dropdown-item.selected & {\n background: $es-primary;\n border-color: $es-primary;\n }\n }\n\n .item-image {\n flex-shrink: 0;\n width: 40px;\n height: 40px;\n object-fit: cover;\n border-radius: $es-radius-sm;\n background: $es-slate-100;\n }\n\n .item-info {\n flex: 1;\n min-width: 0;\n }\n\n .item-name {\n font-size: $es-font-size-sm;\n font-weight: $es-font-weight-medium;\n color: $es-text-primary;\n @include text-truncate;\n }\n\n .item-meta {\n font-size: $es-font-size-xs;\n color: $es-text-muted;\n @include text-truncate;\n }\n\n // Dropdown footer - unified structure\n .dropdown-footer {\n display: flex;\n align-items: center;\n justify-content: space-between;\n gap: $es-spacing-md;\n padding: $es-spacing-sm $es-spacing-md;\n background: $es-slate-50;\n border-top: 1px solid $es-border-color;\n border-radius: 0 0 $es-radius-lg $es-radius-lg;\n }\n\n .dropdown-footer-left {\n display: flex;\n align-items: center;\n gap: $es-spacing-xs;\n font-size: $es-font-size-xs;\n color: $es-text-muted;\n\n .load-label {\n color: $es-text-muted;\n }\n\n .load-more-select,\n select.load-more-select {\n appearance: none;\n padding: 0.25rem 1.5rem 0.25rem 0.5rem;\n border: 1px solid $es-border-color;\n border-radius: $es-radius-sm;\n background: $es-white url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='8' height='8' viewBox='0 0 8 8'%3E%3Cpath fill='%23666' d='M0 2l4 4 4-4z'/%3E%3C/svg%3E\") no-repeat right 0.4rem center;\n background-size: 8px;\n font-size: $es-font-size-xs;\n color: $es-text-secondary;\n cursor: pointer;\n min-width: 55px;\n\n &:hover {\n border-color: $es-primary;\n }\n\n &:focus {\n outline: none;\n border-color: $es-primary;\n }\n }\n\n .remaining-text {\n color: $es-text-muted;\n\n strong {\n color: $es-text-secondary;\n font-weight: $es-font-weight-semibold;\n }\n }\n }\n\n .dropdown-footer-right {\n display: flex;\n align-items: center;\n gap: $es-spacing-sm;\n }\n\n .dropdown-action-btn {\n @include button-reset;\n display: inline-flex;\n align-items: center;\n gap: 0.375rem;\n padding: 0.375rem 0.75rem;\n font-size: $es-font-size-xs;\n font-weight: $es-font-weight-medium;\n border-radius: $es-radius-sm;\n transition: all $es-transition-fast;\n white-space: nowrap;\n\n .btn-shortcut {\n font-size: 10px;\n padding: 0.125rem 0.25rem;\n background: rgba(0, 0, 0, 0.08);\n border-radius: 3px;\n font-weight: $es-font-weight-normal;\n }\n\n &.btn-cancel {\n color: $es-text-secondary;\n background: $es-white;\n border: 1px solid $es-border-color;\n\n &:hover {\n background: $es-slate-100;\n border-color: $es-border-dark;\n }\n }\n\n &.btn-apply,\n &.btn-save {\n color: $es-white;\n background: $es-primary;\n border: 1px solid $es-primary;\n\n &:hover {\n background: $es-primary-hover;\n border-color: $es-primary-hover;\n }\n\n .btn-shortcut {\n background: rgba(255, 255, 255, 0.2);\n }\n }\n }\n\n .dropdown-footer-info {\n font-size: $es-font-size-xs;\n color: $es-text-muted;\n }\n\n // Legacy button support\n .btn-cancel-dropdown {\n @include button-reset;\n display: inline-flex;\n align-items: center;\n gap: 0.25rem;\n padding: 0.375rem 0.75rem;\n font-size: $es-font-size-sm;\n color: $es-white;\n background: $es-primary;\n border: 1px solid $es-primary;\n border-radius: $es-radius-sm;\n cursor: pointer;\n\n &:hover {\n background: $es-primary-hover;\n border-color: $es-primary-hover;\n }\n\n i {\n font-size: 10px;\n }\n\n kbd {\n font-size: 0.65rem;\n padding: 0.125rem 0.25rem;\n background: rgba(255, 255, 255, 0.2);\n border-radius: 2px;\n color: rgba(255, 255, 255, 0.8);\n }\n }\n\n // Filter chips in dropdown\n .filter-chips-row {\n display: flex;\n flex-wrap: wrap;\n gap: $es-spacing-xs;\n padding: $es-spacing-xs $es-spacing-md;\n border-bottom: 1px solid $es-border-color;\n }\n\n .filter-chip {\n @include chip;\n }\n\n // Empty and loading states\n .dropdown-empty,\n .dropdown-loading {\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n padding: $es-spacing-xl;\n text-align: center;\n color: $es-text-muted;\n font-size: $es-font-size-sm;\n\n i {\n font-size: 2rem;\n opacity: 0.5;\n margin-bottom: $es-spacing-sm;\n }\n }\n\n // Search history panel\n .search-history-panel {\n display: none;\n padding: $es-spacing-sm;\n background: $es-white;\n border-bottom: 1px solid $es-border-color;\n\n &.show {\n display: block;\n }\n }\n\n .history-item {\n display: flex;\n align-items: center;\n gap: $es-spacing-sm;\n padding: $es-spacing-xs $es-spacing-sm;\n border-radius: $es-radius-sm;\n cursor: pointer;\n transition: background $es-transition-fast;\n\n &:hover {\n background: $es-bg-hover;\n }\n\n i {\n color: $es-text-muted;\n font-size: $es-font-size-sm;\n }\n\n span {\n flex: 1;\n font-size: $es-font-size-sm;\n color: $es-text-primary;\n }\n\n .btn-remove-history,\n .btn-delete-history {\n @include button-reset;\n display: flex;\n align-items: center;\n justify-content: center;\n width: 20px;\n height: 20px;\n color: $es-text-muted;\n border-radius: $es-radius-sm;\n transition: all $es-transition-fast;\n\n &:hover {\n background: $es-slate-200;\n color: $es-danger;\n }\n }\n }\n\n // Search history list container\n .search-history-list {\n display: flex;\n flex-direction: column;\n gap: $es-spacing-xs;\n }\n\n // Results header (for list view columns)\n .results-header {\n display: flex;\n align-items: center;\n gap: $es-spacing-sm;\n padding: $es-spacing-xs $es-spacing-md;\n background: $es-slate-100;\n border-bottom: 1px solid $es-border-color;\n font-size: $es-font-size-xs;\n font-weight: $es-font-weight-semibold;\n color: $es-text-secondary;\n\n .header-spacer {\n width: 58px; // checkbox + image width\n flex-shrink: 0;\n }\n\n .header-col {\n flex-shrink: 0;\n width: 70px;\n text-align: right;\n }\n\n .header-col-name {\n flex: 1;\n text-align: left;\n }\n }\n\n // Results container\n .dropdown-results {\n padding: 0 $es-spacing-sm;\n background: $es-white;\n min-height: 200px;\n }\n\n // Dropdown item (search result)\n .dropdown-item {\n position: relative;\n display: flex;\n align-items: center;\n gap: $es-spacing-sm;\n padding: $es-spacing-sm 0;\n background: $es-white;\n border: none;\n border-bottom: 1px solid $es-border-color;\n border-radius: 0;\n cursor: pointer;\n transition: background $es-transition-fast;\n\n &:last-child {\n border-bottom: none;\n }\n\n &:hover {\n background: $es-bg-hover;\n }\n\n &.selected {\n background: $es-primary-light;\n\n .result-checkbox {\n background: $es-primary;\n border-color: $es-primary;\n color: $es-white;\n\n i {\n display: block;\n }\n }\n }\n\n &.disabled {\n opacity: 0.5;\n cursor: not-allowed;\n }\n }\n\n // Checkbox indicator\n .result-checkbox {\n display: flex;\n align-items: center;\n justify-content: center;\n flex-shrink: 0;\n width: 18px;\n height: 18px;\n background: $es-white;\n border: 2px solid $es-border-dark;\n border-radius: 3px;\n transition: all $es-transition-fast;\n\n i {\n display: none;\n font-size: 10px;\n }\n }\n\n // View mode classes (applied to dropdown container) - no gap/padding for shared borders\n &.view-cols-2 .dropdown-results { display: grid; grid-template-columns: repeat(2, 1fr); gap: 0; padding: 0; border-top: 1px solid $es-border-color; border-left: 1px solid $es-border-color; }\n &.view-cols-3 .dropdown-results { display: grid; grid-template-columns: repeat(3, 1fr); gap: 0; padding: 0; border-top: 1px solid $es-border-color; border-left: 1px solid $es-border-color; }\n &.view-cols-4 .dropdown-results { display: grid; grid-template-columns: repeat(4, 1fr); gap: 0; padding: 0; border-top: 1px solid $es-border-color; border-left: 1px solid $es-border-color; }\n &.view-cols-5 .dropdown-results { display: grid; grid-template-columns: repeat(5, 1fr); gap: 0; padding: 0; border-top: 1px solid $es-border-color; border-left: 1px solid $es-border-color; }\n &.view-cols-6 .dropdown-results { display: grid; grid-template-columns: repeat(6, 1fr); gap: 0; padding: 0; border-top: 1px solid $es-border-color; border-left: 1px solid $es-border-color; }\n &.view-cols-7 .dropdown-results { display: grid; grid-template-columns: repeat(7, 1fr); gap: 0; padding: 0; border-top: 1px solid $es-border-color; border-left: 1px solid $es-border-color; }\n &.view-cols-8 .dropdown-results { display: grid; grid-template-columns: repeat(8, 1fr); gap: 0; padding: 0; border-top: 1px solid $es-border-color; border-left: 1px solid $es-border-color; }\n\n // Grid view item styling (compact cards with shared borders)\n &.view-cols-2,\n &.view-cols-3,\n &.view-cols-4,\n &.view-cols-5,\n &.view-cols-6,\n &.view-cols-7,\n &.view-cols-8 {\n .dropdown-item {\n flex-direction: column;\n align-items: center;\n text-align: center;\n padding: $es-spacing-sm;\n border: none;\n border-right: 1px solid $es-border-color;\n border-bottom: 1px solid $es-border-color;\n border-radius: 0;\n\n .result-checkbox {\n position: absolute;\n top: $es-spacing-xs;\n left: $es-spacing-xs;\n }\n\n .result-image,\n .result-icon {\n width: 48px;\n height: 48px;\n margin-bottom: $es-spacing-xs;\n }\n\n .result-info {\n width: 100%;\n }\n\n .result-name {\n font-size: $es-font-size-xs;\n line-height: 1.3;\n display: -webkit-box;\n -webkit-line-clamp: 2;\n -webkit-box-orient: vertical;\n overflow: hidden;\n }\n\n .result-subtitle {\n display: none;\n }\n\n // Show compact product info in grid\n .result-col {\n display: none;\n }\n\n .result-grid-info {\n display: flex;\n flex-wrap: wrap;\n justify-content: center;\n gap: 0.25rem;\n margin-top: $es-spacing-xs;\n font-size: 0.65rem;\n\n .grid-price {\n color: $es-text-primary;\n font-weight: $es-font-weight-semibold;\n }\n\n .grid-stock {\n color: $es-text-muted;\n\n &.stock-out { color: $es-danger; }\n &.stock-low { color: $es-warning; }\n }\n\n .grid-discount {\n color: $es-success;\n font-weight: $es-font-weight-medium;\n }\n }\n }\n\n // Hide results header in grid views\n .results-header {\n display: none;\n }\n }\n\n // Remove right border from last item in each row (per column count)\n &.view-cols-2 .dropdown-results .dropdown-item:nth-child(2n) { border-right: none; }\n &.view-cols-3 .dropdown-results .dropdown-item:nth-child(3n) { border-right: none; }\n &.view-cols-4 .dropdown-results .dropdown-item:nth-child(4n) { border-right: none; }\n &.view-cols-5 .dropdown-results .dropdown-item:nth-child(5n) { border-right: none; }\n &.view-cols-6 .dropdown-results .dropdown-item:nth-child(6n) { border-right: none; }\n &.view-cols-7 .dropdown-results .dropdown-item:nth-child(7n) { border-right: none; }\n &.view-cols-8 .dropdown-results .dropdown-item:nth-child(8n) { border-right: none; }\n\n // Smaller items for higher column counts\n &.view-cols-5,\n &.view-cols-6,\n &.view-cols-7,\n &.view-cols-8 {\n .dropdown-item {\n .result-image,\n .result-icon {\n width: 40px;\n height: 40px;\n }\n\n .result-name {\n font-size: 0.65rem;\n }\n }\n }\n\n // Product-specific result item\n .result-item-product {\n display: flex;\n align-items: center;\n gap: $es-spacing-sm;\n flex: 1;\n min-width: 0;\n }\n\n .result-item-image,\n .result-image {\n flex-shrink: 0;\n width: 40px;\n height: 40px;\n overflow: hidden;\n border-radius: $es-radius-sm;\n background: $es-slate-100;\n\n img {\n width: 100%;\n height: 100%;\n object-fit: cover;\n }\n }\n\n .result-icon {\n display: flex;\n align-items: center;\n justify-content: center;\n flex-shrink: 0;\n width: 40px;\n height: 40px;\n background: $es-slate-100;\n border-radius: $es-radius-sm;\n color: $es-text-muted;\n\n i {\n font-size: 16px;\n }\n }\n\n .result-item-info,\n .result-info {\n flex: 1;\n min-width: 0;\n }\n\n .result-item-name,\n .result-name {\n font-size: $es-font-size-sm;\n font-weight: $es-font-weight-medium;\n color: $es-text-primary;\n @include text-truncate;\n }\n\n .result-item-meta,\n .result-subtitle {\n font-size: $es-font-size-xs;\n color: $es-text-muted;\n }\n\n .subtitle-line {\n @include text-truncate;\n }\n\n .subtitle-line-primary {\n color: $es-text-secondary;\n }\n\n .subtitle-line-secondary {\n color: $es-text-muted;\n font-size: 11px;\n }\n\n // Result columns (for product list view)\n .result-col {\n flex-shrink: 0;\n width: 70px;\n text-align: right;\n font-size: $es-font-size-xs;\n }\n\n .result-col-price {\n color: $es-text-secondary;\n }\n\n .result-col-sale {\n color: $es-danger;\n font-weight: $es-font-weight-semibold;\n }\n\n .result-col-stock {\n .col-value {\n &.stock-ok {\n color: $es-success;\n }\n\n &.stock-low {\n color: $es-warning;\n }\n\n &.stock-out {\n color: $es-danger;\n }\n }\n }\n\n .result-col-sales {\n color: $es-text-muted;\n }\n\n .col-value {\n display: block;\n }\n\n // Result checkbox\n .result-item-checkbox,\n .result-checkbox {\n display: flex;\n align-items: center;\n justify-content: center;\n flex-shrink: 0;\n width: 18px;\n height: 18px;\n border: 2px solid $es-border-dark;\n border-radius: $es-radius-sm;\n transition: all $es-transition-fast;\n\n i {\n display: none;\n font-size: 10px;\n color: $es-white;\n }\n\n .dropdown-result-item.selected &,\n .dropdown-item.selected & {\n background: $es-primary;\n border-color: $es-primary;\n\n i {\n display: block;\n }\n }\n }\n\n // No results state\n .no-results {\n display: flex;\n align-items: center;\n justify-content: center;\n gap: $es-spacing-sm;\n padding: $es-spacing-xl;\n color: $es-text-muted;\n font-size: $es-font-size-sm;\n\n i {\n font-size: 1.25rem;\n opacity: 0.5;\n }\n }\n\n // Load more controls\n .load-more-controls {\n display: flex;\n align-items: center;\n justify-content: center;\n gap: $es-spacing-sm;\n padding: $es-spacing-sm $es-spacing-md;\n font-size: $es-font-size-xs;\n color: $es-text-muted;\n\n .load-more-label,\n .load-more-of {\n white-space: nowrap;\n }\n\n .remaining-count {\n font-weight: $es-font-weight-semibold;\n color: $es-text-secondary;\n }\n\n .load-more-select {\n @include input-base;\n padding: 0.25rem 0.5rem;\n font-size: $es-font-size-xs;\n min-width: 60px;\n }\n\n .btn-load-more {\n display: flex;\n align-items: center;\n justify-content: center;\n padding: $es-spacing-xs;\n margin: 0;\n border: none;\n color: $es-primary;\n background: $es-primary-light !important;\n border-radius: $es-radius-sm;\n cursor: pointer;\n transition: all $es-transition-fast;\n font: inherit;\n\n i {\n font-size: 14px;\n }\n\n &:hover {\n background: rgba($es-primary, 0.2) !important;\n }\n }\n }\n\n // Load more button\n .dropdown-load-more {\n display: flex;\n justify-content: center;\n padding: $es-spacing-md;\n border-top: 1px solid $es-border-color;\n\n .load-more-btn {\n @include button-reset;\n display: inline-flex;\n align-items: center;\n gap: $es-spacing-xs;\n padding: $es-spacing-sm $es-spacing-md;\n font-size: $es-font-size-sm;\n font-weight: $es-font-weight-medium;\n color: $es-primary;\n background: $es-primary-light;\n border-radius: $es-radius-md;\n transition: all $es-transition-fast;\n\n &:hover {\n background: rgba($es-primary, 0.2);\n }\n\n &.loading {\n opacity: 0.7;\n cursor: wait;\n }\n }\n }\n\n // Dropdown body\n .dropdown-body {\n max-height: 400px;\n overflow-y: auto;\n @include custom-scrollbar;\n }\n\n // Tree view styles (for categories)\n .tree-container {\n padding: $es-spacing-sm;\n }\n\n .tree-loading {\n display: flex;\n align-items: center;\n justify-content: center;\n gap: $es-spacing-sm;\n padding: $es-spacing-xl;\n color: $es-text-muted;\n font-size: $es-font-size-sm;\n\n i {\n animation: spin 0.6s linear infinite;\n }\n }\n\n .tree-item {\n display: flex;\n align-items: center;\n gap: $es-spacing-xs;\n padding: 0.375rem $es-spacing-sm;\n border-radius: $es-radius-sm;\n cursor: pointer;\n transition: background-color $es-transition-fast;\n\n &:hover {\n background: $es-bg-hover;\n }\n\n &.selected {\n background: $es-primary-light;\n\n .tree-checkbox {\n background: $es-primary;\n border-color: $es-primary;\n\n i {\n display: block;\n }\n }\n }\n }\n\n // tree-toggle, btn-select-children, tree-checkbox, tree-icon styles in _tree.scss\n\n .tree-info {\n display: flex;\n align-items: center;\n gap: $es-spacing-xs;\n flex: 1;\n min-width: 0;\n }\n\n .tree-name {\n font-size: $es-font-size-sm;\n color: $es-text-primary;\n @include text-truncate;\n }\n\n .tree-subtitle {\n font-size: $es-font-size-xs;\n color: $es-text-muted;\n }\n}\n\n// ============================================================================\n// Standalone dropdown styles (for when dropdown is appended to body)\n// These selectors work because .target-search-dropdown is on the dropdown itself\n// ============================================================================\n\n.target-search-dropdown {\n // Results container - scrollable\n .dropdown-results {\n max-height: 400px;\n overflow-y: auto;\n padding: 0 $es-spacing-sm;\n @include custom-scrollbar;\n }\n\n // Results header (for list view columns)\n .results-header {\n display: flex;\n align-items: center;\n gap: $es-spacing-sm;\n padding: $es-spacing-xs $es-spacing-md;\n background: $es-slate-100;\n border-bottom: 1px solid $es-border-color;\n font-size: $es-font-size-xs;\n font-weight: $es-font-weight-semibold;\n color: $es-text-secondary;\n\n .header-spacer {\n width: 58px; // checkbox + image width\n flex-shrink: 0;\n }\n\n .header-col {\n flex-shrink: 0;\n width: 70px;\n text-align: right;\n }\n\n .header-col-name {\n flex: 1;\n text-align: left;\n }\n }\n\n // Hide results-header by default, show only for products in list view\n &:not(.view-list) .results-header,\n &.view-tree .results-header {\n display: none;\n }\n\n // Result item for products\n .result-item-product {\n display: flex;\n align-items: center;\n gap: $es-spacing-sm;\n flex: 1;\n min-width: 0;\n }\n\n // Result columns for product data\n .result-col {\n flex-shrink: 0;\n width: 70px;\n text-align: right;\n font-size: $es-font-size-xs;\n }\n\n .result-col-price {\n color: $es-text-secondary;\n }\n\n .result-col-sale {\n color: $es-danger;\n font-weight: $es-font-weight-semibold;\n }\n\n .result-col-stock {\n .col-value {\n &.stock-ok { color: $es-success; }\n &.stock-low { color: $es-warning; }\n &.stock-out { color: $es-danger; }\n }\n }\n\n .result-col-sales {\n color: $es-text-muted;\n }\n\n // Dropdown item styling\n .dropdown-item {\n display: flex;\n align-items: center;\n gap: $es-spacing-sm;\n padding: 0;\n border: none;\n border-bottom: 1px solid $es-border-color;\n border-radius: 0;\n cursor: pointer;\n transition: background-color $es-transition-fast;\n\n &:last-child {\n border-bottom: none;\n }\n\n &:hover {\n background: $es-bg-hover;\n }\n\n &.selected {\n background: $es-primary-light;\n }\n }\n\n // Result checkbox styling\n .result-checkbox {\n flex-shrink: 0;\n display: flex;\n align-items: center;\n justify-content: center;\n width: 18px;\n height: 18px;\n border: 2px solid $es-border-dark;\n border-radius: 3px;\n transition: all $es-transition-fast;\n\n i {\n font-size: 10px;\n color: transparent;\n }\n\n .dropdown-item.selected & {\n background: $es-primary;\n border-color: $es-primary;\n\n i {\n color: $es-white;\n }\n }\n }\n\n // Result image\n .result-image {\n flex-shrink: 0;\n width: 40px;\n height: 40px;\n overflow: hidden;\n border-radius: $es-radius-sm;\n background: $es-slate-100;\n\n img {\n width: 100%;\n height: 100%;\n object-fit: cover;\n }\n }\n\n // Result icon (for non-image entities)\n .result-icon {\n flex-shrink: 0;\n display: flex;\n align-items: center;\n justify-content: center;\n width: 40px;\n height: 40px;\n background: $es-slate-100;\n border-radius: $es-radius-sm;\n\n i {\n font-size: 16px;\n color: $es-text-muted;\n }\n }\n\n // Result info container\n .result-info {\n flex: 1;\n min-width: 0;\n }\n\n .result-name {\n font-size: $es-font-size-sm;\n font-weight: $es-font-weight-medium;\n color: $es-text-primary;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n }\n\n .result-subtitle {\n font-size: $es-font-size-xs;\n color: $es-text-muted;\n }\n\n .subtitle-line {\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n }\n\n .subtitle-line-primary {\n color: $es-text-secondary;\n }\n\n .subtitle-line-secondary {\n color: $es-text-muted;\n font-size: 11px;\n }\n\n // Hide columns in grid/tree views\n &[class*=\"view-cols-\"] .result-col,\n &.view-tree .result-col {\n display: none;\n }\n\n // Entity search box - full width\n .entity-search-box {\n display: flex;\n align-items: center;\n gap: $es-spacing-sm;\n width: 100%;\n padding: $es-spacing-sm $es-spacing-md;\n background: $es-white;\n border: none;\n border-bottom: 1px solid $es-border-color;\n border-radius: 0;\n\n .entity-search-icon {\n color: $es-text-muted;\n flex-shrink: 0;\n margin-left: $es-spacing-xs;\n }\n\n // Override Bootstrap/parent form input styles\n input.entity-search-input,\n input.entity-search-input[type=\"text\"] {\n flex: 1;\n min-width: 0;\n width: auto !important;\n max-width: none !important;\n height: auto;\n padding: 0;\n margin: 0;\n border: none !important;\n outline: none;\n background: transparent !important;\n font-size: $es-font-size-sm;\n color: $es-text-primary;\n box-shadow: none !important;\n\n &::placeholder {\n color: $es-text-muted;\n }\n\n &:focus {\n border: none !important;\n box-shadow: none !important;\n outline: none;\n }\n }\n\n .search-loading {\n color: $es-text-muted;\n }\n }\n}\n\n// Body-level dropdown (when appended to body for z-index)\nbody > .target-search-dropdown {\n // Override dropdown-item border when inside body-appended dropdown\n .dropdown-item {\n border: none;\n border-radius: 0;\n\n &:not(:last-child) {\n border-bottom: 1px solid $es-border-color;\n }\n }\n}\n\n@keyframes spin {\n from {\n transform: rotate(0deg);\n }\n to {\n transform: rotate(360deg);\n }\n}\n","/**\n * Chips Component\n * Entity chips, selection pills, tags\n */\n\n@use '../variables' as *;\n@use '../mixins' as *;\n\n.target-conditions-trait,\n.entity-selector-trait {\n\n // Chips container wrapper with toolbar\n .chips-wrapper {\n display: flex;\n flex-direction: column;\n margin-top: $es-spacing-sm;\n background: $es-slate-50;\n border: 1px solid $es-border-color;\n border-radius: $es-radius-md;\n overflow: hidden;\n }\n\n // Chips toolbar - integrated filter bar inside chips area\n .chips-toolbar {\n display: none;\n align-items: center;\n flex-wrap: nowrap;\n gap: $es-spacing-sm;\n padding: $es-spacing-sm $es-spacing-md;\n padding-bottom: 0;\n background: transparent;\n\n &.has-chips {\n display: flex;\n }\n\n // Filter input - takes available space, icon embedded as background\n // Using [type=\"text\"] for specificity over .bootstrap input[type=\"text\"]\n input[type=\"text\"].chips-search-input {\n all: unset;\n display: block;\n flex: 1 1 auto;\n min-width: 80px;\n width: auto;\n height: auto;\n padding: 0.2rem 0.5rem 0.2rem 1.5rem;\n background: $es-white url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='10' viewBox='0 0 24 24' fill='none' stroke='%2394a3b8' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='11' cy='11' r='8'/%3E%3Cpath d='m21 21-4.35-4.35'/%3E%3C/svg%3E\") no-repeat 0.375rem center;\n background-size: 10px;\n border: 1px solid $es-slate-300;\n border-radius: $es-radius-sm;\n font-size: 11px;\n line-height: 1.4;\n color: $es-text-primary;\n box-sizing: border-box;\n transition: all $es-transition-fast;\n\n &::placeholder {\n color: $es-text-muted;\n font-size: 11px;\n }\n\n &:focus {\n outline: none;\n border-color: $es-primary;\n box-shadow: 0 0 0 2px rgba($es-primary, 0.1);\n }\n }\n\n // Sort dropdown - compact, auto width\n select.chips-sort-select {\n all: unset;\n flex: 0 0 auto;\n padding: 0.2rem 1.25rem 0.2rem 0.5rem;\n border: 1px solid $es-border-color;\n border-radius: $es-radius-sm;\n background: $es-white url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='8' height='8' viewBox='0 0 8 8'%3E%3Cpath fill='%23666' d='M0 2l4 4 4-4z'/%3E%3C/svg%3E\") no-repeat right 0.375rem center;\n background-size: 8px;\n font-size: 10px;\n line-height: 1.4;\n color: $es-text-secondary;\n cursor: pointer;\n box-sizing: border-box;\n white-space: nowrap;\n\n &:hover {\n border-color: $es-primary;\n }\n\n &:focus {\n outline: none;\n border-color: $es-primary;\n box-shadow: 0 0 0 2px rgba($es-primary, 0.1);\n }\n }\n }\n\n // Count badge - smaller, pill style\n .chips-count {\n display: inline-flex;\n align-items: center;\n flex-shrink: 0; // Don't shrink\n gap: 0.125rem;\n padding: 0.2rem 0.5rem;\n background: $es-slate-200;\n color: $es-text-secondary;\n font-size: 10px;\n font-weight: $es-font-weight-semibold;\n border-radius: $es-radius-sm;\n white-space: nowrap;\n line-height: 1.4;\n\n &.has-filter {\n background: $es-cyan-100;\n color: $es-cyan-700;\n }\n\n .count-filtered {\n font-weight: $es-font-weight-bold;\n }\n\n .count-separator {\n opacity: 0.6;\n margin: 0 0.125rem;\n }\n }\n\n .chips-actions {\n display: flex;\n align-items: center;\n gap: $es-spacing-xs;\n margin-left: auto;\n }\n\n // Clear button - subtle, chip-like\n .btn-chips-clear {\n @include button-reset;\n display: inline-flex;\n align-items: center;\n flex-shrink: 0; // Don't shrink\n gap: 0.25rem;\n padding: 0.2rem 0.5rem;\n color: $es-danger;\n font-size: 10px;\n font-weight: $es-font-weight-medium;\n background: rgba($es-danger, 0.1);\n border-radius: $es-radius-sm;\n transition: all $es-transition-fast;\n white-space: nowrap; // Prevent text wrapping\n line-height: 1.4;\n\n &:hover {\n background: $es-danger;\n color: $es-white;\n }\n\n i {\n font-size: 9px;\n flex-shrink: 0;\n }\n\n .clear-text {\n // Hide text on small screens, keep icon\n @media (max-width: 480px) {\n display: none;\n }\n }\n }\n\n // Chips container - flows naturally from toolbar\n .entity-chips {\n display: flex;\n flex-wrap: wrap;\n gap: $es-spacing-xs;\n padding: $es-spacing-sm $es-spacing-md $es-spacing-md;\n min-height: 40px;\n max-height: 300px;\n overflow-y: auto;\n\n &:empty {\n display: none;\n }\n }\n\n // Load more section with select dropdown\n .chips-load-more {\n display: flex;\n align-items: center;\n justify-content: center;\n gap: $es-spacing-sm;\n padding: $es-spacing-sm $es-spacing-md;\n background: transparent;\n border-top: 1px dashed $es-border-color;\n\n .load-more-label {\n font-size: $es-font-size-xs;\n color: $es-text-muted;\n }\n\n .load-more-select,\n select.load-more-select {\n appearance: none;\n padding: 0.25rem 1.75rem 0.25rem 0.5rem !important;\n border: 1px solid $es-border-color !important;\n border-radius: $es-radius-sm !important;\n background: $es-white url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='8' height='8' viewBox='0 0 8 8'%3E%3Cpath fill='%23666' d='M0 2l4 4 4-4z'/%3E%3C/svg%3E\") no-repeat right 0.5rem center !important;\n background-size: 8px !important;\n font-size: $es-font-size-xs !important;\n font-weight: $es-font-weight-medium;\n color: $es-primary;\n cursor: pointer;\n transition: all $es-transition-fast;\n height: auto !important;\n min-height: 0 !important;\n line-height: 1.3 !important;\n\n &:hover {\n border-color: $es-primary !important;\n background-color: $es-primary-light !important;\n }\n\n &:focus {\n outline: none !important;\n border-color: $es-primary !important;\n box-shadow: 0 0 0 2px rgba($es-primary, 0.1) !important;\n }\n }\n\n .load-more-remaining {\n font-size: $es-font-size-xs;\n color: $es-text-muted;\n }\n }\n\n // Individual chip\n .entity-chip {\n display: inline-flex;\n align-items: center;\n gap: 0.375rem;\n padding: 0.25rem 0.5rem;\n background: $es-slate-100;\n color: $es-text-secondary;\n font-size: $es-font-size-xs;\n font-weight: $es-font-weight-medium;\n border-radius: $es-radius-full;\n transition: all $es-transition-fast;\n\n &:hover {\n background: $es-slate-200;\n }\n\n // Chip with image\n &.has-image {\n padding-left: 0.25rem;\n }\n\n // Hidden by search filter or pagination\n &.chip-filtered-out,\n &.chip-paginated-out {\n display: none;\n }\n }\n\n .chip-image {\n width: 20px;\n height: 20px;\n object-fit: cover;\n border-radius: 50%;\n flex-shrink: 0;\n }\n\n .chip-icon {\n display: flex;\n align-items: center;\n justify-content: center;\n font-size: 12px;\n color: $es-text-muted;\n flex-shrink: 0;\n\n // Product/entity images inside chip\n img {\n width: 20px;\n height: 20px;\n object-fit: cover;\n border-radius: $es-radius-sm;\n }\n }\n\n .chip-text,\n .chip-name {\n // Show full name, no truncation\n word-break: break-word;\n }\n\n .chip-remove {\n @include button-reset;\n display: flex;\n align-items: center;\n justify-content: center;\n width: 16px;\n height: 16px;\n margin-left: 0.125rem;\n color: $es-text-muted;\n border-radius: 50%;\n flex-shrink: 0;\n transition: all $es-transition-fast;\n\n &:hover {\n background: rgba(0, 0, 0, 0.1);\n color: $es-danger;\n }\n\n i {\n font-size: 10px;\n }\n }\n\n // Chip variants\n .entity-chip.chip-primary {\n background: $es-primary-light;\n color: $es-primary;\n\n &:hover {\n background: rgba($es-primary, 0.2);\n }\n }\n\n .entity-chip.chip-success {\n background: $es-success-light;\n color: $es-success-dark;\n\n &:hover {\n background: rgba($es-success, 0.2);\n }\n }\n\n .entity-chip.chip-danger {\n background: $es-danger-light;\n color: $es-danger;\n\n &:hover {\n background: rgba($es-danger, 0.2);\n }\n }\n\n .entity-chip.chip-warning {\n background: $es-warning-light;\n color: darken($es-warning, 20%);\n\n &:hover {\n background: rgba($es-warning, 0.3);\n }\n }\n\n // Chip loading state\n .entity-chip.loading,\n .entity-chip-loading {\n opacity: 0.7;\n\n .chip-remove {\n display: none;\n }\n\n .chip-icon i {\n animation: spin 0.6s linear infinite;\n }\n }\n\n // Hidden chip (collapsed view)\n .entity-chip.chip-hidden {\n display: none;\n }\n\n // Chips expanded/collapsed states\n .entity-chips.chips-collapsed,\n .entity-chips.chips-expanded {\n position: relative;\n }\n\n // Show more/less toggle\n .chips-show-more-toggle {\n display: inline-flex;\n align-items: center;\n gap: 0.25rem;\n padding: 0.25rem 0.5rem;\n color: $es-primary;\n font-size: $es-font-size-xs;\n font-weight: $es-font-weight-medium;\n cursor: pointer;\n transition: color $es-transition-fast;\n\n &:hover {\n color: $es-primary-hover;\n }\n\n i {\n font-size: 10px;\n }\n }\n\n .chips-collapse-toggle,\n .chips-expand-toggle {\n // Specific variants inherit from .chips-show-more-toggle\n }\n\n // More chips indicator\n .chips-more {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n padding: 0.25rem 0.5rem;\n background: $es-slate-200;\n color: $es-text-secondary;\n font-size: $es-font-size-xs;\n font-weight: $es-font-weight-semibold;\n border-radius: $es-radius-full;\n cursor: pointer;\n transition: all $es-transition-fast;\n\n &:hover {\n background: $es-slate-300;\n }\n }\n\n // Add chip button\n .chip-add-btn {\n @include button-reset;\n display: inline-flex;\n align-items: center;\n gap: 0.25rem;\n padding: 0.25rem 0.5rem;\n background: transparent;\n color: $es-primary;\n font-size: $es-font-size-xs;\n font-weight: $es-font-weight-medium;\n border: 1px dashed $es-primary;\n border-radius: $es-radius-full;\n transition: all $es-transition-fast;\n\n &:hover {\n background: $es-primary-light;\n }\n\n i {\n font-size: 10px;\n }\n }\n\n // Inline chips (compact mode)\n .entity-chips.inline {\n display: inline-flex;\n padding: 0;\n min-height: auto;\n\n .entity-chip {\n padding: 0.125rem 0.375rem;\n font-size: 11px;\n }\n }\n\n // Selected chips section in include/exclude\n .selected-chips-container {\n display: flex;\n flex-direction: column;\n gap: $es-spacing-xs;\n }\n\n .selected-chips-label {\n font-size: $es-font-size-xs;\n font-weight: $es-font-weight-medium;\n color: $es-text-muted;\n }\n\n // Pattern chips (for name/reference patterns)\n .entity-chip.chip-pattern {\n background: #fef3c7;\n color: #92400e;\n font-family: monospace;\n\n &:hover {\n background: #fde68a;\n }\n\n .chip-icon {\n color: #d97706;\n }\n }\n\n // Range chips (price, quantity, etc.)\n .entity-chip.chip-range,\n .range-chip {\n display: inline-flex;\n align-items: center;\n gap: 0.375rem;\n padding: 0.25rem 0.5rem;\n background: $es-cyan-50;\n color: $es-cyan-600;\n font-size: $es-font-size-xs;\n font-weight: $es-font-weight-medium;\n border-radius: $es-radius-full;\n transition: all $es-transition-fast;\n\n &:hover {\n background: $es-cyan-100;\n }\n }\n\n .range-chip-text {\n font-family: monospace;\n }\n\n .btn-remove-range {\n @include button-reset;\n display: flex;\n align-items: center;\n justify-content: center;\n width: 16px;\n height: 16px;\n color: $es-cyan-600;\n border-radius: 50%;\n transition: all $es-transition-fast;\n\n &:hover {\n background: rgba(0, 0, 0, 0.1);\n color: $es-danger;\n }\n\n i {\n font-size: 10px;\n }\n }\n\n // Multi-range chips container\n .multi-range-chips {\n display: flex;\n flex-wrap: wrap;\n gap: $es-spacing-xs;\n margin-bottom: $es-spacing-xs;\n\n &:empty {\n display: none;\n }\n }\n\n // Pattern chips container\n .pattern-chips {\n display: flex;\n flex-wrap: wrap;\n gap: $es-spacing-xs;\n padding: $es-spacing-sm 0;\n min-height: 32px;\n\n &:empty::before {\n content: attr(data-placeholder);\n color: $es-text-muted;\n font-size: $es-font-size-xs;\n font-style: italic;\n }\n }\n\n // Pattern tag\n .pattern-tag {\n display: inline-flex;\n align-items: center;\n gap: 0.25rem;\n padding: 0.25rem 0.5rem;\n background: #fef3c7;\n color: #92400e;\n font-size: $es-font-size-xs;\n font-weight: $es-font-weight-medium;\n border-radius: $es-radius-sm;\n transition: all $es-transition-fast;\n\n &:hover {\n background: #fde68a;\n }\n\n &.case-sensitive {\n .case-icon {\n color: $es-success;\n font-weight: $es-font-weight-bold;\n }\n }\n\n &.draft-tag {\n background: $es-white;\n border: 1px solid $es-border-color;\n padding: 0;\n flex: 1;\n min-width: 150px;\n\n &:hover {\n background: $es-white;\n }\n\n .pattern-input {\n flex: 1;\n min-width: 100px;\n padding: 0.375rem;\n border: 0;\n background: transparent;\n font-size: $es-font-size-sm;\n font-family: inherit;\n\n &:focus {\n outline: none;\n }\n\n &::placeholder {\n color: $es-text-muted;\n font-style: italic;\n }\n }\n }\n }\n\n .pattern-tag-text {\n font-family: monospace;\n max-width: 200px;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n }\n\n .btn-toggle-case {\n @include button-reset;\n display: flex;\n align-items: center;\n justify-content: center;\n width: 24px;\n height: 24px;\n color: $es-text-muted;\n border-radius: $es-radius-sm;\n transition: all $es-transition-fast;\n\n &:hover {\n background: rgba(0, 0, 0, 0.1);\n }\n }\n\n .case-icon {\n font-size: 11px;\n font-weight: $es-font-weight-semibold;\n font-family: monospace;\n }\n\n .btn-remove-pattern {\n @include button-reset;\n display: flex;\n align-items: center;\n justify-content: center;\n width: 18px;\n height: 18px;\n color: #d97706;\n border-radius: $es-radius-sm;\n transition: all $es-transition-fast;\n\n &:hover {\n background: rgba(0, 0, 0, 0.1);\n color: $es-danger;\n }\n\n i {\n font-size: 10px;\n }\n }\n\n .btn-add-pattern {\n @include button-reset;\n display: flex;\n align-items: center;\n justify-content: center;\n width: 28px;\n height: 28px;\n color: $es-primary;\n border-radius: $es-radius-sm;\n transition: all $es-transition-fast;\n\n &:hover {\n background: $es-primary-light;\n }\n\n i {\n font-size: 12px;\n }\n }\n\n // Pattern match count (in draft tag)\n .pattern-match-count {\n display: inline-flex;\n align-items: center;\n gap: 0.25rem;\n padding: 0 0.375rem;\n color: $es-text-muted;\n font-size: $es-font-size-xs;\n cursor: pointer;\n\n &.count-zero {\n color: $es-warning;\n }\n\n &.count-found {\n color: $es-success;\n }\n\n .count-value {\n font-weight: $es-font-weight-semibold;\n }\n }\n\n // Pattern input row\n .pattern-input-row {\n display: flex;\n align-items: stretch;\n gap: $es-spacing-xs;\n }\n}\n\n// Bootstrap specificity overrides for chips toolbar form elements\n// PrestaShop admin uses #content .mpr-config-form... with high specificity\n// We need to match or exceed that specificity\n#content.bootstrap,\n#content .bootstrap,\n.bootstrap #content {\n .target-conditions-trait,\n .entity-selector-trait {\n .chips-wrapper .chips-toolbar {\n // Double class for extra specificity\n input[type=\"text\"].chips-search-input.chips-search-input {\n all: unset;\n display: block;\n flex: 1 1 auto;\n min-width: 80px;\n width: auto;\n height: auto;\n padding: 0.2rem 0.5rem 0.2rem 1.5rem;\n background: $es-white url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='10' viewBox='0 0 24 24' fill='none' stroke='%2394a3b8' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='11' cy='11' r='8'/%3E%3Cpath d='m21 21-4.35-4.35'/%3E%3C/svg%3E\") no-repeat 0.375rem center;\n background-size: 10px;\n border: 1px solid $es-slate-300;\n border-radius: $es-radius-sm;\n font-size: 11px;\n line-height: 1.4;\n color: $es-text-primary;\n box-sizing: border-box;\n transition: all $es-transition-fast;\n\n &::placeholder {\n color: $es-text-muted;\n font-size: 11px;\n }\n\n &:focus {\n outline: none;\n border-color: $es-primary;\n box-shadow: 0 0 0 2px rgba($es-primary, 0.1);\n }\n }\n\n // Double class for extra specificity\n select.chips-sort-select.chips-sort-select {\n all: unset;\n flex: 0 0 auto;\n padding: 0.2rem 1.25rem 0.2rem 0.5rem;\n border: 1px solid $es-border-color;\n border-radius: $es-radius-sm;\n background: $es-white url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='8' height='8' viewBox='0 0 8 8'%3E%3Cpath fill='%23666' d='M0 2l4 4 4-4z'/%3E%3C/svg%3E\") no-repeat right 0.375rem center;\n background-size: 8px;\n font-size: 10px;\n line-height: 1.4;\n color: $es-text-secondary;\n cursor: pointer;\n box-sizing: border-box;\n white-space: nowrap;\n height: auto;\n\n &:hover {\n border-color: $es-primary;\n }\n\n &:focus {\n outline: none;\n border-color: $es-primary;\n box-shadow: 0 0 0 2px rgba($es-primary, 0.1);\n }\n }\n }\n }\n}\n","/**\n * Groups Component\n * Selection groups, include/exclude sections, method selectors\n */\n\n@use '../variables' as *;\n@use '../mixins' as *;\n\n.target-conditions-trait,\n.entity-selector-trait {\n\n // Group container\n .target-group {\n background: $es-white;\n border: 1px solid $es-border-color;\n border-radius: $es-radius-lg;\n overflow: hidden;\n }\n\n // Group header\n .target-group-header {\n display: flex;\n align-items: center;\n justify-content: space-between;\n gap: $es-spacing-md;\n padding: $es-spacing-sm $es-spacing-md;\n background: $es-bg-header;\n border-bottom: 1px solid $es-border-color;\n }\n\n .target-group-title {\n display: flex;\n align-items: center;\n gap: $es-spacing-sm;\n font-size: $es-font-size-sm;\n font-weight: $es-font-weight-semibold;\n color: $es-text-primary;\n\n .group-number {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n min-width: 20px;\n height: 20px;\n padding: 0 0.25rem;\n background: $es-primary;\n color: $es-white;\n font-size: $es-font-size-xs;\n font-weight: $es-font-weight-bold;\n border-radius: $es-radius-full;\n }\n }\n\n .target-group-actions {\n display: flex;\n align-items: center;\n gap: $es-spacing-xs;\n }\n\n .group-action-btn {\n @include button-reset;\n display: flex;\n align-items: center;\n justify-content: center;\n width: 28px;\n height: 28px;\n color: $es-text-muted;\n border-radius: $es-radius-sm;\n transition: all $es-transition-fast;\n\n &:hover {\n background: $es-slate-200;\n color: $es-text-secondary;\n }\n\n &.danger:hover {\n background: $es-danger-light;\n color: $es-danger;\n }\n }\n\n // Group body\n .target-group-body,\n .group-body {\n padding: $es-spacing-md;\n }\n\n // Include section\n .include-section {\n margin-bottom: $es-spacing-md;\n }\n\n .section-label {\n display: flex;\n align-items: center;\n gap: $es-spacing-xs;\n margin-bottom: $es-spacing-sm;\n font-size: $es-font-size-xs;\n font-weight: $es-font-weight-semibold;\n text-transform: uppercase;\n letter-spacing: 0.05em;\n\n &.label-include {\n color: $es-success-dark;\n\n i {\n color: $es-success;\n }\n }\n\n &.label-exclude {\n color: $es-danger;\n\n i {\n color: $es-danger;\n }\n }\n }\n\n // Method selector\n .method-selector {\n display: flex;\n align-items: center;\n gap: $es-spacing-sm;\n margin-bottom: $es-spacing-sm;\n }\n\n .method-selector-wrapper {\n flex: 1;\n position: relative;\n }\n\n .method-select {\n @include input-base;\n padding-right: 2rem;\n cursor: pointer;\n appearance: none;\n background-image: url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 20 20'%3E%3Cpath stroke='%236b7280' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' d='m6 8 4 4 4-4'/%3E%3C/svg%3E\");\n background-position: right 0.5rem center;\n background-repeat: no-repeat;\n background-size: 1.5em 1.5em;\n }\n\n .method-help-btn {\n @include button-reset;\n display: flex;\n align-items: center;\n justify-content: center;\n width: 28px;\n height: 28px;\n color: $es-text-muted;\n border-radius: $es-radius-full;\n transition: all $es-transition-fast;\n\n &:hover {\n background: $es-slate-100;\n color: $es-primary;\n }\n }\n\n // Value picker (search trigger)\n .value-picker {\n position: relative;\n }\n\n .value-picker-trigger {\n @include button-reset;\n display: flex;\n align-items: center;\n gap: $es-spacing-sm;\n width: 100%;\n padding: $es-spacing-sm $es-spacing-md;\n background: $es-white;\n border: 1px solid $es-border-color;\n border-radius: $es-radius-md;\n color: $es-text-muted;\n font-size: $es-font-size-sm;\n text-align: left;\n transition: all $es-transition-fast;\n\n &:hover {\n border-color: $es-slate-300;\n }\n\n &:focus {\n border-color: $es-primary;\n @include focus-ring($es-primary);\n }\n\n i {\n color: $es-text-light;\n }\n }\n\n // Pattern input (text input for patterns)\n .pattern-input-wrapper {\n position: relative;\n }\n\n .pattern-input {\n @include input-base;\n font-family: monospace;\n }\n\n .pattern-add-btn {\n @include button-reset;\n position: absolute;\n right: 0.25rem;\n top: 50%;\n transform: translateY(-50%);\n display: flex;\n align-items: center;\n justify-content: center;\n width: 28px;\n height: 28px;\n color: $es-primary;\n border-radius: $es-radius-sm;\n transition: all $es-transition-fast;\n\n &:hover {\n background: $es-primary-light;\n }\n }\n\n // Multi-range input (price ranges)\n .multi-range-container {\n display: flex;\n flex-direction: column;\n gap: $es-spacing-sm;\n }\n\n .range-row {\n display: flex;\n align-items: center;\n gap: $es-spacing-sm;\n }\n\n .range-input {\n @include input-base;\n width: 100px;\n text-align: center;\n }\n\n .range-separator {\n color: $es-text-muted;\n font-size: $es-font-size-sm;\n }\n\n .range-remove-btn {\n @include button-reset;\n display: flex;\n align-items: center;\n justify-content: center;\n width: 24px;\n height: 24px;\n color: $es-text-muted;\n border-radius: $es-radius-sm;\n transition: all $es-transition-fast;\n\n &:hover {\n background: $es-danger-light;\n color: $es-danger;\n }\n }\n\n .range-add-btn {\n @include button-reset;\n display: inline-flex;\n align-items: center;\n gap: 0.25rem;\n padding: 0.25rem 0.5rem;\n color: $es-primary;\n font-size: $es-font-size-xs;\n font-weight: $es-font-weight-medium;\n border-radius: $es-radius-sm;\n transition: all $es-transition-fast;\n\n &:hover {\n background: $es-primary-light;\n }\n }\n\n // Multi-select tiles (stock status, etc.)\n .multi-select-tiles {\n display: flex;\n flex-wrap: wrap;\n gap: $es-spacing-xs;\n }\n\n .multi-select-tile {\n @include button-reset;\n display: inline-flex;\n align-items: center;\n gap: 0.25rem;\n padding: 0.375rem 0.75rem;\n background: $es-slate-100;\n color: $es-text-secondary;\n font-size: $es-font-size-xs;\n font-weight: $es-font-weight-medium;\n border: 1px solid transparent;\n border-radius: $es-radius-full;\n transition: all $es-transition-fast;\n\n &:hover {\n background: $es-slate-200;\n }\n\n &.selected {\n background: $es-primary-light;\n color: $es-primary;\n border-color: $es-primary;\n }\n }\n\n // Exclude section\n .exclude-section {\n margin-top: $es-spacing-md;\n padding-top: $es-spacing-md;\n border-top: 1px dashed $es-border-color;\n }\n\n // Legacy exclude-rows (if used elsewhere)\n .exclude-rows {\n display: flex;\n flex-direction: column;\n gap: $es-spacing-sm;\n }\n\n .exclude-row-content {\n flex: 1;\n }\n\n .exclude-remove-btn {\n @include button-reset;\n display: flex;\n align-items: center;\n justify-content: center;\n width: 24px;\n height: 24px;\n color: $es-text-muted;\n border-radius: $es-radius-sm;\n flex-shrink: 0;\n transition: all $es-transition-fast;\n\n &:hover {\n background: $es-danger-light;\n color: $es-danger;\n }\n }\n\n .add-exclude-btn {\n @include button-reset;\n display: inline-flex;\n align-items: center;\n gap: 0.25rem;\n margin-top: $es-spacing-sm;\n padding: 0.25rem 0.5rem;\n color: $es-danger;\n font-size: $es-font-size-xs;\n font-weight: $es-font-weight-medium;\n border: 1px dashed $es-danger;\n border-radius: $es-radius-sm;\n transition: all $es-transition-fast;\n\n &:hover {\n background: $es-danger-light;\n }\n }\n\n // Add group button (used in block-footer)\n .btn-add-group {\n @include button-reset;\n display: inline-flex;\n align-items: center;\n gap: 0.375rem;\n padding: 0.5rem 0.875rem;\n color: $es-primary;\n font-size: $es-font-size-sm;\n font-weight: $es-font-weight-medium;\n background: rgba($es-primary, 0.05);\n border: 1px dashed $es-primary;\n border-radius: 0.375rem;\n cursor: pointer;\n transition: all $es-transition-fast;\n\n &:hover {\n background: rgba($es-primary, 0.1);\n }\n\n i {\n font-size: 12px;\n }\n }\n\n // Block footer\n .block-footer {\n display: flex;\n align-items: center;\n gap: $es-spacing-sm;\n padding: $es-spacing-md;\n border-top: 1px solid $es-border-color;\n }\n\n // Block body\n .block-body {\n padding: 0;\n }\n\n // Groups container\n .groups-container {\n padding: $es-spacing-md;\n }\n\n // Groups empty state\n .groups-empty-state {\n display: flex;\n align-items: center;\n justify-content: center;\n padding: $es-spacing-xl;\n color: $es-text-muted;\n font-size: $es-font-size-sm;\n }\n\n // Selection group\n .selection-group {\n background: $es-white;\n border: 1px solid $es-border-color;\n border-radius: $es-radius-lg;\n margin-bottom: $es-spacing-md;\n\n &:last-child {\n margin-bottom: 0;\n }\n\n &.collapsed {\n .group-body {\n display: none;\n }\n\n .group-collapse-toggle i {\n transform: rotate(-90deg);\n }\n }\n }\n\n // Group header\n .group-header {\n display: flex;\n align-items: center;\n gap: $es-spacing-sm;\n padding: $es-spacing-sm $es-spacing-md;\n background: $es-bg-header;\n border-bottom: 1px solid $es-border-color;\n border-radius: $es-radius-lg $es-radius-lg 0 0;\n cursor: pointer;\n\n &.group-header-single {\n padding: $es-spacing-xs $es-spacing-md;\n background: transparent;\n border-bottom: none;\n }\n }\n\n .group-collapse-toggle {\n display: flex;\n align-items: center;\n justify-content: center;\n width: 20px;\n color: $es-text-muted;\n\n i {\n transition: transform $es-transition-fast;\n }\n }\n\n .group-name-wrapper {\n flex: 1;\n display: flex;\n align-items: center;\n gap: $es-spacing-sm;\n }\n\n .group-name-input {\n flex: 1;\n padding: 0.25rem 0.5rem;\n font-size: $es-font-size-sm;\n font-weight: $es-font-weight-semibold;\n color: $es-text-primary;\n background: transparent;\n border: 1px solid transparent;\n border-radius: $es-radius-sm;\n transition: all $es-transition-fast;\n\n &:hover,\n &:focus {\n background: $es-white;\n border-color: $es-border-color;\n outline: none;\n }\n\n &::placeholder {\n color: $es-text-muted;\n font-weight: $es-font-weight-medium;\n }\n }\n\n .group-count-badge {\n @include count-badge($es-primary);\n }\n\n .btn-remove-group {\n @include button-reset;\n display: flex;\n align-items: center;\n justify-content: center;\n width: 28px;\n height: 28px;\n color: $es-text-muted;\n border-radius: $es-radius-sm;\n transition: all $es-transition-fast;\n\n &:hover {\n background: $es-danger-light;\n color: $es-danger;\n }\n }\n\n // Group include section - green accent to distinguish from exclude\n .group-include {\n margin-bottom: $es-spacing-md;\n padding: $es-spacing-sm;\n background: rgba($es-success, 0.03);\n border: 1px solid rgba($es-success, 0.2);\n border-radius: $es-radius-md;\n }\n\n .section-row {\n display: flex;\n flex-direction: column;\n gap: $es-spacing-sm;\n }\n\n // Method selector wrapper (from PHP)\n .method-selector-wrapper {\n display: flex;\n align-items: center;\n gap: $es-spacing-sm;\n }\n\n .method-info-placeholder {\n display: flex;\n align-items: center;\n min-width: 20px;\n }\n\n .include-method-select,\n .exclude-method-select {\n flex: 1;\n @include input-base;\n cursor: pointer;\n }\n\n // Lock indicator for method selector (when excludes are present)\n .selector-locked {\n .include-method-select {\n opacity: 0.7;\n cursor: not-allowed;\n }\n }\n\n .lock-indicator {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n width: 24px;\n height: 24px;\n color: $es-warning;\n cursor: help;\n\n i {\n font-size: 14px;\n }\n\n .mpr-tooltip {\n display: none;\n position: absolute;\n bottom: calc(100% + 8px);\n left: 50%;\n transform: translateX(-50%);\n padding: $es-spacing-xs $es-spacing-sm;\n background: $es-slate-800;\n color: $es-white;\n font-size: $es-font-size-xs;\n font-weight: $es-font-weight-normal;\n white-space: nowrap;\n border-radius: $es-radius-sm;\n z-index: 100;\n }\n\n &:hover .mpr-tooltip {\n display: block;\n }\n }\n\n // Group excludes section\n .group-excludes {\n margin-top: $es-spacing-md;\n }\n\n .except-separator {\n display: flex;\n align-items: center;\n gap: $es-spacing-sm;\n margin: 0 0 $es-spacing-sm 0;\n\n // Lines on both sides\n &::before,\n &::after {\n content: '';\n flex: 1;\n height: 1px;\n background: rgba($es-danger, 0.3);\n }\n }\n\n .except-label {\n display: inline-flex;\n align-items: center;\n gap: 0.25rem;\n padding: 0.25rem 0.75rem;\n background: $es-danger-light;\n color: $es-danger;\n font-size: $es-font-size-xs;\n font-weight: $es-font-weight-semibold;\n border-radius: $es-radius-full;\n white-space: nowrap;\n flex-shrink: 0;\n\n i {\n font-size: 10px;\n }\n }\n\n .exclude-rows-container {\n display: flex;\n flex-direction: column;\n gap: $es-spacing-sm;\n }\n\n .exclude-row {\n display: flex;\n flex-direction: column;\n padding: $es-spacing-sm;\n background: rgba($es-danger, 0.03);\n border: 1px solid rgba($es-danger, 0.15);\n border-radius: $es-radius-md;\n\n // Value picker inside exclude row - full width\n .value-picker {\n width: 100%;\n margin-top: $es-spacing-sm;\n }\n }\n\n .exclude-header-row {\n display: flex;\n align-items: center;\n justify-content: space-between;\n gap: $es-spacing-sm;\n width: 100%;\n\n .method-selector-wrapper {\n flex: 1;\n }\n\n // Delete button at the far right\n .btn-remove-exclude-row {\n flex-shrink: 0;\n margin-left: auto;\n }\n }\n\n .btn-remove-exclude-row {\n @include button-reset;\n display: flex;\n align-items: center;\n justify-content: center;\n width: 28px;\n height: 28px;\n color: $es-text-muted;\n border-radius: $es-radius-sm;\n transition: all $es-transition-fast;\n\n &:hover {\n background: $es-danger-light;\n color: $es-danger;\n }\n }\n\n .btn-add-exclude,\n .btn-add-another-exclude {\n @include button-reset;\n display: inline-flex;\n align-items: center;\n gap: 0.25rem;\n margin-top: $es-spacing-sm;\n padding: 0.375rem 0.625rem;\n color: $es-danger;\n font-size: $es-font-size-xs;\n font-weight: $es-font-weight-medium;\n background: transparent;\n border: 1px dashed rgba($es-danger, 0.5);\n border-radius: $es-radius-sm;\n transition: all $es-transition-fast;\n\n &:hover {\n background: $es-danger-light;\n border-color: $es-danger;\n }\n\n i {\n font-size: 10px;\n }\n }\n\n // Group modifiers (inline version from PHP)\n // Uses negative margins to break out of .group-body padding\n .group-modifiers {\n display: flex;\n flex-wrap: wrap;\n align-items: center;\n gap: $es-spacing-md;\n padding: $es-spacing-sm $es-spacing-md;\n margin: $es-spacing-md (-$es-spacing-md) (-$es-spacing-md);\n background: $es-slate-50;\n border-top: 1px solid $es-border-color;\n border-radius: 0 0 $es-radius-lg $es-radius-lg;\n }\n\n .modifier-inline {\n display: flex;\n align-items: center;\n gap: 0.375rem;\n }\n\n // Common height for all modifier controls\n $modifier-height: 26px;\n\n .group-modifier-limit {\n width: 50px;\n max-width: 50px;\n height: $modifier-height;\n padding: 0 0.375rem;\n font-size: $es-font-size-xs;\n text-align: center;\n border: 1px solid $es-border-color;\n border-radius: $es-radius-sm;\n\n &:focus {\n border-color: $es-primary;\n outline: none;\n }\n }\n\n // Sort modifier - input group style (select + button glued together)\n .modifier-sort {\n gap: 0; // Remove gap to glue select + button together\n\n .modifier-label {\n margin-right: 0.375rem; // Keep space between label and input group\n }\n\n .group-modifier-sort {\n height: $modifier-height;\n padding: 0 0.5rem;\n font-size: $es-font-size-xs;\n border: 1px solid $es-border-color;\n border-radius: $es-radius-sm 0 0 $es-radius-sm;\n border-right: none;\n cursor: pointer;\n\n &:focus {\n border-color: $es-primary;\n outline: none;\n position: relative;\n z-index: 1;\n }\n }\n\n .btn-sort-dir {\n @include button-reset;\n display: flex;\n align-items: center;\n justify-content: center;\n width: $modifier-height;\n height: $modifier-height;\n color: $es-text-muted;\n background: $es-slate-100;\n border: 1px solid $es-border-color;\n border-radius: 0 $es-radius-sm $es-radius-sm 0;\n transition: all $es-transition-fast;\n\n &:hover {\n background: $es-slate-200;\n color: $es-text-secondary;\n }\n\n i {\n font-size: 11px;\n }\n }\n }\n\n // Fallback for elements outside .modifier-sort context\n .group-modifier-sort {\n height: $modifier-height;\n padding: 0 0.5rem;\n font-size: $es-font-size-xs;\n border: 1px solid $es-border-color;\n border-radius: $es-radius-sm;\n cursor: pointer;\n\n &:focus {\n border-color: $es-primary;\n outline: none;\n }\n }\n\n .btn-sort-dir {\n @include button-reset;\n display: flex;\n align-items: center;\n justify-content: center;\n width: $modifier-height;\n height: $modifier-height;\n color: $es-text-muted;\n border: 1px solid $es-border-color;\n border-radius: $es-radius-sm;\n transition: all $es-transition-fast;\n\n &:hover {\n background: $es-slate-100;\n color: $es-text-secondary;\n }\n }\n\n .group-preview-badge {\n display: inline-flex;\n align-items: center;\n gap: 0.25rem;\n padding: 0.25rem 0.5rem;\n background: $es-slate-100;\n color: $es-text-muted;\n font-size: $es-font-size-xs;\n font-weight: $es-font-weight-medium;\n border-radius: $es-radius-full;\n transition: all $es-transition-fast;\n\n &.clickable {\n cursor: pointer;\n\n &:hover {\n background: $es-primary-light;\n color: $es-primary;\n }\n }\n }\n\n // OR separator between groups\n .group-separator {\n display: flex;\n align-items: center;\n justify-content: center;\n padding: $es-spacing-sm 0;\n color: $es-text-muted;\n font-size: $es-font-size-xs;\n font-weight: $es-font-weight-semibold;\n text-transform: uppercase;\n letter-spacing: 0.1em;\n\n &::before,\n &::after {\n content: '';\n flex: 1;\n height: 1px;\n background: $es-border-color;\n margin: 0 $es-spacing-md;\n }\n }\n\n // Group modifiers (limit, sort)\n .group-modifiers {\n display: flex;\n flex-wrap: wrap;\n gap: $es-spacing-md;\n padding-top: $es-spacing-md;\n margin-top: $es-spacing-md;\n border-top: 1px solid $es-border-color;\n }\n\n .modifier-group {\n display: flex;\n align-items: center;\n gap: $es-spacing-sm;\n }\n\n .modifier-label {\n font-size: $es-font-size-xs;\n font-weight: $es-font-weight-medium;\n color: $es-text-muted;\n white-space: nowrap;\n }\n\n .modifier-input {\n @include input-base;\n width: 80px;\n padding: 0.25rem 0.5rem;\n font-size: $es-font-size-xs;\n }\n\n .modifier-select {\n @include input-base;\n width: auto;\n padding: 0.25rem 1.5rem 0.25rem 0.5rem;\n font-size: $es-font-size-xs;\n cursor: pointer;\n appearance: none;\n background-image: url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 20 20'%3E%3Cpath stroke='%236b7280' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' d='m6 8 4 4 4-4'/%3E%3C/svg%3E\");\n background-position: right 0.25rem center;\n background-repeat: no-repeat;\n background-size: 1.25em 1.25em;\n }\n\n // Condition match count badge\n .condition-match-count {\n display: inline-flex;\n align-items: center;\n gap: 0.25rem;\n padding: 0.125rem 0.375rem;\n background: $es-slate-100;\n color: $es-text-muted;\n font-size: $es-font-size-xs;\n font-weight: $es-font-weight-medium;\n border-radius: $es-radius-full;\n cursor: pointer;\n transition: all $es-transition-fast;\n\n &:hover {\n background: $es-slate-200;\n }\n\n &.has-results {\n background: $es-primary-light;\n color: $es-primary;\n }\n\n i {\n font-size: 10px;\n }\n }\n}\n","/**\n * Value Picker Component\n * Search boxes, input types, range inputs\n */\n\n@use '../variables' as *;\n@use '../mixins' as *;\n\n.target-conditions-trait,\n.entity-selector-trait {\n\n // Value picker container\n .value-picker {\n padding: $es-spacing-sm 0;\n\n &[style*=\"display: none\"],\n &[style*=\"display:none\"] {\n padding: 0;\n }\n }\n\n .include-picker,\n .exclude-picker {\n // Section-specific picker styles\n }\n\n // Entity search box\n .entity-search-box {\n position: relative;\n display: flex;\n align-items: center;\n gap: $es-spacing-sm;\n padding: $es-spacing-xs;\n background: $es-white;\n border: 1px solid $es-border-color;\n border-radius: $es-radius-md;\n transition: all $es-transition-fast;\n\n &:focus-within {\n border-color: $es-primary;\n box-shadow: 0 0 0 2px rgba($es-primary, 0.1);\n }\n }\n\n // Separation between chips and search box\n .chips-wrapper + .entity-search-box {\n margin-top: $es-spacing-md;\n }\n\n .entity-search-icon {\n color: $es-text-muted;\n font-size: 14px;\n flex-shrink: 0;\n margin-left: $es-spacing-xs;\n }\n\n // Override parent form's max-width on search input\n input.entity-search-input,\n input.entity-search-input[type=\"text\"] {\n @include input-reset;\n flex: 1;\n min-width: 0;\n width: auto !important;\n max-width: none !important;\n padding: 0.375rem;\n font-size: $es-font-size-sm;\n color: $es-text-primary;\n border: none !important;\n background: transparent !important;\n box-shadow: none !important;\n\n &::placeholder {\n color: $es-text-muted;\n }\n\n &:focus {\n border: none !important;\n box-shadow: none !important;\n outline: none;\n }\n }\n\n .search-loading {\n display: flex;\n align-items: center;\n justify-content: center;\n color: $es-primary;\n\n i {\n animation: spin 0.6s linear infinite;\n }\n }\n\n // Browse tree button (for categories)\n .btn-browse-tree {\n @include button-reset;\n display: flex;\n align-items: center;\n justify-content: center;\n width: 32px;\n height: 32px;\n margin-left: auto;\n color: $es-primary;\n background: $es-primary-light;\n border-radius: $es-radius-sm;\n flex-shrink: 0;\n transition: all $es-transition-fast;\n\n &:hover {\n background: $es-primary;\n color: $es-white;\n }\n\n i {\n font-size: 14px;\n }\n }\n\n // Numeric range box\n .numeric-range-box,\n .multi-range-input-row {\n display: flex;\n align-items: center;\n gap: $es-spacing-xs;\n }\n\n .range-min-input,\n .range-max-input {\n @include input-base;\n width: 100px;\n padding: $es-spacing-sm;\n text-align: center;\n font-size: $es-font-size-sm;\n\n &::-webkit-inner-spin-button,\n &::-webkit-outer-spin-button {\n -webkit-appearance: none;\n margin: 0;\n }\n -moz-appearance: textfield;\n }\n\n .range-separator {\n color: $es-text-muted;\n font-size: $es-font-size-sm;\n font-weight: $es-font-weight-medium;\n }\n\n .btn-add-range {\n @include button-reset;\n display: flex;\n align-items: center;\n justify-content: center;\n width: 32px;\n height: 32px;\n color: $es-white;\n background: $es-primary;\n border-radius: $es-radius-md;\n transition: all $es-transition-fast;\n\n &:hover {\n background: $es-primary-hover;\n }\n\n i {\n font-size: 12px;\n }\n }\n\n // Multi-range container\n .multi-range-container {\n display: flex;\n flex-direction: column;\n gap: $es-spacing-sm;\n }\n\n // Date range box\n .date-range-box {\n display: flex;\n align-items: center;\n gap: $es-spacing-xs;\n }\n\n .date-from-input,\n .date-to-input {\n @include input-base;\n width: 140px;\n padding: $es-spacing-sm;\n font-size: $es-font-size-sm;\n }\n\n // Multi-select tiles\n .multi-select-tiles {\n display: flex;\n flex-wrap: wrap;\n gap: $es-spacing-xs;\n }\n\n .tile-option {\n @include button-reset;\n display: inline-flex;\n align-items: center;\n gap: 0.25rem;\n padding: 0.375rem 0.625rem;\n color: $es-text-secondary;\n background: $es-slate-100;\n border: 1px solid transparent;\n border-radius: $es-radius-sm;\n font-size: $es-font-size-xs;\n font-weight: $es-font-weight-medium;\n cursor: pointer;\n transition: all $es-transition-fast;\n\n &:hover {\n background: $es-slate-200;\n }\n\n &.selected {\n color: $es-primary;\n background: $es-primary-light;\n border-color: $es-primary;\n }\n\n i {\n font-size: 12px;\n }\n }\n\n .tile-label {\n white-space: nowrap;\n }\n\n // Select input box\n .select-input-box {\n display: inline-block;\n }\n\n .select-value-input {\n @include input-base;\n padding: $es-spacing-sm $es-spacing-md;\n font-size: $es-font-size-sm;\n min-width: 150px;\n }\n\n // Boolean input box\n .boolean-input-box {\n display: inline-flex;\n align-items: center;\n padding: $es-spacing-sm $es-spacing-md;\n background: $es-success-light;\n color: $es-success-dark;\n border-radius: $es-radius-md;\n font-size: $es-font-size-sm;\n font-weight: $es-font-weight-medium;\n }\n\n .boolean-label {\n display: flex;\n align-items: center;\n gap: 0.25rem;\n\n &::before {\n content: '\\2713';\n font-weight: bold;\n }\n }\n\n // Condition match count badge\n .condition-match-count {\n @include count-badge($es-primary);\n margin-left: $es-spacing-sm;\n }\n}\n","/**\n * Modal Component\n * Preview modals, confirmation dialogs\n */\n\n@use '../variables' as *;\n@use '../mixins' as *;\n\n// Modal backdrop\n.mpr-modal-backdrop {\n position: fixed;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n background: rgba(0, 0, 0, 0.5);\n z-index: $es-z-modal;\n opacity: 0;\n transition: opacity $es-transition-normal;\n\n &.show {\n opacity: 1;\n }\n}\n\n// Modal container\n.mpr-modal {\n position: fixed;\n top: 50%;\n left: 50%;\n transform: translate(-50%, -50%) scale(0.95);\n z-index: $es-z-modal + 1;\n width: 90%;\n max-width: 600px;\n max-height: 90vh;\n background: $es-white;\n border-radius: $es-radius-xl;\n box-shadow: $es-shadow-xl;\n opacity: 0;\n transition: all $es-transition-normal;\n overflow: hidden;\n display: flex;\n flex-direction: column;\n\n &.show {\n opacity: 1;\n transform: translate(-50%, -50%) scale(1);\n }\n\n &.modal-sm {\n max-width: 400px;\n }\n\n &.modal-lg {\n max-width: 800px;\n }\n\n &.modal-xl {\n max-width: 1000px;\n }\n\n &.modal-fullscreen {\n width: 95%;\n max-width: none;\n height: 90vh;\n max-height: none;\n }\n}\n\n// Modal header\n.mpr-modal-header {\n display: flex;\n align-items: center;\n justify-content: space-between;\n gap: $es-spacing-md;\n padding: $es-spacing-md $es-spacing-lg;\n background: $es-bg-header;\n border-bottom: 1px solid $es-border-color;\n flex-shrink: 0;\n}\n\n.mpr-modal-title {\n font-size: $es-font-size-base;\n font-weight: $es-font-weight-semibold;\n color: $es-text-primary;\n margin: 0;\n}\n\n.mpr-modal-close {\n @include button-reset;\n display: flex;\n align-items: center;\n justify-content: center;\n width: 32px;\n height: 32px;\n color: $es-text-muted;\n border-radius: $es-radius-md;\n transition: all $es-transition-fast;\n\n &:hover {\n background: $es-slate-200;\n color: $es-text-secondary;\n }\n\n i {\n font-size: $es-font-size-lg;\n }\n}\n\n// Modal body\n.mpr-modal-body {\n flex: 1;\n overflow-y: auto;\n padding: $es-spacing-lg;\n @include custom-scrollbar;\n}\n\n// Modal footer\n.mpr-modal-footer {\n display: flex;\n align-items: center;\n justify-content: flex-end;\n gap: $es-spacing-sm;\n padding: $es-spacing-md $es-spacing-lg;\n background: $es-bg-header;\n border-top: 1px solid $es-border-color;\n flex-shrink: 0;\n}\n\n.mpr-modal-btn {\n @include button-reset;\n display: inline-flex;\n align-items: center;\n justify-content: center;\n gap: $es-spacing-xs;\n padding: $es-spacing-sm $es-spacing-md;\n font-size: $es-font-size-sm;\n font-weight: $es-font-weight-medium;\n border-radius: $es-radius-md;\n transition: all $es-transition-fast;\n\n &.btn-secondary {\n color: $es-text-secondary;\n background: $es-slate-100;\n\n &:hover {\n background: $es-slate-200;\n }\n }\n\n &.btn-primary {\n color: $es-white;\n background: $es-primary;\n\n &:hover {\n background: $es-primary-hover;\n }\n }\n\n &.btn-danger {\n color: $es-white;\n background: $es-danger;\n\n &:hover {\n background: darken($es-danger, 10%);\n }\n }\n\n &:disabled {\n opacity: 0.5;\n cursor: not-allowed;\n }\n}\n\n// Preview popover styles moved to _list-preview.scss\n\n.popover-header {\n display: flex;\n align-items: center;\n justify-content: space-between;\n gap: $es-spacing-sm;\n padding: $es-spacing-sm $es-spacing-md;\n background: $es-bg-header;\n border-bottom: 1px solid $es-border-color;\n border-radius: $es-radius-lg $es-radius-lg 0 0;\n}\n\n.popover-title {\n font-size: $es-font-size-sm;\n font-weight: $es-font-weight-semibold;\n color: $es-text-primary;\n}\n\n.popover-close {\n @include button-reset;\n display: flex;\n align-items: center;\n justify-content: center;\n width: 24px;\n height: 24px;\n color: $es-text-muted;\n border-radius: $es-radius-sm;\n transition: all $es-transition-fast;\n\n &:hover {\n background: $es-slate-200;\n color: $es-text-secondary;\n }\n}\n\n.popover-body {\n max-height: 300px;\n overflow-y: auto;\n padding: $es-spacing-sm;\n @include custom-scrollbar;\n}\n\n.popover-footer {\n display: flex;\n align-items: center;\n justify-content: space-between;\n gap: $es-spacing-sm;\n padding: $es-spacing-sm $es-spacing-md;\n background: $es-bg-header;\n border-top: 1px solid $es-border-color;\n border-radius: 0 0 $es-radius-lg $es-radius-lg;\n}\n\n.popover-info {\n font-size: $es-font-size-xs;\n color: $es-text-muted;\n}\n\n.popover-load-more {\n @include button-reset;\n display: inline-flex;\n align-items: center;\n gap: 0.25rem;\n padding: 0.25rem 0.5rem;\n font-size: $es-font-size-xs;\n font-weight: $es-font-weight-medium;\n color: $es-primary;\n border-radius: $es-radius-sm;\n transition: all $es-transition-fast;\n\n &:hover {\n background: $es-primary-light;\n }\n}\n\n// Popover arrow\n.popover-arrow {\n position: absolute;\n width: 12px;\n height: 12px;\n background: $es-white;\n border: 1px solid $es-border-color;\n transform: rotate(45deg);\n\n &.arrow-top {\n top: -7px;\n left: 50%;\n margin-left: -6px;\n border-right: none;\n border-bottom: none;\n }\n\n &.arrow-bottom {\n bottom: -7px;\n left: 50%;\n margin-left: -6px;\n border-left: none;\n border-top: none;\n }\n}\n","/**\n * List Preview Component\n * Popover and modal views for entity preview\n *\n * Uses shared entity-item base for item styling.\n * This file only contains popover/modal container styles.\n */\n\n@use '../variables' as *;\n@use '../mixins' as *;\n\n// =============================================================================\n// Preview Popover Container\n// =============================================================================\n\n.target-preview-popover,\n.target-list-preview-popover {\n position: absolute;\n z-index: 10000;\n min-width: 320px;\n max-width: 480px;\n background: $es-white;\n border: 1px solid $es-border-color;\n border-radius: $es-radius-lg;\n box-shadow: $es-shadow-lg;\n overflow: hidden;\n\n // Arrow pointing to badge\n &::before {\n content: '';\n position: absolute;\n top: -8px;\n left: 50%;\n transform: translateX(-50%);\n border-left: 8px solid transparent;\n border-right: 8px solid transparent;\n border-bottom: 8px solid $es-border-color;\n }\n\n &::after {\n content: '';\n position: absolute;\n top: -6px;\n left: 50%;\n transform: translateX(-50%);\n border-left: 6px solid transparent;\n border-right: 6px solid transparent;\n border-bottom: 6px solid $es-white;\n }\n\n // Positioned to the right - arrow on left\n &.position-right {\n &::before,\n &::after {\n left: 20px;\n transform: none;\n }\n }\n\n // Positioned to the left - arrow on right\n &.position-left {\n &::before,\n &::after {\n left: auto;\n right: 20px;\n transform: none;\n }\n }\n}\n\n// =============================================================================\n// Preview Header\n// =============================================================================\n\n.preview-header {\n display: flex;\n align-items: center;\n justify-content: space-between;\n padding: $es-spacing-sm $es-spacing-md;\n background: $es-bg-header;\n border-bottom: 1px solid $es-border-color;\n\n .preview-title {\n font-size: $es-font-size-sm;\n font-weight: $es-font-weight-semibold;\n color: $es-text-primary;\n }\n\n .preview-close {\n @include button-reset;\n display: flex;\n align-items: center;\n justify-content: center;\n width: 24px;\n height: 24px;\n color: $es-text-muted;\n border-radius: $es-radius-sm;\n transition: all $es-transition-fast;\n\n &:hover {\n background: $es-slate-200;\n color: $es-text-primary;\n }\n }\n}\n\n// =============================================================================\n// Preview Tabs (entity type switcher)\n// =============================================================================\n\n.preview-tabs {\n display: flex;\n flex-wrap: wrap;\n gap: 0;\n padding: 0;\n background: $es-slate-50;\n border-bottom: 1px solid $es-border-color;\n}\n\n.preview-tab {\n display: flex;\n align-items: center;\n gap: 0.375rem;\n padding: 0.5rem 0.75rem;\n background: transparent;\n border: 0;\n border-bottom: 2px solid transparent;\n margin-bottom: -1px;\n color: $es-text-muted;\n font-size: $es-font-size-xs;\n font-weight: $es-font-weight-medium;\n cursor: pointer;\n transition: all $es-transition-fast;\n white-space: nowrap;\n\n &:hover {\n background: $es-slate-100;\n color: $es-text-secondary;\n }\n\n &.active {\n background: $es-white;\n border-bottom-color: $es-primary;\n color: $es-primary;\n }\n\n i {\n font-size: 12px;\n }\n}\n\n// =============================================================================\n// Preview Filter\n// =============================================================================\n\n.preview-filter {\n display: flex;\n align-items: center;\n gap: $es-spacing-sm;\n padding: $es-spacing-sm $es-spacing-md;\n background: $es-white;\n border-bottom: 1px solid $es-border-color;\n\n i {\n color: $es-text-muted;\n font-size: 12px;\n }\n\n .preview-filter-input {\n all: unset;\n flex: 1;\n padding: 0.25rem 0;\n font-size: $es-font-size-xs;\n color: $es-text-primary;\n box-sizing: border-box;\n\n &::placeholder {\n color: $es-text-muted;\n }\n }\n}\n\n// =============================================================================\n// Preview Contents (tabbed content areas)\n// =============================================================================\n\n.preview-contents {\n max-height: 350px;\n overflow: hidden;\n}\n\n.preview-content {\n display: none;\n max-height: 350px;\n overflow-y: auto;\n @include custom-scrollbar;\n\n &.active {\n display: block;\n }\n}\n\n// =============================================================================\n// Preview Items Container\n// =============================================================================\n\n.preview-items {\n display: flex;\n flex-direction: column;\n padding: $es-spacing-xs $es-spacing-sm;\n}\n\n// =============================================================================\n// Preview Item - Uses entity-item patterns\n// Maps legacy classes to shared styling\n// =============================================================================\n\n.preview-item {\n display: flex;\n align-items: center;\n gap: $es-spacing-sm;\n padding: $es-spacing-sm;\n background: $es-white;\n border-radius: $es-radius-sm;\n transition: background $es-transition-fast;\n\n &:hover {\n background: $es-bg-hover;\n }\n\n // Clickable items\n &[data-id] {\n cursor: pointer;\n }\n}\n\n// Image - matches chip image sizing for consistency\n.preview-item-image {\n flex-shrink: 0;\n width: 32px;\n height: 32px;\n object-fit: cover;\n border-radius: $es-radius-sm;\n background: $es-slate-100;\n}\n\n// No-image placeholder\n.preview-item-no-image {\n display: flex;\n align-items: center;\n justify-content: center;\n flex-shrink: 0;\n width: 32px;\n height: 32px;\n background: $es-slate-100;\n color: $es-text-muted;\n border-radius: $es-radius-sm;\n font-size: $es-font-size-sm;\n}\n\n// Info container\n.preview-item-info {\n flex: 1;\n min-width: 0;\n display: flex;\n flex-direction: column;\n gap: 0.125rem;\n}\n\n// Name\n.preview-item-name {\n font-size: $es-font-size-sm;\n font-weight: $es-font-weight-medium;\n color: $es-text-primary;\n @include text-truncate;\n}\n\n// Meta/ref (category, email, etc.)\n.preview-item-ref,\n.preview-item-meta {\n font-size: $es-font-size-xs;\n color: $es-text-muted;\n @include text-truncate;\n}\n\n// Price badge\n.preview-item-price {\n flex-shrink: 0;\n padding: 0.25rem 0.5rem;\n font-size: $es-font-size-xs;\n font-weight: $es-font-weight-semibold;\n color: $es-primary;\n background: $es-primary-light;\n border-radius: $es-radius-sm;\n}\n\n// =============================================================================\n// Preview Footer (load more)\n// =============================================================================\n\n.preview-footer {\n padding: $es-spacing-sm $es-spacing-md;\n background: $es-slate-50;\n border-top: 1px solid $es-border-color;\n}\n\n.load-more-controls {\n display: flex;\n align-items: center;\n justify-content: center;\n gap: $es-spacing-sm;\n font-size: $es-font-size-xs;\n color: $es-text-muted;\n\n .load-more-label {\n white-space: nowrap;\n }\n\n .load-more-select {\n appearance: none;\n padding: 0.25rem 1.75rem 0.25rem 0.5rem;\n border: 1px solid $es-border-color;\n border-radius: $es-radius-sm;\n background: $es-white url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='8' height='8' viewBox='0 0 8 8'%3E%3Cpath fill='%23666' d='M0 2l4 4 4-4z'/%3E%3C/svg%3E\") no-repeat right 0.5rem center;\n background-size: 8px;\n font-size: $es-font-size-xs;\n font-weight: $es-font-weight-medium;\n color: $es-primary;\n cursor: pointer;\n transition: all $es-transition-fast;\n height: auto;\n min-height: 0;\n line-height: 1.3;\n\n &:hover {\n border-color: $es-primary;\n background-color: $es-primary-light;\n }\n\n &:focus {\n outline: none;\n border-color: $es-primary;\n box-shadow: 0 0 0 2px rgba($es-primary, 0.1);\n }\n }\n\n .load-more-of {\n white-space: nowrap;\n }\n\n .remaining-count {\n font-weight: $es-font-weight-semibold;\n color: $es-text-secondary;\n }\n\n .btn-load-more {\n display: flex;\n align-items: center;\n justify-content: center;\n padding: $es-spacing-xs;\n margin: 0;\n border: none;\n color: $es-primary;\n background: $es-primary-light;\n border-radius: $es-radius-sm;\n cursor: pointer;\n transition: all $es-transition-fast;\n font: inherit;\n\n i {\n font-size: 14px;\n }\n\n &:hover {\n background: rgba($es-primary, 0.2);\n }\n\n &.loading {\n cursor: wait;\n\n i {\n animation: spin 0.6s linear infinite;\n }\n }\n }\n}\n\n// =============================================================================\n// Preview States\n// =============================================================================\n\n.preview-empty {\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n gap: $es-spacing-sm;\n padding: $es-spacing-xl;\n text-align: center;\n color: $es-text-muted;\n\n i {\n font-size: 2rem;\n opacity: 0.5;\n }\n\n p {\n margin: 0;\n font-size: $es-font-size-sm;\n }\n}\n\n.preview-loading {\n display: flex;\n align-items: center;\n justify-content: center;\n padding: $es-spacing-xl;\n color: $es-text-muted;\n\n i {\n font-size: 20px;\n color: $es-primary;\n animation: spin 0.6s linear infinite;\n }\n}\n\n// =============================================================================\n// Total Summary Popover (header total badge click)\n// =============================================================================\n\n.total-preview-popover {\n min-width: 240px;\n max-width: 320px;\n\n .preview-popover-header {\n display: flex;\n align-items: center;\n justify-content: space-between;\n gap: $es-spacing-md;\n padding: $es-spacing-sm $es-spacing-md;\n background: $es-bg-header;\n border-bottom: 1px solid $es-border-color;\n\n .preview-popover-title {\n font-weight: $es-font-weight-semibold;\n color: $es-text-primary;\n font-size: $es-font-size-sm;\n }\n\n .preview-popover-count {\n flex-shrink: 0;\n font-size: $es-font-size-xs;\n font-weight: $es-font-weight-medium;\n color: $es-text-muted;\n background: $es-slate-200;\n padding: 0.125rem 0.5rem;\n border-radius: $es-radius-sm;\n }\n }\n\n .preview-popover-body {\n padding: $es-spacing-xs 0;\n }\n\n .total-summary-list {\n list-style: none;\n margin: 0;\n padding: 0;\n }\n\n .total-summary-item {\n display: flex;\n align-items: center;\n gap: $es-spacing-sm;\n padding: $es-spacing-sm $es-spacing-md;\n cursor: pointer;\n transition: background-color 0.15s ease;\n\n &:hover {\n background: $es-slate-50;\n }\n\n i {\n width: 18px;\n text-align: center;\n color: $es-text-muted;\n font-size: 14px;\n }\n\n .summary-item-label {\n flex: 1;\n font-size: $es-font-size-sm;\n color: $es-text-primary;\n }\n\n .summary-item-count {\n font-size: $es-font-size-sm;\n font-weight: $es-font-weight-semibold;\n color: $es-primary;\n background: rgba($es-primary, 0.1);\n padding: 2px 8px;\n border-radius: $es-radius-sm;\n }\n }\n}\n\n// Make trait-total-count clickable\n.trait-total-count {\n cursor: pointer;\n transition: all 0.15s ease;\n\n &:hover {\n opacity: 0.8;\n }\n\n &.popover-open {\n opacity: 0.9;\n }\n}\n","/**\n * Schedule Conditions Component\n * DateTime picker, weekly timeline, holidays\n */\n\n@use '../variables' as *;\n@use '../mixins' as *;\n\n// Schedule conditions wrapper\n.schedule-conditions-trait {\n background: $es-white;\n border: 1px solid $es-border-color;\n border-radius: $es-radius-lg;\n}\n\n// Schedule header\n.schedule-header {\n display: flex;\n align-items: center;\n justify-content: space-between;\n gap: $es-spacing-md;\n padding: 0.875rem $es-spacing-md;\n background: $es-bg-header;\n border-bottom: 1px solid $es-border-color;\n border-radius: $es-radius-lg $es-radius-lg 0 0;\n cursor: pointer;\n user-select: none;\n transition: background-color $es-transition-fast;\n\n &:hover {\n background: $es-bg-hover;\n }\n}\n\n.schedule-title {\n display: flex;\n align-items: center;\n gap: 0.75rem;\n font-size: $es-font-size-sm;\n font-weight: $es-font-weight-semibold;\n color: $es-text-primary;\n\n i {\n color: $es-text-muted;\n }\n}\n\n// Schedule body\n.schedule-body {\n padding: $es-spacing-md;\n}\n\n// Schedule section\n.schedule-section {\n margin-bottom: $es-spacing-lg;\n\n &:last-child {\n margin-bottom: 0;\n }\n}\n\n.schedule-section-title {\n display: flex;\n align-items: center;\n gap: $es-spacing-sm;\n margin-bottom: $es-spacing-sm;\n font-size: $es-font-size-sm;\n font-weight: $es-font-weight-semibold;\n color: $es-text-primary;\n\n i {\n color: $es-text-muted;\n }\n}\n\n.schedule-section-description {\n margin-bottom: $es-spacing-md;\n font-size: $es-font-size-xs;\n color: $es-text-muted;\n}\n\n// DateTime range picker\n.datetime-range {\n display: flex;\n flex-wrap: wrap;\n gap: $es-spacing-md;\n}\n\n.datetime-field {\n flex: 1;\n min-width: 200px;\n}\n\n.datetime-label {\n display: block;\n margin-bottom: 0.25rem;\n font-size: $es-font-size-xs;\n font-weight: $es-font-weight-medium;\n color: $es-text-secondary;\n}\n\n.datetime-input {\n @include input-base;\n}\n\n// Weekly schedule\n.weekly-schedule {\n display: flex;\n flex-direction: column;\n gap: $es-spacing-sm;\n}\n\n.day-row {\n display: flex;\n align-items: center;\n gap: $es-spacing-md;\n padding: $es-spacing-sm;\n background: $es-slate-50;\n border-radius: $es-radius-md;\n\n &.disabled {\n opacity: 0.5;\n }\n}\n\n.day-toggle {\n display: flex;\n align-items: center;\n gap: $es-spacing-sm;\n min-width: 100px;\n}\n\n.day-checkbox {\n width: 18px;\n height: 18px;\n cursor: pointer;\n}\n\n.day-name {\n font-size: $es-font-size-sm;\n font-weight: $es-font-weight-medium;\n color: $es-text-primary;\n}\n\n// Timeline slider\n.timeline-slider {\n flex: 1;\n position: relative;\n height: 24px;\n background: $es-slate-200;\n border-radius: $es-radius-full;\n cursor: pointer;\n}\n\n.timeline-fill {\n position: absolute;\n top: 0;\n height: 100%;\n background: $es-primary;\n border-radius: $es-radius-full;\n transition: all $es-transition-fast;\n}\n\n.timeline-handle {\n position: absolute;\n top: 50%;\n width: 16px;\n height: 16px;\n background: $es-white;\n border: 2px solid $es-primary;\n border-radius: 50%;\n transform: translate(-50%, -50%);\n cursor: grab;\n box-shadow: $es-shadow-sm;\n transition: box-shadow $es-transition-fast;\n\n &:hover {\n box-shadow: $es-shadow-md;\n }\n\n &:active {\n cursor: grabbing;\n }\n\n &.handle-start {\n z-index: 2;\n }\n\n &.handle-end {\n z-index: 1;\n }\n}\n\n// Time display\n.day-times {\n display: flex;\n align-items: center;\n gap: $es-spacing-xs;\n min-width: 120px;\n font-size: $es-font-size-xs;\n font-family: monospace;\n color: $es-text-secondary;\n}\n\n.time-separator {\n color: $es-text-muted;\n}\n\n// Holiday exclusions\n.holiday-section {\n padding: $es-spacing-md;\n background: $es-slate-50;\n border-radius: $es-radius-md;\n}\n\n.holiday-toggle {\n display: flex;\n align-items: center;\n gap: $es-spacing-sm;\n margin-bottom: $es-spacing-md;\n}\n\n.holiday-checkbox {\n width: 18px;\n height: 18px;\n cursor: pointer;\n}\n\n.holiday-label {\n font-size: $es-font-size-sm;\n font-weight: $es-font-weight-medium;\n color: $es-text-primary;\n}\n\n.holiday-countries {\n display: flex;\n flex-wrap: wrap;\n gap: $es-spacing-xs;\n}\n\n.holiday-country-chip {\n @include chip;\n cursor: pointer;\n\n &.selected {\n background: $es-primary-light;\n color: $es-primary;\n }\n}\n\n// Server time display\n.server-time {\n display: flex;\n align-items: center;\n gap: $es-spacing-sm;\n padding: $es-spacing-sm $es-spacing-md;\n background: $es-info-light;\n border-radius: $es-radius-md;\n font-size: $es-font-size-xs;\n color: $es-info;\n\n i {\n font-size: $es-font-size-sm;\n }\n\n .time-value {\n font-family: monospace;\n font-weight: $es-font-weight-semibold;\n }\n}\n\n// Schedule summary\n.schedule-summary {\n display: flex;\n flex-direction: column;\n gap: $es-spacing-xs;\n padding: $es-spacing-md;\n background: $es-slate-50;\n border-radius: $es-radius-md;\n font-size: $es-font-size-sm;\n color: $es-text-secondary;\n\n .summary-item {\n display: flex;\n align-items: center;\n gap: $es-spacing-sm;\n\n i {\n color: $es-success;\n font-size: $es-font-size-sm;\n }\n\n &.inactive i {\n color: $es-text-muted;\n }\n }\n}\n\n// Collapsed state\n.schedule-conditions-trait.collapsed {\n .schedule-body {\n display: none;\n }\n\n .schedule-header {\n border-radius: $es-radius-lg;\n }\n}\n","/**\n * Tips Box Component\n * Pro tips and help information display\n */\n\n@use '../variables' as *;\n@use '../mixins' as *;\n\n.target-conditions-trait,\n.entity-selector-trait {\n\n // Tips box container\n .target-tips-box {\n margin: $es-spacing-lg $es-spacing-md $es-spacing-md;\n border: 1px solid $es-border-color;\n border-radius: $es-radius-lg;\n overflow: hidden;\n background: linear-gradient(135deg, #f8fafc 0%, #f1f5f9 100%);\n }\n\n // Tips header (clickable to expand/collapse)\n .tips-header {\n display: flex;\n align-items: center;\n gap: 0.625rem;\n padding: $es-spacing-md $es-spacing-lg;\n cursor: pointer;\n user-select: none;\n transition: background-color $es-transition-fast;\n\n &:hover {\n background: rgba(0, 0, 0, 0.02);\n }\n\n // Lightbulb icon\n > i:first-child {\n font-size: 1rem;\n color: $es-warning;\n }\n\n // Title text\n > span {\n flex: 1;\n font-size: 13px;\n font-weight: $es-font-weight-semibold;\n color: $es-slate-600;\n }\n }\n\n // Toggle chevron icon\n .tips-toggle {\n font-size: $es-font-size-xs;\n color: $es-slate-400;\n transition: transform 0.2s;\n }\n\n // Expanded state\n .target-tips-box.expanded {\n .tips-toggle {\n transform: rotate(180deg);\n }\n\n .tips-content {\n display: block;\n }\n }\n\n // Tips content (hidden by default)\n .tips-content {\n display: none;\n padding: 0 $es-spacing-lg $es-spacing-lg;\n }\n\n // Tips grid layout\n .tips-grid {\n display: grid;\n gap: $es-spacing-md;\n grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));\n }\n\n // Individual tip item\n .tip-item {\n display: flex;\n gap: $es-spacing-md;\n padding: $es-spacing-md;\n background: $es-white;\n border-radius: $es-radius-md;\n border: 1px solid $es-border-color;\n }\n\n // Tip icon\n .tip-icon {\n flex-shrink: 0;\n width: 2rem;\n height: 2rem;\n display: flex;\n align-items: center;\n justify-content: center;\n background: $es-primary-light;\n border-radius: $es-radius-md;\n color: $es-primary;\n font-size: $es-font-size-sm;\n }\n\n // Tip text content\n .tip-text {\n flex: 1;\n min-width: 0;\n\n strong {\n display: block;\n font-size: $es-font-size-xs;\n font-weight: $es-font-weight-semibold;\n color: $es-slate-700;\n margin-bottom: 0.25rem;\n }\n\n p {\n font-size: 11px;\n color: $es-text-muted;\n line-height: 1.625;\n margin: 0;\n }\n }\n\n // Tips footer\n .tips-footer {\n margin-top: $es-spacing-md;\n padding: 0.625rem $es-spacing-md;\n background: $es-white;\n border-radius: $es-radius-md;\n border: 1px dashed $es-gray-300;\n font-size: 11px;\n color: $es-text-muted;\n line-height: 1.625;\n\n i {\n color: $es-primary;\n margin-right: 0.25rem;\n }\n }\n}\n","/**\n * Condition Trait Base Styles\n * Shared styling for all condition trait components\n */\n\n@use '../variables' as *;\n@use '../mixins' as *;\n\n// Base condition trait container\n.condition-trait {\n background: $es-white;\n border: 1px solid $es-border-color;\n border-radius: $es-radius-lg;\n margin-bottom: $es-spacing-lg;\n\n &:last-child {\n margin-bottom: 0;\n }\n}\n\n// Collapsed state\n.condition-trait.collapsed {\n .condition-trait-header {\n border-bottom-color: transparent;\n border-radius: $es-radius-lg;\n }\n\n .collapse-icon {\n transform: rotate(180deg);\n }\n}\n\n// =============================================================================\n// Trait Header\n// =============================================================================\n\n.condition-trait-header {\n display: flex;\n align-items: center;\n justify-content: space-between;\n gap: $es-spacing-lg;\n flex-wrap: wrap;\n padding: 0.875rem $es-spacing-lg;\n background: $es-slate-50;\n border-bottom: 1px solid $es-border-color;\n border-radius: $es-radius-lg $es-radius-lg 0 0;\n cursor: pointer;\n transition: background-color $es-transition-fast;\n\n &:hover {\n background: $es-slate-100;\n }\n}\n\n.trait-header-left {\n display: flex;\n align-items: center;\n gap: $es-spacing-md;\n min-width: 0;\n flex: 1;\n}\n\n.trait-icon {\n font-size: 1.125rem;\n color: $es-text-muted;\n flex-shrink: 0;\n}\n\n.trait-title-group {\n display: flex;\n flex-direction: column;\n gap: 0.125rem;\n min-width: 0;\n}\n\n.trait-title {\n font-size: $es-font-size-sm;\n font-weight: $es-font-weight-semibold;\n color: $es-slate-800;\n white-space: nowrap;\n}\n\n.trait-subtitle {\n font-size: $es-font-size-xs;\n color: $es-text-muted;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n}\n\n.trait-header-right {\n display: flex;\n align-items: center;\n gap: $es-spacing-md;\n flex-shrink: 0;\n margin-left: auto;\n}\n\n.trait-header-actions {\n display: flex;\n align-items: center;\n gap: $es-spacing-sm;\n}\n\n// Collapse icon\n.collapse-icon {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n width: 1.5rem;\n height: 1.5rem;\n font-size: $es-font-size-sm;\n color: $es-text-muted;\n cursor: pointer;\n transition: all 0.2s;\n border-radius: $es-radius-sm;\n background: transparent;\n\n &:hover {\n color: $es-primary;\n background: rgba($es-primary, 0.08);\n }\n}\n\n// Show all toggle\n.trait-show-all-toggle {\n display: inline-flex;\n align-items: center;\n gap: 0.25rem;\n font-size: $es-font-size-xs;\n color: $es-primary;\n cursor: pointer;\n\n &:hover {\n text-decoration: underline;\n }\n}\n\n// Trait total count badge (global fallback)\n.trait-total-count {\n @include count-badge($es-primary);\n}\n\n// Required indicator\n.trait-required {\n color: $es-danger;\n font-size: $es-font-size-xs;\n}\n\n// Validation error\n.trait-validation-error {\n color: $es-danger;\n font-size: $es-font-size-xs;\n margin-top: 0.25rem;\n}\n\n// Trait toggle button\n.trait-toggle {\n @include button-reset;\n display: inline-flex;\n align-items: center;\n gap: 0.25rem;\n padding: 0.375rem 0.75rem;\n font-size: $es-font-size-xs;\n font-weight: $es-font-weight-medium;\n color: $es-text-secondary;\n background: $es-white;\n border: 1px solid $es-border-color;\n border-radius: $es-radius-md;\n transition: all $es-transition-fast;\n\n &:hover {\n background: $es-slate-50;\n border-color: $es-gray-300;\n }\n\n &.active {\n color: $es-primary;\n border-color: $es-primary;\n background: $es-primary-light;\n }\n}\n\n// =============================================================================\n// Trait Body\n// =============================================================================\n\n.condition-trait-body {\n padding: $es-spacing-lg;\n border-radius: 0 0 $es-radius-lg $es-radius-lg;\n background: $es-white;\n animation: slideDown 0.2s ease-out;\n}\n\n// Condition trait collapsed - hide body\n.condition-trait.collapsed .condition-trait-body {\n display: none;\n}\n\n// =============================================================================\n// Section Styles\n// =============================================================================\n\n.schedule-section,\n.context-section {\n margin-bottom: 1.25rem;\n padding-bottom: 1.25rem;\n border-bottom: 1px solid $es-slate-100;\n\n &:last-child {\n margin-bottom: 0;\n padding-bottom: 0;\n border-bottom: 0;\n }\n}\n\n.section-label {\n display: flex;\n align-items: center;\n gap: 0.5rem;\n font-size: 13px;\n font-weight: $es-font-weight-semibold;\n color: $es-slate-600;\n margin-bottom: $es-spacing-md;\n\n i {\n font-size: $es-font-size-sm;\n color: $es-slate-400;\n margin-right: 0.25rem;\n }\n}\n\n.section-content {\n // Container for section content\n}\n\n.section-hint {\n margin-top: 0.5rem;\n font-size: 11px;\n color: $es-slate-400;\n}\n\n// =============================================================================\n// Full-width Form Group Override\n// =============================================================================\n\n.form-group.condition-trait-fullwidth {\n display: block !important;\n\n > .control-label {\n display: none !important;\n }\n\n > .col-lg-8,\n > .col-lg-8.col-lg-offset-3 {\n width: 100% !important;\n max-width: 100% !important;\n flex: 0 0 100% !important;\n padding-left: $es-spacing-lg !important;\n padding-right: $es-spacing-lg !important;\n margin: 0 !important;\n margin-left: 0 !important;\n }\n}\n\n// Condition traits group label\n.condition-traits-group-label {\n font-size: $es-font-size-sm;\n font-weight: $es-font-weight-semibold;\n color: $es-slate-700;\n margin-bottom: $es-spacing-md;\n}\n\n.condition-traits-wrapper {\n display: flex;\n flex-direction: column;\n gap: $es-spacing-md;\n}\n\n// =============================================================================\n// Animations\n// =============================================================================\n\n@keyframes slideDown {\n from {\n opacity: 0;\n transform: translateY(-10px);\n }\n to {\n opacity: 1;\n transform: translateY(0);\n }\n}\n","/**\n * Combination Attributes Picker Component\n * Product attribute combination selection styles\n */\n\n@use '../variables' as *;\n@use '../mixins' as *;\n\n.target-conditions-trait,\n.entity-selector-trait {\n\n // Main container\n .combination-attributes-picker {\n display: flex;\n flex-direction: column;\n gap: 0.625rem;\n }\n\n // Mode toggle (Any/All)\n .combination-mode-toggle {\n display: inline-flex;\n gap: 0.25rem;\n padding: 0.125rem;\n background: $es-slate-100;\n border-radius: $es-radius-md;\n margin-bottom: 0.5rem;\n }\n\n .combination-mode-option {\n display: flex;\n align-items: center;\n gap: 0.25rem;\n cursor: pointer;\n font-size: 11px;\n color: $es-text-muted;\n padding: 0.25rem 0.625rem;\n border-radius: $es-radius-sm;\n transition: all $es-transition-fast;\n\n input[type=\"radio\"] {\n display: none;\n }\n\n .mode-label {\n user-select: none;\n }\n\n &:hover {\n color: $es-primary;\n background: rgba($es-primary, 0.1);\n }\n\n &:has(input[type=\"radio\"]:checked) {\n background: $es-primary;\n color: $es-white;\n font-weight: $es-font-weight-medium;\n }\n }\n\n // Groups container\n .combination-groups-container {\n display: flex;\n flex-wrap: wrap;\n gap: $es-spacing-md;\n }\n\n // Loading/Empty/Error states\n .combination-loading,\n .combination-empty,\n .combination-error {\n color: $es-text-muted;\n font-style: italic;\n padding: 0.5rem;\n }\n\n .combination-error {\n color: $es-danger;\n }\n\n // Section header\n .combinations-section {\n margin-bottom: $es-spacing-md;\n }\n\n .combinations-header {\n display: flex;\n align-items: center;\n justify-content: space-between;\n margin-bottom: $es-spacing-sm;\n }\n\n .combinations-label {\n font-size: $es-font-size-xs;\n font-weight: $es-font-weight-medium;\n color: $es-text-muted;\n }\n\n .combinations-help {\n font-size: 11px;\n color: $es-slate-400;\n }\n\n // Toggle combinations button\n .btn-toggle-combinations {\n @include button-reset;\n display: inline-flex;\n align-items: center;\n gap: 0.25rem;\n padding: 0.25rem 0.5rem;\n font-size: $es-font-size-xs;\n color: $es-primary;\n background: transparent;\n border: 1px solid $es-primary;\n border-radius: $es-radius-sm;\n transition: all $es-transition-fast;\n\n &:hover {\n background: $es-primary-light;\n }\n }\n\n .btn-remove-combinations {\n @include button-reset;\n display: inline-flex;\n align-items: center;\n gap: 0.25rem;\n padding: 0.25rem 0.5rem;\n font-size: $es-font-size-xs;\n color: $es-danger;\n background: transparent;\n\n &:hover {\n text-decoration: underline;\n }\n }\n\n // =============================================================================\n // Attribute Group\n // =============================================================================\n\n .comb-attr-group {\n flex: none;\n min-width: 120px;\n max-width: 200px;\n background: $es-white;\n border: 1px solid $es-gray-300;\n border-radius: $es-radius-sm;\n overflow: hidden;\n\n &.has-selections {\n border-color: $es-primary;\n }\n }\n\n .comb-attr-group-header {\n display: flex;\n justify-content: space-between;\n align-items: center;\n padding: 0.375rem 0.625rem;\n background: $es-slate-100;\n border-bottom: 1px solid $es-gray-300;\n font-weight: $es-font-weight-semibold;\n font-size: $es-font-size-xs;\n color: $es-slate-800;\n\n .comb-attr-group.has-selections & {\n background: $es-cyan-50;\n border-bottom-color: $es-cyan-200;\n }\n }\n\n .comb-attr-group-name {\n flex: 1;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n }\n\n .comb-attr-group-count {\n flex-shrink: 0;\n min-width: 18px;\n height: 18px;\n padding: 0 0.25rem;\n background: $es-gray-300;\n border-radius: $es-radius-full;\n font-size: 11px;\n font-weight: $es-font-weight-semibold;\n line-height: 18px;\n text-align: center;\n color: $es-text-muted;\n\n .comb-attr-group.has-selections & {\n background: $es-primary;\n color: $es-white;\n }\n }\n\n // Toolbar\n .comb-attr-toolbar {\n display: flex;\n align-items: center;\n gap: 0.25rem;\n padding: 0.25rem 0.375rem;\n background: $es-slate-50;\n border-bottom: 1px solid $es-slate-100;\n }\n\n .comb-toolbar-btn {\n @include button-reset;\n display: flex;\n align-items: center;\n justify-content: center;\n width: 22px;\n height: 22px;\n padding: 0;\n background: $es-white;\n border: 1px solid $es-gray-300;\n border-radius: $es-radius-sm;\n color: $es-text-muted;\n cursor: pointer;\n font-size: $es-font-size-xs;\n transition: all $es-transition-fast;\n\n &:hover {\n background: $es-slate-100;\n border-color: $es-slate-400;\n color: $es-slate-800;\n }\n }\n\n .comb-attr-search {\n flex: 1;\n min-width: 60px;\n padding: 0.125rem 0.375rem;\n border: 1px solid $es-gray-300;\n border-radius: $es-radius-sm;\n font-size: 11px;\n outline: none;\n\n &:focus {\n border-color: $es-primary;\n }\n\n &::placeholder {\n color: $es-slate-400;\n }\n }\n\n // Values container\n .comb-attr-values {\n display: flex;\n flex-wrap: wrap;\n gap: 0.25rem;\n padding: 0.375rem;\n max-height: 150px;\n overflow-y: auto;\n @include custom-scrollbar;\n }\n\n .comb-attr-loading,\n .comb-attr-empty,\n .comb-attr-error {\n width: 100%;\n text-align: center;\n color: $es-slate-400;\n font-size: 11px;\n padding: 0.25rem;\n }\n\n .comb-attr-error {\n color: $es-danger;\n }\n\n // Individual value\n .comb-attr-value {\n display: inline-flex;\n align-items: center;\n gap: 0.25rem;\n padding: 0.125rem 0.5rem;\n background: $es-white;\n border: 1px solid $es-slate-400;\n border-radius: 0.75rem;\n font-size: 11px;\n color: $es-slate-600;\n cursor: pointer;\n transition: all $es-transition-fast;\n white-space: nowrap;\n\n &:hover {\n background: $es-slate-100;\n border-color: $es-text-muted;\n }\n\n &.selected {\n background: $es-primary;\n border-color: $es-primary-hover;\n color: $es-white;\n\n &:hover {\n background: $es-primary-hover;\n border-color: darken($es-primary-hover, 5%);\n }\n }\n }\n\n .comb-attr-value-count {\n font-size: 9px;\n color: $es-slate-400;\n background: $es-slate-100;\n padding: 1px 0.25rem;\n border-radius: 0.5rem;\n min-width: 14px;\n text-align: center;\n\n .comb-attr-value.selected & {\n color: $es-white;\n background: rgba(255, 255, 255, 0.3);\n }\n }\n\n // =============================================================================\n // Combination Conditions (Row-based)\n // =============================================================================\n\n .combination-conditions-container {\n display: flex;\n flex-direction: column;\n gap: $es-spacing-sm;\n }\n\n .combination-condition-row {\n display: flex;\n align-items: center;\n gap: $es-spacing-sm;\n padding: $es-spacing-sm;\n background: $es-slate-50;\n border-radius: $es-radius-sm;\n }\n\n .combination-group-select,\n .combination-values-select {\n flex: 1;\n min-width: 120px;\n }\n\n .combination-equals {\n font-size: $es-font-size-xs;\n color: $es-text-muted;\n padding: 0 0.25rem;\n }\n\n .btn-add-combination-condition {\n @include button-reset;\n display: inline-flex;\n align-items: center;\n gap: 0.25rem;\n padding: 0.375rem 0.75rem;\n font-size: $es-font-size-xs;\n font-weight: $es-font-weight-medium;\n color: $es-primary;\n background: transparent;\n border: 1px dashed $es-primary;\n border-radius: $es-radius-sm;\n transition: all $es-transition-fast;\n\n &:hover {\n background: $es-primary-light;\n }\n\n i {\n font-size: 10px;\n }\n }\n\n .btn-remove-combination-row {\n @include button-reset;\n display: flex;\n align-items: center;\n justify-content: center;\n width: 24px;\n height: 24px;\n color: $es-text-muted;\n border-radius: $es-radius-sm;\n transition: all $es-transition-fast;\n\n &:hover {\n background: rgba($es-danger, 0.1);\n color: $es-danger;\n }\n\n i {\n font-size: 12px;\n }\n }\n}\n","/**\n * Method Dropdown Component\n * Custom select dropdown with icons for method selection\n */\n\n@use '../variables' as *;\n@use '../mixins' as *;\n\n.target-conditions-trait,\n.entity-selector-trait {\n\n // Method dropdown trigger button\n .method-dropdown-trigger {\n display: inline-flex;\n align-items: center;\n gap: 0.5rem;\n height: 36px;\n padding: 0 $es-spacing-md;\n border-radius: $es-radius-md;\n background: $es-white;\n color: $es-slate-800;\n font-size: $es-font-size-sm;\n cursor: pointer;\n transition: all $es-transition-fast;\n min-width: 180px;\n max-width: 320px;\n border: 1px solid $es-border-color;\n\n &:hover {\n background: $es-slate-50;\n border-color: $es-gray-300;\n }\n\n &:focus,\n &:active {\n outline: none;\n border-color: $es-primary;\n box-shadow: 0 0 0 3px rgba($es-primary, 0.1);\n }\n }\n\n .method-trigger-icon {\n font-size: $es-font-size-sm;\n color: $es-text-muted;\n flex-shrink: 0;\n width: 18px;\n text-align: center;\n }\n\n .method-trigger-label {\n flex: 1;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n font-weight: $es-font-weight-medium;\n }\n\n .method-trigger-caret {\n font-size: $es-font-size-xs;\n color: $es-slate-400;\n flex-shrink: 0;\n margin-left: auto;\n }\n\n // Locked state\n .selector-locked .method-dropdown-trigger {\n background: $es-slate-100;\n color: $es-slate-400;\n cursor: not-allowed;\n border-color: $es-border-color;\n\n &:hover {\n background: $es-slate-100;\n border-color: $es-border-color;\n }\n }\n\n // Method selector wrapper\n .method-selector-wrapper {\n position: relative;\n }\n\n // Hidden select (for form submission)\n .method-select-hidden {\n position: absolute !important;\n opacity: 0 !important;\n pointer-events: none !important;\n width: 0 !important;\n height: 0 !important;\n overflow: hidden !important;\n }\n}\n\n// Global fallback for hidden method selects\n.method-select-hidden {\n position: absolute !important;\n opacity: 0 !important;\n pointer-events: none !important;\n width: 0 !important;\n height: 0 !important;\n overflow: hidden !important;\n}\n\n// =============================================================================\n// Method Dropdown Menu (appended to body, outside trait wrappers)\n// =============================================================================\n\n.method-dropdown-menu {\n position: absolute;\n z-index: $es-z-dropdown + 1;\n min-width: 200px;\n max-width: 360px;\n max-height: 400px;\n overflow-y: auto;\n background: $es-white;\n border-radius: $es-radius-lg;\n padding: 0.375rem 0;\n border: 1px solid $es-border-color;\n box-shadow: 0 10px 40px rgba(0, 0, 0, 0.15);\n animation: methodDropdownFadeIn 0.15s ease;\n @include custom-scrollbar;\n}\n\n@keyframes methodDropdownFadeIn {\n from {\n opacity: 0;\n transform: translateY(-4px);\n }\n to {\n opacity: 1;\n transform: translateY(0);\n }\n}\n\n// Method dropdown item\n.method-dropdown-item {\n display: flex;\n align-items: center;\n gap: 0.625rem;\n padding: 0.5rem $es-spacing-md;\n cursor: pointer;\n transition: background-color 0.1s;\n position: relative;\n\n &:hover {\n background: $es-slate-100;\n }\n\n &.selected {\n background: rgba($es-primary, 0.08);\n }\n\n .method-item-icon {\n font-size: $es-font-size-sm;\n color: $es-text-muted;\n width: 18px;\n text-align: center;\n flex-shrink: 0;\n }\n\n &.selected .method-item-icon {\n color: $es-primary;\n }\n\n .method-item-label {\n flex: 1;\n font-size: $es-font-size-sm;\n color: $es-slate-700;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n }\n\n &.selected .method-item-label {\n color: $es-cyan-700;\n font-weight: $es-font-weight-medium;\n }\n\n .method-item-check {\n font-size: $es-font-size-xs;\n flex-shrink: 0;\n margin-left: auto;\n color: $es-primary;\n }\n}\n\n// Method dropdown optgroup\n.method-dropdown-optgroup {\n margin-top: 0.25rem;\n\n &:first-child {\n margin-top: 0;\n }\n}\n\n.method-optgroup-label {\n padding: 0.5rem $es-spacing-md;\n font-size: 11px;\n font-weight: $es-font-weight-semibold;\n color: $es-text-muted;\n text-transform: uppercase;\n letter-spacing: 0.05em;\n background: $es-slate-50;\n border-top: 1px solid $es-slate-100;\n border-bottom: 1px solid $es-slate-100;\n\n .method-dropdown-optgroup:first-child & {\n border-top: 0;\n }\n}\n\n.method-optgroup-items {\n padding: 0.25rem 0;\n\n .method-dropdown-item {\n padding-left: $es-spacing-lg;\n }\n}\n\n// Method info placeholder\n.method-info-placeholder {\n font-size: $es-font-size-xs;\n color: $es-text-muted;\n font-style: italic;\n}\n","/**\n * Tooltip Component\n * Info tooltips for method help\n */\n\n@use '../variables' as *;\n\n// =============================================================================\n// Info Wrapper (tooltip trigger)\n// =============================================================================\n\n.mpr-info-wrapper {\n display: inline-flex;\n align-items: center;\n position: relative;\n cursor: help;\n vertical-align: middle;\n margin-left: 0.25rem;\n\n .material-icons {\n font-size: 16px;\n color: $es-text-muted;\n transition: color 0.15s ease;\n }\n\n &:hover .material-icons {\n color: $es-primary;\n }\n}\n\n// =============================================================================\n// Fixed Tooltip (appended to body on hover)\n// =============================================================================\n\n.mpr-tooltip-fixed {\n position: fixed;\n background: $es-white;\n color: $es-slate-800;\n padding: $es-spacing-md $es-spacing-lg;\n border-radius: $es-radius-md;\n font-size: 13px;\n line-height: 1.5;\n white-space: normal;\n z-index: 10500;\n max-width: 320px;\n min-width: 180px;\n text-align: left;\n box-shadow: rgba(0, 0, 0, 0.12) 0px 1px 1px 0px,\n rgba(64, 68, 82, 0.16) 0px 0px 0px 1px,\n rgba(64, 68, 82, 0.08) 0px 2px 5px 0px;\n pointer-events: none;\n\n // Pinned tooltip allows interaction\n &.pinned {\n pointer-events: auto;\n padding-right: $es-spacing-xl + 1rem;\n }\n\n strong {\n display: block;\n margin-bottom: 0.375rem;\n font-weight: $es-font-weight-semibold;\n color: $es-primary;\n }\n\n p {\n margin: 0;\n color: $es-text-secondary;\n }\n\n ul {\n margin: 0.5rem 0 0;\n padding-left: 1.25rem;\n\n li {\n margin: 0.25rem 0;\n color: $es-text-secondary;\n }\n }\n}\n\n// Close button for pinned tooltips\n.mpr-tooltip-close {\n position: absolute;\n top: 0.375rem;\n right: 0.375rem;\n padding: 0.125rem;\n border: none;\n background: transparent;\n cursor: pointer;\n border-radius: $es-radius-sm;\n line-height: 1;\n transition: background-color 0.15s ease;\n\n .material-icons {\n font-size: 16px;\n color: $es-text-muted;\n }\n\n &:hover {\n background: $es-slate-100;\n\n .material-icons {\n color: $es-slate-700;\n }\n }\n}\n","/**\n * Category Tree Component\n * Hierarchical tree view for category selection inside dropdown\n */\n\n@use '../variables' as *;\n@use '../mixins' as *;\n\n// Category tree container (inside dropdown)\n.category-tree {\n display: flex;\n flex-direction: column;\n}\n\n// Tree toolbar inside dropdown\n.category-tree .tree-toolbar {\n display: flex;\n align-items: center;\n gap: $es-spacing-sm;\n padding: $es-spacing-xs $es-spacing-sm;\n background: $es-slate-50;\n border-bottom: 1px solid $es-border-light;\n flex-shrink: 0;\n\n .btn-expand-all,\n .btn-collapse-all {\n @include button-reset;\n display: inline-flex;\n align-items: center;\n gap: 0.25rem;\n padding: $es-spacing-xs $es-spacing-sm;\n font-size: $es-font-size-xs;\n font-weight: $es-font-weight-medium;\n color: $es-text-secondary;\n background: $es-white;\n border: 1px solid $es-border-color;\n border-radius: $es-radius-sm;\n transition: all $es-transition-fast;\n\n &:hover {\n background: $es-slate-100;\n border-color: $es-slate-300;\n }\n\n i {\n font-size: 12px;\n }\n }\n}\n\n// Tree items container\n.category-tree .tree-items {\n padding: 0;\n}\n\n// Tree item\n.tree-item {\n display: flex;\n align-items: center;\n gap: $es-spacing-xs;\n padding: $es-spacing-xs $es-spacing-sm;\n cursor: pointer;\n transition: background $es-transition-fast;\n border-radius: 0;\n\n &:hover {\n background: $es-slate-100;\n }\n\n &.selected {\n background: $es-primary-light;\n\n .tree-name {\n font-weight: $es-font-weight-semibold;\n color: $es-primary;\n }\n\n .tree-checkbox {\n color: $es-primary;\n\n i {\n opacity: 1;\n }\n }\n }\n\n &.inactive {\n opacity: 0.6;\n\n .tree-name {\n font-style: italic;\n }\n }\n\n &.filtered-out {\n display: none;\n }\n\n &.filter-match {\n background: $es-warning-light;\n\n &.selected {\n background: $es-primary-light;\n }\n }\n}\n\n// All tree element styles nested under .category-tree for specificity\n.category-tree {\n // Tree indentation\n .tree-indent {\n flex-shrink: 0;\n }\n\n // Tree toggle (expand/collapse)\n .tree-toggle {\n display: flex;\n align-items: center;\n justify-content: center;\n width: 12px;\n height: 12px;\n box-sizing: border-box;\n color: $es-text-secondary;\n flex-shrink: 0;\n border-radius: $es-radius-sm;\n transition: all $es-transition-fast;\n cursor: pointer;\n\n &:hover {\n background: $es-slate-200;\n color: $es-text-primary;\n }\n\n &.tree-leaf {\n cursor: default;\n visibility: hidden;\n\n &:hover {\n background: transparent;\n }\n }\n\n i {\n font-size: 10px;\n transition: transform $es-transition-fast;\n }\n }\n\n .tree-item.collapsed > .tree-toggle i {\n transform: rotate(-90deg);\n }\n\n // Tree checkbox indicator - 12x12 to match PrestaShop admin standards\n .tree-checkbox {\n display: flex;\n align-items: center;\n justify-content: center;\n width: 12px;\n height: 12px;\n box-sizing: border-box;\n flex-shrink: 0;\n border: 1px solid $es-border-color;\n border-radius: 2px;\n background: $es-white;\n\n i {\n font-size: 8px;\n opacity: 0;\n color: $es-white;\n transition: opacity $es-transition-fast;\n }\n }\n\n .tree-item.selected .tree-checkbox {\n background: $es-primary;\n border-color: $es-primary;\n\n i {\n opacity: 1;\n }\n }\n\n // Tree icon\n .tree-icon {\n display: flex;\n align-items: center;\n justify-content: center;\n width: 12px;\n height: 12px;\n box-sizing: border-box;\n color: $es-text-muted;\n flex-shrink: 0;\n\n i {\n font-size: 12px; // match visual weight of other icons\n }\n }\n\n .tree-item.selected .tree-icon {\n color: $es-primary;\n }\n\n // Tree name\n .tree-name {\n flex: 1;\n font-size: $es-font-size-sm;\n color: $es-text-primary;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n }\n\n // Tree product/page count with preview\n .tree-count {\n @include count-badge($es-primary);\n height: 18px;\n min-width: 18px;\n padding: 0 $es-spacing-sm;\n\n i {\n font-size: 10px;\n }\n\n &.clickable {\n &.loading {\n pointer-events: none;\n\n i {\n animation: spin 1s linear infinite;\n }\n }\n\n &.popover-open {\n background: darken($es-primary, 10%);\n }\n }\n }\n\n // Select children button - positioned on the left next to toggle\n .btn-select-children {\n @include button-reset;\n display: inline-flex;\n align-items: center;\n justify-content: center;\n width: 12px;\n height: 12px;\n box-sizing: border-box;\n color: $es-text-muted;\n border-radius: $es-radius-sm;\n opacity: 0.3;\n transition: all $es-transition-fast;\n flex-shrink: 0;\n\n i {\n font-size: 14px; // larger to visually match other icons\n }\n\n &:hover {\n color: $es-primary;\n opacity: 1;\n }\n }\n\n .tree-item:hover .btn-select-children {\n opacity: 0.6;\n }\n\n // Tree badge (inactive, etc.)\n .tree-badge {\n display: inline-flex;\n align-items: center;\n padding: 0.125rem $es-spacing-xs;\n font-size: 9px;\n font-weight: $es-font-weight-semibold;\n text-transform: uppercase;\n letter-spacing: 0.025em;\n border-radius: $es-radius-sm;\n flex-shrink: 0;\n\n &.inactive {\n color: $es-warning;\n background: $es-warning-light;\n }\n }\n\n // Tree children container\n .tree-children {\n display: block;\n\n &.filter-expanded {\n display: block !important;\n }\n }\n\n .tree-item.collapsed + .tree-children {\n display: none;\n }\n\n // Filtering - must be inside .category-tree for specificity\n .tree-item.filtered-out {\n display: none !important;\n }\n} // end .category-tree\n\n// Loading/empty/error states\n.category-tree .tree-loading,\n.category-tree .dropdown-empty,\n.category-tree .dropdown-error {\n display: flex;\n align-items: center;\n justify-content: center;\n padding: $es-spacing-xl;\n color: $es-text-muted;\n font-size: $es-font-size-sm;\n\n i {\n margin-right: $es-spacing-sm;\n }\n}\n\n.category-tree .dropdown-error {\n color: $es-danger;\n}\n\n// Tree view mode in dropdown\n.target-search-dropdown.view-tree {\n .dropdown-results {\n padding: 0;\n }\n\n .category-tree {\n max-height: 100%;\n overflow-y: auto;\n @include custom-scrollbar;\n }\n\n .tree-items {\n max-height: calc(100% - 40px);\n overflow-y: auto;\n @include custom-scrollbar;\n }\n}\n","/**\n * Validation Toast Component\n * Error notifications for selection conflicts\n */\n\n@use '../variables' as *;\n@use '../mixins' as *;\n\n// Validation error toast\n.es-validation-toast {\n display: flex;\n align-items: flex-start;\n gap: $es-spacing-sm;\n padding: $es-spacing-md;\n background: $es-white;\n border: 1px solid $es-danger;\n border-left: 4px solid $es-danger;\n border-radius: $es-radius-md;\n box-shadow: $es-shadow-lg;\n max-width: 400px;\n animation: es-toast-slide-in 0.2s ease-out;\n\n .es-toast-icon {\n display: flex;\n align-items: center;\n justify-content: center;\n width: 24px;\n height: 24px;\n color: $es-danger;\n flex-shrink: 0;\n\n i {\n font-size: 18px;\n }\n }\n\n .es-toast-content {\n flex: 1;\n min-width: 0;\n }\n\n .es-toast-title {\n font-size: $es-font-size-sm;\n font-weight: $es-font-weight-semibold;\n color: $es-danger;\n margin-bottom: 2px;\n }\n\n .es-toast-message {\n font-size: $es-font-size-xs;\n color: $es-text-secondary;\n line-height: 1.4;\n }\n\n .es-toast-close {\n @include button-reset;\n display: flex;\n align-items: center;\n justify-content: center;\n width: 20px;\n height: 20px;\n color: $es-text-muted;\n border-radius: $es-radius-sm;\n flex-shrink: 0;\n transition: all $es-transition-fast;\n\n &:hover {\n background: $es-slate-100;\n color: $es-text-primary;\n }\n\n i {\n font-size: 12px;\n }\n }\n}\n\n@keyframes es-toast-slide-in {\n from {\n opacity: 0;\n transform: translateY(-10px);\n }\n to {\n opacity: 1;\n transform: translateY(0);\n }\n}\n"]} \ No newline at end of file diff --git a/assets/js/admin/entity-selector.js b/assets/js/admin/entity-selector.js index b82d938..cef637d 100644 --- a/assets/js/admin/entity-selector.js +++ b/assets/js/admin/entity-selector.js @@ -7642,7 +7642,15 @@ var $totalBadge = this.$wrapper.find('.trait-total-count'); if (total > 0) { - $totalBadge.text(total).show(); + // Update count while preserving icon structure + var $countValue = $totalBadge.find('.count-value'); + if ($countValue.length) { + $countValue.text(total); + } else { + // Fallback: set HTML with icon + $totalBadge.html(' ' + total + ''); + } + $totalBadge.show(); } else { $totalBadge.hide(); } diff --git a/assets/js/admin/entity-selector.min.js b/assets/js/admin/entity-selector.min.js index 6f05364..b7664f6 100644 --- a/assets/js/admin/entity-selector.min.js +++ b/assets/js/admin/entity-selector.min.js @@ -1,2 +1,2 @@ -!function(e){"use strict";window._EntitySelectorMixins=window._EntitySelectorMixins||{},window._EntitySelectorMixins.utils={debounce:function(e,t){var i;return function(){var a=this,s=arguments;clearTimeout(i),i=setTimeout(function(){e.apply(a,s)},t)}},escapeHtml:function(e){return null==e?"":String(e).replace(/&/g,"&").replace(//g,">").replace(/"/g,""").replace(/'/g,"'")},escapeAttr:function(e){return null==e?"":String(e).replace(/&/g,"&").replace(//g,">").replace(/"/g,""").replace(/'/g,"'")},getEntityTypeIcon:function(e){return{products:"icon-shopping-cart",categories:"icon-folder-open",manufacturers:"icon-building",suppliers:"icon-truck",attributes:"icon-list-alt",features:"icon-tags",cms:"icon-file-text",cms_categories:"icon-folder"}[e]||"icon-cube"},getEntityTypeLabel:function(e){var t=this.config.trans||{};return{products:t.product||"Product",categories:t.category||"Category",manufacturers:t.manufacturer||"Manufacturer",suppliers:t.supplier||"Supplier",attributes:t.attribute||"Attribute",features:t.feature||"Feature",cms:t.cms_page||"CMS Page",cms_categories:t.cms_category||"CMS Category"}[e]||e},validate:function(){if(1!==this.$wrapper.data("required")&&"1"!==this.$wrapper.data("required"))return!0;var t=!1;return this.$wrapper.find(".target-block").each(function(){if(e(this).find(".selection-group").length>0)return t=!0,!1}),t?(this.clearValidationError(),!0):(this.showValidationError(),!1)},showValidationError:function(){this.$wrapper.addClass("has-validation-error");var t=this.$wrapper.data("required-message")||"Please select at least one item";this.$wrapper.find(".trait-validation-error").remove();var i=e("
",{class:"trait-validation-error",html:' '+t});this.$wrapper.find(".condition-trait-header").after(i),e("html, body").animate({scrollTop:this.$wrapper.offset().top-100},300),this.$wrapper.find(".condition-trait-body").is(":visible")||(this.$wrapper.find(".condition-trait-body").slideDown(200),this.$wrapper.removeClass("collapsed"))},clearValidationError:function(){this.$wrapper.removeClass("has-validation-error"),this.$wrapper.find(".trait-validation-error").remove()},getBlockMode:function(e){var t=this.config.blocks[e];return t&&t.mode?t.mode:"multi"},isBlockSingleMode:function(e){return"single"===this.getBlockMode(e)},getCurrentSingleSelection:function(){if("single"!==(this.config.mode||"multi"))return null;var e=this.$wrapper.find(".entity-chips .entity-chip").first();if(e.length){var t=e.closest(".target-block");return{name:e.find(".chip-name").text()||e.data("id"),entityType:t.data("block-type")||"item"}}return null},supportsTreeBrowsing:function(e){return"categories"===e||"cms_categories"===e}}}(jQuery),function(e){"use strict";window._EntitySelectorMixins=window._EntitySelectorMixins||{},window._EntitySelectorMixins.events={bindEvents:function(){var t=this;this.$wrapper.on("click",".target-block-tab",function(i){i.preventDefault();var a=e(this).data("blockType");t.switchToBlock(a)}),this.$wrapper.on("click",".target-block-tab .tab-badge",function(i){i.stopPropagation(),i.preventDefault();var a=e(this).closest(".target-block-tab");e(this).hasClass("popover-open")?t.hidePreviewPopover():t.showPreviewPopover(a)}),this.$wrapper.on("click",".condition-match-count.clickable",function(i){i.stopPropagation(),i.preventDefault();var a=e(this);a.hasClass("popover-open")?t.hidePreviewPopover():t.showConditionPreviewPopover(a)}),this.$wrapper.on("click",".group-count-badge.clickable",function(i){i.stopPropagation(),i.preventDefault();var a=e(this);a.hasClass("popover-open")?t.hidePreviewPopover():t.showGroupPreviewPopover(a)}),this.$wrapper.on("click",".trait-total-count",function(i){i.stopPropagation(),i.preventDefault();var a=e(this);a.hasClass("popover-open")?t.hidePreviewPopover():t.showTotalPreviewPopover(a)}),e(document).on("click",function(i){e(i.target).closest(".target-preview-popover").length||e(i.target).closest(".tab-badge").length||e(i.target).closest(".condition-match-count").length||e(i.target).closest(".group-count-badge").length||e(i.target).closest(".group-modifiers").length||e(i.target).closest(".group-preview-badge").length||e(i.target).closest(".toggle-count.clickable").length||e(i.target).closest(".trait-total-count").length||t.hidePreviewPopover()}),this.$wrapper.on("click",".condition-trait-header",function(i){if(!(e(i.target).closest(".target-block-tabs").length||e(i.target).closest(".trait-header-actions").length||e(i.target).closest(".prestashop-switch").length||e(i.target).closest(".trait-total-count").length)){var a=t.$wrapper.find(".condition-trait-body");a.stop(!0,!0),a.is(":visible")?(a.slideUp(200),t.$wrapper.addClass("collapsed")):(a.slideDown(200),t.$wrapper.removeClass("collapsed"))}}),this.$wrapper.on("click",".group-header",function(i){e(i.target).closest(".btn-remove-group, .group-name-input").length||"single"!==t.$wrapper.data("mode")&&e(this).closest(".selection-group").toggleClass("collapsed")}),this.$wrapper.on("click",".trait-header-actions .btn-toggle-groups",function(i){i.preventDefault(),i.stopPropagation();var a=e(this),s=a.attr("data-state")||"collapsed",n=t.config.trans||{};"collapsed"===s?(t.$wrapper.find(".selection-group").removeClass("collapsed"),a.attr("data-state","expanded"),a.attr("title",n.collapse_all||"Collapse all groups"),a.find("i").removeClass("icon-expand").addClass("icon-compress")):(t.$wrapper.find(".selection-group").addClass("collapsed"),a.attr("data-state","collapsed"),a.attr("title",n.expand_all||"Expand all groups"),a.find("i").removeClass("icon-compress").addClass("icon-expand"))}),this.$wrapper.on("change",".trait-show-all-toggle .show-all-checkbox",function(i){i.stopPropagation(),e(this).prop("checked")&&t.clearAllConditions()}),this.$wrapper.on("change",".target-switch-toggle",function(i){i.stopPropagation(),"1"===e(this).val()?(t.clearAllConditions(),t.$wrapper.find(".condition-trait-body").slideUp(200),t.$wrapper.addClass("collapsed")):(t.$wrapper.find(".condition-trait-body").slideDown(200),t.$wrapper.removeClass("collapsed"))}),this.$wrapper.on("click",".btn-add-group",function(i){i.preventDefault();var a=e(this).closest(".target-block"),s=a.data("blockType");t.addGroup(a,s)}),this.$wrapper.on("click",".btn-remove-group",function(i){i.preventDefault();var a=e(this).closest(".selection-group"),s=e(this).closest(".target-block");t.removeGroup(a,s)}),this.$wrapper.on("click focus",".group-name-input",function(e){e.stopPropagation()}),this.$wrapper.on("change blur",".group-name-input",function(){var i=e(this),a=i.closest(".selection-group"),s=e.trim(i.val());a.attr("data-group-name",s),t.serializeAllBlocks()}),this.$wrapper.on("click",".btn-add-exclude",function(i){i.preventDefault();var a=e(this).closest(".selection-group"),s=e(this).closest(".target-block");t.addFirstExcludeRow(a,s)}),this.$wrapper.on("click",".btn-add-another-exclude",function(i){i.preventDefault();var a=e(this).closest(".selection-group"),s=e(this).closest(".target-block");t.addExcludeRow(a,s)}),this.$wrapper.on("click",".btn-remove-exclude-row",function(i){i.preventDefault();var a=e(this).closest(".exclude-row"),s=e(this).closest(".selection-group"),n=e(this).closest(".target-block");t.removeExcludeRow(a,s,n)}),this.$wrapper.on("change",".include-method-select",function(){t.hideDropdown();var i=e(this).closest(".selection-group"),a=e(this).closest(".target-block"),s=i.find(".group-include"),n=a.data("blockType"),r=(t.config.blocks[n]||{}).selection_methods||{},o=e(this).find("option:selected"),l=o.data("valueType")||"none",c=o.data("searchEntity")||"",d=o.data("options")||null,p=i.find(".include-picker"),u=t.buildValuePickerHtml("include",l,c,r);if(p.replaceWith(u),"select"===l&&d){var h=(f=i.find(".include-picker")).find(".select-value-input");h.empty(),e.each(d,function(e,i){h.append('")})}if("multi_select_tiles"===l&&d){var f=i.find(".include-picker"),v=!0===o.data("exclusive");t.populateTiles(f,d,v)}if("multi_numeric_range"===l){f=i.find(".include-picker");var m=o.data("step"),g=o.data("min");t.applyRangeInputConstraints(f,m,g)}"combination_attributes"===l&&(f=i.find(".include-picker"),t.loadCombinationAttributeGroups(f));var b=e(this).val();t.updateMethodInfoPlaceholder(i.find(".method-selector-wrapper"),b,n),t.updateBlockStatus(a),t.serializeAllBlocks(s)}),this.$wrapper.on("change",".exclude-method-select",function(){t.hideDropdown();var i=e(this).closest(".exclude-row"),a=(e(this).closest(".selection-group"),e(this).closest(".target-block").data("blockType")),s=(t.config.blocks[a]||{}).selection_methods||{},n=e(this).find("option:selected"),r=n.data("valueType")||"entity_search",o=n.data("searchEntity")||a,l=n.data("options")||null,c=i.find(".exclude-picker"),d=t.buildValuePickerHtml("exclude",r,o,s);if(c.replaceWith(d),"select"===r&&l){var p=(u=i.find(".exclude-picker")).find(".select-value-input");p.empty(),e.each(l,function(e,i){p.append('")})}if("multi_select_tiles"===r&&l){var u=i.find(".exclude-picker"),h=!0===n.data("exclusive");t.populateTiles(u,l,h)}if("multi_numeric_range"===r){u=i.find(".exclude-picker");var f=n.data("step"),v=n.data("min");t.applyRangeInputConstraints(u,f,v)}"combination_attributes"===r&&(u=i.find(".exclude-picker"),t.loadCombinationAttributeGroups(u));var m=e(this).val();t.updateMethodInfoPlaceholder(i.find(".exclude-header-row"),m,a),t.serializeAllBlocks(i)}),this.$wrapper.on("keydown",".pattern-input",function(t){13===t.keyCode&&(t.preventDefault(),e(this).closest(".draft-tag").find(".btn-add-pattern").click())}),this.$wrapper.on("click",".draft-tag .btn-add-pattern",function(i){i.preventDefault(),i.stopPropagation();var a=e(this).closest(".draft-tag"),s=a.closest(".value-picker"),n=a.closest(".group-include, .exclude-row"),r=a.find(".pattern-input"),o=e.trim(r.val());if(o){var l="1"===a.attr("data-case-sensitive");t.addPatternTag(s,o,l),r.val("").focus(),a.find(".pattern-match-count").removeClass("count-found count-zero").hide(),a.find(".pattern-match-count .count-value").text(""),t.serializeAllBlocks(n)}}),this.$wrapper.on("input",".pattern-input",function(){var i=e(this),a=i.closest(".draft-tag");if(a.length){var s=e.trim(i.val());i.data("countTimeout")&&clearTimeout(i.data("countTimeout"));var n=a.find(".pattern-match-count");if(s){var r=setTimeout(function(){var e="1"===a.attr("data-case-sensitive");t.updateDraftTagCount(a,s,e)},300);i.data("countTimeout",r)}else{n.removeClass("count-found count-zero").hide(),n.find(".count-value").text("");var o=a.closest(".selection-group");o.length&&t.updateGroupTotalCount(o)}}}),this.$wrapper.on("click",".pattern-tag .btn-remove-pattern",function(i){i.preventDefault(),i.stopPropagation();var a=e(this).closest(".group-include, .exclude-row");e(this).closest(".pattern-tag").remove(),t.serializeAllBlocks(a)}),this.$wrapper.on("click",".pattern-tag .btn-toggle-case",function(i){i.preventDefault(),i.stopPropagation();var a=e(this).closest(".pattern-tag"),s=e(this),n=t.config.trans||{},r=a.hasClass("draft-tag"),o=!(1===a.data("caseSensitive")||"1"===a.data("caseSensitive")||"1"===a.attr("data-case-sensitive"));a.data("caseSensitive",o?1:0),a.attr("data-case-sensitive",o?"1":"0"),a.toggleClass("case-sensitive",o),s.find(".case-icon").text(o?"Aa":"aa");var l=o?n.case_sensitive||"Case sensitive - click to toggle":n.case_insensitive||"Case insensitive - click to toggle";if(s.attr("title",l),r){var c=e.trim(a.find(".pattern-input").val());c&&t.updateDraftTagCount(a,c,o)}else{var d=a.closest(".group-include, .exclude-row");t.serializeAllBlocks(d)}}),this.$wrapper.on("click",".pattern-match-count",function(i){i.preventDefault(),i.stopPropagation();var a=e(this),s=a.data("count"),n=a.data("pattern"),r=a.data("entityType"),o=a.data("caseSensitive");!s||s<=0||!n||t.showPatternPreviewModal(n,r,o,s)}),this.$wrapper.on("click",".pattern-tag .pattern-tag-text",function(t){t.preventDefault();var i=e(this).closest(".pattern-tag");if(!i.hasClass("editing")){var a=i.data("pattern"),s=e('').val(a),n=e(''),r=e(''),o=e('').append(n,r);i.addClass("editing").find(".pattern-tag-text").hide(),i.find(".btn-remove-pattern").hide(),i.prepend(o).prepend(s),s.focus().select(),s.on("keydown",function(e){13===e.keyCode?(e.preventDefault(),n.click()):27===e.keyCode&&(e.preventDefault(),r.click())})}}),this.$wrapper.on("click",".pattern-tag .btn-pattern-save",function(i){i.preventDefault(),i.stopPropagation();var a=e(this).closest(".pattern-tag"),s=a.find(".pattern-tag-edit"),n=a.data("pattern"),r=e.trim(s.val());r&&r!==n&&(a.data("pattern",r),a.find(".pattern-tag-text").text(r)),s.remove(),a.find(".pattern-edit-actions").remove(),a.removeClass("editing").find(".pattern-tag-text, .btn-remove-pattern").show();var o=a.closest(".group-include, .exclude-row");t.serializeAllBlocks(o)}),this.$wrapper.on("click",".pattern-tag .btn-pattern-cancel",function(t){t.preventDefault(),t.stopPropagation();var i=e(this).closest(".pattern-tag");i.find(".pattern-tag-edit").remove(),i.find(".pattern-edit-actions").remove(),i.removeClass("editing").find(".pattern-tag-text, .btn-remove-pattern").show()}),this.$wrapper.on("mouseenter",".mpr-info-wrapper[data-details]",function(){var t=e(this);if(!t.data("tooltip-active")){var i=t.attr("data-details"),a=t.attr("data-tooltip-class")||"",s=e("
",{class:"mpr-tooltip mpr-tooltip-fixed "+a,html:i});e("body").append(s),t.data("tooltip-active",!0);var n=t.offset(),r=t.outerWidth(),o=s.outerWidth(),l=s.outerHeight(),c=n.left+r/2-o/2,d=n.top-l-10;c<10&&(c=10),c+o>e(window).width()-10&&(c=e(window).width()-o-10),s.css({position:"fixed",left:c+"px",top:d-e(window).scrollTop()+"px"}),t.data("tooltip-el",s)}}),this.$wrapper.on("mouseleave",".mpr-info-wrapper[data-details]",function(){var t=e(this),i=t.data("tooltip-el");i&&i.remove(),t.data("tooltip-active",!1),t.data("tooltip-el",null)}),this.$wrapper.on("change",".range-min-input, .range-max-input",function(){var i=e(this).closest(".group-include, .exclude-row");t.serializeAllBlocks(i)}),this.$wrapper.on("change",".date-from-input, .date-to-input",function(){var i=e(this).closest(".group-include, .exclude-row");t.serializeAllBlocks(i)}),this.$wrapper.on("change",".select-value-input",function(){var i=e(this).closest(".group-include, .exclude-row");t.serializeAllBlocks(i)}),this.$wrapper.on("click",".btn-add-range",function(i){i.preventDefault();var a=e(this).closest(".value-picker"),s=e(this).closest(".group-include, .exclude-row"),n=a.find(".multi-range-container"),r=n.find(".multi-range-chips"),o=n.find(".range-min-input"),l=n.find(".range-max-input"),c=o.val().trim(),d=l.val().trim();if(""!==c||""!==d){var p=parseFloat(o.attr("step"))||.01,u=o.attr("min"),h=void 0!==u&&""!==u;u=h?parseFloat(u):null;var f=""!==c?parseFloat(c):null,v=""!==d?parseFloat(d):null;if(h){if(null!==f&&fv)t.showRangeInputError(o,t.config.trans.min_greater_than_max||"Min cannot be greater than max");else{var m,g=p<1?String(p).split(".")[1].length:0;null!==f&&(f=p>=1?Math.round(f):parseFloat(f.toFixed(g)),c=String(f)),null!==v&&(v=p>=1?Math.round(v):parseFloat(v.toFixed(g)),d=String(v)),m=""!==c&&""!==d?c+" - "+d:""!==c?"≥ "+c:"≤ "+d;var b=e("",{class:"range-chip","data-min":c,"data-max":d});b.append(e("",{class:"range-chip-text",text:m})),b.append(e("",i+='",i+='
',i+='",i+='",i+='",i+="
",i+='
',i+='',i+='',i+='',i+="
",i+='",i+='",i+="
",i+="
",i+='
',i+='
',i+='",i+='",i+='
',i+=''+(t.price||"Price")+":",i+='',i+='-',i+='',i+="
",i+='",i+="
",i+='",i+='",i+='",i+='",i+='",i+='",i+='",i+='",i+='",i+='",i+='",i+="
",i+='
',i+='',i+=''+(t.product||"Product")+"",i+=''+(t.price||"Price")+"",i+=''+(t.sale||"Sale")+"",i+=''+(t.stock||"Stock")+"",i+=''+(t.sold||"Sold")+"",i+="
",i+='',i+='",i+="",this.$dropdown=e(i),e("body").append(this.$dropdown)},hideDropdown:function(){this.$dropdown&&this.$dropdown.removeClass("show"),this.activeGroup=null},positionDropdown:function(t){if(this.$dropdown){var i=t.closest(".value-picker"),a=t.closest(".entity-search-box"),s=a.offset(),n=a.outerHeight(),r=i.offset(),o=i.outerWidth(),l=s.top+n+4,c=r.left,d=Math.max(o,400),p=e(window).width();c+d>p-10&&(d=p-c-10);var u=e(window).height()-(l-e(window).scrollTop())-20;u=Math.max(u,400),this.$dropdown.css({position:"absolute",top:l,left:c,width:d,maxHeight:u,zIndex:1e4}),this.$dropdown.addClass("show")}}}}(jQuery),function(e){"use strict";window._EntitySelectorMixins=window._EntitySelectorMixins||{},window._EntitySelectorMixins.search={categoryTreeCache:null,performSearch:function(t){var i=this;if(this.activeGroup){this.isLoading=!0;var a=this.activeGroup.searchEntity,s=t&&this.loadMoreCount?this.loadMoreCount:20,n={ajax:1,action:"searchTargetEntities",trait:"EntitySelector",entity_type:a,q:this.searchQuery,limit:s,offset:t?this.searchOffset:0,sort_by:this.currentSort?this.currentSort.field:"name",sort_dir:this.currentSort?this.currentSort.dir:"ASC"};this.refineQuery&&(n.refine=this.refineQuery,this.refineNegate&&(n.refine_negate=1)),"products"===a&&this.filters&&(this.filters.inStock&&(n.filter_in_stock=1),this.filters.discounted&&(n.filter_discounted=1),null!==this.filters.priceMin&&""!==this.filters.priceMin&&(n.filter_price_min=this.filters.priceMin),null!==this.filters.priceMax&&""!==this.filters.priceMax&&(n.filter_price_max=this.filters.priceMax),this.filters.attributes&&this.filters.attributes.length>0&&(n.filter_attributes=JSON.stringify(this.filters.attributes)),this.filters.features&&this.filters.features.length>0&&(n.filter_features=JSON.stringify(this.filters.features))),"products"!==a&&this.filters&&(null!==this.filters.productCountMin&&""!==this.filters.productCountMin&&(n.filter_product_count_min=this.filters.productCountMin),null!==this.filters.productCountMax&&""!==this.filters.productCountMax&&(n.filter_product_count_max=this.filters.productCountMax),"categories"===a&&(this.filters.depth&&(n.filter_depth=this.filters.depth),this.filters.hasProducts&&(n.filter_has_products=1),this.filters.hasDescription&&(n.filter_has_description=1),this.filters.hasImage&&(n.filter_has_image=1),null!==this.filters.salesMin&&""!==this.filters.salesMin&&(n.filter_sales_min=this.filters.salesMin),null!==this.filters.salesMax&&""!==this.filters.salesMax&&(n.filter_sales_max=this.filters.salesMax),null!==this.filters.turnoverMin&&""!==this.filters.turnoverMin&&(n.filter_turnover_min=this.filters.turnoverMin),null!==this.filters.turnoverMax&&""!==this.filters.turnoverMax&&(n.filter_turnover_max=this.filters.turnoverMax),this.filters.activeOnly&&(n.filter_active=1)),"manufacturers"===a&&(null!==this.filters.salesMin&&""!==this.filters.salesMin&&(n.filter_sales_min=this.filters.salesMin),null!==this.filters.salesMax&&""!==this.filters.salesMax&&(n.filter_sales_max=this.filters.salesMax),null!==this.filters.turnoverMin&&""!==this.filters.turnoverMin&&(n.filter_turnover_min=this.filters.turnoverMin),null!==this.filters.turnoverMax&&""!==this.filters.turnoverMax&&(n.filter_turnover_max=this.filters.turnoverMax),this.filters.dateAddFrom&&(n.filter_date_add_from=this.filters.dateAddFrom),this.filters.dateAddTo&&(n.filter_date_add_to=this.filters.dateAddTo),this.filters.lastProductFrom&&(n.filter_last_product_from=this.filters.lastProductFrom),this.filters.lastProductTo&&(n.filter_last_product_to=this.filters.lastProductTo),this.filters.activeOnly&&(n.filter_active=1)),"suppliers"===a&&(null!==this.filters.salesMin&&""!==this.filters.salesMin&&(n.filter_sales_min=this.filters.salesMin),null!==this.filters.salesMax&&""!==this.filters.salesMax&&(n.filter_sales_max=this.filters.salesMax),null!==this.filters.turnoverMin&&""!==this.filters.turnoverMin&&(n.filter_turnover_min=this.filters.turnoverMin),null!==this.filters.turnoverMax&&""!==this.filters.turnoverMax&&(n.filter_turnover_max=this.filters.turnoverMax),this.filters.dateAddFrom&&(n.filter_date_add_from=this.filters.dateAddFrom),this.filters.dateAddTo&&(n.filter_date_add_to=this.filters.dateAddTo),this.filters.lastProductFrom&&(n.filter_last_product_from=this.filters.lastProductFrom),this.filters.lastProductTo&&(n.filter_last_product_to=this.filters.lastProductTo),this.filters.activeOnly&&(n.filter_active=1)),"attributes"===a&&(null!==this.filters.salesMin&&""!==this.filters.salesMin&&(n.filter_sales_min=this.filters.salesMin),null!==this.filters.salesMax&&""!==this.filters.salesMax&&(n.filter_sales_max=this.filters.salesMax),null!==this.filters.turnoverMin&&""!==this.filters.turnoverMin&&(n.filter_turnover_min=this.filters.turnoverMin),null!==this.filters.turnoverMax&&""!==this.filters.turnoverMax&&(n.filter_turnover_max=this.filters.turnoverMax),this.filters.attributeGroup&&(n.filter_attribute_group=this.filters.attributeGroup),this.filters.isColor&&(n.filter_is_color=1)),"features"===a&&(null!==this.filters.salesMin&&""!==this.filters.salesMin&&(n.filter_sales_min=this.filters.salesMin),null!==this.filters.salesMax&&""!==this.filters.salesMax&&(n.filter_sales_max=this.filters.salesMax),null!==this.filters.turnoverMin&&""!==this.filters.turnoverMin&&(n.filter_turnover_min=this.filters.turnoverMin),null!==this.filters.turnoverMax&&""!==this.filters.turnoverMax&&(n.filter_turnover_max=this.filters.turnoverMax),this.filters.featureGroup&&(n.filter_feature_group=this.filters.featureGroup),this.filters.isCustom&&(n.filter_is_custom=1)),"cms"===a&&(this.filters.activeOnly&&(n.filter_active=1),this.filters.indexable&&(n.filter_indexable=1)),"cms_categories"===a&&this.filters.activeOnly&&(n.filter_active=1)),e.ajax({url:this.config.ajaxUrl,type:"POST",dataType:"json",data:n,success:function(e){i.isLoading=!1,e.success&&(i.searchQuery&&i.searchQuery.length>=2&&e.total>0&&i.addToSearchHistory(a,i.searchQuery),i.searchResults=t?i.searchResults.concat(e.results||[]):e.results||[],i.searchTotal=e.total||0,i.searchOffset=t?i.searchOffset+(e.results||[]).length:(e.results||[]).length,i.renderSearchResults(t),i.$dropdown.addClass("show"))},error:function(){i.isLoading=!1}})}},renderSearchResults:function(t){var i=this,a=this.config.trans||{},s=this.$dropdown.find(".dropdown-results"),n=[],r=[];if(this.activeGroup){var o=this.$wrapper.find('.target-block[data-block-type="'+this.activeGroup.blockType+'"]').find('.selection-group[data-group-index="'+this.activeGroup.groupIndex+'"]'),l=this.activeGroup.searchEntity,c=this.activeGroup.excludeIndex;"include"===this.activeGroup.section?o.find(".include-picker").find(".entity-chip").each(function(){n.push(String(e(this).data("id")))}):(o.find('.exclude-row[data-exclude-index="'+c+'"]').find(".exclude-picker").find(".entity-chip").each(function(){n.push(String(e(this).data("id")))}),o.find(".exclude-row").each(function(){var t=e(this);if(parseInt(t.data("excludeIndex"),10)!==c){var a=t.find(".exclude-picker");(a.attr("data-search-entity")||i.activeGroup.blockType)===l&&a.find(".entity-chip").each(function(){r.push(String(e(this).data("id")))})}}))}var d=this.activeGroup&&"products"===this.activeGroup.searchEntity,p="list"===this.viewMode;this.$dropdown.find(".results-header").toggle(d&&p);var u=this.searchResults.filter(function(e){return-1===r.indexOf(String(e.id))}),h=this.searchResults.length-u.length,f=u.length+" / "+this.searchTotal+" results";h>0&&(f+=" ("+h+" hidden)"),this.$dropdown.find(".results-count").text(f);var v="";0!==u.length||t?u.forEach(function(e){var t="dropdown-item"+(-1!==n.indexOf(String(e.id))?" selected":"");if("product"===e.type&&(t+=" result-item-product"),v+='
';else{var a="icon-cube",s=i.activeGroup?i.activeGroup.searchEntity:null;"categories"===s?a="icon-folder":"manufacturers"===s?a="icon-building":"suppliers"===s?a="icon-truck":"attributes"===s?a="icon-paint-brush":"features"===s?a="icon-list-ul":"cms"===s?a="icon-file-text-o":"cms_categories"===s&&(a="icon-folder-o"),v+='
'}if(v+='
',v+='
'+i.escapeHtml(e.name)+"
",e.subtitle){var r=e.subtitle.split("\n");v+='
',r.forEach(function(e,t){v+='
'+i.escapeHtml(e)+"
"}),v+="
"}if(v+="
","product"===e.type)if(p){v+='
',v+=''+(e.regular_price_formatted||e.price_formatted||"")+"",v+="
",e.has_discount?(v+='
',v+=''+(e.price_formatted||"")+"",v+="
"):v+='
';var o="out_of_stock"===e.stock_status?"stock-out":"low_stock"===e.stock_status?"stock-low":"stock-ok";v+='
',v+=''+(void 0!==e.stock_qty?e.stock_qty:"")+"",v+="
",v+='
',v+=''+(void 0!==e.sales_qty?e.sales_qty:"0")+"",v+="
"}else{var l="out_of_stock"===e.stock_status?"stock-out":"low_stock"===e.stock_status?"stock-low":"";v+='
',v+=''+(e.price_formatted||"")+"",void 0!==e.stock_qty&&(v+=''+e.stock_qty+" qty"),e.has_discount&&(v+='-'+(e.discount_percent||"")+"%"),v+="
"}v+=""}):v='
'+(a.no_results||"No results found")+"
",t?s.append(v):s.html(v);var m=this.searchResults.length'+(a.all||"All")+" ("+b+")")}this.$dropdown.find(".dropdown-actions").show(),this.$dropdown.find(".btn-show-history").removeClass("active");var x=this.activeGroup?this.activeGroup.searchEntity:null,_=x&&this.getSearchHistory(x).length>0;this.$dropdown.find(".btn-show-history").prop("disabled",!_)},loadSearchHistory:function(){try{var e=localStorage.getItem(this.searchHistoryKey);this.searchHistory=e?JSON.parse(e):{}}catch(e){this.searchHistory={}}},saveSearchHistory:function(){try{localStorage.setItem(this.searchHistoryKey,JSON.stringify(this.searchHistory))}catch(e){}},addToSearchHistory:function(e,t){if(t&&!(t.length<2)){this.searchHistory[e]||(this.searchHistory[e]=[]);var i=this.searchHistory[e],a=i.indexOf(t);-1!==a&&i.splice(a,1),i.unshift(t),i.length>this.searchHistoryMax&&(i=i.slice(0,this.searchHistoryMax)),this.searchHistory[e]=i,this.saveSearchHistory()}},removeFromSearchHistory:function(e,t){if(this.searchHistory[e]){var i=this.searchHistory[e].indexOf(t);-1!==i&&(this.searchHistory[e].splice(i,1),this.saveSearchHistory())}},getSearchHistory:function(e){return this.searchHistory[e]||[]},showSearchHistory:function(e){var t=this.getSearchHistory(e),i=this.config.trans||{},a=this.$dropdown.find(".dropdown-results");if(this.$dropdown.find(".results-count").text(i.recent_searches||"Recent searches"),this.$dropdown.find(".dropdown-actions").hide(),this.$dropdown.find(".filter-panel").removeClass("show"),this.$dropdown.find(".btn-toggle-filters").removeClass("active"),this.$dropdown.find(".results-header").hide(),t.length){for(var s='
',n=0;n',s+='',s+=''+this.escapeHtml(r)+"",s+='",s+="
"}s+="",a.html(s),this.$dropdown.addClass("show")}else this.performSearch()},refreshSearch:function(){"tree"!==this.viewMode?(this.searchOffset=0,this.loadMoreCount=20,this.$dropdown&&(this.$dropdown.find(".load-more-select").val("20"),this.$dropdown.find('.load-more-select option[data-all="true"]').remove()),this.performSearch(!1)):this.filterCategoryTree(this.searchQuery||"")},clearFilters:function(){if(this.refineQuery="",this.refineNegate=!1,this.filters={inStock:!1,discounted:!1,priceMin:null,priceMax:null,attributes:[],features:[],productCountMin:null,productCountMax:null,salesMin:null,salesMax:null,turnoverMin:null,turnoverMax:null,depth:null,hasProducts:!1,hasDescription:!1,hasImage:!1,activeOnly:!0,attributeGroup:null,featureGroup:null,dateAddFrom:null,dateAddTo:null,lastProductFrom:null,lastProductTo:null},this.$dropdown){var e=this.config.trans||{};this.$dropdown.find(".refine-input").val("").attr("placeholder",e.refine_short||"Refine..."),this.$dropdown.find(".btn-clear-refine").hide(),this.$dropdown.find(".btn-refine-negate").removeClass("active"),this.$dropdown.find(".filter-in-stock").prop("checked",!1),this.$dropdown.find(".filter-discounted").prop("checked",!1),this.$dropdown.find(".filter-price-min").val(""),this.$dropdown.find(".filter-price-max").val(""),this.$dropdown.find(".filter-attr-chip").removeClass("active"),this.$dropdown.find(".filter-feat-chip").removeClass("active"),this.$dropdown.find(".filter-group-toggle").removeClass("active has-selection"),this.$dropdown.find(".filter-row-values").hide(),this.$dropdown.find(".filter-product-count-min, .filter-product-count-max").val(""),this.$dropdown.find(".filter-sales-min, .filter-sales-max").val(""),this.$dropdown.find(".filter-turnover-min, .filter-turnover-max").val(""),this.$dropdown.find(".filter-date-add-from, .filter-date-add-to").val(""),this.$dropdown.find(".filter-last-product-from, .filter-last-product-to").val(""),this.$dropdown.find(".filter-depth-select").val(""),this.$dropdown.find(".filter-has-products").prop("checked",!1),this.$dropdown.find(".filter-has-description").prop("checked",!1),this.$dropdown.find(".filter-has-image").prop("checked",!1),this.$dropdown.find(".filter-active-only").prop("checked",!0),this.$dropdown.find(".filter-attribute-group-select, .filter-feature-group-select").val("")}this.refreshSearch()},resetFiltersWithoutSearch:function(){if(this.refineQuery="",this.refineNegate=!1,this.filters={inStock:!1,discounted:!1,priceMin:null,priceMax:null,attributes:[],features:[],productCountMin:null,productCountMax:null,salesMin:null,salesMax:null,turnoverMin:null,turnoverMax:null,depth:null,hasProducts:!1,hasDescription:!1,hasImage:!1,activeOnly:!0,attributeGroup:null,featureGroup:null,dateAddFrom:null,dateAddTo:null,lastProductFrom:null,lastProductTo:null},this.$dropdown){var e=this.config.trans||{};this.$dropdown.find(".refine-input").val("").attr("placeholder",e.refine_short||"Refine..."),this.$dropdown.find(".btn-clear-refine").hide(),this.$dropdown.find(".btn-refine-negate").removeClass("active"),this.$dropdown.find(".filter-in-stock").prop("checked",!1),this.$dropdown.find(".filter-discounted").prop("checked",!1),this.$dropdown.find(".filter-price-min").val(""),this.$dropdown.find(".filter-price-max").val(""),this.$dropdown.find(".filter-attr-chip").removeClass("active"),this.$dropdown.find(".filter-feat-chip").removeClass("active"),this.$dropdown.find(".filter-group-toggle").removeClass("active has-selection"),this.$dropdown.find(".filter-row-values").hide(),this.$dropdown.find(".filter-product-count-min, .filter-product-count-max").val(""),this.$dropdown.find(".filter-sales-min, .filter-sales-max").val(""),this.$dropdown.find(".filter-turnover-min, .filter-turnover-max").val(""),this.$dropdown.find(".filter-date-add-from, .filter-date-add-to").val(""),this.$dropdown.find(".filter-last-product-from, .filter-last-product-to").val(""),this.$dropdown.find(".filter-depth-select").val(""),this.$dropdown.find(".filter-has-products").prop("checked",!1),this.$dropdown.find(".filter-has-description").prop("checked",!1),this.$dropdown.find(".filter-has-image").prop("checked",!1),this.$dropdown.find(".filter-active-only").prop("checked",!0),this.$dropdown.find(".filter-attribute-group-select, .filter-feature-group-select").val("")}},updateFilterPanelForEntity:function(e){if(this.$dropdown){var t=this.$dropdown.find(".filter-panel");t.find(".filter-row").hide();var i=this.$dropdown.find(".view-mode-select option.tree-view-option");"categories"===e||"cms_categories"===e?(i.prop("disabled",!1).prop("hidden",!1),"tree"!==this.viewMode?(this.viewMode="tree",this.$dropdown.find(".view-mode-select").val("tree"),this.$dropdown.removeClass("view-list view-cols-2 view-cols-3 view-cols-4 view-cols-5 view-cols-6 view-cols-7 view-cols-8").addClass("view-tree"),this.loadCategoryTree()):this.loadCategoryTree()):(i.prop("disabled",!0).prop("hidden",!0),"tree"===this.viewMode&&(this.viewMode="list",this.$dropdown.find(".view-mode-select").val("list"),this.$dropdown.removeClass("view-tree").addClass("view-list"))),"products"===e?(t.find(".filter-row-quick").show(),this.filterableData&&(this.filterableData.attributes&&this.filterableData.attributes.length>0&&this.$dropdown.find(".filter-row-attributes").show(),this.filterableData.features&&this.filterableData.features.length>0&&this.$dropdown.find(".filter-row-features").show())):"categories"===e?t.find(".filter-row-entity-categories").show():"manufacturers"===e?t.find(".filter-row-entity-manufacturers").show():"suppliers"===e?t.find(".filter-row-entity-suppliers").show():"attributes"===e?(t.find(".filter-row-entity-attributes").show(),this.loadAttributeGroups()):"features"===e?t.find(".filter-row-entity-features").show():"cms"===e?t.find(".filter-row-entity-cms").show():"cms_categories"===e&&t.find(".filter-row-entity-cms-categories").show()}},loadAttributeGroups:function(){var t=this,i=this.$dropdown.find(".filter-attribute-group-select");i.find("option").length>1||e.ajax({url:this.config.ajaxUrl,type:"POST",dataType:"json",data:{ajax:1,action:"getAttributeGroups",trait:"EntitySelector"},success:function(a){a.success&&a.groups&&e.each(a.groups,function(e,a){i.append('")})}})},loadFeatureGroups:function(){var t=this,i=this.$dropdown.find(".filter-feature-group-select");i.find("option").length>1||e.ajax({url:this.config.ajaxUrl,type:"POST",dataType:"json",data:{ajax:1,action:"getFeatureGroups",trait:"EntitySelector"},success:function(a){a.success&&a.groups&&e.each(a.groups,function(e,a){i.append('")})}})}}}(jQuery),function(e){"use strict";window._EntitySelectorMixins=window._EntitySelectorMixins||{},window._EntitySelectorMixins.filters={clearFilters:function(){this.refineQuery="",this.refineNegate=!1,this.filters={inStock:!1,discounted:!1,priceMin:null,priceMax:null,attributes:[],features:[],productCountMin:null,productCountMax:null,salesMin:null,salesMax:null,turnoverMin:null,turnoverMax:null,depth:null,hasProducts:!1,hasDescription:!1,hasImage:!1,activeOnly:!0,attributeGroup:null,featureGroup:null,dateAddFrom:null,dateAddTo:null,lastProductFrom:null,lastProductTo:null},this.$dropdown&&(this.config.trans,this.$dropdown.find(".refine-input").val(""),this.$dropdown.find(".btn-refine-negate").removeClass("active"),this.$dropdown.find(".filter-in-stock").prop("checked",!1),this.$dropdown.find(".filter-discounted").prop("checked",!1),this.$dropdown.find(".filter-price-min, .filter-price-max").val(""),this.$dropdown.find(".filter-attr-chip, .filter-feat-chip").removeClass("active"),this.$dropdown.find(".filter-product-count-min, .filter-product-count-max").val(""),this.$dropdown.find(".filter-sales-min, .filter-sales-max").val(""),this.$dropdown.find(".filter-depth-select").val(""),this.$dropdown.find(".filter-has-products").prop("checked",!1),this.$dropdown.find(".filter-active-only").prop("checked",!0)),this.refreshSearch()},resetFiltersWithoutSearch:function(){this.refineQuery="",this.refineNegate=!1,this.filters={inStock:!1,discounted:!1,priceMin:null,priceMax:null,attributes:[],features:[],productCountMin:null,productCountMax:null,salesMin:null,salesMax:null,turnoverMin:null,turnoverMax:null,depth:null,hasProducts:!1,hasDescription:!1,hasImage:!1,activeOnly:!0,attributeGroup:null,featureGroup:null,dateAddFrom:null,dateAddTo:null,lastProductFrom:null,lastProductTo:null}},updateFilterPanelForEntity:function(e){if(this.$dropdown){var t=this.$dropdown.find(".filter-panel");t.find(".filter-row").hide(),t.find('.filter-row[data-entity="'+e+'"]').show(),t.find(".filter-row-entity-"+e.replace("_","-")).show();var i="categories"===e||"cms_categories"===e;this.$dropdown.find(".tree-view-option").toggle(i),i&&"list"===this.viewMode?(this.viewMode="tree",this.$dropdown.find(".view-mode-select").val("tree"),this.$dropdown.removeClass("view-list view-cols-2 view-cols-3 view-cols-4 view-cols-5 view-cols-6 view-cols-7 view-cols-8").addClass("view-tree")):i||"tree"!==this.viewMode||(this.viewMode="list",this.$dropdown.find(".view-mode-select").val("list"),this.$dropdown.removeClass("view-tree view-cols-2 view-cols-3 view-cols-4 view-cols-5 view-cols-6 view-cols-7 view-cols-8").addClass("view-list")),this.updateSortOptionsForEntity(e)}},updateSortOptionsForEntity:function(t){if(this.$dropdown){var i=this.$dropdown.find(".sort-field-select"),a=i.val(),s=!1;i.find("option").each(function(){var i=e(this),n=i.data("entities");if(!n)return i.show(),void(i.val()===a&&(s=!0));var r=-1!==n.split(",").indexOf(t);i.toggle(r),r&&i.val()===a&&(s=!0)}),s||(i.val("name"),this.currentSort.field="name")}},loadFilterableData:function(){var t=this;this.filterableData?this.renderFilterDropdowns():e.ajax({url:this.config.ajaxUrl,type:"POST",data:{ajax:1,action:"getTargetFilterableAttributes",trait:"EntitySelector"},dataType:"json",success:function(e){e.success&&e.data&&(t.filterableData=e.data,t.renderFilterDropdowns())}})},renderFilterDropdowns:function(){if(this.$dropdown&&this.filterableData){var e=this,t=this.$dropdown.find(".filter-attributes-container");t.empty(),this.filterableData.attributes&&this.filterableData.attributes.length>0&&(this.filterableData.attributes.forEach(function(i){var a='",t.append(a)}),this.$dropdown.find(".filter-row-attributes").show());var i=this.$dropdown.find(".filter-features-container");i.empty(),this.filterableData.features&&this.filterableData.features.length>0&&(this.filterableData.features.forEach(function(t){var a='",i.append(a)}),this.$dropdown.find(".filter-row-features").show())}},showFilterGroupValues:function(e,t){if(this.filterableData){var i=this,a=("attribute"===t?this.filterableData.attributes:this.filterableData.features).find(function(t){return t.id==e});if(a){this.$dropdown.find(".filter-row-values").hide();var s="attribute"===t?".filter-row-attr-values":".filter-row-feat-values",n=this.$dropdown.find(s),r=n.find(".filter-values-container");r.empty();var o=''+a.name+":";a.values.forEach(function(a){var s=("attribute"===t?-1!==i.filters.attributes.indexOf(a.id):-1!==i.filters.features.indexOf(a.id))?" active":"",n="attribute"===t?"filter-attr-chip":"filter-feat-chip",r=a.color?' style="--chip-color: '+a.color+'"':"",l=a.color?" has-color":"";o+='"}),r.html(o),n.find(".btn-close-values").remove(),n.append(''),n.show();var l=n[0];l&&l.scrollIntoView({behavior:"smooth",block:"nearest"})}}},hideFilterGroupValues:function(){this.$dropdown.find(".filter-row-values").hide(),this.$dropdown.find(".filter-group-toggle").removeClass("active")},updateFilterToggleStates:function(){if(this.$dropdown&&this.filterableData){var e=this;this.filterableData.attributes&&this.filterableData.attributes.forEach(function(t){var i=e.$dropdown.find('.filter-group-toggle[data-group-id="'+t.id+'"][data-type="attribute"]'),a=t.values.some(function(t){return-1!==e.filters.attributes.indexOf(t.id)});i.toggleClass("has-selection",a)}),this.filterableData.features&&this.filterableData.features.forEach(function(t){var i=e.$dropdown.find('.filter-group-toggle[data-group-id="'+t.id+'"][data-type="feature"]'),a=t.values.some(function(t){return-1!==e.filters.features.indexOf(t.id)});i.toggleClass("has-selection",a)})}}}}(jQuery),function(e){"use strict";window._EntitySelectorMixins=window._EntitySelectorMixins||{},window._EntitySelectorMixins.chips={addSelection:function(e,t,i,a){this.addSelectionNoUpdate(e,t,i,a);var s=e.find(".entity-chips");this.updateChipsVisibility(s)},addSelectionNoUpdate:function(e,t,i,a){var s=e.find(".entity-chips"),n=e.closest(".target-block");if("single"===(this.config.mode||"multi")?(this.$wrapper.find(".entity-chips .entity-chip").remove(),this.$dropdown&&this.$dropdown.find(".dropdown-item.selected, .tree-item.selected").removeClass("selected"),this.$wrapper.find(".target-block-tab .tab-badge").remove(),this.$wrapper.find(".target-block-tab").removeClass("has-data")):"single"===(n.data("mode")||"multi")&&(s.find(".entity-chip").remove(),this.$dropdown&&this.$dropdown.find(".dropdown-item.selected, .tree-item.selected").removeClass("selected")),!s.find('.entity-chip[data-id="'+t+'"]').length){var r='';a&&a.image&&(r+=''),r+=''+this.escapeHtml(i)+"",r+='',r+="",s.append(r)}},removeSelection:function(e,t){var i=e.find(".entity-chips");e.find('.entity-chip[data-id="'+t+'"]').remove(),this.updateChipsVisibility(i)},updateChipsVisibility:function(t){var i=this.config.trans||{},a=(t.closest(".value-picker"),t.find(".entity-chip")),s=a.length,n=t.closest(".chips-wrapper");if(0!==s){this.ensureChipsWrapper(t);var r=t.closest(".chips-wrapper"),o=r.find(".chips-toolbar"),l=r.find(".chips-load-more"),c=o.find(".chips-search-input").val()||"";c=c.toLowerCase().trim();var d=0,p=0,u=t.hasClass("chips-expanded"),h=u?999999:this.maxVisibleChips||12;a.each(function(){var t=e(this),i=(t.find(".chip-name").text()||"").toLowerCase(),a=!c||-1!==i.indexOf(c);t.removeClass("chip-filtered-out chip-paginated-out"),a?++p>h?t.addClass("chip-paginated-out"):d++:t.addClass("chip-filtered-out")}),o.addClass("has-chips"),this.updateChipsToolbar(o,s,p,c);var f=p-d;if(f>0&&!u){var v=i.load||"Load",m=(i.remaining||"{count} remaining").replace("{count}",f),g=''+v+''+m+"";l.html(g).show()}else if(u&&p>(this.maxVisibleChips||12)){var b=i.collapse||"Collapse";l.html('").show()}else l.hide()}else n.length&&(n.before(t),n.remove())},ensureChipsWrapper:function(t){if(!t.closest(".chips-wrapper").length){var i=this.config.trans||{},a=(t.closest(".value-picker"),'
'),s=e(a);t.before(s),s.find(".chips-toolbar").after(t),s.append(s.find(".chips-load-more")),this.bindChipsToolbarEvents(s)}},bindChipsToolbarEvents:function(t){var i,a=this,s=t.find(".entity-chips");t.on("input",".chips-search-input",function(){clearTimeout(i),i=setTimeout(function(){s.removeClass("chips-expanded"),a.updateChipsVisibility(s)},150)}),t.on("change",".chips-sort-select",function(){var t=e(this).val();a.sortChips(s,t)}),t.on("click",".btn-chips-clear",function(){((t.find(".chips-search-input").val()||"").trim()?s.find(".entity-chip:not(.chip-filtered-out)"):s.find(".entity-chip")).each(function(){e(this).find(".chip-remove").trigger("click")}),t.find(".chips-search-input").val(""),a.updateChipsVisibility(s)}),t.on("change",".load-more-select",function(){var t=e(this).val();"all"===t?(s.addClass("chips-expanded"),a.maxVisibleChips=999999):a.maxVisibleChips=(a.maxVisibleChips||12)+parseInt(t,10),a.updateChipsVisibility(s)}),t.on("click",".btn-collapse-chips",function(){s.removeClass("chips-expanded"),a.maxVisibleChips=12,a.updateChipsVisibility(s)})},sortChips:function(t,i){var a=t.find(".entity-chip");if(!(a.length<2)){var s=a.toArray().sort(function(t,a){var s=e(t),n=e(a);switch(i){case"name_asc":var r=(s.find(".chip-name").text()||"").toLowerCase(),o=(n.find(".chip-name").text()||"").toLowerCase();return r.localeCompare(o);case"name_desc":var l=(s.find(".chip-name").text()||"").toLowerCase();return(n.find(".chip-name").text()||"").toLowerCase().localeCompare(l);default:return 0}});e.each(s,function(e,i){t.append(i)}),this.updateChipsVisibility(t)}},updateChipsToolbar:function(e,t,i,a){var s=this.config.trans||{},n=e.find(".chips-count"),r=e.find(".btn-chips-clear"),o=r.find(".clear-text");a?(n.addClass("has-filter").html(''+i+'/'+t+""),o.text((s.clear||"Clear")+" "+i)):(n.removeClass("has-filter").html(t),o.text(s.clear_all||"Clear all")),a&&0===i?r.hide():t>0?r.show():r.hide()},loadExistingSelections:function(){var t=this,i={};this.$wrapper.find(".selection-group").each(function(){var a=e(this),s=a.closest(".target-block").data("blockType"),n=a.find(".include-picker");t.collectPickerEntities(n,s,i),t.enhanceMethodSelect(a.find(".include-method-select")),a.find(".exclude-row").each(function(){var a=e(this);t.collectPickerEntities(a.find(".exclude-picker"),s,i),t.enhanceMethodSelect(a.find(".exclude-method-select"))}),a.find(".group-excludes.has-excludes").length>0&&t.updateMethodSelectorLock(a,!0)});var a={},s=!1;Object.keys(i).forEach(function(e){var t=i[e];if(0!==t.ids.length){var n=t.ids.filter(function(e,t,i){return i.indexOf(e)===t});a[e]=n,s=!0}}),s&&e.ajax({url:t.config.ajaxUrl,type:"POST",dataType:"json",data:{ajax:1,action:"getTargetEntitiesByIdsBulk",trait:"EntitySelector",entities:JSON.stringify(a)},success:function(e){e.success&&e.entities&&Object.keys(i).forEach(function(a){var s=i[a],n=e.entities[a]||[],r={};n.forEach(function(e){r[e.id]=e}),s.pickers.forEach(function(e){var i=e.$picker,a=i.find(".entity-chips"),s=i.find(".include-values-data, .exclude-values-data"),n=[];e.ids.forEach(function(e){var i=a.find('.entity-chip-loading[data-id="'+e+'"]');if(r[e]){var s=r[e];n.push(s.id);var o='';s.image&&(o+=''),o+=''+t.escapeHtml(s.name)+"",o+='',o+="",i.replaceWith(o)}else i.remove()}),t.updateChipsVisibility(a),n.length!==e.ids.length&&(s.val(JSON.stringify(n)),t.serializeAllBlocks()),t.updateBlockStatus(i.closest(".target-block"))})})}})},collectPickerEntities:function(t,i,a){if(t.length){var s=this,n=t.find(".include-values-data, .exclude-values-data");if(n.length){var r=t.attr("data-value-type"),o=n.val()||"[]",l=[];try{l=JSON.parse(o)}catch(e){return}if("multi_numeric_range"!==r)if("multi_select_tiles"!==r){if("combination_attributes"===r)return"object"!=typeof l||null===l||0===Object.keys(l).length||n.val(JSON.stringify(l)),void s.loadCombinationAttributeGroups(t);if(l.length)if("pattern"!==r){var c=t.attr("data-search-entity")||i,d=t.find(".entity-chips"),p=this.getEntityTypeIcon(c);l.forEach(function(e){var t='';t+='',t+='Loading...',t+="",d.append(t)}),a[c]||(a[c]={ids:[],pickers:[]}),a[c].ids=a[c].ids.concat(l),a[c].pickers.push({$picker:t,ids:l})}else l.forEach(function(e){"string"==typeof e&&e?s.addPatternTag(t,e,!1):e&&e.pattern&&s.addPatternTag(t,e.pattern,!0===e.caseSensitive)})}else{if(!Array.isArray(l)||0===l.length)return;l.forEach(function(e){t.find('.tile-option[data-value="'+e+'"]').addClass("selected")})}else{if(!Array.isArray(l)||0===l.length)return;var u=t.find(".multi-range-chips");l.forEach(function(t){if(t&&(null!==t.min||null!==t.max)){var i;i=null!==t.min&&null!==t.max?t.min+" - "+t.max:null!==t.min?"≥ "+t.min:"≤ "+t.max;var a=e("",{class:"range-chip","data-min":null!==t.min?t.min:"","data-max":null!==t.max?t.max:""});a.append(e("",{class:"range-chip-text",text:i})),a.append(e("",o+=''+this.escapeHtml(t)+"",o+='',o+="",s.append(o)},getPatternTags:function(t){var i=[];return t.find(".pattern-tag:not(.draft-tag)").each(function(){var t=e(this).data("pattern"),a=1===e(this).data("caseSensitive")||"1"===e(this).data("caseSensitive");t&&i.push({pattern:t,caseSensitive:a})}),i},updateDraftTagCount:function(t,i,a){var s=this,n=t.find(".pattern-match-count"),r=n.find(".count-value"),o=t.closest(".target-block").data("blockType")||"products";r.html(''),n.show(),n.data("pattern",i),n.data("caseSensitive",a),n.data("entityType",o),e.ajax({url:this.config.ajaxUrl,type:"POST",dataType:"json",data:{ajax:1,action:"countPatternMatches",trait:"EntitySelector",pattern:i,field:"name",entity_type:o,case_sensitive:a?1:0},success:function(e){if(e.success){var i=parseInt(e.count,10)||0;r.text(i),n.show(),n.removeClass("count-zero count-found"),n.addClass(0===i?"count-zero":"count-found"),n.data("count",i);var a=t.closest(".selection-group");a.length&&s.updateGroupTotalCount(a)}else r.text("?"),n.show()},error:function(){r.text("?"),n.show()}})},updateConditionCountWithPendingPattern:function(t,i){this.config.trans;var a=t.find(".method-selector-wrapper > .condition-match-count, > .exclude-header-row > .condition-match-count").first();if(a.length){var s=t.hasClass("exclude-row"),n=(s?t.find(".exclude-method-select"):t.find(".include-method-select")).val();if(n){var r=s?t.find(".exclude-picker"):t.find(".include-picker");if("pattern"===(r.data("valueType")||"none")){var o=this.getPatternTags(r);if(i&&o.push({pattern:i,caseSensitive:!1}),0!==o.length){var l=t.closest(".target-block").data("blockType")||"products";a.find(".preview-count").html(''),a.removeClass("clickable no-matches").show(),a.data("conditionData",{method:n,values:o,blockType:l,isExclude:s}),e.ajax({url:this.config.ajaxUrl,type:"POST",dataType:"json",data:{ajax:1,action:"countConditionMatches",trait:"EntitySelector",method:n,values:JSON.stringify(o),block_type:l},success:function(e){if(e&&e.success){var t=e.count||0;a.removeClass("no-matches clickable"),0===t?(a.find(".preview-count").text(t),a.addClass("no-matches").show()):(a.find(".preview-count").text(t),a.addClass("clickable").show())}else a.hide().removeClass("clickable")},error:function(){a.hide().removeClass("clickable")}})}else a.hide()}}else a.hide()}},fetchPatternMatchCount:function(t,i,a){var s=t.closest(".exclude-row"),n=-1!==((s.length?s.find(".exclude-method-select"):t.closest(".selection-group").find(".include-method-select")).val()||"").indexOf("reference")?"reference":"name",r=t.closest(".target-block").data("blockType")||"products";a.find(".preview-count").html(''),a.removeClass("clickable no-matches").show(),e.ajax({url:this.config.ajaxUrl,type:"POST",dataType:"json",data:{ajax:1,action:"countPatternMatches",trait:"EntitySelector",pattern:i,field:n,entity_type:r,case_sensitive:0},success:function(e){if(e&&e.success){var t=e.count||0;a.find(".preview-count").text(t),a.removeClass("no-matches clickable").show(),0===t?a.addClass("no-matches"):a.addClass("clickable")}else a.hide()},error:function(){a.hide()}})},getPickerValues:function(t,i){switch(i){case"entity_search":var a=[];return t.find(".entity-chip").each(function(){var t=e(this).data("id");t&&a.push(t)}),a;case"pattern":var s=this.getPatternTags(t),n=t.find(".draft-tag .pattern-input"),r=e.trim(n.val());if(r){var o="1"===n.closest(".draft-tag").attr("data-case-sensitive");s.push({pattern:r,caseSensitive:o})}return s;case"numeric_range":return{min:t.find(".range-min-input").val()||null,max:t.find(".range-max-input").val()||null};case"date_range":return{from:t.find(".date-from-input").val()||null,to:t.find(".date-to-input").val()||null};case"select":return[t.find(".select-value-input").val()];case"boolean":return[!0];default:return[]}},updateConditionCount:function(t){this.config.trans;var i=t.find(".method-selector-wrapper > .condition-match-count, > .exclude-header-row > .condition-match-count").first();if(i.length){var a=t.hasClass("exclude-row"),s=(a?t.find(".exclude-method-select"):t.find(".include-method-select")).val();if(s){var n=a?t.find(".exclude-picker"):t.find(".include-picker"),r=n.data("valueType")||"none",o=this.getPickerValues(n,r),l=!o||Array.isArray(o)&&0===o.length||"object"==typeof o&&!Array.isArray(o)&&("combination_attributes"===r&&void 0!==o.attributes&&0===Object.keys(o.attributes).length||"combination_attributes"!==r&&0===Object.keys(o).length);if("none"!==r&&"boolean"!==r&&l)i.hide();else{var c=t.closest(".target-block").data("blockType")||"products";i.find(".preview-count").html(''),i.removeClass("clickable no-matches").show(),i.data("conditionData",{method:s,values:o,blockType:c,isExclude:a}),e.ajax({url:this.config.ajaxUrl,type:"POST",dataType:"json",data:{ajax:1,action:"countConditionMatches",trait:"EntitySelector",method:s,values:JSON.stringify(o),block_type:c},success:function(e){if(e&&e.success){var t=e.count||0;i.removeClass("no-matches clickable"),0===t?(i.find(".preview-count").text(t),i.addClass("no-matches").show()):(i.find(".preview-count").text(t),i.addClass("clickable").show())}else i.hide().removeClass("clickable")},error:function(){i.hide().removeClass("clickable")}})}}else i.hide()}},updateGroupCounts:function(t){var i=this,a=t.find(".group-include");a.length&&this.updateConditionCount(a),t.find(".exclude-row").each(function(){i.updateConditionCount(e(this))}),this.updateGroupTotalCount(t)},updateGroupTotalCount:function(t){var i=t.closest(".target-block").data("blockType")||"products",a=t.find(".group-header .group-count-badge"),s=t.find(".group-modifier-limit"),n=this.serializeGroup(t,i);if(!n.include||!n.include.method)return a.hide(),void s.attr("placeholder","–");a.html('').show(),e.ajax({url:this.config.ajaxUrl,type:"POST",dataType:"json",data:{ajax:1,action:"countGroupItems",trait:"EntitySelector",group_data:JSON.stringify(n),block_type:i},success:function(e){if(e&&e.success){var r=e.final_count||0,o=e.exclude_count||0,l=' '+r;o>0&&(l+=' (-'+o+")"),a.html(l),a.addClass("clickable").show(),a.data("groupData",n),a.data("blockType",i),a.data("finalCount",r),s.attr("placeholder",r);var c=t.find(".group-preview-badge .preview-count");if(c.length){var d=parseInt(s.val(),10),p=d>0&&dr&&(r=t)});var o=r+1,l=this.buildMethodOptions(n,!1),c=(this.buildMethodOptions(n,!0),'
');c+='
',c+='',c+='',c+='',c+='',c+="",c+='",c+="
",c+='
',c+='
',c+='
',c+='
',c+='",c+=' 0',c+='',c+="
",c+='",c+="
",c+="
",c+='
',c+='",c+="
",c+='
',c+='',c+=''+(s.limit||"Limit")+"",c+='',c+="",c+='',c+=''+(s.sort||"Sort")+"",c+='",c+='",c+="",c+='',c+=' ',c+="",c+="
",c+="
",c+="
",a.append(c);var d=a.find('.selection-group[data-group-index="'+o+'"]');this.enhanceMethodSelect(d.find(".include-method-select")),d.find(".include-method-select").val("all").trigger("change"),this.updateBlockStatus(t),this.serializeAllBlocks()},removeGroup:function(e,t){e.remove();var i=t.find(".groups-container");if(0===i.find(".selection-group").length){var a='
';a+=''+this.getEmptyStateText(t)+"",a+="
",i.html(a)}this.updateBlockStatus(t),this.serializeAllBlocks(),this.updateTabBadges()},clearAllConditions:function(){var t=this;this.$wrapper.find(".target-block").each(function(){var i=e(this),a=i.find(".groups-container");a.find(".selection-group").remove();var s='
';s+=''+t.getEmptyStateText(i)+"",s+="
",a.html(s),t.updateBlockStatus(i)}),this.serializeAllBlocks(),this.updateTabBadges(),this.updateHeaderTotalCount()},switchToBlock:function(e){this.$wrapper.find(".target-block-tab").removeClass("active"),this.$wrapper.find('.target-block-tab[data-block-type="'+e+'"]').addClass("active"),this.$wrapper.find(".target-block").removeClass("active").hide(),this.$wrapper.find('.target-block[data-block-type="'+e+'"]').addClass("active").show(),this.hideDropdown()},updateTabBadges:function(){var t=this,i=[];this.$wrapper.find(".target-block-tab").each(function(){var a=e(this),s=a.data("blockType"),n=t.$wrapper.find('.target-block[data-block-type="'+s+'"]').find(".selection-group").length,r=a.find(".tab-badge");n>0?(r.length?r.addClass("loading").html(''):a.append(''),a.addClass("has-data"),i.push(s)):(r.remove(),a.removeClass("has-data"))}),this.updateTargetSwitchState(),i.length>0&&this.fetchAllCounts(i)},updateTargetSwitchState:function(){var t=this.$wrapper.find(".prestashop-switch");if(t.length){var i=!1;this.$wrapper.find(".target-block").each(function(){if(e(this).find(".selection-group").length>0)return i=!0,!1}),i?t.find('input[value="0"]').prop("checked",!0):t.find('input[value="1"]').prop("checked",!0)}},fetchAllCounts:function(t){var i=this,a=this.$wrapper.find('input[name="'+this.config.name+'"]'),s={};try{s=JSON.parse(a.val()||"{}")}catch(e){s={}}var n={};t.forEach(function(e){var t=s[e]&&s[e].groups?s[e].groups:[];t.length>0&&(n[e]={groups:t})}),0!==Object.keys(n).length?e.ajax({url:this.config.ajaxUrl,type:"POST",dataType:"json",data:{ajax:1,action:"previewEntitySelectorBulk",trait:"EntitySelector",conditions:JSON.stringify(n)},success:function(e){e.success&&e.counts?(Object.keys(e.counts).forEach(function(t){var a=e.counts[t],s=i.$wrapper.find('.target-block-tab[data-block-type="'+t+'"]'),n=s.find(".tab-badge");n.length&&(n.removeClass("loading").html(' '+a),s.data("previewData",{count:a,success:!0}))}),t.forEach(function(t){if(!(t in e.counts)){var a=i.$wrapper.find('.target-block-tab[data-block-type="'+t+'"]');a.find(".tab-badge").remove(),a.removeClass("has-data")}}),i.updateHeaderTotalCount()):t.forEach(function(e){i.$wrapper.find('.target-block-tab[data-block-type="'+e+'"]').find(".tab-badge").remove()})},error:function(e,a,s){t.forEach(function(e){i.$wrapper.find('.target-block-tab[data-block-type="'+e+'"]').find(".tab-badge").remove()})}}):t.forEach(function(e){var t=i.$wrapper.find('.target-block-tab[data-block-type="'+e+'"]');t.find(".tab-badge").remove(),t.removeClass("has-data")})},fetchProductCount:function(t,i){var a=this,s={},n=this.$wrapper.find('input[name="'+this.config.name+'"]'),r={};try{r=JSON.parse(n.val()||"{}")}catch(e){r={}}var o=r[t]&&r[t].groups?r[t].groups:[];if(0===o.length)return i.find(".tab-badge").remove(),i.removeClass("has-data"),void i.removeData("previewData");var l=i.find(".tab-badge");l.length?l.addClass("loading").html(''):(l=e(''),i.append(l)),i.addClass("has-data"),s[t]={groups:o},e.ajax({url:this.config.ajaxUrl,type:"POST",dataType:"json",data:{ajax:1,action:"previewEntitySelector",trait:"EntitySelector",conditions:JSON.stringify(s),block_type:t,limit:10},success:function(e){e.success?(i.find(".tab-badge").removeClass("loading").html(' '+e.count),i.data("previewData",e),a.updateHeaderTotalCount()):i.find(".tab-badge").remove()},error:function(e,t,s){i.find(".tab-badge").remove(),a.updateHeaderTotalCount()}})},updateHeaderTotalCount:function(){var t=0;this.$wrapper.find(".target-block-tab .tab-badge").each(function(){var i=e(this);if(!i.hasClass("loading")){var a=parseInt(i.text(),10);isNaN(a)||(t+=a)}});var i=this.$wrapper.find(".trait-total-count");t>0?(i.find(".count-value").text(t),i.show()):i.hide(),this.updateShowAllToggle()},updateShowAllToggle:function(){var e=this.$wrapper.find(".trait-show-all-toggle");if(e.length){var t=e.find(".show-all-checkbox"),i=this.$wrapper.find(".target-block-tab.has-data").length>0;t.prop("checked",!i)}},updateBlockStatus:function(e){var t=e.find(".block-status"),i=e.data("blockType"),a=this.config.blocks[i]||{},s=this.config.trans||{},n=this.getBlockGroups(e);0===n.length?!1!==this.config.emptyMeansAll?t.text((s.all||"All")+" "+(a.entity_label_plural||"items")):t.text(s.nothing_selected||"Nothing selected"):t.text(n.length+" "+(1===n.length?s.group||"group":s.groups||"groups"))},getEmptyStateText:function(e){var t=e.data("blockType"),i=e.data("mode")||"multi",a=this.config.blocks[t]||{},s=this.config.trans||{},n=!1!==this.config.emptyMeansAll;return"single"===i?s.no_item_selected||"No item selected":n?(s.all||"All")+" "+(a.entity_label_plural||"items")+" "+(s.included||"included"):s.nothing_selected||"Nothing selected"},serializeGroup:function(t,i){var a=this,s=t.find(".include-method-select").val()||"all",n=t.find(".include-picker"),r=this.getPickerValues(n),o=[];t.find(".group-excludes.has-excludes").length&&t.find(".exclude-row").each(function(){var t=e(this),i=t.find(".exclude-method-select").val()||null,s=t.find(".exclude-picker"),n=a.getPickerValues(s);i&&n&&(!Array.isArray(n)||n.length>0)&&o.push({method:i,values:n})});var l={include:{method:s,values:r}};o.length>0&&(l.excludes=o);var c=this.getGroupModifiers(t);return(c.limit||c.sort_by)&&(l.modifiers=c),l},serializeAllBlocks:function(t){var i=this,a={};this.$wrapper.find(".target-block").each(function(){var t=e(this),s=t.data("blockType"),n=i.getBlockGroups(t);n.length>0&&(a[s]={groups:n}),i.updateBlockStatus(t)}),this.$wrapper.find('input[name="'+this.config.name+'"]').val(JSON.stringify(a)),this.updateTabBadges(),this.countUpdateTimeout&&clearTimeout(this.countUpdateTimeout),this.countUpdateTimeout=setTimeout(function(){if(t&&t.length){i.updateConditionCount(t);var e=t.closest(".selection-group");e.length&&i.updateGroupTotalCount(e)}else i.updateAllConditionCounts()},500)},getBlockGroups:function(t){var i=this,a=[];return t.find(".selection-group").each(function(){var t=e(this),s=t.find(".include-method-select").val()||"all",n=t.find(".include-picker"),r=i.getPickerValues(n);if(!i.isConditionValid(s,r,n))return!0;var o=[];t.find(".group-excludes.has-excludes").length&&t.find(".exclude-row").each(function(){var t=e(this),a=t.find(".exclude-method-select").val()||null,s=t.find(".exclude-picker"),n=i.getPickerValues(s);a&&i.isConditionValid(a,n,s)&&o.push({method:a,values:n})});var l={include:{method:s,values:r}},c=e.trim(t.attr("data-group-name")||"");c&&(l.name=c),o.length>0&&(l.excludes=o);var d=i.getGroupModifiers(t);(d.limit||d.sort_by)&&(l.modifiers=d),a.push(l)}),a},getGroupModifiers:function(e){var t=e.find(".group-modifier-limit").val(),i=e.find(".group-modifier-sort").val()||"sales",a=e.find(".group-modifiers .btn-sort-dir").data("dir")||"DESC";return{limit:t?parseInt(t,10):null,sort_by:i||null,sort_dir:a||"DESC"}},getPickerValues:function(t){var i=t.attr("data-value-type")||"entity_search",a=[];switch(i){case"entity_search":t.find(".entity-chip").each(function(){var t=e(this).data("id");a.push(isNaN(t)?t:Number(t))});break;case"pattern":a=this.getPatternTags(t);var s=t.find(".draft-tag .pattern-input"),n=e.trim(s.val());if(n){var r="1"===s.closest(".draft-tag").attr("data-case-sensitive");a.push({pattern:n,caseSensitive:r})}break;case"numeric_range":var o=t.find(".range-min-input").val(),l=t.find(".range-max-input").val();""===o&&""===l||(a={min:""!==o?parseFloat(o):null,max:""!==l?parseFloat(l):null});break;case"date_range":var c=t.find(".date-from-input").val(),d=t.find(".date-to-input").val();(c||d)&&(a={from:c||null,to:d||null});break;case"select":var p=t.find(".select-value-input").val();p&&(a=[p]);break;case"boolean":a=[!0];break;case"multi_numeric_range":var u=[];t.find(".range-chip").each(function(){var t=e(this),i=t.data("min"),a=t.data("max");u.push({min:""!==i&&void 0!==i?parseFloat(i):null,max:""!==a&&void 0!==a?parseFloat(a):null})}),u.length>0&&(a=u);break;case"multi_select_tiles":t.find(".tile-option.selected").each(function(){a.push(e(this).data("value"))});break;case"combination_attributes":var h={};if(t.find(".comb-attr-value.selected").each(function(){var t=e(this).data("groupId").toString(),i=e(this).data("valueId");h[t]||(h[t]=[]),h[t].push(i)}),Object.keys(h).length>0){var f,v=t.find(".combination-attributes-picker").data("combinationMode")||this.config.combinationMode||"products";f="toggle"===v?t.find(".comb-mode-radio:checked").val()||"products":v,a={mode:f,attributes:h}}}return a},isConditionValid:function(e,t,i){if("all"===e)return!0;var a=i.attr("data-value-type")||"entity_search";return"boolean"===a||(Array.isArray(t)?t.length>0:"object"==typeof t&&null!==t&&("combination_attributes"===a&&void 0!==t.attributes?Object.keys(t.attributes).length>0:Object.keys(t).some(function(e){return null!==t[e]&&""!==t[e]})))},updateAllConditionCounts:function(){var t=this,i={},a={},s=0;this.$wrapper.find(".target-block.active .selection-group").each(function(){var n=e(this),r=n.closest(".target-block").data("blockType")||"products",o=n.find(".group-include");if(o.length){var l=t.getConditionData(o,r);if(l){var c="c"+s++;i[c]=l.condition,a[c]=l.$countEl}}n.find(".exclude-row").each(function(){var n=t.getConditionData(e(this),r);if(n){var o="c"+s++;i[o]=n.condition,a[o]=n.$countEl}})}),0!==Object.keys(i).length&&e.ajax({url:this.config.ajaxUrl,type:"POST",dataType:"json",data:{ajax:1,action:"countConditionMatchesBulk",trait:"EntitySelector",conditions:JSON.stringify(i)},success:function(e){e&&e.success&&e.counts&&Object.keys(e.counts).forEach(function(t){var i=e.counts[t]||0,s=a[t];s&&s.length&&(s.removeClass("no-matches clickable"),0===i?(s.find(".preview-count").text(i),s.addClass("no-matches").show()):(s.find(".preview-count").text(i),s.addClass("clickable").show()))})},error:function(){Object.keys(a).forEach(function(e){var t=a[e];t&&t.length&&t.hide().removeClass("clickable")})}})},getConditionData:function(e,t){var i=e.find(".method-selector-wrapper > .condition-match-count, > .exclude-header-row .condition-match-count").first();if(!i.length)return null;var a=e.hasClass("exclude-row"),s=(a?e.find(".exclude-method-select"):e.find(".include-method-select")).val();if(!s)return i.hide(),null;var n=a?e.find(".exclude-picker"):e.find(".include-picker"),r=n.data("valueType")||"none",o=this.getPickerValues(n,r),l=!o||Array.isArray(o)&&0===o.length||"object"==typeof o&&!Array.isArray(o)&&("combination_attributes"===r&&void 0!==o.attributes&&0===Object.keys(o.attributes).length||"combination_attributes"!==r&&0===Object.keys(o).length);return"none"!==r&&"boolean"!==r&&l?(i.hide(),null):(i.find(".preview-count").html(''),i.removeClass("clickable no-matches").show(),i.data("conditionData",{method:s,values:o,blockType:t,isExclude:a}),{condition:{method:s,values:o,block_type:t},$countEl:i})},updateGroupCounts:function(t){var i=this,a=t.closest(".target-block").data("blockType")||"products",s=t.find(".group-include");s.length&&this.updateConditionCount(s,a),t.find(".exclude-row").each(function(){i.updateConditionCount(e(this),a)}),this.updateGroupTotalCount(t)},updateConditionCount:function(t,i){var a=t.find(".method-selector-wrapper > .condition-match-count, > .exclude-header-row .condition-match-count").first();if(a.length){var s=t.hasClass("exclude-row"),n=(s?t.find(".exclude-method-select"):t.find(".include-method-select")).val();if(n){var r=s?t.find(".exclude-picker"):t.find(".include-picker"),o=r.data("valueType")||"none",l=this.getPickerValues(r,o),c=!l||Array.isArray(l)&&0===l.length||"object"==typeof l&&!Array.isArray(l)&&("combination_attributes"===o&&void 0!==l.attributes&&0===Object.keys(l.attributes).length||"combination_attributes"!==o&&0===Object.keys(l).length);"none"!==o&&"boolean"!==o&&c?a.hide():(i||(i=t.closest(".target-block").data("blockType")||"products"),a.find(".preview-count").html(''),a.removeClass("clickable no-matches").show(),a.data("conditionData",{method:n,values:l,blockType:i,isExclude:s}),e.ajax({url:this.config.ajaxUrl,type:"POST",dataType:"json",data:{ajax:1,action:"countConditionMatches",trait:"EntitySelector",method:n,values:JSON.stringify(l),block_type:i},success:function(e){if(e&&e.success){var t=e.count||0;a.removeClass("no-matches clickable"),0===t?(a.find(".preview-count").text(t),a.addClass("no-matches").show()):(a.find(".preview-count").text(t),a.addClass("clickable").show())}else a.hide().removeClass("clickable")},error:function(){a.hide().removeClass("clickable")}}))}else a.hide()}},updateGroupTotalCount:function(t){var i=t.closest(".target-block").data("blockType")||"products",a=t.find(".group-header .group-count-badge"),s=t.find(".group-modifier-limit"),n=this.serializeGroup(t,i);if(!n.include||!n.include.method)return a.hide(),void s.attr("placeholder","–");a.html('').show(),e.ajax({url:this.config.ajaxUrl,type:"POST",dataType:"json",data:{ajax:1,action:"countGroupItems",trait:"EntitySelector",group_data:JSON.stringify(n),block_type:i},success:function(e){if(e&&e.success){var r=e.final_count||0,o=e.exclude_count||0,l=' '+r;o>0&&(l+=' (-'+o+")"),a.html(l),a.addClass("clickable").show(),a.data("groupData",n),a.data("blockType",i),a.data("finalCount",r),s.attr("placeholder",r);var c=t.find(".group-preview-badge .preview-count");if(c.length){var d=parseInt(s.val(),10),p=d>0&&d';s+=' '+(a.except||"EXCEPT")+"",s+="",s+='
',s+=this.buildExcludeRowHtml(t,0),s+="
",s+='",i.addClass("has-excludes").html(s);var n=i.find('.exclude-row[data-exclude-index="0"]'),r=n.find(".exclude-method-select");this.enhanceMethodSelect(r);var o=t.data("blockType"),l=r.val();this.updateMethodInfoPlaceholder(n.find(".method-selector-wrapper"),l,o),this.updateMethodSelectorLock(e,!0),this.serializeAllBlocks()},addExcludeRow:function(t,i){var a=t.find(".exclude-rows-container"),s=-1;a.find(".exclude-row").each(function(){var t=parseInt(e(this).data("excludeIndex"),10);t>s&&(s=t)});var n=s+1,r=this.buildExcludeRowHtml(i,n);a.append(r);var o=a.find('.exclude-row[data-exclude-index="'+n+'"]'),l=o.find(".exclude-method-select");this.enhanceMethodSelect(l);var c=i.data("blockType"),d=l.val();this.updateMethodInfoPlaceholder(o.find(".method-selector-wrapper"),d,c),this.serializeAllBlocks()},buildExcludeRowHtml:function(t,i){var a=t.data("blockType"),s=(this.config.blocks[a]||{}).selection_methods||{},n=this.config.trans||{},r=this.buildMethodOptions(s,!0),o=a,l="entity_search";e.each(s,function(e,t){return"all"===e||(o=t.search_entity||a,l=t.value_type||"entity_search",!1)});var c='
';return c+='
',c+='
',c+='",c+=' 0',c+='',c+="
",c+='",c+="
",(c+=this.buildValuePickerHtml("exclude",l,o,s))+"
"},removeExcludeRow:function(e,t,i){var a=t.find(".exclude-rows-container"),s=this.config.trans||{};e.remove(),0===a.find(".exclude-row").length&&(t.find(".group-excludes").removeClass("has-excludes").html('"),this.updateMethodSelectorLock(t,!1)),this.serializeAllBlocks()},buildMethodOptions:function(t,i){var a=this,s=this.config.trans||{},n="",r={select_by:s.select_by||"Select by...",filter_by:s.filter_by||"Filter by..."},o={},l={};return e.each(t,function(e,t){if(i&&"all"===e)return!0;var a=t.group||"";a?(o[a]||(o[a]={}),o[a][e]=t):l[e]=t}),e.each(l,function(e,t){n+=a.buildMethodOption(e,t)}),e.each(o,function(t,i){var s=r[t]||t.replace(/_/g," ");n+='',e.each(i,function(e,t){n+=a.buildMethodOption(e,t)}),n+=""}),n},buildMethodOption:function(e,t){var i='"},buildValuePickerHtml:function(e,t,i,a){var s=this.config.trans||{},n=e+"-picker",r=e+"-chips",o=e+"-values-data",l="";if("none"===t)return l='";switch(l='
',t){case"entity_search":var c=s.no_items_selected||"No items selected - use search below";l+='
',l+='",l+='';break;case"pattern":var d=""+this.escapeHtml(s.pattern_help_title||"Pattern Syntax")+"";d+='
',d+='
* '+this.escapeHtml(s.pattern_help_wildcard||"any text (wildcard)")+"
",d+='
{number} '+this.escapeHtml(s.pattern_help_number||"any number (e.g. 100, 250)")+"
",d+='
{letter} '+this.escapeHtml(s.pattern_help_letter||"single letter (A-Z)")+"
",d+="
",d+='
',d+=""+this.escapeHtml(s.pattern_help_examples||"Examples:")+"",d+='
*cotton* '+this.escapeHtml(s.pattern_example_1||'contains "cotton"')+"
",d+='
iPhone {number} Pro* '+this.escapeHtml(s.pattern_example_2||'matches "iPhone 15 Pro Max"')+"
",d+='
Size {letter} '+this.escapeHtml(s.pattern_example_3||'matches "Size M", "Size L"')+"
",d+="
";var p=s.no_patterns||"No patterns - press Enter to add";l+='
',l+='
',l+='
',l+='',l+='',l+=' ',l+='',l+="
",l+='',l+='',l+="",l+="
",l+='';break;case"numeric_range":l+='
',l+='',l+='-',l+='',l+="
",l+='';break;case"multi_numeric_range":l+='
',l+='
',l+='
',l+='',l+='-',l+='',l+='',l+="
",l+="
",l+='';break;case"multi_select_tiles":l+='
',l+="
",l+='';break;case"date_range":l+='
',l+='',l+='-',l+='',l+="
",l+='';break;case"select":l+='
',l+='',l+="
",l+='';break;case"boolean":l+='
',l+=''+this.escapeHtml(s.yes||"Yes")+"",l+="
",l+='';break;case"combination_attributes":this.escapeHtml(s.combination_help_title||"Combination Targeting"),this.escapeHtml(s.combination_help_desc||"Select attributes to target specific product combinations."),this.escapeHtml(s.combination_help_logic||"Logic:"),this.escapeHtml(s.combination_help_within||"Within group: OR (Red OR Blue)"),this.escapeHtml(s.combination_help_between||"Between groups: AND (Color AND Size)");var u=this.config.combinationMode||"products",h="toggle"===u,f=h?"products":u;l+='
',h&&(l+='
',l+='",l+='",l+="
"),l+='
',l+=' '+this.escapeHtml(s.loading||"Loading...")+"",l+="
",l+="
",l+='';break;default:l+=''}return l+"
"},getSortOptionsArray:function(e){var t=this.config.trans||{};switch(e){case"products":return[{value:"sales",label:t.sort_bestsellers||"Best sellers"},{value:"date_add",label:t.sort_newest||"Newest"},{value:"price",label:t.sort_price||"Price"},{value:"name",label:t.sort_name||"Name"},{value:"position",label:t.sort_position||"Position"},{value:"quantity",label:t.sort_stock||"Stock quantity"},{value:"random",label:t.sort_random||"Random"}];case"categories":return[{value:"name",label:t.sort_name||"Name"},{value:"position",label:t.sort_position||"Position"},{value:"product_count",label:t.sort_products||"Products count"},{value:"date_add",label:t.sort_newest||"Newest"}];default:return[{value:"name",label:t.sort_name||"Name"},{value:"date_add",label:t.sort_newest||"Newest"}]}},getSortIconClass:function(e,t){var i="ASC"===t;switch(e){case"name":return i?"icon-sort-alpha-asc":"icon-sort-alpha-desc";case"price":case"quantity":case"product_count":case"date_add":case"newest_products":case"position":return i?"icon-sort-numeric-asc":"icon-sort-numeric-desc";case"sales":case"total_sales":default:return i?"icon-sort-amount-asc":"icon-sort-amount-desc";case"random":return"icon-random"}},cycleSortOption:function(e,t){for(var i,a,s,n=this.getSortOptionsArray(t),r=e.data("sort")||"sales",o=e.data("dir")||"DESC",l=-1,c=0;c0)return t=!0,!1}),t?(this.clearValidationError(),!0):(this.showValidationError(),!1)},showValidationError:function(){this.$wrapper.addClass("has-validation-error");var t=this.$wrapper.data("required-message")||"Please select at least one item";this.$wrapper.find(".trait-validation-error").remove();var i=e("
",{class:"trait-validation-error",html:' '+t});this.$wrapper.find(".condition-trait-header").after(i),e("html, body").animate({scrollTop:this.$wrapper.offset().top-100},300),this.$wrapper.find(".condition-trait-body").is(":visible")||(this.$wrapper.find(".condition-trait-body").slideDown(200),this.$wrapper.removeClass("collapsed"))},clearValidationError:function(){this.$wrapper.removeClass("has-validation-error"),this.$wrapper.find(".trait-validation-error").remove()}}}(jQuery),function(e){"use strict";window._EntitySelectorMixins=window._EntitySelectorMixins||{},window._EntitySelectorMixins.methods={initMethodDropdowns:function(){var t=this;this.$wrapper.find(".include-method-select").each(function(){t.enhanceMethodSelect(e(this))}),this.$wrapper.find(".exclude-method-select").each(function(){t.enhanceMethodSelect(e(this))}),this.initMethodInfoPlaceholders()},initMethodInfoPlaceholders:function(){var t=this;this.$wrapper.find(".selection-group").each(function(){var i=e(this),a=i.closest(".target-block").data("blockType")||"products",s=i.find(".include-method-select").val()||"all";t.updateMethodInfoPlaceholder(i.find(".method-selector-wrapper"),s,a),i.find(".exclude-row").each(function(){var i=e(this),s=i.find(".exclude-method-select").val();s&&t.updateMethodInfoPlaceholder(i.find(".method-selector-wrapper"),s,a)})})},enhanceMethodSelect:function(t){var i=this;if(t.length&&!t.data("methodDropdownInit")){t.data("methodDropdownInit",!0),t.addClass("method-select-hidden");var a=t.find("option:selected"),s=a.data("icon")||"icon-caret-down",n=a.text(),r='
';r+='',r+=''+this.escapeHtml(n)+"",r+='';var o=e(r+="
");t.after(o),o.on("click",function(e){e.preventDefault(),e.stopPropagation(),t.closest(".method-selector-wrapper").hasClass("selector-locked")||i.showMethodDropdownMenu(t,o)}),t.on("change.methodDropdown",function(){i.updateMethodTrigger(t,o)})}},updateMethodTrigger:function(e,t){var i=e.find("option:selected"),a=i.data("icon")||"icon-caret-down",s=i.text();t.find(".method-trigger-icon").attr("class",a+" method-trigger-icon"),t.find(".method-trigger-label").text(s)},showMethodDropdownMenu:function(t,i){var a=this;this.closeMethodDropdownMenu();var s=this.buildMethodDropdownMenuHtml(t),n=e(s),r=i.offset(),o=i.outerWidth(),l=i.outerHeight();n.css({position:"absolute",top:r.top+l+2,left:r.left,minWidth:o,zIndex:10001}),e("body").append(n),this.$methodDropdownMenu=n,this.$methodDropdownSelect=t,this.$methodDropdownTrigger=i,n.on("click",".method-dropdown-item",function(i){i.preventDefault(),i.stopPropagation();var s=e(this).data("value");t.val(s).trigger("change"),a.closeMethodDropdownMenu()}),e(document).on("click.methodDropdown",function(t){e(t.target).closest(".method-dropdown-menu, .method-dropdown-trigger").length||a.closeMethodDropdownMenu()}),e(document).on("keydown.methodDropdown",function(e){27===e.keyCode&&a.closeMethodDropdownMenu()})},buildMethodDropdownMenuHtml:function(t){var i=this,a='
';return t.children("option").each(function(){var t=e(this),s=t.data("icon")||"icon-asterisk",n=t.text(),r=t.val(),o=t.is(":selected");a+='
',a+='',a+=''+i.escapeHtml(n)+"",o&&(a+=''),a+="
"}),t.children("optgroup").each(function(){var t=e(this),s=t.attr("label")||"";a+='
',a+='
'+i.escapeHtml(s)+"
",a+='
',t.children("option").each(function(){var t=e(this),s=t.data("icon")||"icon-cog",n=t.text(),r=t.val(),o=t.is(":selected");a+='
',a+='',a+=''+i.escapeHtml(n)+"",o&&(a+=''),a+="
"}),a+="
",a+="
"}),a+="
"},closeMethodDropdownMenu:function(){this.$methodDropdownMenu&&(this.$methodDropdownMenu.remove(),this.$methodDropdownMenu=null),this.$methodDropdownSelect=null,this.$methodDropdownTrigger=null,e(document).off("click.methodDropdown keydown.methodDropdown")},populateTiles:function(t,i,a){var s=t.find(".multi-select-tiles");s.empty(),a?s.attr("data-exclusive","true"):s.removeAttr("data-exclusive"),e.each(i,function(t,i){var a="object"==typeof i?i.label:i,n="object"==typeof i&&i.icon?i.icon:null,r="object"==typeof i&&i.color?i.color:null,o="tile-option";r&&(o+=" tile-color-"+r);var l=e("',c+="
",c+='
',c+='',c+="
",n.length>0){if(c+='
',c+=this.renderPreviewItems(n),c+="
",o){var d=r-n.length;c+='"}}else c+='
'+(a.no_preview||"No items to preview")+"
";var p=e(c+="");e("body").append(p),this.$previewPopover=p,this.$previewList=p.find(".preview-list"),this.previewLoadedCount=n.length,this.previewTotalCount=r,this.previewContext=t.context||{},this.previewOnLoadMore=t.onLoadMore||null,this.previewOnFilter=t.onFilter||null,this.previewCurrentFilter="",this.previewEntityLabel=l,p.find(".preview-close").on("click",function(){i.hidePreviewPopover()});var u=p.find(".preview-filter-input");if(t.onFilter){var h=this.debounce(function(e){i.previewCurrentFilter=e,i.showFilterLoading(!0),t.onFilter.call(i,e)},300);u.on("input",function(){var t=e(this).val().trim();t!==i.previewCurrentFilter&&h(t)})}else u.on("input",function(){var t=e(this).val().toLowerCase().trim();i.filterPreviewItems(t)});t.onLoadMore&&p.find(".btn-load-more").on("click",function(){var a=e(this),s=a.closest(".load-more-controls").find(".load-more-select");if(!a.hasClass("loading")){a.addClass("loading"),a.find("i").removeClass("icon-plus").addClass("icon-spinner icon-spin"),s.prop("disabled",!0);var n=parseInt(s.val(),10)||20;i.previewLoadCount=n,t.onLoadMore.call(i,a)}});var f=s.offset(),v=s.outerHeight(),m=s.outerWidth(),g=p.outerWidth(),b=f.left+m/2-g/2,w=e(window).width()-g-10;return b=Math.max(10,Math.min(b,w)),p.css({position:"absolute",top:f.top+v+8,left:b,zIndex:1e4}),p.addClass("show"),p},updatePreviewPopover:function(e,t){var i=this.config.trans||{};this.$previewList.html(this.renderPreviewItems(e)),this.previewLoadedCount=e.length;var a=this.$previewPopover.find(".preview-footer");if(t){var s=this.previewTotalCount-e.length,n=a.find(".load-more-controls"),r=n.find(".btn-load-more"),o=n.find(".load-more-select");r.removeClass("loading"),r.find("i").removeClass("icon-spinner icon-spin").addClass("icon-plus"),o.prop("disabled",!1),n.find(".remaining-count").text(s),o.empty(),s>=10&&o.append(''),s>=20&&o.append(''),s>=50&&o.append(''),s>=100&&o.append(''),o.append('")}else a.remove();var l=this.$previewPopover.find(".preview-filter-input").val();l&&this.filterPreviewItems(l.toLowerCase().trim())},renderPreviewItems:function(e){for(var t="",i=0;i",a.image?t+='':t+='
inventory_2
',t+='
',t+='
'+this.escapeHtml(a.name||"Unnamed")+"
";var r=[];a.reference&&r.push("Ref: "+a.reference),a.manufacturer&&r.push(a.manufacturer),a.category&&r.push(a.category),a.attributes&&r.push(a.attributes),r.length>0&&(t+='
'+this.escapeHtml(r.join(" • "))+"
"),t+="
",void 0!==a.price&&null!==a.price?t+='
'+this.formatPrice(a.price)+"
":a.price_formatted&&(t+='
'+this.escapeHtml(a.price_formatted)+"
"),void 0===a.active||a.active||(t+='Inactive'),t+=""}return t},filterPreviewItems:function(t){if(this.$previewList){var i=this.$previewList.find(".preview-item");t?i.each(function(){var i=e(this),a=i.data("name")||"",s=i.data("ref")||"",n=i.data("attrs")||"",r=-1!==a.indexOf(t)||-1!==s.indexOf(t)||-1!==n.indexOf(t);i.toggle(r)}):i.show()}},showFilterLoading:function(e){if(this.$previewPopover){var t=this.$previewList;t&&(e?(this.previewLockedWidth||(this.previewLockedWidth=this.$previewPopover.outerWidth(),this.$previewPopover.css("width",this.previewLockedWidth+"px")),t.addClass("filtering"),t.find(".filter-loading-overlay").length||t.append('
')):(t.removeClass("filtering"),t.find(".filter-loading-overlay").remove()))}},updatePreviewPopoverFiltered:function(t){var i=this.config.trans||{};if(this.showFilterLoading(!1),t.success){var a=t.items||[],s=t.count||0,n=t.hasMore||!1,r=this.$previewPopover.find(".preview-header"),o=this.previewEntityLabel||"items";if(r.find(".preview-count").text(s+" "+o),a.length>0)this.$previewList.html(this.renderPreviewItems(a)),this.previewLoadedCount=a.length,this.previewTotalCount=s;else{var l=i.no_filter_results||"No matching items found";this.$previewList.html('
'+l+"
"),this.previewLoadedCount=0,this.previewTotalCount=0}var c=this.$previewPopover.find(".preview-footer");if(n&&a.length>0){var d=s-a.length;if(c.length){var p=c.find(".load-more-controls"),u=p.find(".btn-load-more"),h=p.find(".load-more-select");u.removeClass("loading"),u.find("i").removeClass("icon-spinner icon-spin").addClass("icon-plus"),h.prop("disabled",!1),p.find(".remaining-count").text(d),h.empty(),d>=10&&h.append(''),d>=20&&h.append(''),d>=50&&h.append(''),d>=100&&h.append(''),h.append('")}else{var f='");this.$previewList.after(v);var m=this;this.previewOnLoadMore&&v.find(".btn-load-more").on("click",function(){var t=e(this),i=t.closest(".load-more-controls").find(".load-more-select");if(!t.hasClass("loading")){t.addClass("loading"),t.find("i").removeClass("icon-plus").addClass("icon-spinner icon-spin"),i.prop("disabled",!0);var a=parseInt(i.val(),10)||20;m.previewLoadCount=a,m.previewOnLoadMore.call(m,t)}})}}else c.remove()}},formatPrice:function(e){"number"!=typeof e&&(e=parseFloat(e)||0);var t=this.config&&this.config.currency_sign||"€",i=this.config&&this.config.currency_format||"right",a=e.toFixed(2);return"left"===i?t+" "+a:a+" "+t},hidePreviewPopover:function(){this.$activeBadge&&(this.$activeBadge.removeClass("popover-open loading"),this.$activeBadge=null),this.$previewPopover&&(this.$previewPopover.remove(),this.$previewPopover=null),this.$previewList=null,this.previewContext=null,this.previewOnLoadMore=null,this.previewOnFilter=null,this.previewCurrentFilter="",this.previewEntityLabel=null,this.previewLockedWidth=null},showPreviewPopover:function(e){var t=this,i=e.data("previewData");if(i){this.hidePreviewPopover();var a=e.find(".tab-badge");a.addClass("popover-open"),this.$activeBadge=a;var s=i.items||i.products||[],n=e.data("blockType"),r=(this.config.blocks&&this.config.blocks[n]?this.config.blocks[n]:{}).entity_label_plural||"items";this.previewBlockType=n,this.createPreviewPopover({$badge:a,items:s,totalCount:i.count,hasMore:i.hasMore,entityLabel:r,previewType:"tab",context:{$tab:e,blockType:n},onLoadMore:function(i){t.loadMoreTabPreviewItems(e,i)},onFilter:function(i){t.filterTabPreviewItems(e,i)}})}},filterTabPreviewItems:function(t,i){var a=this,s=this.previewBlockType,n=this.$wrapper.find('input[name="'+this.config.name+'"]'),r={};try{r=JSON.parse(n.val()||"{}")}catch(e){return void a.showFilterLoading(!1)}var o=r[s]&&r[s].groups?r[s].groups:[];if(0!==o.length){var l={};l[s]={groups:o},e.ajax({url:this.config.ajaxUrl,type:"POST",dataType:"json",data:{ajax:1,action:"previewTargetConditions",trait:"TargetConditions",conditions:JSON.stringify(l),block_type:s,filter:i,limit:20,offset:0},success:function(e){a.updatePreviewPopoverFiltered(e)},error:function(){a.showFilterLoading(!1)}})}else a.showFilterLoading(!1)},loadMoreTabPreviewItems:function(t,i){var a=this,s=this.previewBlockType,n=this.$wrapper.find('input[name="'+this.config.name+'"]'),r={};try{r=JSON.parse(n.val()||"{}")}catch(e){return}var o=r[s]&&r[s].groups?r[s].groups:[];if(0!==o.length){var l={};l[s]={groups:o};var c=this.previewLoadCount||20,d={ajax:1,action:"previewTargetConditions",trait:"TargetConditions",conditions:JSON.stringify(l),block_type:s,limit:a.previewLoadedCount+c,offset:0};a.previewCurrentFilter&&(d.filter=a.previewCurrentFilter),e.ajax({url:this.config.ajaxUrl,type:"POST",dataType:"json",data:d,success:function(e){var i=e.items||e.products||[];e.success&&i.length>0&&(t.data("previewData",e),a.previewTotalCount=e.count,a.updatePreviewPopover(i,e.hasMore))},error:function(){var e=i.closest(".load-more-controls").find(".load-more-select");i.removeClass("loading"),i.find("i").removeClass("icon-spinner icon-spin").addClass("icon-plus"),e.prop("disabled",!1)}})}},showConditionPreviewPopover:function(t){var i=this,a=t.data("conditionData");if(a){this.hidePreviewPopover(),t.addClass("popover-open loading"),this.$activeBadge=t;var s=a.blockType||"products",n=(this.config.blocks&&this.config.blocks[s]?this.config.blocks[s]:{}).entity_label_plural||"products";e.ajax({url:this.config.ajaxUrl,type:"POST",dataType:"json",data:{ajax:1,action:"previewConditionItems",trait:"EntitySelector",method:a.method,values:JSON.stringify(a.values),block_type:s,limit:10},success:function(e){t.removeClass("loading"),e.success?i.createPreviewPopover({$badge:t,items:e.items||[],totalCount:e.count,hasMore:e.hasMore,entityLabel:n,previewType:"condition",context:{conditionData:a,blockType:s},onLoadMore:function(e){i.loadMoreConditionItems(e)},onFilter:function(e){i.filterConditionItems(e)}}):(t.removeClass("popover-open"),i.$activeBadge=null)},error:function(){t.removeClass("loading popover-open"),i.$activeBadge=null}})}},filterConditionItems:function(t){var i=this,a=this.previewContext;a&&a.conditionData?e.ajax({url:this.config.ajaxUrl,type:"POST",dataType:"json",data:{ajax:1,action:"previewConditionItems",trait:"EntitySelector",method:a.conditionData.method,values:JSON.stringify(a.conditionData.values),block_type:a.blockType,filter:t,limit:20},success:function(e){i.updatePreviewPopoverFiltered(e)},error:function(){i.showFilterLoading(!1)}}):i.showFilterLoading(!1)},loadMoreConditionItems:function(t){var i=this,a=this.previewContext;if(a&&a.conditionData){var s=this.previewLoadCount||20,n={ajax:1,action:"previewConditionItems",trait:"EntitySelector",method:a.conditionData.method,values:JSON.stringify(a.conditionData.values),block_type:a.blockType,limit:i.previewLoadedCount+s};i.previewCurrentFilter&&(n.filter=i.previewCurrentFilter),e.ajax({url:this.config.ajaxUrl,type:"POST",dataType:"json",data:n,success:function(e){e.success&&(i.previewTotalCount=e.count,i.updatePreviewPopover(e.items||[],e.hasMore))},error:function(){var e=t.closest(".load-more-controls").find(".load-more-select");t.removeClass("loading"),t.find("i").removeClass("icon-spinner icon-spin").addClass("icon-plus"),e.prop("disabled",!1)}})}},showGroupPreviewPopover:function(t,i,a){var s=this;if(i||(i=t.closest(".selection-group")),!a){var n=t.closest(".target-block");a=n.data("blockType")||"products"}var r=t.data("groupData");if(r||(r=this.serializeGroup(i,a)),r&&r.include){this.hidePreviewPopover(),t.addClass("popover-open loading"),this.$activeBadge=t;var o=(this.config.blocks&&this.config.blocks[a]?this.config.blocks[a]:{}).entity_label_plural||"products";e.ajax({url:this.config.ajaxUrl,type:"POST",dataType:"json",data:{ajax:1,action:"previewGroupItems",trait:"EntitySelector",group_data:JSON.stringify(r),block_type:a,limit:10},success:function(e){t.removeClass("loading"),e.success?s.createPreviewPopover({$badge:t,items:e.items||[],totalCount:e.count,hasMore:e.hasMore,entityLabel:o,previewType:"group",context:{groupData:r,blockType:a,$group:i},onLoadMore:function(e){s.loadMoreGroupItems(e)},onFilter:function(e){s.filterGroupItems(e)}}):(t.removeClass("popover-open"),s.$activeBadge=null)},error:function(){t.removeClass("loading popover-open"),s.$activeBadge=null}})}},filterGroupItems:function(t){var i=this,a=this.previewContext;a&&a.groupData?e.ajax({url:this.config.ajaxUrl,type:"POST",dataType:"json",data:{ajax:1,action:"previewGroupItems",trait:"EntitySelector",group_data:JSON.stringify(a.groupData),block_type:a.blockType,filter:t,limit:20},success:function(e){i.updatePreviewPopoverFiltered(e)},error:function(){i.showFilterLoading(!1)}}):i.showFilterLoading(!1)},loadMoreGroupItems:function(t){var i=this,a=this.previewContext;if(a&&a.groupData){var s=this.previewLoadCount||20,n={ajax:1,action:"previewGroupItems",trait:"EntitySelector",group_data:JSON.stringify(a.groupData),block_type:a.blockType,limit:i.previewLoadedCount+s};i.previewCurrentFilter&&(n.filter=i.previewCurrentFilter),e.ajax({url:this.config.ajaxUrl,type:"POST",dataType:"json",data:n,success:function(e){e.success&&(i.previewTotalCount=e.count,i.updatePreviewPopover(e.items||[],e.hasMore))},error:function(){t.removeClass("loading"),t.find(".load-more-text").show(),t.find(".load-more-loading").hide()}})}},showFilterGroupPreviewPopover:function(t,i,a,s){var n=this;this.hidePreviewPopover(),t.addClass("popover-open loading"),this.$activeBadge=t,e.ajax({url:this.config.ajaxUrl,type:"POST",dataType:"json",data:{ajax:1,action:"previewFilterGroupProducts",trait:"EntitySelector",group_id:i,group_type:a,limit:10},success:function(e){t.removeClass("loading"),e.success?n.createPreviewPopover({$badge:t,items:e.items||[],totalCount:e.count||0,hasMore:e.hasMore||!1,entityLabel:"products",previewType:"filter-group",context:{groupId:i,groupType:a,groupName:s},onLoadMore:function(e){n.loadMoreFilterGroupItems(e)},onFilter:function(e){n.filterFilterGroupItems(e)}}):(t.removeClass("popover-open"),n.$activeBadge=null)},error:function(){t.removeClass("loading popover-open"),n.$activeBadge=null}})},filterFilterGroupItems:function(t){var i=this,a=this.previewContext;a&&a.groupId?e.ajax({url:this.config.ajaxUrl,type:"POST",dataType:"json",data:{ajax:1,action:"previewFilterGroupProducts",trait:"EntitySelector",group_id:a.groupId,group_type:a.groupType,filter:t,limit:20},success:function(e){i.updatePreviewPopoverFiltered(e)},error:function(){i.showFilterLoading(!1)}}):i.showFilterLoading(!1)},loadMoreFilterGroupItems:function(t){var i=this,a=this.previewContext;if(a&&a.groupId){var s=this.previewLoadCount||20,n={ajax:1,action:"previewFilterGroupProducts",trait:"EntitySelector",group_id:a.groupId,group_type:a.groupType,limit:i.previewLoadedCount+s};i.previewCurrentFilter&&(n.filter=i.previewCurrentFilter),e.ajax({url:this.config.ajaxUrl,type:"POST",dataType:"json",data:n,success:function(e){e.success&&(i.previewTotalCount=e.count,i.updatePreviewPopover(e.items||[],e.hasMore))},error:function(){t.removeClass("loading"),t.find(".load-more-text").show(),t.find(".load-more-loading").hide()}})}},showCategoryItemsPreview:function(t,i,a,s){var n=this;this.hidePreviewPopover(),t.addClass("popover-open loading"),this.$activeBadge=t;var r="categories"===s,o=r?"products":"pages",l=r?"previewCategoryProducts":"previewCategoryPages";e.ajax({url:this.config.ajaxUrl,type:"POST",dataType:"json",data:{ajax:1,action:l,trait:"EntitySelector",category_id:i,limit:10},success:function(e){t.removeClass("loading"),e.success?n.createPreviewPopover({$badge:t,items:e.items||[],totalCount:e.count||0,hasMore:e.hasMore||!1,entityLabel:o,previewType:"category-items",context:{categoryId:i,categoryName:a,entityType:s},onLoadMore:function(e){n.loadMoreCategoryItems(e)},onFilter:function(e){n.filterCategoryItems(e)}}):(t.removeClass("popover-open"),n.$activeBadge=null)},error:function(){t.removeClass("loading popover-open"),n.$activeBadge=null}})},loadMoreCategoryItems:function(t){var i=this,a=this.previewContext;if(a&&a.categoryId){var s="categories"===a.entityType?"previewCategoryProducts":"previewCategoryPages";t.prop("disabled",!0).find("i").addClass("icon-spin"),e.ajax({url:this.config.ajaxUrl,type:"POST",dataType:"json",data:{ajax:1,action:s,trait:"EntitySelector",category_id:a.categoryId,offset:this.previewOffset,limit:10,query:this.previewFilterQuery||""},success:function(e){t.prop("disabled",!1).find("i").removeClass("icon-spin"),e.success&&e.items&&(i.appendPreviewItems(e.items),i.previewOffset+=e.items.length,e.hasMore||t.hide())},error:function(){t.prop("disabled",!1).find("i").removeClass("icon-spin")}})}},filterCategoryItems:function(t){var i=this,a=this.previewContext;if(a&&a.categoryId){var s="categories"===a.entityType?"previewCategoryProducts":"previewCategoryPages";e.ajax({url:this.config.ajaxUrl,type:"POST",dataType:"json",data:{ajax:1,action:s,trait:"EntitySelector",category_id:a.categoryId,query:t,limit:10},success:function(e){i.showFilterLoading(!1),e.success&&(i.replacePreviewItems(e.items||[],e.count||0,e.hasMore||!1),i.previewOffset=e.items?e.items.length:0,i.previewFilterQuery=t)},error:function(){i.showFilterLoading(!1)}})}else i.showFilterLoading(!1)},showPatternPreviewModal:function(t,i,a,s){var n=this,r=this.config.trans||{},o=this.config.blocks&&this.config.blocks[i]?this.config.blocks[i]:{},l=o.entity_label_plural||"items",c=o.entity_label||"item",d='
';d+='
',d+='
',d+='',d+=' '+(r.preview||"Preview")+": "+this.escapeHtml(t)+"",d+="",d+=''+s+" "+(1===s?c:l)+"",d+='',d+="
",d+='
',d+='
'+(r.loading||"Loading...")+"
",d+="
",d+="
";var p=e(d+="
");e("body").append(p),p.find(".pattern-preview-close").on("click",function(){p.remove()}),p.on("click",function(t){e(t.target).hasClass("pattern-preview-modal-overlay")&&p.remove()}),e.ajax({url:this.config.ajaxUrl,type:"POST",dataType:"json",data:{ajax:1,action:"previewPatternMatches",trait:"TargetConditions",pattern:t,entity_type:i,case_sensitive:a?1:0,limit:50},success:function(e){if(e.success&&e.items){var t=e.items,i='
';if(0===t.length)i+='
'+(r.no_matches||"No matches found")+"
";else{for(var a=0;a',o.image&&(i+=''),i+=''+n.escapeHtml(o.name)+"",o.id&&(i+='#'+o.id+""),i+="
"}s>t.length&&(i+='
... '+(r.and||"and")+" "+(s-t.length)+" "+(r.more||"more")+"
")}i+="",p.find(".pattern-preview-content").html(i)}else p.find(".pattern-preview-content").html('
'+(r.error_loading||"Error loading preview")+"
")},error:function(){p.find(".pattern-preview-content").html('
'+(r.error_loading||"Error loading preview")+"
")}})},refreshGroupPreviewIfOpen:function(e){this.$activeBadge&&this.$previewPopover},escapeHtml:function(e){return e?String(e).replace(/&/g,"&").replace(//g,">").replace(/"/g,""").replace(/'/g,"'"):""},escapeAttr:function(e){return e?String(e).replace(/&/g,"&").replace(/"/g,""").replace(/'/g,"'"):""},showTotalPreviewPopover:function(t){var i=this,a=this.config.trans||{};this.hidePreviewPopover(),t.addClass("popover-open"),this.$activeBadge=t;var s=[];this.$wrapper.find(".target-block-tab.has-data").each(function(){var t=e(this),a=t.data("blockType"),n=t.find(".tab-badge").text().replace(/[^0-9]/g,""),r=parseInt(n,10)||0;if(r>0){i.config.blocks&&i.config.blocks[a]&&i.config.blocks[a];var o=t.find(".tab-label").prev("i").attr("class")||"icon-cube",l=t.find(".tab-label").text()||a;s.push({blockType:a,label:l,icon:o,count:r})}});var n=parseInt(t.find(".count-value").text(),10)||0,r='
';r+='
',r+=''+(a.total_summary||"Selection Summary")+"",r+=''+n+" "+(a.total_items||"total items")+"",r+="
",r+='
',r+='
    ';for(var o=0;o',r+='',r+=''+i.escapeHtml(l.label)+"",r+=''+l.count+"",r+=""}r+="
",r+="
";var c=e(r+="
");this.$previewPopover=c,c.on("click",".total-summary-item",function(){var t=e(this).data("blockType");i.hidePreviewPopover(),i.switchToBlock(t)}),e("body").append(c);var d=t.offset(),p=t.outerHeight(),u=c.outerWidth();c.css({position:"absolute",top:d.top+p+5,left:d.left-u/2+t.outerWidth()/2,zIndex:1e4});var h=e(window).width();c.offset().left+u>h-10&&c.css("left",h-u-10),c.offset().left<10&&c.css("left",10),c.hide().fadeIn(150)}}}(jQuery),function(e){"use strict";window._EntitySelectorMixins=window._EntitySelectorMixins||{},window._EntitySelectorMixins.tree={treeData:null,treeFlatData:null,loadCategoryTree:function(){var t=this,i=this.$dropdown.find(".dropdown-results"),a=this.config.trans||{},s=this.activeGroup?this.activeGroup.searchEntity:"categories";i.html('
'+this.escapeHtml(a.loading||"Loading...")+"
"),e.ajax({url:this.config.ajaxUrl,type:"POST",dataType:"json",data:{ajax:1,action:"getCategoryTree",trait:"EntitySelector",entity_type:s},success:function(e){e.success&&e.categories&&e.categories.length>0?(t.treeFlatData=e.categories,t.treeData=t.buildTreeStructure(e.categories),t.renderCategoryTree(i,s)):i.html('")},error:function(){i.html('")}})},buildTreeStructure:function(t){var i={},a=[];return t.forEach(function(t){i[t.id]=e.extend({},t,{children:[]})}),t.forEach(function(e){var t=i[e.id],s=parseInt(e.parent_id,10);s&&i[s]?i[s].children.push(t):a.push(t)}),a},renderCategoryTree:function(e,t){var i=this.config.trans||{},a=this.getSelectedIdsFromChips(),s='
';s+='
',s+='",s+='",s+="
",s+='
',s+=this.renderTreeItems(this.treeData,0,a),s+="
",s+="
",e.html(s);var n=this.treeFlatData?this.treeFlatData.length:0,r=a.length,o=n+" "+("cms_categories"===t?"CMS categories":"categories");r>0&&(o+=" ("+r+" selected)"),this.$dropdown.find(".results-count").text(o),this.updateSelectChildrenButtons(this.$dropdown.find(".tree-item"))},renderTreeItems:function(e,t,i){var a=this,s="",n=this.config.trans||{};return e.forEach(function(e){var r=e.children&&e.children.length>0,o=-1!==i.indexOf(parseInt(e.id,10)),l=20*t,c="tree-item";r&&(c+=" has-children"),o&&(c+=" selected"),e.active||(c+=" inactive"),s+='
',s+='',r?(s+='',s+='"):s+='',s+='',s+='',s+=''+a.escapeHtml(e.name)+"";var d=e.product_count||e.page_count||0;if(d>0){var p=e.page_count?n.pages||"pages":n.products||"products";s+='',s+=' '+d,s+=""}e.active||(s+=''+a.escapeHtml(n.inactive||"Inactive")+""),s+="
",r&&(s+='
',s+=a.renderTreeItems(e.children,t+1,i),s+="
")}),s},getSelectedIdsFromChips:function(){var t=[];if(!this.activeGroup)return t;var i=this.$wrapper.find('.target-block[data-block-type="'+this.activeGroup.blockType+'"]').find('.selection-group[data-group-index="'+this.activeGroup.groupIndex+'"]');return("include"===this.activeGroup.section?i.find(".include-picker"):i.find('.exclude-row[data-exclude-index="'+this.activeGroup.excludeIndex+'"]').find(".exclude-picker")).find(".entity-chip").each(function(){t.push(parseInt(e(this).data("id"),10))}),t},filterCategoryTree:function(t){var i=this.$dropdown.find(".category-tree");if(i.length){var a=i.find(".tree-item"),s=i.find(".tree-children");if(t=(t||"").toLowerCase().trim(),a.css("display",""),!t)return a.removeClass("filtered-out filter-match"),void s.removeClass("filter-expanded");a.addClass("filtered-out").removeClass("filter-match"),a.each(function(){var i=e(this);-1!==(i.data("name")||"").toLowerCase().indexOf(t)&&(i.removeClass("filtered-out"),i.parents(".tree-children").addClass("filter-expanded"),i.parents(".tree-item").removeClass("filtered-out"),i.next(".tree-children").find(".tree-item").removeClass("filtered-out"),i.next(".tree-children").addClass("filter-expanded"))})}},findTreeDescendants:function(e,t){var i=[],a=(parseInt(e.data("id"),10),parseInt(e.data("level"),10),e.next(".tree-children"));return a.length&&a.find(".tree-item").each(function(){i.push(this)}),i},updateSelectChildrenButtons:function(t){var i=this.config.trans||{};t.filter(".has-children").each(function(){var t=e(this),a=t.find(".btn-select-children");if(a.length){var s=t.next(".tree-children");if(s.length){var n=s.find(".tree-item"),r=t.hasClass("selected"),o=!0;n.each(function(){if(!e(this).hasClass("selected"))return o=!1,!1}),r&&o?(a.find("i").removeClass("icon-plus-square").addClass("icon-minus-square"),a.attr("title",i.deselect_with_children||"Deselect with all children")):(a.find("i").removeClass("icon-minus-square").addClass("icon-plus-square"),a.attr("title",i.select_with_children||"Select with all children"))}}})}}}(jQuery),function(e){"use strict";window._EntitySelectorMixins=window._EntitySelectorMixins||{},window._EntitySelectorMixins.validation={validateSelection:function(t,i,a,s){if(!this.activeGroup)return{valid:!0};var n=this.config.trans||{};t=parseInt(t,10);var r=this.$wrapper.find('.target-block[data-block-type="'+this.activeGroup.blockType+'"]').find('.selection-group[data-group-index="'+this.activeGroup.groupIndex+'"]'),o=this.getChipIds(r.find(".include-picker")),l=[];r.find(".exclude-row").each(function(){var t=e(this).find(".exclude-picker"),i=[];t.find(".entity-chip").each(function(){i.push(parseInt(e(this).data("id"),10))}),l=l.concat(i)});var c=this.checkIncludeExcludeConflict(t,i,a,o,l,n);if(!c.valid)return c;var d=this.checkRedundantSelection(t,i,a,o,l,n);if(!d.valid)return d;var p=this.activeGroup.searchEntity;if("categories"===p||"cms_categories"===p){var u=this.checkTreeConflicts(t,i,a,s,o,l,n);if(!u.valid)return u}return{valid:!0}},checkIncludeExcludeConflict:function(e,t,i,a,s,n){return"include"===i&&-1!==s.indexOf(e)?{valid:!1,type:"include_exclude_conflict",error:(n.error_in_exclude||'"{name}" is already in the exclude list. Remove it from exclude first.').replace("{name}",t)}:"exclude"===i&&-1!==a.indexOf(e)?{valid:!1,type:"include_exclude_conflict",error:(n.error_in_include||'"{name}" is already in the include list. Remove it from include first.').replace("{name}",t)}:{valid:!0}},checkRedundantSelection:function(e,t,i,a,s,n){return"include"===i&&-1!==a.indexOf(e)?{valid:!1,type:"redundant",error:(n.error_already_selected||'"{name}" is already selected.').replace("{name}",t)}:"exclude"===i&&-1!==s.indexOf(e)?{valid:!1,type:"redundant",error:(n.error_already_excluded||'"{name}" is already in an exclude list.').replace("{name}",t)}:{valid:!0}},checkTreeConflicts:function(e,t,i,a,s,n,r){if(!this.treeFlatData)return{valid:!0};a&&a.parentId&&parseInt(a.parentId,10);var o={};this.treeFlatData.forEach(function(e){o[parseInt(e.id,10)]=e});var l=this.getAncestorIds(e,o),c=this.getDescendantIds(e,o);if("include"===i){for(var d=0;d0)return{valid:!1,type:"children_included",error:(r.error_children_included||'Cannot exclude "{name}" because its children ({children}) are included. Remove them from include first.').replace("{name}",t).replace("{children}",m.slice(0,3).join(", ")+(m.length>3?"...":""))}}return{valid:!0}},getAncestorIds:function(e,t){for(var i=[],a=t[e];a&&a.parent_id;){var s=parseInt(a.parent_id,10);if(!s||!t[s])break;i.push(s),a=t[s]}return i},getDescendantIds:function(e,t){var i=[],a=this;return Object.keys(t).forEach(function(s){var n=t[s];if(parseInt(n.parent_id,10)===e){var r=parseInt(n.id,10);i.push(r);var o=a.getDescendantIds(r,t);i=i.concat(o)}}),i},getChipIds:function(t){var i=[];return t.find(".entity-chip").each(function(){i.push(parseInt(e(this).data("id"),10))}),i},validatePendingSelections:function(e,t){var i=this,a=[];return e&&e.length?(e.forEach(function(e){var s=i.validateSelection(e.id,e.name,t,e.data||{});s.valid||a.push({id:e.id,name:e.name,error:s.error,type:s.type})}),a):a},showValidationError:function(t){var i=(this.config.trans||{}).validation_error||"Selection Conflict";e(".es-validation-toast").remove();var a='
';a+='
',a+='
',a+='
'+this.escapeHtml(i)+"
",a+='
'+this.escapeHtml(t)+"
",a+="
",a+='';var s=e(a+="
");if(e("body").append(s),this.$dropdown&&this.$dropdown.hasClass("show")){var n=this.$dropdown.offset();s.css({position:"fixed",top:n.top-s.outerHeight()-10,left:n.left,zIndex:10001})}else s.css({position:"fixed",top:20,right:20,zIndex:10001});s.hide().fadeIn(200),setTimeout(function(){s.fadeOut(200,function(){e(this).remove()})},5e3),s.on("click",".es-toast-close",function(){s.fadeOut(200,function(){e(this).remove()})})},validateAndAddSelection:function(e,t,i,a,s){var n=this.validateSelection(t,i,s,a||{});return n.valid?(this.addSelection(e,t,i,a),!0):(this.showValidationError(n.error),!1)}}}(jQuery),function(e){"use strict";var t={instances:[],create:function(t){var i=function(){var t={config:{},$wrapper:null,$dropdown:null,activeGroup:null,searchTimeout:null,searchResults:[],searchTotal:0,searchOffset:0,searchQuery:"",isLoading:!1,loadMoreCount:20,viewMode:"list",currentSort:{field:"name",dir:"ASC"},refineQuery:"",refineNegate:!1,filters:{inStock:!1,discounted:!1,priceMin:null,priceMax:null,attributes:[],features:[]},filterableData:null,searchHistory:{},searchHistoryMax:10,searchHistoryKey:"targetConditionsSearchHistory",maxVisibleChips:20,$methodDropdownMenu:null,$methodDropdownSelect:null,$methodDropdownTrigger:null,$previewPopover:null,$activeBadge:null,$previewList:null,previewLoadedCount:0,previewBlockType:null,allPreviewData:null,countUpdateTimeout:null,init:function(t){if(this.config=e.extend({id:"target-conditions",name:"target_conditions",namePrefix:"target_",mode:"multi",blocks:{},ajaxUrl:"",trans:{}},t),this.$wrapper=e('[data-entity-selector-id="'+this.config.id+'"]'),this.$wrapper.length){"single"===this.config.mode&&(this.$wrapper.find(".btn-add-group").hide(),this.$wrapper.find(".group-excludes").hide(),this.$wrapper.find(".group-modifiers").hide());var i=this.$wrapper.closest(".form-group");i.addClass("condition-trait-fullwidth"),i.find(".col-lg-offset-3").removeClass("col-lg-offset-3"),this.createDropdown(),this.bindEvents(),this.loadExistingSelections(),this.loadSearchHistory(),this.initMethodDropdowns(),this.observeNewSelects();var a=this;setTimeout(function(){a.updateTabBadges(),a.updateAllConditionCounts()},100)}},observeNewSelects:function(){var t=this;"undefined"!=typeof MutationObserver&&new MutationObserver(function(i){i.forEach(function(i){i.addedNodes.length&&e(i.addedNodes).find(".include-method-select, .exclude-method-select").each(function(){t.enhanceMethodSelect(e(this))})})}).observe(this.$wrapper[0],{childList:!0,subtree:!0})},loadExistingSelections:function(){}},i=window._EntitySelectorMixins||{};return i.utils&&e.extend(t,i.utils),i.events&&e.extend(t,i.events),i.dropdown&&e.extend(t,i.dropdown),i.search&&e.extend(t,i.search),i.filters&&e.extend(t,i.filters),i.chips&&e.extend(t,i.chips),i.groups&&e.extend(t,i.groups),i.methods&&e.extend(t,i.methods),i.preview&&e.extend(t,i.preview),i.tree&&e.extend(t,i.tree),i.validation&&e.extend(t,i.validation),t}();return i.init(t),this.instances.push(i),i},init:function(e){return this.create(e)},validateAll:function(){for(var e=!0,t=0;t0&&!t.validateAll())return i.preventDefault(),!1})})}(jQuery); +!function(e){"use strict";window._EntitySelectorMixins=window._EntitySelectorMixins||{},window._EntitySelectorMixins.utils={debounce:function(e,t){var i;return function(){var a=this,s=arguments;clearTimeout(i),i=setTimeout(function(){e.apply(a,s)},t)}},escapeHtml:function(e){return null==e?"":String(e).replace(/&/g,"&").replace(//g,">").replace(/"/g,""").replace(/'/g,"'")},escapeAttr:function(e){return null==e?"":String(e).replace(/&/g,"&").replace(//g,">").replace(/"/g,""").replace(/'/g,"'")},getEntityTypeIcon:function(e){return{products:"icon-shopping-cart",categories:"icon-folder-open",manufacturers:"icon-building",suppliers:"icon-truck",attributes:"icon-list-alt",features:"icon-tags",cms:"icon-file-text",cms_categories:"icon-folder"}[e]||"icon-cube"},getEntityTypeLabel:function(e){var t=this.config.trans||{};return{products:t.product||"Product",categories:t.category||"Category",manufacturers:t.manufacturer||"Manufacturer",suppliers:t.supplier||"Supplier",attributes:t.attribute||"Attribute",features:t.feature||"Feature",cms:t.cms_page||"CMS Page",cms_categories:t.cms_category||"CMS Category"}[e]||e},validate:function(){if(1!==this.$wrapper.data("required")&&"1"!==this.$wrapper.data("required"))return!0;var t=!1;return this.$wrapper.find(".target-block").each(function(){if(e(this).find(".selection-group").length>0)return t=!0,!1}),t?(this.clearValidationError(),!0):(this.showValidationError(),!1)},showValidationError:function(){this.$wrapper.addClass("has-validation-error");var t=this.$wrapper.data("required-message")||"Please select at least one item";this.$wrapper.find(".trait-validation-error").remove();var i=e("
",{class:"trait-validation-error",html:' '+t});this.$wrapper.find(".condition-trait-header").after(i),e("html, body").animate({scrollTop:this.$wrapper.offset().top-100},300),this.$wrapper.find(".condition-trait-body").is(":visible")||(this.$wrapper.find(".condition-trait-body").slideDown(200),this.$wrapper.removeClass("collapsed"))},clearValidationError:function(){this.$wrapper.removeClass("has-validation-error"),this.$wrapper.find(".trait-validation-error").remove()},getBlockMode:function(e){var t=this.config.blocks[e];return t&&t.mode?t.mode:"multi"},isBlockSingleMode:function(e){return"single"===this.getBlockMode(e)},getCurrentSingleSelection:function(){if("single"!==(this.config.mode||"multi"))return null;var e=this.$wrapper.find(".entity-chips .entity-chip").first();if(e.length){var t=e.closest(".target-block");return{name:e.find(".chip-name").text()||e.data("id"),entityType:t.data("block-type")||"item"}}return null},supportsTreeBrowsing:function(e){return"categories"===e||"cms_categories"===e}}}(jQuery),function(e){"use strict";window._EntitySelectorMixins=window._EntitySelectorMixins||{},window._EntitySelectorMixins.events={bindEvents:function(){var t=this;this.$wrapper.on("click",".target-block-tab",function(i){i.preventDefault();var a=e(this).data("blockType");t.switchToBlock(a)}),this.$wrapper.on("click",".target-block-tab .tab-badge",function(i){i.stopPropagation(),i.preventDefault();var a=e(this).closest(".target-block-tab");e(this).hasClass("popover-open")?t.hidePreviewPopover():t.showPreviewPopover(a)}),this.$wrapper.on("click",".condition-match-count.clickable",function(i){i.stopPropagation(),i.preventDefault();var a=e(this);a.hasClass("popover-open")?t.hidePreviewPopover():t.showConditionPreviewPopover(a)}),this.$wrapper.on("click",".group-count-badge.clickable",function(i){i.stopPropagation(),i.preventDefault();var a=e(this);a.hasClass("popover-open")?t.hidePreviewPopover():t.showGroupPreviewPopover(a)}),this.$wrapper.on("click",".trait-total-count",function(i){i.stopPropagation(),i.preventDefault();var a=e(this);a.hasClass("popover-open")?t.hidePreviewPopover():t.showTotalPreviewPopover(a)}),e(document).on("click",function(i){e(i.target).closest(".target-preview-popover").length||e(i.target).closest(".tab-badge").length||e(i.target).closest(".condition-match-count").length||e(i.target).closest(".group-count-badge").length||e(i.target).closest(".group-modifiers").length||e(i.target).closest(".group-preview-badge").length||e(i.target).closest(".toggle-count.clickable").length||e(i.target).closest(".trait-total-count").length||t.hidePreviewPopover()}),this.$wrapper.on("click",".condition-trait-header",function(i){if(!(e(i.target).closest(".target-block-tabs").length||e(i.target).closest(".trait-header-actions").length||e(i.target).closest(".prestashop-switch").length||e(i.target).closest(".trait-total-count").length)){var a=t.$wrapper.find(".condition-trait-body");a.stop(!0,!0),a.is(":visible")?(a.slideUp(200),t.$wrapper.addClass("collapsed")):(a.slideDown(200),t.$wrapper.removeClass("collapsed"))}}),this.$wrapper.on("click",".group-header",function(i){e(i.target).closest(".btn-remove-group, .group-name-input").length||"single"!==t.$wrapper.data("mode")&&e(this).closest(".selection-group").toggleClass("collapsed")}),this.$wrapper.on("click",".trait-header-actions .btn-toggle-groups",function(i){i.preventDefault(),i.stopPropagation();var a=e(this),s=a.attr("data-state")||"collapsed",n=t.config.trans||{};"collapsed"===s?(t.$wrapper.find(".selection-group").removeClass("collapsed"),a.attr("data-state","expanded"),a.attr("title",n.collapse_all||"Collapse all groups"),a.find("i").removeClass("icon-expand").addClass("icon-compress")):(t.$wrapper.find(".selection-group").addClass("collapsed"),a.attr("data-state","collapsed"),a.attr("title",n.expand_all||"Expand all groups"),a.find("i").removeClass("icon-compress").addClass("icon-expand"))}),this.$wrapper.on("change",".trait-show-all-toggle .show-all-checkbox",function(i){i.stopPropagation(),e(this).prop("checked")&&t.clearAllConditions()}),this.$wrapper.on("change",".target-switch-toggle",function(i){i.stopPropagation(),"1"===e(this).val()?(t.clearAllConditions(),t.$wrapper.find(".condition-trait-body").slideUp(200),t.$wrapper.addClass("collapsed")):(t.$wrapper.find(".condition-trait-body").slideDown(200),t.$wrapper.removeClass("collapsed"))}),this.$wrapper.on("click",".btn-add-group",function(i){i.preventDefault();var a=e(this).closest(".target-block"),s=a.data("blockType");t.addGroup(a,s)}),this.$wrapper.on("click",".btn-remove-group",function(i){i.preventDefault();var a=e(this).closest(".selection-group"),s=e(this).closest(".target-block");t.removeGroup(a,s)}),this.$wrapper.on("click focus",".group-name-input",function(e){e.stopPropagation()}),this.$wrapper.on("change blur",".group-name-input",function(){var i=e(this),a=i.closest(".selection-group"),s=e.trim(i.val());a.attr("data-group-name",s),t.serializeAllBlocks()}),this.$wrapper.on("click",".btn-add-exclude",function(i){i.preventDefault();var a=e(this).closest(".selection-group"),s=e(this).closest(".target-block");t.addFirstExcludeRow(a,s)}),this.$wrapper.on("click",".btn-add-another-exclude",function(i){i.preventDefault();var a=e(this).closest(".selection-group"),s=e(this).closest(".target-block");t.addExcludeRow(a,s)}),this.$wrapper.on("click",".btn-remove-exclude-row",function(i){i.preventDefault();var a=e(this).closest(".exclude-row"),s=e(this).closest(".selection-group"),n=e(this).closest(".target-block");t.removeExcludeRow(a,s,n)}),this.$wrapper.on("change",".include-method-select",function(){t.hideDropdown();var i=e(this).closest(".selection-group"),a=e(this).closest(".target-block"),s=i.find(".group-include"),n=a.data("blockType"),r=(t.config.blocks[n]||{}).selection_methods||{},o=e(this).find("option:selected"),l=o.data("valueType")||"none",c=o.data("searchEntity")||"",d=o.data("options")||null,p=i.find(".include-picker"),u=t.buildValuePickerHtml("include",l,c,r);if(p.replaceWith(u),"select"===l&&d){var h=(f=i.find(".include-picker")).find(".select-value-input");h.empty(),e.each(d,function(e,i){h.append('")})}if("multi_select_tiles"===l&&d){var f=i.find(".include-picker"),v=!0===o.data("exclusive");t.populateTiles(f,d,v)}if("multi_numeric_range"===l){f=i.find(".include-picker");var m=o.data("step"),g=o.data("min");t.applyRangeInputConstraints(f,m,g)}"combination_attributes"===l&&(f=i.find(".include-picker"),t.loadCombinationAttributeGroups(f));var b=e(this).val();t.updateMethodInfoPlaceholder(i.find(".method-selector-wrapper"),b,n),t.updateBlockStatus(a),t.serializeAllBlocks(s)}),this.$wrapper.on("change",".exclude-method-select",function(){t.hideDropdown();var i=e(this).closest(".exclude-row"),a=(e(this).closest(".selection-group"),e(this).closest(".target-block").data("blockType")),s=(t.config.blocks[a]||{}).selection_methods||{},n=e(this).find("option:selected"),r=n.data("valueType")||"entity_search",o=n.data("searchEntity")||a,l=n.data("options")||null,c=i.find(".exclude-picker"),d=t.buildValuePickerHtml("exclude",r,o,s);if(c.replaceWith(d),"select"===r&&l){var p=(u=i.find(".exclude-picker")).find(".select-value-input");p.empty(),e.each(l,function(e,i){p.append('")})}if("multi_select_tiles"===r&&l){var u=i.find(".exclude-picker"),h=!0===n.data("exclusive");t.populateTiles(u,l,h)}if("multi_numeric_range"===r){u=i.find(".exclude-picker");var f=n.data("step"),v=n.data("min");t.applyRangeInputConstraints(u,f,v)}"combination_attributes"===r&&(u=i.find(".exclude-picker"),t.loadCombinationAttributeGroups(u));var m=e(this).val();t.updateMethodInfoPlaceholder(i.find(".exclude-header-row"),m,a),t.serializeAllBlocks(i)}),this.$wrapper.on("keydown",".pattern-input",function(t){13===t.keyCode&&(t.preventDefault(),e(this).closest(".draft-tag").find(".btn-add-pattern").click())}),this.$wrapper.on("click",".draft-tag .btn-add-pattern",function(i){i.preventDefault(),i.stopPropagation();var a=e(this).closest(".draft-tag"),s=a.closest(".value-picker"),n=a.closest(".group-include, .exclude-row"),r=a.find(".pattern-input"),o=e.trim(r.val());if(o){var l="1"===a.attr("data-case-sensitive");t.addPatternTag(s,o,l),r.val("").focus(),a.find(".pattern-match-count").removeClass("count-found count-zero").hide(),a.find(".pattern-match-count .count-value").text(""),t.serializeAllBlocks(n)}}),this.$wrapper.on("input",".pattern-input",function(){var i=e(this),a=i.closest(".draft-tag");if(a.length){var s=e.trim(i.val());i.data("countTimeout")&&clearTimeout(i.data("countTimeout"));var n=a.find(".pattern-match-count");if(s){var r=setTimeout(function(){var e="1"===a.attr("data-case-sensitive");t.updateDraftTagCount(a,s,e)},300);i.data("countTimeout",r)}else{n.removeClass("count-found count-zero").hide(),n.find(".count-value").text("");var o=a.closest(".selection-group");o.length&&t.updateGroupTotalCount(o)}}}),this.$wrapper.on("click",".pattern-tag .btn-remove-pattern",function(i){i.preventDefault(),i.stopPropagation();var a=e(this).closest(".group-include, .exclude-row");e(this).closest(".pattern-tag").remove(),t.serializeAllBlocks(a)}),this.$wrapper.on("click",".pattern-tag .btn-toggle-case",function(i){i.preventDefault(),i.stopPropagation();var a=e(this).closest(".pattern-tag"),s=e(this),n=t.config.trans||{},r=a.hasClass("draft-tag"),o=!(1===a.data("caseSensitive")||"1"===a.data("caseSensitive")||"1"===a.attr("data-case-sensitive"));a.data("caseSensitive",o?1:0),a.attr("data-case-sensitive",o?"1":"0"),a.toggleClass("case-sensitive",o),s.find(".case-icon").text(o?"Aa":"aa");var l=o?n.case_sensitive||"Case sensitive - click to toggle":n.case_insensitive||"Case insensitive - click to toggle";if(s.attr("title",l),r){var c=e.trim(a.find(".pattern-input").val());c&&t.updateDraftTagCount(a,c,o)}else{var d=a.closest(".group-include, .exclude-row");t.serializeAllBlocks(d)}}),this.$wrapper.on("click",".pattern-match-count",function(i){i.preventDefault(),i.stopPropagation();var a=e(this),s=a.data("count"),n=a.data("pattern"),r=a.data("entityType"),o=a.data("caseSensitive");!s||s<=0||!n||t.showPatternPreviewModal(n,r,o,s)}),this.$wrapper.on("click",".pattern-tag .pattern-tag-text",function(t){t.preventDefault();var i=e(this).closest(".pattern-tag");if(!i.hasClass("editing")){var a=i.data("pattern"),s=e('').val(a),n=e(''),r=e(''),o=e('').append(n,r);i.addClass("editing").find(".pattern-tag-text").hide(),i.find(".btn-remove-pattern").hide(),i.prepend(o).prepend(s),s.focus().select(),s.on("keydown",function(e){13===e.keyCode?(e.preventDefault(),n.click()):27===e.keyCode&&(e.preventDefault(),r.click())})}}),this.$wrapper.on("click",".pattern-tag .btn-pattern-save",function(i){i.preventDefault(),i.stopPropagation();var a=e(this).closest(".pattern-tag"),s=a.find(".pattern-tag-edit"),n=a.data("pattern"),r=e.trim(s.val());r&&r!==n&&(a.data("pattern",r),a.find(".pattern-tag-text").text(r)),s.remove(),a.find(".pattern-edit-actions").remove(),a.removeClass("editing").find(".pattern-tag-text, .btn-remove-pattern").show();var o=a.closest(".group-include, .exclude-row");t.serializeAllBlocks(o)}),this.$wrapper.on("click",".pattern-tag .btn-pattern-cancel",function(t){t.preventDefault(),t.stopPropagation();var i=e(this).closest(".pattern-tag");i.find(".pattern-tag-edit").remove(),i.find(".pattern-edit-actions").remove(),i.removeClass("editing").find(".pattern-tag-text, .btn-remove-pattern").show()}),this.$wrapper.on("mouseenter",".mpr-info-wrapper[data-details]",function(){var t=e(this);if(!t.data("tooltip-active")){var i=t.attr("data-details"),a=t.attr("data-tooltip-class")||"",s=e("
",{class:"mpr-tooltip mpr-tooltip-fixed "+a,html:i});e("body").append(s),t.data("tooltip-active",!0);var n=t.offset(),r=t.outerWidth(),o=s.outerWidth(),l=s.outerHeight(),c=n.left+r/2-o/2,d=n.top-l-10;c<10&&(c=10),c+o>e(window).width()-10&&(c=e(window).width()-o-10),s.css({position:"fixed",left:c+"px",top:d-e(window).scrollTop()+"px"}),t.data("tooltip-el",s)}}),this.$wrapper.on("mouseleave",".mpr-info-wrapper[data-details]",function(){var t=e(this),i=t.data("tooltip-el");i&&i.remove(),t.data("tooltip-active",!1),t.data("tooltip-el",null)}),this.$wrapper.on("change",".range-min-input, .range-max-input",function(){var i=e(this).closest(".group-include, .exclude-row");t.serializeAllBlocks(i)}),this.$wrapper.on("change",".date-from-input, .date-to-input",function(){var i=e(this).closest(".group-include, .exclude-row");t.serializeAllBlocks(i)}),this.$wrapper.on("change",".select-value-input",function(){var i=e(this).closest(".group-include, .exclude-row");t.serializeAllBlocks(i)}),this.$wrapper.on("click",".btn-add-range",function(i){i.preventDefault();var a=e(this).closest(".value-picker"),s=e(this).closest(".group-include, .exclude-row"),n=a.find(".multi-range-container"),r=n.find(".multi-range-chips"),o=n.find(".range-min-input"),l=n.find(".range-max-input"),c=o.val().trim(),d=l.val().trim();if(""!==c||""!==d){var p=parseFloat(o.attr("step"))||.01,u=o.attr("min"),h=void 0!==u&&""!==u;u=h?parseFloat(u):null;var f=""!==c?parseFloat(c):null,v=""!==d?parseFloat(d):null;if(h){if(null!==f&&fv)t.showRangeInputError(o,t.config.trans.min_greater_than_max||"Min cannot be greater than max");else{var m,g=p<1?String(p).split(".")[1].length:0;null!==f&&(f=p>=1?Math.round(f):parseFloat(f.toFixed(g)),c=String(f)),null!==v&&(v=p>=1?Math.round(v):parseFloat(v.toFixed(g)),d=String(v)),m=""!==c&&""!==d?c+" - "+d:""!==c?"≥ "+c:"≤ "+d;var b=e("",{class:"range-chip","data-min":c,"data-max":d});b.append(e("",{class:"range-chip-text",text:m})),b.append(e("",i+='",i+='
',i+='",i+='",i+='",i+="
",i+='
',i+='',i+='',i+='',i+="
",i+='",i+='",i+="
",i+="
",i+='
',i+='
',i+='",i+='",i+='
',i+=''+(t.price||"Price")+":",i+='',i+='-',i+='',i+="
",i+='",i+="
",i+='",i+='",i+='",i+='",i+='",i+='",i+='",i+='",i+='",i+='",i+='",i+="
",i+='
',i+='',i+=''+(t.product||"Product")+"",i+=''+(t.price||"Price")+"",i+=''+(t.sale||"Sale")+"",i+=''+(t.stock||"Stock")+"",i+=''+(t.sold||"Sold")+"",i+="
",i+='',i+='",i+="",this.$dropdown=e(i),e("body").append(this.$dropdown)},hideDropdown:function(){this.$dropdown&&this.$dropdown.removeClass("show"),this.activeGroup=null},positionDropdown:function(t){if(this.$dropdown){var i=t.closest(".value-picker"),a=t.closest(".entity-search-box"),s=a.offset(),n=a.outerHeight(),r=i.offset(),o=i.outerWidth(),l=s.top+n+4,c=r.left,d=Math.max(o,400),p=e(window).width();c+d>p-10&&(d=p-c-10);var u=e(window).height()-(l-e(window).scrollTop())-20;u=Math.max(u,400),this.$dropdown.css({position:"absolute",top:l,left:c,width:d,maxHeight:u,zIndex:1e4}),this.$dropdown.addClass("show")}}}}(jQuery),function(e){"use strict";window._EntitySelectorMixins=window._EntitySelectorMixins||{},window._EntitySelectorMixins.search={categoryTreeCache:null,performSearch:function(t){var i=this;if(this.activeGroup){this.isLoading=!0;var a=this.activeGroup.searchEntity,s=t&&this.loadMoreCount?this.loadMoreCount:20,n={ajax:1,action:"searchTargetEntities",trait:"EntitySelector",entity_type:a,q:this.searchQuery,limit:s,offset:t?this.searchOffset:0,sort_by:this.currentSort?this.currentSort.field:"name",sort_dir:this.currentSort?this.currentSort.dir:"ASC"};this.refineQuery&&(n.refine=this.refineQuery,this.refineNegate&&(n.refine_negate=1)),"products"===a&&this.filters&&(this.filters.inStock&&(n.filter_in_stock=1),this.filters.discounted&&(n.filter_discounted=1),null!==this.filters.priceMin&&""!==this.filters.priceMin&&(n.filter_price_min=this.filters.priceMin),null!==this.filters.priceMax&&""!==this.filters.priceMax&&(n.filter_price_max=this.filters.priceMax),this.filters.attributes&&this.filters.attributes.length>0&&(n.filter_attributes=JSON.stringify(this.filters.attributes)),this.filters.features&&this.filters.features.length>0&&(n.filter_features=JSON.stringify(this.filters.features))),"products"!==a&&this.filters&&(null!==this.filters.productCountMin&&""!==this.filters.productCountMin&&(n.filter_product_count_min=this.filters.productCountMin),null!==this.filters.productCountMax&&""!==this.filters.productCountMax&&(n.filter_product_count_max=this.filters.productCountMax),"categories"===a&&(this.filters.depth&&(n.filter_depth=this.filters.depth),this.filters.hasProducts&&(n.filter_has_products=1),this.filters.hasDescription&&(n.filter_has_description=1),this.filters.hasImage&&(n.filter_has_image=1),null!==this.filters.salesMin&&""!==this.filters.salesMin&&(n.filter_sales_min=this.filters.salesMin),null!==this.filters.salesMax&&""!==this.filters.salesMax&&(n.filter_sales_max=this.filters.salesMax),null!==this.filters.turnoverMin&&""!==this.filters.turnoverMin&&(n.filter_turnover_min=this.filters.turnoverMin),null!==this.filters.turnoverMax&&""!==this.filters.turnoverMax&&(n.filter_turnover_max=this.filters.turnoverMax),this.filters.activeOnly&&(n.filter_active=1)),"manufacturers"===a&&(null!==this.filters.salesMin&&""!==this.filters.salesMin&&(n.filter_sales_min=this.filters.salesMin),null!==this.filters.salesMax&&""!==this.filters.salesMax&&(n.filter_sales_max=this.filters.salesMax),null!==this.filters.turnoverMin&&""!==this.filters.turnoverMin&&(n.filter_turnover_min=this.filters.turnoverMin),null!==this.filters.turnoverMax&&""!==this.filters.turnoverMax&&(n.filter_turnover_max=this.filters.turnoverMax),this.filters.dateAddFrom&&(n.filter_date_add_from=this.filters.dateAddFrom),this.filters.dateAddTo&&(n.filter_date_add_to=this.filters.dateAddTo),this.filters.lastProductFrom&&(n.filter_last_product_from=this.filters.lastProductFrom),this.filters.lastProductTo&&(n.filter_last_product_to=this.filters.lastProductTo),this.filters.activeOnly&&(n.filter_active=1)),"suppliers"===a&&(null!==this.filters.salesMin&&""!==this.filters.salesMin&&(n.filter_sales_min=this.filters.salesMin),null!==this.filters.salesMax&&""!==this.filters.salesMax&&(n.filter_sales_max=this.filters.salesMax),null!==this.filters.turnoverMin&&""!==this.filters.turnoverMin&&(n.filter_turnover_min=this.filters.turnoverMin),null!==this.filters.turnoverMax&&""!==this.filters.turnoverMax&&(n.filter_turnover_max=this.filters.turnoverMax),this.filters.dateAddFrom&&(n.filter_date_add_from=this.filters.dateAddFrom),this.filters.dateAddTo&&(n.filter_date_add_to=this.filters.dateAddTo),this.filters.lastProductFrom&&(n.filter_last_product_from=this.filters.lastProductFrom),this.filters.lastProductTo&&(n.filter_last_product_to=this.filters.lastProductTo),this.filters.activeOnly&&(n.filter_active=1)),"attributes"===a&&(null!==this.filters.salesMin&&""!==this.filters.salesMin&&(n.filter_sales_min=this.filters.salesMin),null!==this.filters.salesMax&&""!==this.filters.salesMax&&(n.filter_sales_max=this.filters.salesMax),null!==this.filters.turnoverMin&&""!==this.filters.turnoverMin&&(n.filter_turnover_min=this.filters.turnoverMin),null!==this.filters.turnoverMax&&""!==this.filters.turnoverMax&&(n.filter_turnover_max=this.filters.turnoverMax),this.filters.attributeGroup&&(n.filter_attribute_group=this.filters.attributeGroup),this.filters.isColor&&(n.filter_is_color=1)),"features"===a&&(null!==this.filters.salesMin&&""!==this.filters.salesMin&&(n.filter_sales_min=this.filters.salesMin),null!==this.filters.salesMax&&""!==this.filters.salesMax&&(n.filter_sales_max=this.filters.salesMax),null!==this.filters.turnoverMin&&""!==this.filters.turnoverMin&&(n.filter_turnover_min=this.filters.turnoverMin),null!==this.filters.turnoverMax&&""!==this.filters.turnoverMax&&(n.filter_turnover_max=this.filters.turnoverMax),this.filters.featureGroup&&(n.filter_feature_group=this.filters.featureGroup),this.filters.isCustom&&(n.filter_is_custom=1)),"cms"===a&&(this.filters.activeOnly&&(n.filter_active=1),this.filters.indexable&&(n.filter_indexable=1)),"cms_categories"===a&&this.filters.activeOnly&&(n.filter_active=1)),e.ajax({url:this.config.ajaxUrl,type:"POST",dataType:"json",data:n,success:function(e){i.isLoading=!1,e.success&&(i.searchQuery&&i.searchQuery.length>=2&&e.total>0&&i.addToSearchHistory(a,i.searchQuery),i.searchResults=t?i.searchResults.concat(e.results||[]):e.results||[],i.searchTotal=e.total||0,i.searchOffset=t?i.searchOffset+(e.results||[]).length:(e.results||[]).length,i.renderSearchResults(t),i.$dropdown.addClass("show"))},error:function(){i.isLoading=!1}})}},renderSearchResults:function(t){var i=this,a=this.config.trans||{},s=this.$dropdown.find(".dropdown-results"),n=[],r=[];if(this.activeGroup){var o=this.$wrapper.find('.target-block[data-block-type="'+this.activeGroup.blockType+'"]').find('.selection-group[data-group-index="'+this.activeGroup.groupIndex+'"]'),l=this.activeGroup.searchEntity,c=this.activeGroup.excludeIndex;"include"===this.activeGroup.section?o.find(".include-picker").find(".entity-chip").each(function(){n.push(String(e(this).data("id")))}):(o.find('.exclude-row[data-exclude-index="'+c+'"]').find(".exclude-picker").find(".entity-chip").each(function(){n.push(String(e(this).data("id")))}),o.find(".exclude-row").each(function(){var t=e(this);if(parseInt(t.data("excludeIndex"),10)!==c){var a=t.find(".exclude-picker");(a.attr("data-search-entity")||i.activeGroup.blockType)===l&&a.find(".entity-chip").each(function(){r.push(String(e(this).data("id")))})}}))}var d=this.activeGroup&&"products"===this.activeGroup.searchEntity,p="list"===this.viewMode;this.$dropdown.find(".results-header").toggle(d&&p);var u=this.searchResults.filter(function(e){return-1===r.indexOf(String(e.id))}),h=this.searchResults.length-u.length,f=u.length+" / "+this.searchTotal+" results";h>0&&(f+=" ("+h+" hidden)"),this.$dropdown.find(".results-count").text(f);var v="";0!==u.length||t?u.forEach(function(e){var t="dropdown-item"+(-1!==n.indexOf(String(e.id))?" selected":"");if("product"===e.type&&(t+=" result-item-product"),v+='
';else{var a="icon-cube",s=i.activeGroup?i.activeGroup.searchEntity:null;"categories"===s?a="icon-folder":"manufacturers"===s?a="icon-building":"suppliers"===s?a="icon-truck":"attributes"===s?a="icon-paint-brush":"features"===s?a="icon-list-ul":"cms"===s?a="icon-file-text-o":"cms_categories"===s&&(a="icon-folder-o"),v+='
'}if(v+='
',v+='
'+i.escapeHtml(e.name)+"
",e.subtitle){var r=e.subtitle.split("\n");v+='
',r.forEach(function(e,t){v+='
'+i.escapeHtml(e)+"
"}),v+="
"}if(v+="
","product"===e.type)if(p){v+='
',v+=''+(e.regular_price_formatted||e.price_formatted||"")+"",v+="
",e.has_discount?(v+='
',v+=''+(e.price_formatted||"")+"",v+="
"):v+='
';var o="out_of_stock"===e.stock_status?"stock-out":"low_stock"===e.stock_status?"stock-low":"stock-ok";v+='
',v+=''+(void 0!==e.stock_qty?e.stock_qty:"")+"",v+="
",v+='
',v+=''+(void 0!==e.sales_qty?e.sales_qty:"0")+"",v+="
"}else{var l="out_of_stock"===e.stock_status?"stock-out":"low_stock"===e.stock_status?"stock-low":"";v+='
',v+=''+(e.price_formatted||"")+"",void 0!==e.stock_qty&&(v+=''+e.stock_qty+" qty"),e.has_discount&&(v+='-'+(e.discount_percent||"")+"%"),v+="
"}v+=""}):v='
'+(a.no_results||"No results found")+"
",t?s.append(v):s.html(v);var m=this.searchResults.length'+(a.all||"All")+" ("+b+")")}this.$dropdown.find(".dropdown-actions").show(),this.$dropdown.find(".btn-show-history").removeClass("active");var x=this.activeGroup?this.activeGroup.searchEntity:null,_=x&&this.getSearchHistory(x).length>0;this.$dropdown.find(".btn-show-history").prop("disabled",!_)},loadSearchHistory:function(){try{var e=localStorage.getItem(this.searchHistoryKey);this.searchHistory=e?JSON.parse(e):{}}catch(e){this.searchHistory={}}},saveSearchHistory:function(){try{localStorage.setItem(this.searchHistoryKey,JSON.stringify(this.searchHistory))}catch(e){}},addToSearchHistory:function(e,t){if(t&&!(t.length<2)){this.searchHistory[e]||(this.searchHistory[e]=[]);var i=this.searchHistory[e],a=i.indexOf(t);-1!==a&&i.splice(a,1),i.unshift(t),i.length>this.searchHistoryMax&&(i=i.slice(0,this.searchHistoryMax)),this.searchHistory[e]=i,this.saveSearchHistory()}},removeFromSearchHistory:function(e,t){if(this.searchHistory[e]){var i=this.searchHistory[e].indexOf(t);-1!==i&&(this.searchHistory[e].splice(i,1),this.saveSearchHistory())}},getSearchHistory:function(e){return this.searchHistory[e]||[]},showSearchHistory:function(e){var t=this.getSearchHistory(e),i=this.config.trans||{},a=this.$dropdown.find(".dropdown-results");if(this.$dropdown.find(".results-count").text(i.recent_searches||"Recent searches"),this.$dropdown.find(".dropdown-actions").hide(),this.$dropdown.find(".filter-panel").removeClass("show"),this.$dropdown.find(".btn-toggle-filters").removeClass("active"),this.$dropdown.find(".results-header").hide(),t.length){for(var s='
',n=0;n',s+='',s+=''+this.escapeHtml(r)+"",s+='",s+="
"}s+="",a.html(s),this.$dropdown.addClass("show")}else this.performSearch()},refreshSearch:function(){"tree"!==this.viewMode?(this.searchOffset=0,this.loadMoreCount=20,this.$dropdown&&(this.$dropdown.find(".load-more-select").val("20"),this.$dropdown.find('.load-more-select option[data-all="true"]').remove()),this.performSearch(!1)):this.filterCategoryTree(this.searchQuery||"")},clearFilters:function(){if(this.refineQuery="",this.refineNegate=!1,this.filters={inStock:!1,discounted:!1,priceMin:null,priceMax:null,attributes:[],features:[],productCountMin:null,productCountMax:null,salesMin:null,salesMax:null,turnoverMin:null,turnoverMax:null,depth:null,hasProducts:!1,hasDescription:!1,hasImage:!1,activeOnly:!0,attributeGroup:null,featureGroup:null,dateAddFrom:null,dateAddTo:null,lastProductFrom:null,lastProductTo:null},this.$dropdown){var e=this.config.trans||{};this.$dropdown.find(".refine-input").val("").attr("placeholder",e.refine_short||"Refine..."),this.$dropdown.find(".btn-clear-refine").hide(),this.$dropdown.find(".btn-refine-negate").removeClass("active"),this.$dropdown.find(".filter-in-stock").prop("checked",!1),this.$dropdown.find(".filter-discounted").prop("checked",!1),this.$dropdown.find(".filter-price-min").val(""),this.$dropdown.find(".filter-price-max").val(""),this.$dropdown.find(".filter-attr-chip").removeClass("active"),this.$dropdown.find(".filter-feat-chip").removeClass("active"),this.$dropdown.find(".filter-group-toggle").removeClass("active has-selection"),this.$dropdown.find(".filter-row-values").hide(),this.$dropdown.find(".filter-product-count-min, .filter-product-count-max").val(""),this.$dropdown.find(".filter-sales-min, .filter-sales-max").val(""),this.$dropdown.find(".filter-turnover-min, .filter-turnover-max").val(""),this.$dropdown.find(".filter-date-add-from, .filter-date-add-to").val(""),this.$dropdown.find(".filter-last-product-from, .filter-last-product-to").val(""),this.$dropdown.find(".filter-depth-select").val(""),this.$dropdown.find(".filter-has-products").prop("checked",!1),this.$dropdown.find(".filter-has-description").prop("checked",!1),this.$dropdown.find(".filter-has-image").prop("checked",!1),this.$dropdown.find(".filter-active-only").prop("checked",!0),this.$dropdown.find(".filter-attribute-group-select, .filter-feature-group-select").val("")}this.refreshSearch()},resetFiltersWithoutSearch:function(){if(this.refineQuery="",this.refineNegate=!1,this.filters={inStock:!1,discounted:!1,priceMin:null,priceMax:null,attributes:[],features:[],productCountMin:null,productCountMax:null,salesMin:null,salesMax:null,turnoverMin:null,turnoverMax:null,depth:null,hasProducts:!1,hasDescription:!1,hasImage:!1,activeOnly:!0,attributeGroup:null,featureGroup:null,dateAddFrom:null,dateAddTo:null,lastProductFrom:null,lastProductTo:null},this.$dropdown){var e=this.config.trans||{};this.$dropdown.find(".refine-input").val("").attr("placeholder",e.refine_short||"Refine..."),this.$dropdown.find(".btn-clear-refine").hide(),this.$dropdown.find(".btn-refine-negate").removeClass("active"),this.$dropdown.find(".filter-in-stock").prop("checked",!1),this.$dropdown.find(".filter-discounted").prop("checked",!1),this.$dropdown.find(".filter-price-min").val(""),this.$dropdown.find(".filter-price-max").val(""),this.$dropdown.find(".filter-attr-chip").removeClass("active"),this.$dropdown.find(".filter-feat-chip").removeClass("active"),this.$dropdown.find(".filter-group-toggle").removeClass("active has-selection"),this.$dropdown.find(".filter-row-values").hide(),this.$dropdown.find(".filter-product-count-min, .filter-product-count-max").val(""),this.$dropdown.find(".filter-sales-min, .filter-sales-max").val(""),this.$dropdown.find(".filter-turnover-min, .filter-turnover-max").val(""),this.$dropdown.find(".filter-date-add-from, .filter-date-add-to").val(""),this.$dropdown.find(".filter-last-product-from, .filter-last-product-to").val(""),this.$dropdown.find(".filter-depth-select").val(""),this.$dropdown.find(".filter-has-products").prop("checked",!1),this.$dropdown.find(".filter-has-description").prop("checked",!1),this.$dropdown.find(".filter-has-image").prop("checked",!1),this.$dropdown.find(".filter-active-only").prop("checked",!0),this.$dropdown.find(".filter-attribute-group-select, .filter-feature-group-select").val("")}},updateFilterPanelForEntity:function(e){if(this.$dropdown){var t=this.$dropdown.find(".filter-panel");t.find(".filter-row").hide();var i=this.$dropdown.find(".view-mode-select option.tree-view-option");"categories"===e||"cms_categories"===e?(i.prop("disabled",!1).prop("hidden",!1),"tree"!==this.viewMode?(this.viewMode="tree",this.$dropdown.find(".view-mode-select").val("tree"),this.$dropdown.removeClass("view-list view-cols-2 view-cols-3 view-cols-4 view-cols-5 view-cols-6 view-cols-7 view-cols-8").addClass("view-tree"),this.loadCategoryTree()):this.loadCategoryTree()):(i.prop("disabled",!0).prop("hidden",!0),"tree"===this.viewMode&&(this.viewMode="list",this.$dropdown.find(".view-mode-select").val("list"),this.$dropdown.removeClass("view-tree").addClass("view-list"))),"products"===e?(t.find(".filter-row-quick").show(),this.filterableData&&(this.filterableData.attributes&&this.filterableData.attributes.length>0&&this.$dropdown.find(".filter-row-attributes").show(),this.filterableData.features&&this.filterableData.features.length>0&&this.$dropdown.find(".filter-row-features").show())):"categories"===e?t.find(".filter-row-entity-categories").show():"manufacturers"===e?t.find(".filter-row-entity-manufacturers").show():"suppliers"===e?t.find(".filter-row-entity-suppliers").show():"attributes"===e?(t.find(".filter-row-entity-attributes").show(),this.loadAttributeGroups()):"features"===e?t.find(".filter-row-entity-features").show():"cms"===e?t.find(".filter-row-entity-cms").show():"cms_categories"===e&&t.find(".filter-row-entity-cms-categories").show()}},loadAttributeGroups:function(){var t=this,i=this.$dropdown.find(".filter-attribute-group-select");i.find("option").length>1||e.ajax({url:this.config.ajaxUrl,type:"POST",dataType:"json",data:{ajax:1,action:"getAttributeGroups",trait:"EntitySelector"},success:function(a){a.success&&a.groups&&e.each(a.groups,function(e,a){i.append('")})}})},loadFeatureGroups:function(){var t=this,i=this.$dropdown.find(".filter-feature-group-select");i.find("option").length>1||e.ajax({url:this.config.ajaxUrl,type:"POST",dataType:"json",data:{ajax:1,action:"getFeatureGroups",trait:"EntitySelector"},success:function(a){a.success&&a.groups&&e.each(a.groups,function(e,a){i.append('")})}})}}}(jQuery),function(e){"use strict";window._EntitySelectorMixins=window._EntitySelectorMixins||{},window._EntitySelectorMixins.filters={clearFilters:function(){this.refineQuery="",this.refineNegate=!1,this.filters={inStock:!1,discounted:!1,priceMin:null,priceMax:null,attributes:[],features:[],productCountMin:null,productCountMax:null,salesMin:null,salesMax:null,turnoverMin:null,turnoverMax:null,depth:null,hasProducts:!1,hasDescription:!1,hasImage:!1,activeOnly:!0,attributeGroup:null,featureGroup:null,dateAddFrom:null,dateAddTo:null,lastProductFrom:null,lastProductTo:null},this.$dropdown&&(this.config.trans,this.$dropdown.find(".refine-input").val(""),this.$dropdown.find(".btn-refine-negate").removeClass("active"),this.$dropdown.find(".filter-in-stock").prop("checked",!1),this.$dropdown.find(".filter-discounted").prop("checked",!1),this.$dropdown.find(".filter-price-min, .filter-price-max").val(""),this.$dropdown.find(".filter-attr-chip, .filter-feat-chip").removeClass("active"),this.$dropdown.find(".filter-product-count-min, .filter-product-count-max").val(""),this.$dropdown.find(".filter-sales-min, .filter-sales-max").val(""),this.$dropdown.find(".filter-depth-select").val(""),this.$dropdown.find(".filter-has-products").prop("checked",!1),this.$dropdown.find(".filter-active-only").prop("checked",!0)),this.refreshSearch()},resetFiltersWithoutSearch:function(){this.refineQuery="",this.refineNegate=!1,this.filters={inStock:!1,discounted:!1,priceMin:null,priceMax:null,attributes:[],features:[],productCountMin:null,productCountMax:null,salesMin:null,salesMax:null,turnoverMin:null,turnoverMax:null,depth:null,hasProducts:!1,hasDescription:!1,hasImage:!1,activeOnly:!0,attributeGroup:null,featureGroup:null,dateAddFrom:null,dateAddTo:null,lastProductFrom:null,lastProductTo:null}},updateFilterPanelForEntity:function(e){if(this.$dropdown){var t=this.$dropdown.find(".filter-panel");t.find(".filter-row").hide(),t.find('.filter-row[data-entity="'+e+'"]').show(),t.find(".filter-row-entity-"+e.replace("_","-")).show();var i="categories"===e||"cms_categories"===e;this.$dropdown.find(".tree-view-option").toggle(i),i&&"list"===this.viewMode?(this.viewMode="tree",this.$dropdown.find(".view-mode-select").val("tree"),this.$dropdown.removeClass("view-list view-cols-2 view-cols-3 view-cols-4 view-cols-5 view-cols-6 view-cols-7 view-cols-8").addClass("view-tree")):i||"tree"!==this.viewMode||(this.viewMode="list",this.$dropdown.find(".view-mode-select").val("list"),this.$dropdown.removeClass("view-tree view-cols-2 view-cols-3 view-cols-4 view-cols-5 view-cols-6 view-cols-7 view-cols-8").addClass("view-list")),this.updateSortOptionsForEntity(e)}},updateSortOptionsForEntity:function(t){if(this.$dropdown){var i=this.$dropdown.find(".sort-field-select"),a=i.val(),s=!1;i.find("option").each(function(){var i=e(this),n=i.data("entities");if(!n)return i.show(),void(i.val()===a&&(s=!0));var r=-1!==n.split(",").indexOf(t);i.toggle(r),r&&i.val()===a&&(s=!0)}),s||(i.val("name"),this.currentSort.field="name")}},loadFilterableData:function(){var t=this;this.filterableData?this.renderFilterDropdowns():e.ajax({url:this.config.ajaxUrl,type:"POST",data:{ajax:1,action:"getTargetFilterableAttributes",trait:"EntitySelector"},dataType:"json",success:function(e){e.success&&e.data&&(t.filterableData=e.data,t.renderFilterDropdowns())}})},renderFilterDropdowns:function(){if(this.$dropdown&&this.filterableData){var e=this,t=this.$dropdown.find(".filter-attributes-container");t.empty(),this.filterableData.attributes&&this.filterableData.attributes.length>0&&(this.filterableData.attributes.forEach(function(i){var a='",t.append(a)}),this.$dropdown.find(".filter-row-attributes").show());var i=this.$dropdown.find(".filter-features-container");i.empty(),this.filterableData.features&&this.filterableData.features.length>0&&(this.filterableData.features.forEach(function(t){var a='",i.append(a)}),this.$dropdown.find(".filter-row-features").show())}},showFilterGroupValues:function(e,t){if(this.filterableData){var i=this,a=("attribute"===t?this.filterableData.attributes:this.filterableData.features).find(function(t){return t.id==e});if(a){this.$dropdown.find(".filter-row-values").hide();var s="attribute"===t?".filter-row-attr-values":".filter-row-feat-values",n=this.$dropdown.find(s),r=n.find(".filter-values-container");r.empty();var o=''+a.name+":";a.values.forEach(function(a){var s=("attribute"===t?-1!==i.filters.attributes.indexOf(a.id):-1!==i.filters.features.indexOf(a.id))?" active":"",n="attribute"===t?"filter-attr-chip":"filter-feat-chip",r=a.color?' style="--chip-color: '+a.color+'"':"",l=a.color?" has-color":"";o+='"}),r.html(o),n.find(".btn-close-values").remove(),n.append(''),n.show();var l=n[0];l&&l.scrollIntoView({behavior:"smooth",block:"nearest"})}}},hideFilterGroupValues:function(){this.$dropdown.find(".filter-row-values").hide(),this.$dropdown.find(".filter-group-toggle").removeClass("active")},updateFilterToggleStates:function(){if(this.$dropdown&&this.filterableData){var e=this;this.filterableData.attributes&&this.filterableData.attributes.forEach(function(t){var i=e.$dropdown.find('.filter-group-toggle[data-group-id="'+t.id+'"][data-type="attribute"]'),a=t.values.some(function(t){return-1!==e.filters.attributes.indexOf(t.id)});i.toggleClass("has-selection",a)}),this.filterableData.features&&this.filterableData.features.forEach(function(t){var i=e.$dropdown.find('.filter-group-toggle[data-group-id="'+t.id+'"][data-type="feature"]'),a=t.values.some(function(t){return-1!==e.filters.features.indexOf(t.id)});i.toggleClass("has-selection",a)})}}}}(jQuery),function(e){"use strict";window._EntitySelectorMixins=window._EntitySelectorMixins||{},window._EntitySelectorMixins.chips={addSelection:function(e,t,i,a){this.addSelectionNoUpdate(e,t,i,a);var s=e.find(".entity-chips");this.updateChipsVisibility(s)},addSelectionNoUpdate:function(e,t,i,a){var s=e.find(".entity-chips"),n=e.closest(".target-block");if("single"===(this.config.mode||"multi")?(this.$wrapper.find(".entity-chips .entity-chip").remove(),this.$dropdown&&this.$dropdown.find(".dropdown-item.selected, .tree-item.selected").removeClass("selected"),this.$wrapper.find(".target-block-tab .tab-badge").remove(),this.$wrapper.find(".target-block-tab").removeClass("has-data")):"single"===(n.data("mode")||"multi")&&(s.find(".entity-chip").remove(),this.$dropdown&&this.$dropdown.find(".dropdown-item.selected, .tree-item.selected").removeClass("selected")),!s.find('.entity-chip[data-id="'+t+'"]').length){var r='';a&&a.image&&(r+=''),r+=''+this.escapeHtml(i)+"",r+='',r+="",s.append(r)}},removeSelection:function(e,t){var i=e.find(".entity-chips");e.find('.entity-chip[data-id="'+t+'"]').remove(),this.updateChipsVisibility(i)},updateChipsVisibility:function(t){var i=this.config.trans||{},a=(t.closest(".value-picker"),t.find(".entity-chip")),s=a.length,n=t.closest(".chips-wrapper");if(0!==s){this.ensureChipsWrapper(t);var r=t.closest(".chips-wrapper"),o=r.find(".chips-toolbar"),l=r.find(".chips-load-more"),c=o.find(".chips-search-input").val()||"";c=c.toLowerCase().trim();var d=0,p=0,u=t.hasClass("chips-expanded"),h=u?999999:this.maxVisibleChips||12;a.each(function(){var t=e(this),i=(t.find(".chip-name").text()||"").toLowerCase(),a=!c||-1!==i.indexOf(c);t.removeClass("chip-filtered-out chip-paginated-out"),a?++p>h?t.addClass("chip-paginated-out"):d++:t.addClass("chip-filtered-out")}),o.addClass("has-chips"),this.updateChipsToolbar(o,s,p,c);var f=p-d;if(f>0&&!u){var v=i.load||"Load",m=(i.remaining||"{count} remaining").replace("{count}",f),g=''+v+''+m+"";l.html(g).show()}else if(u&&p>(this.maxVisibleChips||12)){var b=i.collapse||"Collapse";l.html('").show()}else l.hide()}else n.length&&(n.before(t),n.remove())},ensureChipsWrapper:function(t){if(!t.closest(".chips-wrapper").length){var i=this.config.trans||{},a=(t.closest(".value-picker"),'
'),s=e(a);t.before(s),s.find(".chips-toolbar").after(t),s.append(s.find(".chips-load-more")),this.bindChipsToolbarEvents(s)}},bindChipsToolbarEvents:function(t){var i,a=this,s=t.find(".entity-chips");t.on("input",".chips-search-input",function(){clearTimeout(i),i=setTimeout(function(){s.removeClass("chips-expanded"),a.updateChipsVisibility(s)},150)}),t.on("change",".chips-sort-select",function(){var t=e(this).val();a.sortChips(s,t)}),t.on("click",".btn-chips-clear",function(){((t.find(".chips-search-input").val()||"").trim()?s.find(".entity-chip:not(.chip-filtered-out)"):s.find(".entity-chip")).each(function(){e(this).find(".chip-remove").trigger("click")}),t.find(".chips-search-input").val(""),a.updateChipsVisibility(s)}),t.on("change",".load-more-select",function(){var t=e(this).val();"all"===t?(s.addClass("chips-expanded"),a.maxVisibleChips=999999):a.maxVisibleChips=(a.maxVisibleChips||12)+parseInt(t,10),a.updateChipsVisibility(s)}),t.on("click",".btn-collapse-chips",function(){s.removeClass("chips-expanded"),a.maxVisibleChips=12,a.updateChipsVisibility(s)})},sortChips:function(t,i){var a=t.find(".entity-chip");if(!(a.length<2)){var s=a.toArray().sort(function(t,a){var s=e(t),n=e(a);switch(i){case"name_asc":var r=(s.find(".chip-name").text()||"").toLowerCase(),o=(n.find(".chip-name").text()||"").toLowerCase();return r.localeCompare(o);case"name_desc":var l=(s.find(".chip-name").text()||"").toLowerCase();return(n.find(".chip-name").text()||"").toLowerCase().localeCompare(l);default:return 0}});e.each(s,function(e,i){t.append(i)}),this.updateChipsVisibility(t)}},updateChipsToolbar:function(e,t,i,a){var s=this.config.trans||{},n=e.find(".chips-count"),r=e.find(".btn-chips-clear"),o=r.find(".clear-text");a?(n.addClass("has-filter").html(''+i+'/'+t+""),o.text((s.clear||"Clear")+" "+i)):(n.removeClass("has-filter").html(t),o.text(s.clear_all||"Clear all")),a&&0===i?r.hide():t>0?r.show():r.hide()},loadExistingSelections:function(){var t=this,i={};this.$wrapper.find(".selection-group").each(function(){var a=e(this),s=a.closest(".target-block").data("blockType"),n=a.find(".include-picker");t.collectPickerEntities(n,s,i),t.enhanceMethodSelect(a.find(".include-method-select")),a.find(".exclude-row").each(function(){var a=e(this);t.collectPickerEntities(a.find(".exclude-picker"),s,i),t.enhanceMethodSelect(a.find(".exclude-method-select"))}),a.find(".group-excludes.has-excludes").length>0&&t.updateMethodSelectorLock(a,!0)});var a={},s=!1;Object.keys(i).forEach(function(e){var t=i[e];if(0!==t.ids.length){var n=t.ids.filter(function(e,t,i){return i.indexOf(e)===t});a[e]=n,s=!0}}),s&&e.ajax({url:t.config.ajaxUrl,type:"POST",dataType:"json",data:{ajax:1,action:"getTargetEntitiesByIdsBulk",trait:"EntitySelector",entities:JSON.stringify(a)},success:function(e){e.success&&e.entities&&Object.keys(i).forEach(function(a){var s=i[a],n=e.entities[a]||[],r={};n.forEach(function(e){r[e.id]=e}),s.pickers.forEach(function(e){var i=e.$picker,a=i.find(".entity-chips"),s=i.find(".include-values-data, .exclude-values-data"),n=[];e.ids.forEach(function(e){var i=a.find('.entity-chip-loading[data-id="'+e+'"]');if(r[e]){var s=r[e];n.push(s.id);var o='';s.image&&(o+=''),o+=''+t.escapeHtml(s.name)+"",o+='',o+="",i.replaceWith(o)}else i.remove()}),t.updateChipsVisibility(a),n.length!==e.ids.length&&(s.val(JSON.stringify(n)),t.serializeAllBlocks()),t.updateBlockStatus(i.closest(".target-block"))})})}})},collectPickerEntities:function(t,i,a){if(t.length){var s=this,n=t.find(".include-values-data, .exclude-values-data");if(n.length){var r=t.attr("data-value-type"),o=n.val()||"[]",l=[];try{l=JSON.parse(o)}catch(e){return}if("multi_numeric_range"!==r)if("multi_select_tiles"!==r){if("combination_attributes"===r)return"object"!=typeof l||null===l||0===Object.keys(l).length||n.val(JSON.stringify(l)),void s.loadCombinationAttributeGroups(t);if(l.length)if("pattern"!==r){var c=t.attr("data-search-entity")||i,d=t.find(".entity-chips"),p=this.getEntityTypeIcon(c);l.forEach(function(e){var t='';t+='',t+='Loading...',t+="",d.append(t)}),a[c]||(a[c]={ids:[],pickers:[]}),a[c].ids=a[c].ids.concat(l),a[c].pickers.push({$picker:t,ids:l})}else l.forEach(function(e){"string"==typeof e&&e?s.addPatternTag(t,e,!1):e&&e.pattern&&s.addPatternTag(t,e.pattern,!0===e.caseSensitive)})}else{if(!Array.isArray(l)||0===l.length)return;l.forEach(function(e){t.find('.tile-option[data-value="'+e+'"]').addClass("selected")})}else{if(!Array.isArray(l)||0===l.length)return;var u=t.find(".multi-range-chips");l.forEach(function(t){if(t&&(null!==t.min||null!==t.max)){var i;i=null!==t.min&&null!==t.max?t.min+" - "+t.max:null!==t.min?"≥ "+t.min:"≤ "+t.max;var a=e("",{class:"range-chip","data-min":null!==t.min?t.min:"","data-max":null!==t.max?t.max:""});a.append(e("",{class:"range-chip-text",text:i})),a.append(e("",o+=''+this.escapeHtml(t)+"",o+='',o+="",s.append(o)},getPatternTags:function(t){var i=[];return t.find(".pattern-tag:not(.draft-tag)").each(function(){var t=e(this).data("pattern"),a=1===e(this).data("caseSensitive")||"1"===e(this).data("caseSensitive");t&&i.push({pattern:t,caseSensitive:a})}),i},updateDraftTagCount:function(t,i,a){var s=this,n=t.find(".pattern-match-count"),r=n.find(".count-value"),o=t.closest(".target-block").data("blockType")||"products";r.html(''),n.show(),n.data("pattern",i),n.data("caseSensitive",a),n.data("entityType",o),e.ajax({url:this.config.ajaxUrl,type:"POST",dataType:"json",data:{ajax:1,action:"countPatternMatches",trait:"EntitySelector",pattern:i,field:"name",entity_type:o,case_sensitive:a?1:0},success:function(e){if(e.success){var i=parseInt(e.count,10)||0;r.text(i),n.show(),n.removeClass("count-zero count-found"),n.addClass(0===i?"count-zero":"count-found"),n.data("count",i);var a=t.closest(".selection-group");a.length&&s.updateGroupTotalCount(a)}else r.text("?"),n.show()},error:function(){r.text("?"),n.show()}})},updateConditionCountWithPendingPattern:function(t,i){this.config.trans;var a=t.find(".method-selector-wrapper > .condition-match-count, > .exclude-header-row > .condition-match-count").first();if(a.length){var s=t.hasClass("exclude-row"),n=(s?t.find(".exclude-method-select"):t.find(".include-method-select")).val();if(n){var r=s?t.find(".exclude-picker"):t.find(".include-picker");if("pattern"===(r.data("valueType")||"none")){var o=this.getPatternTags(r);if(i&&o.push({pattern:i,caseSensitive:!1}),0!==o.length){var l=t.closest(".target-block").data("blockType")||"products";a.find(".preview-count").html(''),a.removeClass("clickable no-matches").show(),a.data("conditionData",{method:n,values:o,blockType:l,isExclude:s}),e.ajax({url:this.config.ajaxUrl,type:"POST",dataType:"json",data:{ajax:1,action:"countConditionMatches",trait:"EntitySelector",method:n,values:JSON.stringify(o),block_type:l},success:function(e){if(e&&e.success){var t=e.count||0;a.removeClass("no-matches clickable"),0===t?(a.find(".preview-count").text(t),a.addClass("no-matches").show()):(a.find(".preview-count").text(t),a.addClass("clickable").show())}else a.hide().removeClass("clickable")},error:function(){a.hide().removeClass("clickable")}})}else a.hide()}}else a.hide()}},fetchPatternMatchCount:function(t,i,a){var s=t.closest(".exclude-row"),n=-1!==((s.length?s.find(".exclude-method-select"):t.closest(".selection-group").find(".include-method-select")).val()||"").indexOf("reference")?"reference":"name",r=t.closest(".target-block").data("blockType")||"products";a.find(".preview-count").html(''),a.removeClass("clickable no-matches").show(),e.ajax({url:this.config.ajaxUrl,type:"POST",dataType:"json",data:{ajax:1,action:"countPatternMatches",trait:"EntitySelector",pattern:i,field:n,entity_type:r,case_sensitive:0},success:function(e){if(e&&e.success){var t=e.count||0;a.find(".preview-count").text(t),a.removeClass("no-matches clickable").show(),0===t?a.addClass("no-matches"):a.addClass("clickable")}else a.hide()},error:function(){a.hide()}})},getPickerValues:function(t,i){switch(i){case"entity_search":var a=[];return t.find(".entity-chip").each(function(){var t=e(this).data("id");t&&a.push(t)}),a;case"pattern":var s=this.getPatternTags(t),n=t.find(".draft-tag .pattern-input"),r=e.trim(n.val());if(r){var o="1"===n.closest(".draft-tag").attr("data-case-sensitive");s.push({pattern:r,caseSensitive:o})}return s;case"numeric_range":return{min:t.find(".range-min-input").val()||null,max:t.find(".range-max-input").val()||null};case"date_range":return{from:t.find(".date-from-input").val()||null,to:t.find(".date-to-input").val()||null};case"select":return[t.find(".select-value-input").val()];case"boolean":return[!0];default:return[]}},updateConditionCount:function(t){this.config.trans;var i=t.find(".method-selector-wrapper > .condition-match-count, > .exclude-header-row > .condition-match-count").first();if(i.length){var a=t.hasClass("exclude-row"),s=(a?t.find(".exclude-method-select"):t.find(".include-method-select")).val();if(s){var n=a?t.find(".exclude-picker"):t.find(".include-picker"),r=n.data("valueType")||"none",o=this.getPickerValues(n,r),l=!o||Array.isArray(o)&&0===o.length||"object"==typeof o&&!Array.isArray(o)&&("combination_attributes"===r&&void 0!==o.attributes&&0===Object.keys(o.attributes).length||"combination_attributes"!==r&&0===Object.keys(o).length);if("none"!==r&&"boolean"!==r&&l)i.hide();else{var c=t.closest(".target-block").data("blockType")||"products";i.find(".preview-count").html(''),i.removeClass("clickable no-matches").show(),i.data("conditionData",{method:s,values:o,blockType:c,isExclude:a}),e.ajax({url:this.config.ajaxUrl,type:"POST",dataType:"json",data:{ajax:1,action:"countConditionMatches",trait:"EntitySelector",method:s,values:JSON.stringify(o),block_type:c},success:function(e){if(e&&e.success){var t=e.count||0;i.removeClass("no-matches clickable"),0===t?(i.find(".preview-count").text(t),i.addClass("no-matches").show()):(i.find(".preview-count").text(t),i.addClass("clickable").show())}else i.hide().removeClass("clickable")},error:function(){i.hide().removeClass("clickable")}})}}else i.hide()}},updateGroupCounts:function(t){var i=this,a=t.find(".group-include");a.length&&this.updateConditionCount(a),t.find(".exclude-row").each(function(){i.updateConditionCount(e(this))}),this.updateGroupTotalCount(t)},updateGroupTotalCount:function(t){var i=t.closest(".target-block").data("blockType")||"products",a=t.find(".group-header .group-count-badge"),s=t.find(".group-modifier-limit"),n=this.serializeGroup(t,i);if(!n.include||!n.include.method)return a.hide(),void s.attr("placeholder","–");a.html('').show(),e.ajax({url:this.config.ajaxUrl,type:"POST",dataType:"json",data:{ajax:1,action:"countGroupItems",trait:"EntitySelector",group_data:JSON.stringify(n),block_type:i},success:function(e){if(e&&e.success){var r=e.final_count||0,o=e.exclude_count||0,l=' '+r;o>0&&(l+=' (-'+o+")"),a.html(l),a.addClass("clickable").show(),a.data("groupData",n),a.data("blockType",i),a.data("finalCount",r),s.attr("placeholder",r);var c=t.find(".group-preview-badge .preview-count");if(c.length){var d=parseInt(s.val(),10),p=d>0&&dr&&(r=t)});var o=r+1,l=this.buildMethodOptions(n,!1),c=(this.buildMethodOptions(n,!0),'
');c+='
',c+='',c+='',c+='',c+='',c+="",c+='",c+="
",c+='
',c+='
',c+='
',c+='
',c+='",c+=' 0',c+='',c+="
",c+='",c+="
",c+="
",c+='
',c+='",c+="
",c+='
',c+='',c+=''+(s.limit||"Limit")+"",c+='',c+="",c+='',c+=''+(s.sort||"Sort")+"",c+='",c+='",c+="",c+='',c+=' ',c+="",c+="
",c+="
",c+="
",a.append(c);var d=a.find('.selection-group[data-group-index="'+o+'"]');this.enhanceMethodSelect(d.find(".include-method-select")),d.find(".include-method-select").val("all").trigger("change"),this.updateBlockStatus(t),this.serializeAllBlocks()},removeGroup:function(e,t){e.remove();var i=t.find(".groups-container");if(0===i.find(".selection-group").length){var a='
';a+=''+this.getEmptyStateText(t)+"",a+="
",i.html(a)}this.updateBlockStatus(t),this.serializeAllBlocks(),this.updateTabBadges()},clearAllConditions:function(){var t=this;this.$wrapper.find(".target-block").each(function(){var i=e(this),a=i.find(".groups-container");a.find(".selection-group").remove();var s='
';s+=''+t.getEmptyStateText(i)+"",s+="
",a.html(s),t.updateBlockStatus(i)}),this.serializeAllBlocks(),this.updateTabBadges(),this.updateHeaderTotalCount()},switchToBlock:function(e){this.$wrapper.find(".target-block-tab").removeClass("active"),this.$wrapper.find('.target-block-tab[data-block-type="'+e+'"]').addClass("active"),this.$wrapper.find(".target-block").removeClass("active").hide(),this.$wrapper.find('.target-block[data-block-type="'+e+'"]').addClass("active").show(),this.hideDropdown()},updateTabBadges:function(){var t=this,i=[];this.$wrapper.find(".target-block-tab").each(function(){var a=e(this),s=a.data("blockType"),n=t.$wrapper.find('.target-block[data-block-type="'+s+'"]').find(".selection-group").length,r=a.find(".tab-badge");n>0?(r.length?r.addClass("loading").html(''):a.append(''),a.addClass("has-data"),i.push(s)):(r.remove(),a.removeClass("has-data"))}),this.updateTargetSwitchState(),i.length>0&&this.fetchAllCounts(i)},updateTargetSwitchState:function(){var t=this.$wrapper.find(".prestashop-switch");if(t.length){var i=!1;this.$wrapper.find(".target-block").each(function(){if(e(this).find(".selection-group").length>0)return i=!0,!1}),i?t.find('input[value="0"]').prop("checked",!0):t.find('input[value="1"]').prop("checked",!0)}},fetchAllCounts:function(t){var i=this,a=this.$wrapper.find('input[name="'+this.config.name+'"]'),s={};try{s=JSON.parse(a.val()||"{}")}catch(e){s={}}var n={};t.forEach(function(e){var t=s[e]&&s[e].groups?s[e].groups:[];t.length>0&&(n[e]={groups:t})}),0!==Object.keys(n).length?e.ajax({url:this.config.ajaxUrl,type:"POST",dataType:"json",data:{ajax:1,action:"previewEntitySelectorBulk",trait:"EntitySelector",conditions:JSON.stringify(n)},success:function(e){e.success&&e.counts?(Object.keys(e.counts).forEach(function(t){var a=e.counts[t],s=i.$wrapper.find('.target-block-tab[data-block-type="'+t+'"]'),n=s.find(".tab-badge");n.length&&(n.removeClass("loading").html(' '+a),s.data("previewData",{count:a,success:!0}))}),t.forEach(function(t){if(!(t in e.counts)){var a=i.$wrapper.find('.target-block-tab[data-block-type="'+t+'"]');a.find(".tab-badge").remove(),a.removeClass("has-data")}}),i.updateHeaderTotalCount()):t.forEach(function(e){i.$wrapper.find('.target-block-tab[data-block-type="'+e+'"]').find(".tab-badge").remove()})},error:function(e,a,s){t.forEach(function(e){i.$wrapper.find('.target-block-tab[data-block-type="'+e+'"]').find(".tab-badge").remove()})}}):t.forEach(function(e){var t=i.$wrapper.find('.target-block-tab[data-block-type="'+e+'"]');t.find(".tab-badge").remove(),t.removeClass("has-data")})},fetchProductCount:function(t,i){var a=this,s={},n=this.$wrapper.find('input[name="'+this.config.name+'"]'),r={};try{r=JSON.parse(n.val()||"{}")}catch(e){r={}}var o=r[t]&&r[t].groups?r[t].groups:[];if(0===o.length)return i.find(".tab-badge").remove(),i.removeClass("has-data"),void i.removeData("previewData");var l=i.find(".tab-badge");l.length?l.addClass("loading").html(''):(l=e(''),i.append(l)),i.addClass("has-data"),s[t]={groups:o},e.ajax({url:this.config.ajaxUrl,type:"POST",dataType:"json",data:{ajax:1,action:"previewEntitySelector",trait:"EntitySelector",conditions:JSON.stringify(s),block_type:t,limit:10},success:function(e){e.success?(i.find(".tab-badge").removeClass("loading").html(' '+e.count),i.data("previewData",e),a.updateHeaderTotalCount()):i.find(".tab-badge").remove()},error:function(e,t,s){i.find(".tab-badge").remove(),a.updateHeaderTotalCount()}})},updateHeaderTotalCount:function(){var t=0;this.$wrapper.find(".target-block-tab .tab-badge").each(function(){var i=e(this);if(!i.hasClass("loading")){var a=parseInt(i.text(),10);isNaN(a)||(t+=a)}});var i=this.$wrapper.find(".trait-total-count");t>0?(i.find(".count-value").text(t),i.show()):i.hide(),this.updateShowAllToggle()},updateShowAllToggle:function(){var e=this.$wrapper.find(".trait-show-all-toggle");if(e.length){var t=e.find(".show-all-checkbox"),i=this.$wrapper.find(".target-block-tab.has-data").length>0;t.prop("checked",!i)}},updateBlockStatus:function(e){var t=e.find(".block-status"),i=e.data("blockType"),a=this.config.blocks[i]||{},s=this.config.trans||{},n=this.getBlockGroups(e);0===n.length?!1!==this.config.emptyMeansAll?t.text((s.all||"All")+" "+(a.entity_label_plural||"items")):t.text(s.nothing_selected||"Nothing selected"):t.text(n.length+" "+(1===n.length?s.group||"group":s.groups||"groups"))},getEmptyStateText:function(e){var t=e.data("blockType"),i=e.data("mode")||"multi",a=this.config.blocks[t]||{},s=this.config.trans||{},n=!1!==this.config.emptyMeansAll;return"single"===i?s.no_item_selected||"No item selected":n?(s.all||"All")+" "+(a.entity_label_plural||"items")+" "+(s.included||"included"):s.nothing_selected||"Nothing selected"},serializeGroup:function(t,i){var a=this,s=t.find(".include-method-select").val()||"all",n=t.find(".include-picker"),r=this.getPickerValues(n),o=[];t.find(".group-excludes.has-excludes").length&&t.find(".exclude-row").each(function(){var t=e(this),i=t.find(".exclude-method-select").val()||null,s=t.find(".exclude-picker"),n=a.getPickerValues(s);i&&n&&(!Array.isArray(n)||n.length>0)&&o.push({method:i,values:n})});var l={include:{method:s,values:r}};o.length>0&&(l.excludes=o);var c=this.getGroupModifiers(t);return(c.limit||c.sort_by)&&(l.modifiers=c),l},serializeAllBlocks:function(t){var i=this,a={};this.$wrapper.find(".target-block").each(function(){var t=e(this),s=t.data("blockType"),n=i.getBlockGroups(t);n.length>0&&(a[s]={groups:n}),i.updateBlockStatus(t)}),this.$wrapper.find('input[name="'+this.config.name+'"]').val(JSON.stringify(a)),this.updateTabBadges(),this.countUpdateTimeout&&clearTimeout(this.countUpdateTimeout),this.countUpdateTimeout=setTimeout(function(){if(t&&t.length){i.updateConditionCount(t);var e=t.closest(".selection-group");e.length&&i.updateGroupTotalCount(e)}else i.updateAllConditionCounts()},500)},getBlockGroups:function(t){var i=this,a=[];return t.find(".selection-group").each(function(){var t=e(this),s=t.find(".include-method-select").val()||"all",n=t.find(".include-picker"),r=i.getPickerValues(n);if(!i.isConditionValid(s,r,n))return!0;var o=[];t.find(".group-excludes.has-excludes").length&&t.find(".exclude-row").each(function(){var t=e(this),a=t.find(".exclude-method-select").val()||null,s=t.find(".exclude-picker"),n=i.getPickerValues(s);a&&i.isConditionValid(a,n,s)&&o.push({method:a,values:n})});var l={include:{method:s,values:r}},c=e.trim(t.attr("data-group-name")||"");c&&(l.name=c),o.length>0&&(l.excludes=o);var d=i.getGroupModifiers(t);(d.limit||d.sort_by)&&(l.modifiers=d),a.push(l)}),a},getGroupModifiers:function(e){var t=e.find(".group-modifier-limit").val(),i=e.find(".group-modifier-sort").val()||"sales",a=e.find(".group-modifiers .btn-sort-dir").data("dir")||"DESC";return{limit:t?parseInt(t,10):null,sort_by:i||null,sort_dir:a||"DESC"}},getPickerValues:function(t){var i=t.attr("data-value-type")||"entity_search",a=[];switch(i){case"entity_search":t.find(".entity-chip").each(function(){var t=e(this).data("id");a.push(isNaN(t)?t:Number(t))});break;case"pattern":a=this.getPatternTags(t);var s=t.find(".draft-tag .pattern-input"),n=e.trim(s.val());if(n){var r="1"===s.closest(".draft-tag").attr("data-case-sensitive");a.push({pattern:n,caseSensitive:r})}break;case"numeric_range":var o=t.find(".range-min-input").val(),l=t.find(".range-max-input").val();""===o&&""===l||(a={min:""!==o?parseFloat(o):null,max:""!==l?parseFloat(l):null});break;case"date_range":var c=t.find(".date-from-input").val(),d=t.find(".date-to-input").val();(c||d)&&(a={from:c||null,to:d||null});break;case"select":var p=t.find(".select-value-input").val();p&&(a=[p]);break;case"boolean":a=[!0];break;case"multi_numeric_range":var u=[];t.find(".range-chip").each(function(){var t=e(this),i=t.data("min"),a=t.data("max");u.push({min:""!==i&&void 0!==i?parseFloat(i):null,max:""!==a&&void 0!==a?parseFloat(a):null})}),u.length>0&&(a=u);break;case"multi_select_tiles":t.find(".tile-option.selected").each(function(){a.push(e(this).data("value"))});break;case"combination_attributes":var h={};if(t.find(".comb-attr-value.selected").each(function(){var t=e(this).data("groupId").toString(),i=e(this).data("valueId");h[t]||(h[t]=[]),h[t].push(i)}),Object.keys(h).length>0){var f,v=t.find(".combination-attributes-picker").data("combinationMode")||this.config.combinationMode||"products";f="toggle"===v?t.find(".comb-mode-radio:checked").val()||"products":v,a={mode:f,attributes:h}}}return a},isConditionValid:function(e,t,i){if("all"===e)return!0;var a=i.attr("data-value-type")||"entity_search";return"boolean"===a||(Array.isArray(t)?t.length>0:"object"==typeof t&&null!==t&&("combination_attributes"===a&&void 0!==t.attributes?Object.keys(t.attributes).length>0:Object.keys(t).some(function(e){return null!==t[e]&&""!==t[e]})))},updateAllConditionCounts:function(){var t=this,i={},a={},s=0;this.$wrapper.find(".target-block.active .selection-group").each(function(){var n=e(this),r=n.closest(".target-block").data("blockType")||"products",o=n.find(".group-include");if(o.length){var l=t.getConditionData(o,r);if(l){var c="c"+s++;i[c]=l.condition,a[c]=l.$countEl}}n.find(".exclude-row").each(function(){var n=t.getConditionData(e(this),r);if(n){var o="c"+s++;i[o]=n.condition,a[o]=n.$countEl}})}),0!==Object.keys(i).length&&e.ajax({url:this.config.ajaxUrl,type:"POST",dataType:"json",data:{ajax:1,action:"countConditionMatchesBulk",trait:"EntitySelector",conditions:JSON.stringify(i)},success:function(e){e&&e.success&&e.counts&&Object.keys(e.counts).forEach(function(t){var i=e.counts[t]||0,s=a[t];s&&s.length&&(s.removeClass("no-matches clickable"),0===i?(s.find(".preview-count").text(i),s.addClass("no-matches").show()):(s.find(".preview-count").text(i),s.addClass("clickable").show()))})},error:function(){Object.keys(a).forEach(function(e){var t=a[e];t&&t.length&&t.hide().removeClass("clickable")})}})},getConditionData:function(e,t){var i=e.find(".method-selector-wrapper > .condition-match-count, > .exclude-header-row .condition-match-count").first();if(!i.length)return null;var a=e.hasClass("exclude-row"),s=(a?e.find(".exclude-method-select"):e.find(".include-method-select")).val();if(!s)return i.hide(),null;var n=a?e.find(".exclude-picker"):e.find(".include-picker"),r=n.data("valueType")||"none",o=this.getPickerValues(n,r),l=!o||Array.isArray(o)&&0===o.length||"object"==typeof o&&!Array.isArray(o)&&("combination_attributes"===r&&void 0!==o.attributes&&0===Object.keys(o.attributes).length||"combination_attributes"!==r&&0===Object.keys(o).length);return"none"!==r&&"boolean"!==r&&l?(i.hide(),null):(i.find(".preview-count").html(''),i.removeClass("clickable no-matches").show(),i.data("conditionData",{method:s,values:o,blockType:t,isExclude:a}),{condition:{method:s,values:o,block_type:t},$countEl:i})},updateGroupCounts:function(t){var i=this,a=t.closest(".target-block").data("blockType")||"products",s=t.find(".group-include");s.length&&this.updateConditionCount(s,a),t.find(".exclude-row").each(function(){i.updateConditionCount(e(this),a)}),this.updateGroupTotalCount(t)},updateConditionCount:function(t,i){var a=t.find(".method-selector-wrapper > .condition-match-count, > .exclude-header-row .condition-match-count").first();if(a.length){var s=t.hasClass("exclude-row"),n=(s?t.find(".exclude-method-select"):t.find(".include-method-select")).val();if(n){var r=s?t.find(".exclude-picker"):t.find(".include-picker"),o=r.data("valueType")||"none",l=this.getPickerValues(r,o),c=!l||Array.isArray(l)&&0===l.length||"object"==typeof l&&!Array.isArray(l)&&("combination_attributes"===o&&void 0!==l.attributes&&0===Object.keys(l.attributes).length||"combination_attributes"!==o&&0===Object.keys(l).length);"none"!==o&&"boolean"!==o&&c?a.hide():(i||(i=t.closest(".target-block").data("blockType")||"products"),a.find(".preview-count").html(''),a.removeClass("clickable no-matches").show(),a.data("conditionData",{method:n,values:l,blockType:i,isExclude:s}),e.ajax({url:this.config.ajaxUrl,type:"POST",dataType:"json",data:{ajax:1,action:"countConditionMatches",trait:"EntitySelector",method:n,values:JSON.stringify(l),block_type:i},success:function(e){if(e&&e.success){var t=e.count||0;a.removeClass("no-matches clickable"),0===t?(a.find(".preview-count").text(t),a.addClass("no-matches").show()):(a.find(".preview-count").text(t),a.addClass("clickable").show())}else a.hide().removeClass("clickable")},error:function(){a.hide().removeClass("clickable")}}))}else a.hide()}},updateGroupTotalCount:function(t){var i=t.closest(".target-block").data("blockType")||"products",a=t.find(".group-header .group-count-badge"),s=t.find(".group-modifier-limit"),n=this.serializeGroup(t,i);if(!n.include||!n.include.method)return a.hide(),void s.attr("placeholder","–");a.html('').show(),e.ajax({url:this.config.ajaxUrl,type:"POST",dataType:"json",data:{ajax:1,action:"countGroupItems",trait:"EntitySelector",group_data:JSON.stringify(n),block_type:i},success:function(e){if(e&&e.success){var r=e.final_count||0,o=e.exclude_count||0,l=' '+r;o>0&&(l+=' (-'+o+")"),a.html(l),a.addClass("clickable").show(),a.data("groupData",n),a.data("blockType",i),a.data("finalCount",r),s.attr("placeholder",r);var c=t.find(".group-preview-badge .preview-count");if(c.length){var d=parseInt(s.val(),10),p=d>0&&d';s+=' '+(a.except||"EXCEPT")+"",s+="",s+='
',s+=this.buildExcludeRowHtml(t,0),s+="
",s+='",i.addClass("has-excludes").html(s);var n=i.find('.exclude-row[data-exclude-index="0"]'),r=n.find(".exclude-method-select");this.enhanceMethodSelect(r);var o=t.data("blockType"),l=r.val();this.updateMethodInfoPlaceholder(n.find(".method-selector-wrapper"),l,o),this.updateMethodSelectorLock(e,!0),this.serializeAllBlocks()},addExcludeRow:function(t,i){var a=t.find(".exclude-rows-container"),s=-1;a.find(".exclude-row").each(function(){var t=parseInt(e(this).data("excludeIndex"),10);t>s&&(s=t)});var n=s+1,r=this.buildExcludeRowHtml(i,n);a.append(r);var o=a.find('.exclude-row[data-exclude-index="'+n+'"]'),l=o.find(".exclude-method-select");this.enhanceMethodSelect(l);var c=i.data("blockType"),d=l.val();this.updateMethodInfoPlaceholder(o.find(".method-selector-wrapper"),d,c),this.serializeAllBlocks()},buildExcludeRowHtml:function(t,i){var a=t.data("blockType"),s=(this.config.blocks[a]||{}).selection_methods||{},n=this.config.trans||{},r=this.buildMethodOptions(s,!0),o=a,l="entity_search";e.each(s,function(e,t){return"all"===e||(o=t.search_entity||a,l=t.value_type||"entity_search",!1)});var c='
';return c+='
',c+='
',c+='",c+=' 0',c+='',c+="
",c+='",c+="
",(c+=this.buildValuePickerHtml("exclude",l,o,s))+"
"},removeExcludeRow:function(e,t,i){var a=t.find(".exclude-rows-container"),s=this.config.trans||{};e.remove(),0===a.find(".exclude-row").length&&(t.find(".group-excludes").removeClass("has-excludes").html('"),this.updateMethodSelectorLock(t,!1)),this.serializeAllBlocks()},buildMethodOptions:function(t,i){var a=this,s=this.config.trans||{},n="",r={select_by:s.select_by||"Select by...",filter_by:s.filter_by||"Filter by..."},o={},l={};return e.each(t,function(e,t){if(i&&"all"===e)return!0;var a=t.group||"";a?(o[a]||(o[a]={}),o[a][e]=t):l[e]=t}),e.each(l,function(e,t){n+=a.buildMethodOption(e,t)}),e.each(o,function(t,i){var s=r[t]||t.replace(/_/g," ");n+='',e.each(i,function(e,t){n+=a.buildMethodOption(e,t)}),n+=""}),n},buildMethodOption:function(e,t){var i='"},buildValuePickerHtml:function(e,t,i,a){var s=this.config.trans||{},n=e+"-picker",r=e+"-chips",o=e+"-values-data",l="";if("none"===t)return l='";switch(l='
',t){case"entity_search":var c=s.no_items_selected||"No items selected - use search below";l+='
',l+='",l+='';break;case"pattern":var d=""+this.escapeHtml(s.pattern_help_title||"Pattern Syntax")+"";d+='
',d+='
* '+this.escapeHtml(s.pattern_help_wildcard||"any text (wildcard)")+"
",d+='
{number} '+this.escapeHtml(s.pattern_help_number||"any number (e.g. 100, 250)")+"
",d+='
{letter} '+this.escapeHtml(s.pattern_help_letter||"single letter (A-Z)")+"
",d+="
",d+='
',d+=""+this.escapeHtml(s.pattern_help_examples||"Examples:")+"",d+='
*cotton* '+this.escapeHtml(s.pattern_example_1||'contains "cotton"')+"
",d+='
iPhone {number} Pro* '+this.escapeHtml(s.pattern_example_2||'matches "iPhone 15 Pro Max"')+"
",d+='
Size {letter} '+this.escapeHtml(s.pattern_example_3||'matches "Size M", "Size L"')+"
",d+="
";var p=s.no_patterns||"No patterns - press Enter to add";l+='
',l+='
',l+='
',l+='',l+='',l+=' ',l+='',l+="
",l+='',l+='',l+="",l+="
",l+='';break;case"numeric_range":l+='
',l+='',l+='-',l+='',l+="
",l+='';break;case"multi_numeric_range":l+='
',l+='
',l+='
',l+='',l+='-',l+='',l+='',l+="
",l+="
",l+='';break;case"multi_select_tiles":l+='
',l+="
",l+='';break;case"date_range":l+='
',l+='',l+='-',l+='',l+="
",l+='';break;case"select":l+='
',l+='',l+="
",l+='';break;case"boolean":l+='
',l+=''+this.escapeHtml(s.yes||"Yes")+"",l+="
",l+='';break;case"combination_attributes":this.escapeHtml(s.combination_help_title||"Combination Targeting"),this.escapeHtml(s.combination_help_desc||"Select attributes to target specific product combinations."),this.escapeHtml(s.combination_help_logic||"Logic:"),this.escapeHtml(s.combination_help_within||"Within group: OR (Red OR Blue)"),this.escapeHtml(s.combination_help_between||"Between groups: AND (Color AND Size)");var u=this.config.combinationMode||"products",h="toggle"===u,f=h?"products":u;l+='
',h&&(l+='
',l+='",l+='",l+="
"),l+='
',l+=' '+this.escapeHtml(s.loading||"Loading...")+"",l+="
",l+="
",l+='';break;default:l+=''}return l+"
"},getSortOptionsArray:function(e){var t=this.config.trans||{};switch(e){case"products":return[{value:"sales",label:t.sort_bestsellers||"Best sellers"},{value:"date_add",label:t.sort_newest||"Newest"},{value:"price",label:t.sort_price||"Price"},{value:"name",label:t.sort_name||"Name"},{value:"position",label:t.sort_position||"Position"},{value:"quantity",label:t.sort_stock||"Stock quantity"},{value:"random",label:t.sort_random||"Random"}];case"categories":return[{value:"name",label:t.sort_name||"Name"},{value:"position",label:t.sort_position||"Position"},{value:"product_count",label:t.sort_products||"Products count"},{value:"date_add",label:t.sort_newest||"Newest"}];default:return[{value:"name",label:t.sort_name||"Name"},{value:"date_add",label:t.sort_newest||"Newest"}]}},getSortIconClass:function(e,t){var i="ASC"===t;switch(e){case"name":return i?"icon-sort-alpha-asc":"icon-sort-alpha-desc";case"price":case"quantity":case"product_count":case"date_add":case"newest_products":case"position":return i?"icon-sort-numeric-asc":"icon-sort-numeric-desc";case"sales":case"total_sales":default:return i?"icon-sort-amount-asc":"icon-sort-amount-desc";case"random":return"icon-random"}},cycleSortOption:function(e,t){for(var i,a,s,n=this.getSortOptionsArray(t),r=e.data("sort")||"sales",o=e.data("dir")||"DESC",l=-1,c=0;c0)return t=!0,!1}),t?(this.clearValidationError(),!0):(this.showValidationError(),!1)},showValidationError:function(){this.$wrapper.addClass("has-validation-error");var t=this.$wrapper.data("required-message")||"Please select at least one item";this.$wrapper.find(".trait-validation-error").remove();var i=e("
",{class:"trait-validation-error",html:' '+t});this.$wrapper.find(".condition-trait-header").after(i),e("html, body").animate({scrollTop:this.$wrapper.offset().top-100},300),this.$wrapper.find(".condition-trait-body").is(":visible")||(this.$wrapper.find(".condition-trait-body").slideDown(200),this.$wrapper.removeClass("collapsed"))},clearValidationError:function(){this.$wrapper.removeClass("has-validation-error"),this.$wrapper.find(".trait-validation-error").remove()}}}(jQuery),function(e){"use strict";window._EntitySelectorMixins=window._EntitySelectorMixins||{},window._EntitySelectorMixins.methods={initMethodDropdowns:function(){var t=this;this.$wrapper.find(".include-method-select").each(function(){t.enhanceMethodSelect(e(this))}),this.$wrapper.find(".exclude-method-select").each(function(){t.enhanceMethodSelect(e(this))}),this.initMethodInfoPlaceholders()},initMethodInfoPlaceholders:function(){var t=this;this.$wrapper.find(".selection-group").each(function(){var i=e(this),a=i.closest(".target-block").data("blockType")||"products",s=i.find(".include-method-select").val()||"all";t.updateMethodInfoPlaceholder(i.find(".method-selector-wrapper"),s,a),i.find(".exclude-row").each(function(){var i=e(this),s=i.find(".exclude-method-select").val();s&&t.updateMethodInfoPlaceholder(i.find(".method-selector-wrapper"),s,a)})})},enhanceMethodSelect:function(t){var i=this;if(t.length&&!t.data("methodDropdownInit")){t.data("methodDropdownInit",!0),t.addClass("method-select-hidden");var a=t.find("option:selected"),s=a.data("icon")||"icon-caret-down",n=a.text(),r='
';r+='',r+=''+this.escapeHtml(n)+"",r+='';var o=e(r+="
");t.after(o),o.on("click",function(e){e.preventDefault(),e.stopPropagation(),t.closest(".method-selector-wrapper").hasClass("selector-locked")||i.showMethodDropdownMenu(t,o)}),t.on("change.methodDropdown",function(){i.updateMethodTrigger(t,o)})}},updateMethodTrigger:function(e,t){var i=e.find("option:selected"),a=i.data("icon")||"icon-caret-down",s=i.text();t.find(".method-trigger-icon").attr("class",a+" method-trigger-icon"),t.find(".method-trigger-label").text(s)},showMethodDropdownMenu:function(t,i){var a=this;this.closeMethodDropdownMenu();var s=this.buildMethodDropdownMenuHtml(t),n=e(s),r=i.offset(),o=i.outerWidth(),l=i.outerHeight();n.css({position:"absolute",top:r.top+l+2,left:r.left,minWidth:o,zIndex:10001}),e("body").append(n),this.$methodDropdownMenu=n,this.$methodDropdownSelect=t,this.$methodDropdownTrigger=i,n.on("click",".method-dropdown-item",function(i){i.preventDefault(),i.stopPropagation();var s=e(this).data("value");t.val(s).trigger("change"),a.closeMethodDropdownMenu()}),e(document).on("click.methodDropdown",function(t){e(t.target).closest(".method-dropdown-menu, .method-dropdown-trigger").length||a.closeMethodDropdownMenu()}),e(document).on("keydown.methodDropdown",function(e){27===e.keyCode&&a.closeMethodDropdownMenu()})},buildMethodDropdownMenuHtml:function(t){var i=this,a='
';return t.children("option").each(function(){var t=e(this),s=t.data("icon")||"icon-asterisk",n=t.text(),r=t.val(),o=t.is(":selected");a+='
',a+='',a+=''+i.escapeHtml(n)+"",o&&(a+=''),a+="
"}),t.children("optgroup").each(function(){var t=e(this),s=t.attr("label")||"";a+='
',a+='
'+i.escapeHtml(s)+"
",a+='
',t.children("option").each(function(){var t=e(this),s=t.data("icon")||"icon-cog",n=t.text(),r=t.val(),o=t.is(":selected");a+='
',a+='',a+=''+i.escapeHtml(n)+"",o&&(a+=''),a+="
"}),a+="
",a+="
"}),a+="
"},closeMethodDropdownMenu:function(){this.$methodDropdownMenu&&(this.$methodDropdownMenu.remove(),this.$methodDropdownMenu=null),this.$methodDropdownSelect=null,this.$methodDropdownTrigger=null,e(document).off("click.methodDropdown keydown.methodDropdown")},populateTiles:function(t,i,a){var s=t.find(".multi-select-tiles");s.empty(),a?s.attr("data-exclusive","true"):s.removeAttr("data-exclusive"),e.each(i,function(t,i){var a="object"==typeof i?i.label:i,n="object"==typeof i&&i.icon?i.icon:null,r="object"==typeof i&&i.color?i.color:null,o="tile-option";r&&(o+=" tile-color-"+r);var l=e("',c+="
",c+='
',c+='',c+="
",n.length>0){if(c+='
',c+=this.renderPreviewItems(n),c+="
",o){var d=r-n.length;c+='"}}else c+='
'+(a.no_preview||"No items to preview")+"
";var p=e(c+="");e("body").append(p),this.$previewPopover=p,this.$previewList=p.find(".preview-list"),this.previewLoadedCount=n.length,this.previewTotalCount=r,this.previewContext=t.context||{},this.previewOnLoadMore=t.onLoadMore||null,this.previewOnFilter=t.onFilter||null,this.previewCurrentFilter="",this.previewEntityLabel=l,p.find(".preview-close").on("click",function(){i.hidePreviewPopover()});var u=p.find(".preview-filter-input");if(t.onFilter){var h=this.debounce(function(e){i.previewCurrentFilter=e,i.showFilterLoading(!0),t.onFilter.call(i,e)},300);u.on("input",function(){var t=e(this).val().trim();t!==i.previewCurrentFilter&&h(t)})}else u.on("input",function(){var t=e(this).val().toLowerCase().trim();i.filterPreviewItems(t)});t.onLoadMore&&p.find(".btn-load-more").on("click",function(){var a=e(this),s=a.closest(".load-more-controls").find(".load-more-select");if(!a.hasClass("loading")){a.addClass("loading"),a.find("i").removeClass("icon-plus").addClass("icon-spinner icon-spin"),s.prop("disabled",!0);var n=parseInt(s.val(),10)||20;i.previewLoadCount=n,t.onLoadMore.call(i,a)}});var f=s.offset(),v=s.outerHeight(),m=s.outerWidth(),g=p.outerWidth(),b=f.left+m/2-g/2,w=e(window).width()-g-10;return b=Math.max(10,Math.min(b,w)),p.css({position:"absolute",top:f.top+v+8,left:b,zIndex:1e4}),p.addClass("show"),p},updatePreviewPopover:function(e,t){var i=this.config.trans||{};this.$previewList.html(this.renderPreviewItems(e)),this.previewLoadedCount=e.length;var a=this.$previewPopover.find(".preview-footer");if(t){var s=this.previewTotalCount-e.length,n=a.find(".load-more-controls"),r=n.find(".btn-load-more"),o=n.find(".load-more-select");r.removeClass("loading"),r.find("i").removeClass("icon-spinner icon-spin").addClass("icon-plus"),o.prop("disabled",!1),n.find(".remaining-count").text(s),o.empty(),s>=10&&o.append(''),s>=20&&o.append(''),s>=50&&o.append(''),s>=100&&o.append(''),o.append('")}else a.remove();var l=this.$previewPopover.find(".preview-filter-input").val();l&&this.filterPreviewItems(l.toLowerCase().trim())},renderPreviewItems:function(e){for(var t="",i=0;i",a.image?t+='':t+='
inventory_2
',t+='
',t+='
'+this.escapeHtml(a.name||"Unnamed")+"
";var r=[];a.reference&&r.push("Ref: "+a.reference),a.manufacturer&&r.push(a.manufacturer),a.category&&r.push(a.category),a.attributes&&r.push(a.attributes),r.length>0&&(t+='
'+this.escapeHtml(r.join(" • "))+"
"),t+="
",void 0!==a.price&&null!==a.price?t+='
'+this.formatPrice(a.price)+"
":a.price_formatted&&(t+='
'+this.escapeHtml(a.price_formatted)+"
"),void 0===a.active||a.active||(t+='Inactive'),t+=""}return t},filterPreviewItems:function(t){if(this.$previewList){var i=this.$previewList.find(".preview-item");t?i.each(function(){var i=e(this),a=i.data("name")||"",s=i.data("ref")||"",n=i.data("attrs")||"",r=-1!==a.indexOf(t)||-1!==s.indexOf(t)||-1!==n.indexOf(t);i.toggle(r)}):i.show()}},showFilterLoading:function(e){if(this.$previewPopover){var t=this.$previewList;t&&(e?(this.previewLockedWidth||(this.previewLockedWidth=this.$previewPopover.outerWidth(),this.$previewPopover.css("width",this.previewLockedWidth+"px")),t.addClass("filtering"),t.find(".filter-loading-overlay").length||t.append('
')):(t.removeClass("filtering"),t.find(".filter-loading-overlay").remove()))}},updatePreviewPopoverFiltered:function(t){var i=this.config.trans||{};if(this.showFilterLoading(!1),t.success){var a=t.items||[],s=t.count||0,n=t.hasMore||!1,r=this.$previewPopover.find(".preview-header"),o=this.previewEntityLabel||"items";if(r.find(".preview-count").text(s+" "+o),a.length>0)this.$previewList.html(this.renderPreviewItems(a)),this.previewLoadedCount=a.length,this.previewTotalCount=s;else{var l=i.no_filter_results||"No matching items found";this.$previewList.html('
'+l+"
"),this.previewLoadedCount=0,this.previewTotalCount=0}var c=this.$previewPopover.find(".preview-footer");if(n&&a.length>0){var d=s-a.length;if(c.length){var p=c.find(".load-more-controls"),u=p.find(".btn-load-more"),h=p.find(".load-more-select");u.removeClass("loading"),u.find("i").removeClass("icon-spinner icon-spin").addClass("icon-plus"),h.prop("disabled",!1),p.find(".remaining-count").text(d),h.empty(),d>=10&&h.append(''),d>=20&&h.append(''),d>=50&&h.append(''),d>=100&&h.append(''),h.append('")}else{var f='");this.$previewList.after(v);var m=this;this.previewOnLoadMore&&v.find(".btn-load-more").on("click",function(){var t=e(this),i=t.closest(".load-more-controls").find(".load-more-select");if(!t.hasClass("loading")){t.addClass("loading"),t.find("i").removeClass("icon-plus").addClass("icon-spinner icon-spin"),i.prop("disabled",!0);var a=parseInt(i.val(),10)||20;m.previewLoadCount=a,m.previewOnLoadMore.call(m,t)}})}}else c.remove()}},formatPrice:function(e){"number"!=typeof e&&(e=parseFloat(e)||0);var t=this.config&&this.config.currency_sign||"€",i=this.config&&this.config.currency_format||"right",a=e.toFixed(2);return"left"===i?t+" "+a:a+" "+t},hidePreviewPopover:function(){this.$activeBadge&&(this.$activeBadge.removeClass("popover-open loading"),this.$activeBadge=null),this.$previewPopover&&(this.$previewPopover.remove(),this.$previewPopover=null),this.$previewList=null,this.previewContext=null,this.previewOnLoadMore=null,this.previewOnFilter=null,this.previewCurrentFilter="",this.previewEntityLabel=null,this.previewLockedWidth=null},showPreviewPopover:function(e){var t=this,i=e.data("previewData");if(i){this.hidePreviewPopover();var a=e.find(".tab-badge");a.addClass("popover-open"),this.$activeBadge=a;var s=i.items||i.products||[],n=e.data("blockType"),r=(this.config.blocks&&this.config.blocks[n]?this.config.blocks[n]:{}).entity_label_plural||"items";this.previewBlockType=n,this.createPreviewPopover({$badge:a,items:s,totalCount:i.count,hasMore:i.hasMore,entityLabel:r,previewType:"tab",context:{$tab:e,blockType:n},onLoadMore:function(i){t.loadMoreTabPreviewItems(e,i)},onFilter:function(i){t.filterTabPreviewItems(e,i)}})}},filterTabPreviewItems:function(t,i){var a=this,s=this.previewBlockType,n=this.$wrapper.find('input[name="'+this.config.name+'"]'),r={};try{r=JSON.parse(n.val()||"{}")}catch(e){return void a.showFilterLoading(!1)}var o=r[s]&&r[s].groups?r[s].groups:[];if(0!==o.length){var l={};l[s]={groups:o},e.ajax({url:this.config.ajaxUrl,type:"POST",dataType:"json",data:{ajax:1,action:"previewTargetConditions",trait:"TargetConditions",conditions:JSON.stringify(l),block_type:s,filter:i,limit:20,offset:0},success:function(e){a.updatePreviewPopoverFiltered(e)},error:function(){a.showFilterLoading(!1)}})}else a.showFilterLoading(!1)},loadMoreTabPreviewItems:function(t,i){var a=this,s=this.previewBlockType,n=this.$wrapper.find('input[name="'+this.config.name+'"]'),r={};try{r=JSON.parse(n.val()||"{}")}catch(e){return}var o=r[s]&&r[s].groups?r[s].groups:[];if(0!==o.length){var l={};l[s]={groups:o};var c=this.previewLoadCount||20,d={ajax:1,action:"previewTargetConditions",trait:"TargetConditions",conditions:JSON.stringify(l),block_type:s,limit:a.previewLoadedCount+c,offset:0};a.previewCurrentFilter&&(d.filter=a.previewCurrentFilter),e.ajax({url:this.config.ajaxUrl,type:"POST",dataType:"json",data:d,success:function(e){var i=e.items||e.products||[];e.success&&i.length>0&&(t.data("previewData",e),a.previewTotalCount=e.count,a.updatePreviewPopover(i,e.hasMore))},error:function(){var e=i.closest(".load-more-controls").find(".load-more-select");i.removeClass("loading"),i.find("i").removeClass("icon-spinner icon-spin").addClass("icon-plus"),e.prop("disabled",!1)}})}},showConditionPreviewPopover:function(t){var i=this,a=t.data("conditionData");if(a){this.hidePreviewPopover(),t.addClass("popover-open loading"),this.$activeBadge=t;var s=a.blockType||"products",n=(this.config.blocks&&this.config.blocks[s]?this.config.blocks[s]:{}).entity_label_plural||"products";e.ajax({url:this.config.ajaxUrl,type:"POST",dataType:"json",data:{ajax:1,action:"previewConditionItems",trait:"EntitySelector",method:a.method,values:JSON.stringify(a.values),block_type:s,limit:10},success:function(e){t.removeClass("loading"),e.success?i.createPreviewPopover({$badge:t,items:e.items||[],totalCount:e.count,hasMore:e.hasMore,entityLabel:n,previewType:"condition",context:{conditionData:a,blockType:s},onLoadMore:function(e){i.loadMoreConditionItems(e)},onFilter:function(e){i.filterConditionItems(e)}}):(t.removeClass("popover-open"),i.$activeBadge=null)},error:function(){t.removeClass("loading popover-open"),i.$activeBadge=null}})}},filterConditionItems:function(t){var i=this,a=this.previewContext;a&&a.conditionData?e.ajax({url:this.config.ajaxUrl,type:"POST",dataType:"json",data:{ajax:1,action:"previewConditionItems",trait:"EntitySelector",method:a.conditionData.method,values:JSON.stringify(a.conditionData.values),block_type:a.blockType,filter:t,limit:20},success:function(e){i.updatePreviewPopoverFiltered(e)},error:function(){i.showFilterLoading(!1)}}):i.showFilterLoading(!1)},loadMoreConditionItems:function(t){var i=this,a=this.previewContext;if(a&&a.conditionData){var s=this.previewLoadCount||20,n={ajax:1,action:"previewConditionItems",trait:"EntitySelector",method:a.conditionData.method,values:JSON.stringify(a.conditionData.values),block_type:a.blockType,limit:i.previewLoadedCount+s};i.previewCurrentFilter&&(n.filter=i.previewCurrentFilter),e.ajax({url:this.config.ajaxUrl,type:"POST",dataType:"json",data:n,success:function(e){e.success&&(i.previewTotalCount=e.count,i.updatePreviewPopover(e.items||[],e.hasMore))},error:function(){var e=t.closest(".load-more-controls").find(".load-more-select");t.removeClass("loading"),t.find("i").removeClass("icon-spinner icon-spin").addClass("icon-plus"),e.prop("disabled",!1)}})}},showGroupPreviewPopover:function(t,i,a){var s=this;if(i||(i=t.closest(".selection-group")),!a){var n=t.closest(".target-block");a=n.data("blockType")||"products"}var r=t.data("groupData");if(r||(r=this.serializeGroup(i,a)),r&&r.include){this.hidePreviewPopover(),t.addClass("popover-open loading"),this.$activeBadge=t;var o=(this.config.blocks&&this.config.blocks[a]?this.config.blocks[a]:{}).entity_label_plural||"products";e.ajax({url:this.config.ajaxUrl,type:"POST",dataType:"json",data:{ajax:1,action:"previewGroupItems",trait:"EntitySelector",group_data:JSON.stringify(r),block_type:a,limit:10},success:function(e){t.removeClass("loading"),e.success?s.createPreviewPopover({$badge:t,items:e.items||[],totalCount:e.count,hasMore:e.hasMore,entityLabel:o,previewType:"group",context:{groupData:r,blockType:a,$group:i},onLoadMore:function(e){s.loadMoreGroupItems(e)},onFilter:function(e){s.filterGroupItems(e)}}):(t.removeClass("popover-open"),s.$activeBadge=null)},error:function(){t.removeClass("loading popover-open"),s.$activeBadge=null}})}},filterGroupItems:function(t){var i=this,a=this.previewContext;a&&a.groupData?e.ajax({url:this.config.ajaxUrl,type:"POST",dataType:"json",data:{ajax:1,action:"previewGroupItems",trait:"EntitySelector",group_data:JSON.stringify(a.groupData),block_type:a.blockType,filter:t,limit:20},success:function(e){i.updatePreviewPopoverFiltered(e)},error:function(){i.showFilterLoading(!1)}}):i.showFilterLoading(!1)},loadMoreGroupItems:function(t){var i=this,a=this.previewContext;if(a&&a.groupData){var s=this.previewLoadCount||20,n={ajax:1,action:"previewGroupItems",trait:"EntitySelector",group_data:JSON.stringify(a.groupData),block_type:a.blockType,limit:i.previewLoadedCount+s};i.previewCurrentFilter&&(n.filter=i.previewCurrentFilter),e.ajax({url:this.config.ajaxUrl,type:"POST",dataType:"json",data:n,success:function(e){e.success&&(i.previewTotalCount=e.count,i.updatePreviewPopover(e.items||[],e.hasMore))},error:function(){t.removeClass("loading"),t.find(".load-more-text").show(),t.find(".load-more-loading").hide()}})}},showFilterGroupPreviewPopover:function(t,i,a,s){var n=this;this.hidePreviewPopover(),t.addClass("popover-open loading"),this.$activeBadge=t,e.ajax({url:this.config.ajaxUrl,type:"POST",dataType:"json",data:{ajax:1,action:"previewFilterGroupProducts",trait:"EntitySelector",group_id:i,group_type:a,limit:10},success:function(e){t.removeClass("loading"),e.success?n.createPreviewPopover({$badge:t,items:e.items||[],totalCount:e.count||0,hasMore:e.hasMore||!1,entityLabel:"products",previewType:"filter-group",context:{groupId:i,groupType:a,groupName:s},onLoadMore:function(e){n.loadMoreFilterGroupItems(e)},onFilter:function(e){n.filterFilterGroupItems(e)}}):(t.removeClass("popover-open"),n.$activeBadge=null)},error:function(){t.removeClass("loading popover-open"),n.$activeBadge=null}})},filterFilterGroupItems:function(t){var i=this,a=this.previewContext;a&&a.groupId?e.ajax({url:this.config.ajaxUrl,type:"POST",dataType:"json",data:{ajax:1,action:"previewFilterGroupProducts",trait:"EntitySelector",group_id:a.groupId,group_type:a.groupType,filter:t,limit:20},success:function(e){i.updatePreviewPopoverFiltered(e)},error:function(){i.showFilterLoading(!1)}}):i.showFilterLoading(!1)},loadMoreFilterGroupItems:function(t){var i=this,a=this.previewContext;if(a&&a.groupId){var s=this.previewLoadCount||20,n={ajax:1,action:"previewFilterGroupProducts",trait:"EntitySelector",group_id:a.groupId,group_type:a.groupType,limit:i.previewLoadedCount+s};i.previewCurrentFilter&&(n.filter=i.previewCurrentFilter),e.ajax({url:this.config.ajaxUrl,type:"POST",dataType:"json",data:n,success:function(e){e.success&&(i.previewTotalCount=e.count,i.updatePreviewPopover(e.items||[],e.hasMore))},error:function(){t.removeClass("loading"),t.find(".load-more-text").show(),t.find(".load-more-loading").hide()}})}},showCategoryItemsPreview:function(t,i,a,s){var n=this;this.hidePreviewPopover(),t.addClass("popover-open loading"),this.$activeBadge=t;var r="categories"===s,o=r?"products":"pages",l=r?"previewCategoryProducts":"previewCategoryPages";e.ajax({url:this.config.ajaxUrl,type:"POST",dataType:"json",data:{ajax:1,action:l,trait:"EntitySelector",category_id:i,limit:10},success:function(e){t.removeClass("loading"),e.success?n.createPreviewPopover({$badge:t,items:e.items||[],totalCount:e.count||0,hasMore:e.hasMore||!1,entityLabel:o,previewType:"category-items",context:{categoryId:i,categoryName:a,entityType:s},onLoadMore:function(e){n.loadMoreCategoryItems(e)},onFilter:function(e){n.filterCategoryItems(e)}}):(t.removeClass("popover-open"),n.$activeBadge=null)},error:function(){t.removeClass("loading popover-open"),n.$activeBadge=null}})},loadMoreCategoryItems:function(t){var i=this,a=this.previewContext;if(a&&a.categoryId){var s="categories"===a.entityType?"previewCategoryProducts":"previewCategoryPages";t.prop("disabled",!0).find("i").addClass("icon-spin"),e.ajax({url:this.config.ajaxUrl,type:"POST",dataType:"json",data:{ajax:1,action:s,trait:"EntitySelector",category_id:a.categoryId,offset:this.previewOffset,limit:10,query:this.previewFilterQuery||""},success:function(e){t.prop("disabled",!1).find("i").removeClass("icon-spin"),e.success&&e.items&&(i.appendPreviewItems(e.items),i.previewOffset+=e.items.length,e.hasMore||t.hide())},error:function(){t.prop("disabled",!1).find("i").removeClass("icon-spin")}})}},filterCategoryItems:function(t){var i=this,a=this.previewContext;if(a&&a.categoryId){var s="categories"===a.entityType?"previewCategoryProducts":"previewCategoryPages";e.ajax({url:this.config.ajaxUrl,type:"POST",dataType:"json",data:{ajax:1,action:s,trait:"EntitySelector",category_id:a.categoryId,query:t,limit:10},success:function(e){i.showFilterLoading(!1),e.success&&(i.replacePreviewItems(e.items||[],e.count||0,e.hasMore||!1),i.previewOffset=e.items?e.items.length:0,i.previewFilterQuery=t)},error:function(){i.showFilterLoading(!1)}})}else i.showFilterLoading(!1)},showPatternPreviewModal:function(t,i,a,s){var n=this,r=this.config.trans||{},o=this.config.blocks&&this.config.blocks[i]?this.config.blocks[i]:{},l=o.entity_label_plural||"items",c=o.entity_label||"item",d='
';d+='
',d+='
',d+='',d+=' '+(r.preview||"Preview")+": "+this.escapeHtml(t)+"",d+="",d+=''+s+" "+(1===s?c:l)+"",d+='',d+="
",d+='
',d+='
'+(r.loading||"Loading...")+"
",d+="
",d+="
";var p=e(d+="
");e("body").append(p),p.find(".pattern-preview-close").on("click",function(){p.remove()}),p.on("click",function(t){e(t.target).hasClass("pattern-preview-modal-overlay")&&p.remove()}),e.ajax({url:this.config.ajaxUrl,type:"POST",dataType:"json",data:{ajax:1,action:"previewPatternMatches",trait:"TargetConditions",pattern:t,entity_type:i,case_sensitive:a?1:0,limit:50},success:function(e){if(e.success&&e.items){var t=e.items,i='
';if(0===t.length)i+='
'+(r.no_matches||"No matches found")+"
";else{for(var a=0;a',o.image&&(i+=''),i+=''+n.escapeHtml(o.name)+"",o.id&&(i+='#'+o.id+""),i+="
"}s>t.length&&(i+='
... '+(r.and||"and")+" "+(s-t.length)+" "+(r.more||"more")+"
")}i+="",p.find(".pattern-preview-content").html(i)}else p.find(".pattern-preview-content").html('
'+(r.error_loading||"Error loading preview")+"
")},error:function(){p.find(".pattern-preview-content").html('
'+(r.error_loading||"Error loading preview")+"
")}})},refreshGroupPreviewIfOpen:function(e){this.$activeBadge&&this.$previewPopover},escapeHtml:function(e){return e?String(e).replace(/&/g,"&").replace(//g,">").replace(/"/g,""").replace(/'/g,"'"):""},escapeAttr:function(e){return e?String(e).replace(/&/g,"&").replace(/"/g,""").replace(/'/g,"'"):""},showTotalPreviewPopover:function(t){var i=this,a=this.config.trans||{};this.hidePreviewPopover(),t.addClass("popover-open"),this.$activeBadge=t;var s=[];this.$wrapper.find(".target-block-tab.has-data").each(function(){var t=e(this),a=t.data("blockType"),n=t.find(".tab-badge").text().replace(/[^0-9]/g,""),r=parseInt(n,10)||0;if(r>0){i.config.blocks&&i.config.blocks[a]&&i.config.blocks[a];var o=t.find(".tab-label").prev("i").attr("class")||"icon-cube",l=t.find(".tab-label").text()||a;s.push({blockType:a,label:l,icon:o,count:r})}});var n=parseInt(t.find(".count-value").text(),10)||0,r='
';r+='
',r+=''+(a.total_summary||"Selection Summary")+"",r+=''+n+" "+(a.total_items||"total items")+"",r+="
",r+='
',r+='
    ';for(var o=0;o',r+='',r+=''+i.escapeHtml(l.label)+"",r+=''+l.count+"",r+=""}r+="
",r+="
";var c=e(r+="
");this.$previewPopover=c,c.on("click",".total-summary-item",function(){var t=e(this).data("blockType");i.hidePreviewPopover(),i.switchToBlock(t)}),e("body").append(c);var d=t.offset(),p=t.outerHeight(),u=c.outerWidth();c.css({position:"absolute",top:d.top+p+5,left:d.left-u/2+t.outerWidth()/2,zIndex:1e4});var h=e(window).width();c.offset().left+u>h-10&&c.css("left",h-u-10),c.offset().left<10&&c.css("left",10),c.hide().fadeIn(150)}}}(jQuery),function(e){"use strict";window._EntitySelectorMixins=window._EntitySelectorMixins||{},window._EntitySelectorMixins.tree={treeData:null,treeFlatData:null,loadCategoryTree:function(){var t=this,i=this.$dropdown.find(".dropdown-results"),a=this.config.trans||{},s=this.activeGroup?this.activeGroup.searchEntity:"categories";i.html('
'+this.escapeHtml(a.loading||"Loading...")+"
"),e.ajax({url:this.config.ajaxUrl,type:"POST",dataType:"json",data:{ajax:1,action:"getCategoryTree",trait:"EntitySelector",entity_type:s},success:function(e){e.success&&e.categories&&e.categories.length>0?(t.treeFlatData=e.categories,t.treeData=t.buildTreeStructure(e.categories),t.renderCategoryTree(i,s)):i.html('")},error:function(){i.html('")}})},buildTreeStructure:function(t){var i={},a=[];return t.forEach(function(t){i[t.id]=e.extend({},t,{children:[]})}),t.forEach(function(e){var t=i[e.id],s=parseInt(e.parent_id,10);s&&i[s]?i[s].children.push(t):a.push(t)}),a},renderCategoryTree:function(e,t){var i=this.config.trans||{},a=this.getSelectedIdsFromChips(),s='
';s+='
',s+='",s+='",s+="
",s+='
',s+=this.renderTreeItems(this.treeData,0,a),s+="
",s+="
",e.html(s);var n=this.treeFlatData?this.treeFlatData.length:0,r=a.length,o=n+" "+("cms_categories"===t?"CMS categories":"categories");r>0&&(o+=" ("+r+" selected)"),this.$dropdown.find(".results-count").text(o),this.updateSelectChildrenButtons(this.$dropdown.find(".tree-item"))},renderTreeItems:function(e,t,i){var a=this,s="",n=this.config.trans||{};return e.forEach(function(e){var r=e.children&&e.children.length>0,o=-1!==i.indexOf(parseInt(e.id,10)),l=20*t,c="tree-item";r&&(c+=" has-children"),o&&(c+=" selected"),e.active||(c+=" inactive"),s+='
',s+='',r?(s+='',s+='"):s+='',s+='',s+='',s+=''+a.escapeHtml(e.name)+"";var d=e.product_count||e.page_count||0;if(d>0){var p=e.page_count?n.pages||"pages":n.products||"products";s+='',s+=' '+d,s+=""}e.active||(s+=''+a.escapeHtml(n.inactive||"Inactive")+""),s+="
",r&&(s+='
',s+=a.renderTreeItems(e.children,t+1,i),s+="
")}),s},getSelectedIdsFromChips:function(){var t=[];if(!this.activeGroup)return t;var i=this.$wrapper.find('.target-block[data-block-type="'+this.activeGroup.blockType+'"]').find('.selection-group[data-group-index="'+this.activeGroup.groupIndex+'"]');return("include"===this.activeGroup.section?i.find(".include-picker"):i.find('.exclude-row[data-exclude-index="'+this.activeGroup.excludeIndex+'"]').find(".exclude-picker")).find(".entity-chip").each(function(){t.push(parseInt(e(this).data("id"),10))}),t},filterCategoryTree:function(t){var i=this.$dropdown.find(".category-tree");if(i.length){var a=i.find(".tree-item"),s=i.find(".tree-children");if(t=(t||"").toLowerCase().trim(),a.css("display",""),!t)return a.removeClass("filtered-out filter-match"),void s.removeClass("filter-expanded");a.addClass("filtered-out").removeClass("filter-match"),a.each(function(){var i=e(this);-1!==(i.data("name")||"").toLowerCase().indexOf(t)&&(i.removeClass("filtered-out"),i.parents(".tree-children").addClass("filter-expanded"),i.parents(".tree-item").removeClass("filtered-out"),i.next(".tree-children").find(".tree-item").removeClass("filtered-out"),i.next(".tree-children").addClass("filter-expanded"))})}},findTreeDescendants:function(e,t){var i=[],a=(parseInt(e.data("id"),10),parseInt(e.data("level"),10),e.next(".tree-children"));return a.length&&a.find(".tree-item").each(function(){i.push(this)}),i},updateSelectChildrenButtons:function(t){var i=this.config.trans||{};t.filter(".has-children").each(function(){var t=e(this),a=t.find(".btn-select-children");if(a.length){var s=t.next(".tree-children");if(s.length){var n=s.find(".tree-item"),r=t.hasClass("selected"),o=!0;n.each(function(){if(!e(this).hasClass("selected"))return o=!1,!1}),r&&o?(a.find("i").removeClass("icon-plus-square").addClass("icon-minus-square"),a.attr("title",i.deselect_with_children||"Deselect with all children")):(a.find("i").removeClass("icon-minus-square").addClass("icon-plus-square"),a.attr("title",i.select_with_children||"Select with all children"))}}})}}}(jQuery),function(e){"use strict";window._EntitySelectorMixins=window._EntitySelectorMixins||{},window._EntitySelectorMixins.validation={validateSelection:function(t,i,a,s){if(!this.activeGroup)return{valid:!0};var n=this.config.trans||{};t=parseInt(t,10);var r=this.$wrapper.find('.target-block[data-block-type="'+this.activeGroup.blockType+'"]').find('.selection-group[data-group-index="'+this.activeGroup.groupIndex+'"]'),o=this.getChipIds(r.find(".include-picker")),l=[];r.find(".exclude-row").each(function(){var t=e(this).find(".exclude-picker"),i=[];t.find(".entity-chip").each(function(){i.push(parseInt(e(this).data("id"),10))}),l=l.concat(i)});var c=this.checkIncludeExcludeConflict(t,i,a,o,l,n);if(!c.valid)return c;var d=this.checkRedundantSelection(t,i,a,o,l,n);if(!d.valid)return d;var p=this.activeGroup.searchEntity;if("categories"===p||"cms_categories"===p){var u=this.checkTreeConflicts(t,i,a,s,o,l,n);if(!u.valid)return u}return{valid:!0}},checkIncludeExcludeConflict:function(e,t,i,a,s,n){return"include"===i&&-1!==s.indexOf(e)?{valid:!1,type:"include_exclude_conflict",error:(n.error_in_exclude||'"{name}" is already in the exclude list. Remove it from exclude first.').replace("{name}",t)}:"exclude"===i&&-1!==a.indexOf(e)?{valid:!1,type:"include_exclude_conflict",error:(n.error_in_include||'"{name}" is already in the include list. Remove it from include first.').replace("{name}",t)}:{valid:!0}},checkRedundantSelection:function(e,t,i,a,s,n){return"include"===i&&-1!==a.indexOf(e)?{valid:!1,type:"redundant",error:(n.error_already_selected||'"{name}" is already selected.').replace("{name}",t)}:"exclude"===i&&-1!==s.indexOf(e)?{valid:!1,type:"redundant",error:(n.error_already_excluded||'"{name}" is already in an exclude list.').replace("{name}",t)}:{valid:!0}},checkTreeConflicts:function(e,t,i,a,s,n,r){if(!this.treeFlatData)return{valid:!0};a&&a.parentId&&parseInt(a.parentId,10);var o={};this.treeFlatData.forEach(function(e){o[parseInt(e.id,10)]=e});var l=this.getAncestorIds(e,o),c=this.getDescendantIds(e,o);if("include"===i){for(var d=0;d0)return{valid:!1,type:"children_included",error:(r.error_children_included||'Cannot exclude "{name}" because its children ({children}) are included. Remove them from include first.').replace("{name}",t).replace("{children}",m.slice(0,3).join(", ")+(m.length>3?"...":""))}}return{valid:!0}},getAncestorIds:function(e,t){for(var i=[],a=t[e];a&&a.parent_id;){var s=parseInt(a.parent_id,10);if(!s||!t[s])break;i.push(s),a=t[s]}return i},getDescendantIds:function(e,t){var i=[],a=this;return Object.keys(t).forEach(function(s){var n=t[s];if(parseInt(n.parent_id,10)===e){var r=parseInt(n.id,10);i.push(r);var o=a.getDescendantIds(r,t);i=i.concat(o)}}),i},getChipIds:function(t){var i=[];return t.find(".entity-chip").each(function(){i.push(parseInt(e(this).data("id"),10))}),i},validatePendingSelections:function(e,t){var i=this,a=[];return e&&e.length?(e.forEach(function(e){var s=i.validateSelection(e.id,e.name,t,e.data||{});s.valid||a.push({id:e.id,name:e.name,error:s.error,type:s.type})}),a):a},showValidationError:function(t){var i=(this.config.trans||{}).validation_error||"Selection Conflict";e(".es-validation-toast").remove();var a='
';a+='
',a+='
',a+='
'+this.escapeHtml(i)+"
",a+='
'+this.escapeHtml(t)+"
",a+="
",a+='';var s=e(a+="
");if(e("body").append(s),this.$dropdown&&this.$dropdown.hasClass("show")){var n=this.$dropdown.offset();s.css({position:"fixed",top:n.top-s.outerHeight()-10,left:n.left,zIndex:10001})}else s.css({position:"fixed",top:20,right:20,zIndex:10001});s.hide().fadeIn(200),setTimeout(function(){s.fadeOut(200,function(){e(this).remove()})},5e3),s.on("click",".es-toast-close",function(){s.fadeOut(200,function(){e(this).remove()})})},validateAndAddSelection:function(e,t,i,a,s){var n=this.validateSelection(t,i,s,a||{});return n.valid?(this.addSelection(e,t,i,a),!0):(this.showValidationError(n.error),!1)}}}(jQuery),function(e){"use strict";var t={instances:[],create:function(t){var i=function(){var t={config:{},$wrapper:null,$dropdown:null,activeGroup:null,searchTimeout:null,searchResults:[],searchTotal:0,searchOffset:0,searchQuery:"",isLoading:!1,loadMoreCount:20,viewMode:"list",currentSort:{field:"name",dir:"ASC"},refineQuery:"",refineNegate:!1,filters:{inStock:!1,discounted:!1,priceMin:null,priceMax:null,attributes:[],features:[]},filterableData:null,searchHistory:{},searchHistoryMax:10,searchHistoryKey:"targetConditionsSearchHistory",maxVisibleChips:20,$methodDropdownMenu:null,$methodDropdownSelect:null,$methodDropdownTrigger:null,$previewPopover:null,$activeBadge:null,$previewList:null,previewLoadedCount:0,previewBlockType:null,allPreviewData:null,countUpdateTimeout:null,init:function(t){if(this.config=e.extend({id:"target-conditions",name:"target_conditions",namePrefix:"target_",mode:"multi",blocks:{},ajaxUrl:"",trans:{}},t),this.$wrapper=e('[data-entity-selector-id="'+this.config.id+'"]'),this.$wrapper.length){"single"===this.config.mode&&(this.$wrapper.find(".btn-add-group").hide(),this.$wrapper.find(".group-excludes").hide(),this.$wrapper.find(".group-modifiers").hide());var i=this.$wrapper.closest(".form-group");i.addClass("condition-trait-fullwidth"),i.find(".col-lg-offset-3").removeClass("col-lg-offset-3"),this.createDropdown(),this.bindEvents(),this.loadExistingSelections(),this.loadSearchHistory(),this.initMethodDropdowns(),this.observeNewSelects();var a=this;setTimeout(function(){a.updateTabBadges(),a.updateAllConditionCounts()},100)}},observeNewSelects:function(){var t=this;"undefined"!=typeof MutationObserver&&new MutationObserver(function(i){i.forEach(function(i){i.addedNodes.length&&e(i.addedNodes).find(".include-method-select, .exclude-method-select").each(function(){t.enhanceMethodSelect(e(this))})})}).observe(this.$wrapper[0],{childList:!0,subtree:!0})},loadExistingSelections:function(){}},i=window._EntitySelectorMixins||{};return i.utils&&e.extend(t,i.utils),i.events&&e.extend(t,i.events),i.dropdown&&e.extend(t,i.dropdown),i.search&&e.extend(t,i.search),i.filters&&e.extend(t,i.filters),i.chips&&e.extend(t,i.chips),i.groups&&e.extend(t,i.groups),i.methods&&e.extend(t,i.methods),i.preview&&e.extend(t,i.preview),i.tree&&e.extend(t,i.tree),i.validation&&e.extend(t,i.validation),t}();return i.init(t),this.instances.push(i),i},init:function(e){return this.create(e)},validateAll:function(){for(var e=!0,t=0;t0&&!t.validateAll())return i.preventDefault(),!1})})}(jQuery); //# sourceMappingURL=entity-selector.min.js.map diff --git a/assets/js/admin/entity-selector.min.js.map b/assets/js/admin/entity-selector.min.js.map index c517ef8..64a79a2 100644 --- a/assets/js/admin/entity-selector.min.js.map +++ b/assets/js/admin/entity-selector.min.js.map @@ -1 +1 @@ -{"version":3,"sources":["_utils.js","_events.js","_dropdown.js","_search.js","_filters.js","_chips.js","_groups.js","_methods.js","_preview.js","_tree.js","_validation.js","_core.js"],"names":["$","window","_EntitySelectorMixins","utils","debounce","func","wait","timeout","context","this","args","arguments","clearTimeout","setTimeout","apply","escapeHtml","str","String","replace","escapeAttr","getEntityTypeIcon","entityType","products","categories","manufacturers","suppliers","attributes","features","cms","cms_categories","getEntityTypeLabel","trans","config","product","category","manufacturer","supplier","attribute","feature","cms_page","cms_category","validate","$wrapper","data","hasData","find","each","length","clearValidationError","showValidationError","addClass","message","remove","$error","class","html","after","animate","scrollTop","offset","top","is","slideDown","removeClass","getBlockMode","blockType","blockDef","blocks","mode","isBlockSingleMode","getCurrentSingleSelection","$chip","first","$block","closest","name","text","supportsTreeBrowsing","jQuery","events","bindEvents","self","on","e","preventDefault","switchToBlock","stopPropagation","$tab","hasClass","hidePreviewPopover","showPreviewPopover","$badge","showConditionPreviewPopover","showGroupPreviewPopover","showTotalPreviewPopover","document","target","$body","stop","slideUp","toggleClass","$btn","currentState","attr","collapse_all","expand_all","prop","clearAllConditions","val","addGroup","$group","removeGroup","$input","trim","serializeAllBlocks","addFirstExcludeRow","addExcludeRow","$excludeRow","removeExcludeRow","hideDropdown","$row","methods","selection_methods","$option","valueType","searchEntity","methodOptions","$oldPicker","newPickerHtml","buildValuePickerHtml","replaceWith","$select","$newPicker","empty","key","label","append","isExclusive","populateTiles","step","min","applyRangeInputConstraints","loadCombinationAttributeGroups","selectedMethod","updateMethodInfoPlaceholder","updateBlockStatus","keyCode","click","$draftTag","$picker","pattern","caseSensitive","addPatternTag","focus","hide","$matchCount","updateDraftTagCount","updateGroupTotalCount","$tag","isDraftTag","newCaseSensitive","caseTitle","case_sensitive","case_insensitive","count","showPatternPreviewModal","currentPattern","$editInput","$saveBtn","$cancelBtn","$editActions","prepend","select","ev","newPattern","show","content","tooltipClass","$tooltip","triggerWidth","outerWidth","tooltipWidth","tooltipHeight","outerHeight","left","width","css","position","$container","$chipsContainer","$minInput","$maxInput","minVal","maxVal","parseFloat","minAllowed","hasMinConstraint","minNum","maxNum","showRangeInputError","min_value_error","min_greater_than_max","chipText","decimals","split","Math","round","toFixed","type","$tile","$value","updateCombinationData","query","toLowerCase","indexOf","$modifiers","$content","slideToggle","$limitInput","limit","parseInt","finalCount","$previewBadge","displayCount","updateModifierButtonState","refreshGroupPreviewIfOpen","newDir","$icon","groupIndex","section","excludeIndex","activeGroup","searchResults","searchOffset","searchQuery","viewMode","resetFiltersWithoutSearch","$dropdown","$chips","pendingSelections","push","id","pendingPicker","pendingRow","updateFilterPanelForEntity","loadFilterableData","positionDropdown","performSearch","loadCategoryTree","searchTimeout","filterCategoryTree","$item","removeFromSearchHistory","fadeOut","activeElement","filter","blur","isSelected","s","removeSelection","validation","validateSelection","valid","error","currentSelection","newEntityType","showReplaceConfirmation","addSelection","some","updateChipsVisibility","skippedCount","addSelectionNoUpdate","msg","items_skipped_conflicts","selectedCount","totalCount","categoryLabel","forEach","sel","isLoading","loadCount","loadMoreCount","currentSort","field","refreshSearch","dir","$allItems","isCollapsed","descendants","findTreeDescendants","i","toggle","updateSelectChildrenButtons","$count","categoryId","categoryName","showCategoryItemsPreview","allSelected","j","$child","select_with_children","skippedChildren","parentValidation","k","$descendant","skipMsg","children_skipped_conflicts","deselect_with_children","minLevel","Infinity","level","hasChildren","refineQuery","refineTimeout","refineNegate","placeholder","refine_exclude","refine_short","$panel","showSearchHistory","filters","inStock","discounted","priceMin","priceMax","productCountMin","productCountMax","salesMin","salesMax","turnoverMin","turnoverMax","dateAddFrom","dateAddTo","lastProductFrom","lastProductTo","depth","hasProducts","hasDescription","hasImage","activeOnly","attributeGroup","featureGroup","isColor","isCustom","indexable","groupId","isActive","hideFilterGroupValues","showFilterGroupValues","groupType","groupName","showFilterGroupPreviewPopover","prevMode","renderSearchResults","filterArray","index","splice","updateFilterToggleStates","clearFilters","isInputFocused","ctrlKey","metaKey","trigger","rect","getBoundingClientRect","innerWidth","bottom","$closeBtn","dropdown","createDropdown","select_all","all","clear_selection","clear","sort_name","sort_id","sort_selected","sort_price","sort_stock","sort_popularity","sort_reference","sort_position","sort_product_count","view_list","view_tree","cols","exclude_matches","toggle_filters","recent_searches","in_stock","price","max","clear_filters","product_count","total_sales","turnover","active_only","all_levels","root","has_products","has_description","has_image","date_added","from","to","last_product","attribute_group","all_groups","color_only","feature_group","custom_only","sale","stock","sold","load","of","remaining","cancel","save","$searchBox","searchBoxOffset","searchBoxHeight","pickerOffset","pickerWidth","dropdownTop","dropdownLeft","dropdownWidth","viewportWidth","maxHeight","height","zIndex","search","categoryTreeCache","appendMode","requestData","ajax","action","trait","entity_type","q","sort_by","sort_dir","refine","refine_negate","filter_in_stock","filter_discounted","filter_price_min","filter_price_max","filter_attributes","JSON","stringify","filter_features","filter_product_count_min","filter_product_count_max","filter_depth","filter_has_products","filter_has_description","filter_has_image","filter_sales_min","filter_sales_max","filter_turnover_min","filter_turnover_max","filter_active","filter_date_add_from","filter_date_add_to","filter_last_product_from","filter_last_product_to","filter_attribute_group","filter_is_color","filter_feature_group","filter_is_custom","filter_indexable","url","ajaxUrl","dataType","success","response","total","addToSearchHistory","concat","results","searchTotal","selectedIds","hiddenIds","currentSearchEntity","currentExcludeIndex","isProductSearch","isListView","visibleResults","item","hiddenCount","countText","itemClass","image","subtitle","iconClass","subtitleLines","line","idx","regular_price_formatted","price_formatted","has_discount","stockClass","stock_status","undefined","stock_qty","sales_qty","gridStockClass","discount_percent","no_results","hasMore","$loadMoreControls","$allOption","hasHistory","getSearchHistory","loadSearchHistory","stored","localStorage","getItem","searchHistoryKey","searchHistory","parse","saveSearchHistory","setItem","history","existingIndex","unshift","searchHistoryMax","slice","$treeOption","filterableData","loadAttributeGroups","groups","group","loadFeatureGroups","isCategory","updateSortOptionsForEntity","currentValue","hasCurrentOption","entities","isAllowed","renderFilterDropdowns","$attrContainer","$featContainer","g","valuesRowClass","$filterRowValues","$valuesContainer","values","activeClass","chipClass","colorStyle","color","colorClass","rowValues","scrollIntoView","behavior","block","$toggle","hasActiveInGroup","chips","$allChips","$existingWrapper","ensureChipsWrapper","$toolbar","$loadMore","searchTerm","visibleCount","filteredCount","isExpanded","maxVisible","maxVisibleChips","chipName","matchesFilter","updateChipsToolbar","hiddenByPagination","loadText","remainingText","loadMoreHtml","collapseText","collapse","before","wrapperHtml","filter_selected","sort","sort_added","sort_name_asc","sort_name_desc","clear_all","bindChipsToolbarEvents","sortBy","sortChips","sorted","toArray","a","b","$a","$b","nameA","nameB","localeCompare","nameA2","chip","$clearBtn","$clearText","loadExistingSelections","entitiesToLoad","$includePicker","collectPickerEntities","enhanceMethodSelect","updateMethodSelectorLock","bulkRequest","hasEntities","Object","keys","ids","uniqueIds","arr","entityMap","entity","pickers","pickerData","$dataInput","validIds","$loadingChip","rawValue","entityIcon","Array","isArray","range","loadPickerValues","isCaseSensitive","remove_pattern","getPatternTags","patterns","$countValue","updateConditionCountWithPendingPattern","pendingPattern","$countEl","isExclude","method","block_type","fetchPatternMatchCount","getPickerValues","patternValues","$draftPatternInput","draftPatternVal","draftCaseSens","updateConditionCount","hasNoValues","updateGroupCounts","$include","groupData","serializeGroup","include","group_data","final_count","excludeCount","exclude_count","badgeHtml","updateAllConditionCounts","fetchCategoryNamesAndAddChips","callback","maxIndex","buildMethodOptions","click_to_name","remove_group","no_items_selected","search_placeholder","add_exceptions","limit_tooltip","sort_bestsellers","sort_newest","sort_random","sort_direction","preview_results","$newGroup","emptyHtml","getEmptyStateText","updateTabBadges","updateHeaderTotalCount","blockTypesWithData","groupCount","updateTargetSwitchState","fetchAllCounts","$switch","blockTypes","$hiddenInput","savedData","conditions","counts","xhr","status","fetchProductCount","removeData","isNaN","$totalBadge","updateShowAllToggle","$checkbox","$status","getBlockGroups","emptyMeansAll","entity_label_plural","nothing_selected","blockMode","no_item_selected","included","includeMethod","includeValues","excludes","excludeMethod","$excludePicker","excludeValues","modifiers","getGroupModifiers","$changedRow","countUpdateTimeout","isConditionValid","sortDir","Number","$draftInput","draftPattern","draftCaseSensitive","selectVal","ranges","combAttrs","toString","valueId","combMode","configMode","combinationMode","conditionElements","conditionIndex","includeData","getConditionData","condition","excludeData","$excludesDiv","except","buildExcludeRowHtml","add_another_exception","$firstRow","$firstSelect","initialMethod","$newRow","$newSelect","excludeMethodOptions","firstSearchEntity","firstValueType","methodKey","methodDef","search_entity","value_type","remove_this_exception","excludeAll","groupLabels","select_by","filter_by","grouped","ungrouped","buildMethodOption","groupKey","groupMethods","groupLabel","icon","options","exclusive","pickerClass","chipsClass","dataClass","noItemsText","tooltipContent","pattern_help_title","pattern_help_wildcard","pattern_help_number","pattern_help_letter","pattern_help_examples","pattern_example_1","pattern_example_2","pattern_example_3","noPatternText","no_patterns","enter_pattern","click_to_preview","add_pattern","add_range","yes","combination_help_title","combination_help_desc","combination_help_logic","combination_help_within","combination_help_between","showModeToggle","defaultMode","Date","now","comb_mode_products","comb_mode_combinations","loading","getSortOptionsArray","value","sort_products","getSortIconClass","isAsc","cycleSortOption","newSort","newLabel","sortOptions","currentDir","currentIndex","initMethodDropdowns","initMethodInfoPlaceholders","$selectedOption","selectedIcon","selectedLabel","triggerHtml","$trigger","showMethodDropdownMenu","updateMethodTrigger","closeMethodDropdownMenu","menuHtml","buildMethodDropdownMenuHtml","$menu","triggerOffset","triggerHeight","minWidth","$methodDropdownMenu","$methodDropdownSelect","$methodDropdownTrigger","children","$el","$optgroup","off","removeAttr","optData","tileClass","$inputs","$groupDiv","$groupHeader","title","filter_results","loadCombinationAttributeValues","no_attribute_groups","error_loading","id_attribute_group","productCount","$valueBtn","restoreCombinationSelections","no_values","dataStr","valueIds","updateCombinationGroupCounts","$headerRow","$placeholder","methodHelp","helpContent","getBuiltInMethodHelp","$infoWrapper","help_all_title","help_all_desc","help_specific_title","help_specific_desc","help_category_title","help_category_desc","help_manufacturer_title","help_manufacturer_desc","help_supplier_title","help_supplier_desc","help_tag_title","help_tag_desc","help_attribute_title","help_attribute_desc","help_feature_title","help_feature_desc","help_combination_title","help_combination_desc","help_combination_logic","help_combination_within","help_combination_between","help_carrier_title","help_carrier_desc","help_condition_title","help_condition_desc","help_visibility_title","help_visibility_desc","help_active_title","help_active_desc","help_stock_title","help_stock_desc","help_boolean_title","help_boolean_desc","help_pattern_title","help_pattern_desc","help_pattern_wildcard","help_pattern_number","help_pattern_letter","help_range_title","help_range_desc","help_range_tip","help_date_title","help_date_desc","buildSortOptions","summary","sortLabel","$arrow","join","insertBefore","locked","wrap","parent","lockHtml","remove_excludes_first","siblings","preview","createPreviewPopover","items","entityLabel","previewType","renderPreviewItems","no_preview","$popover","$previewPopover","$previewList","previewLoadedCount","previewTotalCount","previewContext","previewOnLoadMore","onLoadMore","previewOnFilter","onFilter","previewCurrentFilter","previewEntityLabel","$filterInput","debouncedFilter","showFilterLoading","call","filterPreviewItems","previewLoadCount","badgeOffset","badgeHeight","badgeWidth","popoverWidth","leftPos","maxLeft","updatePreviewPopover","$footer","$controls","filterQuery","isCombination","dataAttrs","reference","meta","formatPrice","active","$items","ref","attrs","matches","$list","previewLockedWidth","updatePreviewPopoverFiltered","$header","noResultsText","no_filter_results","footerHtml","$newFooter","currencySign","currency_sign","currencyFormat","currency_format","formatted","$activeBadge","previewData","entityLabelPlural","previewBlockType","loadMoreTabPreviewItems","filterTabPreviewItems","ajaxData","conditionData","loadMoreConditionItems","filterConditionItems","ctx","loadMoreGroupItems","filterGroupItems","group_id","group_type","loadMoreFilterGroupItems","filterFilterGroupItems","isProducts","category_id","loadMoreCategoryItems","filterCategoryItems","previewOffset","previewFilterQuery","appendPreviewItems","replacePreviewItems","blockConfig","entityLabelSingular","entity_label","$modal","listHtml","no_matches","and","more","summaryItems","prev","popoverHtml","total_summary","total_items","windowWidth","fadeIn","tree","treeData","treeFlatData","$results","buildTreeStructure","renderCategoryTree","no_categories","flatData","lookup","extend","node","parentId","parent_id","getSelectedIdsFromChips","renderTreeItems","nodes","indent","itemCount","page_count","countLabel","pages","inactive","$tree","$children","parents","next","$next","$childItems","isParentSelected","allChildrenSelected","includeIds","getChipIds","excludeIds","conflictResult","checkIncludeExcludeConflict","redundantResult","checkRedundantSelection","treeResult","checkTreeConflicts","error_in_exclude","error_in_include","error_already_selected","error_already_excluded","ancestorIds","getAncestorIds","descendantIds","getDescendantIds","ancestorName","error_parent_excluded","descendantName","error_child_excluded","parentName","error_parent_included","includedDescendants","m","childName","error_children_included","ancestors","current","childId","childDescendants","validatePendingSelections","errors","result","validation_error","$toast","dropdownOffset","right","validateAndAddSelection","TargetConditions","instances","create","instance","allPreviewData","init","namePrefix","$formGroup","observeNewSelects","MutationObserver","mutations","mutation","addedNodes","observe","childList","subtree","mixins","createTargetConditionsInstance","validateAll","allValid","ready","configData"],"mappings":"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","file":"entity-selector.min.js","sourcesContent":["/**\n * Entity Selector - Utilities Module\n * Helper functions: escape, validation, icons, search history\n * @partial _utils.js (must be loaded first)\n *\n * EXTRACTION SOURCE: assets/js/admin/entity-selector.js\n * Lines: 7552-7570 (escapeHtml, escapeAttr)\n * 7577-7590 (getEntityTypeLabel)\n * 6289-6350 (validate, showValidationError, clearValidationError)\n * 7115-7137 (showRangeInputError)\n * 7728-7745 (getBlockMode, isBlockSingleMode)\n * 7707-7723 (getCurrentSingleSelection)\n * 5411-5467 (search history methods)\n */\n\n(function($) {\n 'use strict';\n\n // Create mixin namespace\n window._EntitySelectorMixins = window._EntitySelectorMixins || {};\n\n // Utility functions mixin\n window._EntitySelectorMixins.utils = {\n\n /**\n * Debounce function - delays execution until after wait milliseconds\n * @param {Function} func - Function to debounce\n * @param {number} wait - Milliseconds to wait\n * @returns {Function} Debounced function\n */\n debounce: function(func, wait) {\n var timeout;\n return function() {\n var context = this;\n var args = arguments;\n clearTimeout(timeout);\n timeout = setTimeout(function() {\n func.apply(context, args);\n }, wait);\n };\n },\n\n escapeHtml: function(str) {\n if (str === null || str === undefined) return '';\n return String(str)\n .replace(/&/g, '&')\n .replace(//g, '>')\n .replace(/\"/g, '"')\n .replace(/'/g, ''');\n },\n\n escapeAttr: function(str) {\n if (str === null || str === undefined) return '';\n return String(str)\n .replace(/&/g, '&')\n .replace(//g, '>')\n .replace(/\"/g, '"')\n .replace(/'/g, ''');\n },\n\n getEntityTypeIcon: function(entityType) {\n var icons = {\n 'products': 'icon-shopping-cart',\n 'categories': 'icon-folder-open',\n 'manufacturers': 'icon-building',\n 'suppliers': 'icon-truck',\n 'attributes': 'icon-list-alt',\n 'features': 'icon-tags',\n 'cms': 'icon-file-text',\n 'cms_categories': 'icon-folder'\n };\n return icons[entityType] || 'icon-cube';\n },\n\n getEntityTypeLabel: function(entityType) {\n var trans = this.config.trans || {};\n var labels = {\n 'products': trans.product || 'Product',\n 'categories': trans.category || 'Category',\n 'manufacturers': trans.manufacturer || 'Manufacturer',\n 'suppliers': trans.supplier || 'Supplier',\n 'attributes': trans.attribute || 'Attribute',\n 'features': trans.feature || 'Feature',\n 'cms': trans.cms_page || 'CMS Page',\n 'cms_categories': trans.cms_category || 'CMS Category'\n };\n return labels[entityType] || entityType;\n },\n\n validate: function() {\n var isRequired = this.$wrapper.data('required') === 1 || this.$wrapper.data('required') === '1';\n if (!isRequired) return true;\n\n var hasData = false;\n this.$wrapper.find('.target-block').each(function() {\n if ($(this).find('.selection-group').length > 0) {\n hasData = true;\n return false;\n }\n });\n\n if (!hasData) {\n this.showValidationError();\n return false;\n }\n\n this.clearValidationError();\n return true;\n },\n\n showValidationError: function() {\n this.$wrapper.addClass('has-validation-error');\n var message = this.$wrapper.data('required-message') || 'Please select at least one item';\n this.$wrapper.find('.trait-validation-error').remove();\n var $error = $('
', {\n class: 'trait-validation-error',\n html: ' ' + message\n });\n this.$wrapper.find('.condition-trait-header').after($error);\n $('html, body').animate({ scrollTop: this.$wrapper.offset().top - 100 }, 300);\n if (!this.$wrapper.find('.condition-trait-body').is(':visible')) {\n this.$wrapper.find('.condition-trait-body').slideDown(200);\n this.$wrapper.removeClass('collapsed');\n }\n },\n\n clearValidationError: function() {\n this.$wrapper.removeClass('has-validation-error');\n this.$wrapper.find('.trait-validation-error').remove();\n },\n\n getBlockMode: function(blockType) {\n var blockDef = this.config.blocks[blockType];\n return (blockDef && blockDef.mode) ? blockDef.mode : 'multi';\n },\n\n isBlockSingleMode: function(blockType) {\n return this.getBlockMode(blockType) === 'single';\n },\n\n getCurrentSingleSelection: function() {\n if ((this.config.mode || 'multi') !== 'single') return null;\n var $chip = this.$wrapper.find('.entity-chips .entity-chip').first();\n if ($chip.length) {\n var $block = $chip.closest('.target-block');\n return {\n name: $chip.find('.chip-name').text() || $chip.data('id'),\n entityType: $block.data('block-type') || 'item'\n };\n }\n return null;\n },\n\n /**\n * Check if entity type supports tree browsing\n */\n supportsTreeBrowsing: function(entityType) {\n return entityType === 'categories' || entityType === 'cms_categories';\n }\n };\n\n})(jQuery);\n","/**\n * Entity Selector - Events Module\n * All event binding and handlers\n * @partial _events.js\n *\n * Contains event handlers for:\n * - Tab switching\n * - Block/group collapse toggle\n * - Dropdown open/close\n * - Search input handling\n * - Item selection/deselection\n * - Group add/remove\n * - Exclude row add/remove\n * - Method select changes\n * - Filter panel toggles\n * - Keyboard shortcuts (Ctrl+A, Ctrl+D, Esc, Enter)\n * - Load more pagination\n * - Sort controls\n * - View mode switching\n * - Tree view events\n * - Preview badge clicks\n * - Pattern tag interactions\n * - Combination picker events\n * - Group modifier events\n */\n\n(function($) {\n 'use strict';\n\n window._EntitySelectorMixins = window._EntitySelectorMixins || {};\n\n window._EntitySelectorMixins.events = {\n\n bindEvents: function() {\n var self = this;\n\n // Tab switching\n this.$wrapper.on('click', '.target-block-tab', function(e) {\n e.preventDefault();\n var blockType = $(this).data('blockType');\n self.switchToBlock(blockType);\n });\n\n // Tab badge click for preview popover (toggle)\n this.$wrapper.on('click', '.target-block-tab .tab-badge', function(e) {\n e.stopPropagation();\n e.preventDefault();\n\n var $tab = $(this).closest('.target-block-tab');\n var $badge = $(this);\n\n if ($badge.hasClass('popover-open')) {\n self.hidePreviewPopover();\n } else {\n self.showPreviewPopover($tab);\n }\n });\n\n // Condition count badge click for preview popover\n this.$wrapper.on('click', '.condition-match-count.clickable', function(e) {\n e.stopPropagation();\n e.preventDefault();\n\n var $badge = $(this);\n\n if ($badge.hasClass('popover-open')) {\n self.hidePreviewPopover();\n } else {\n self.showConditionPreviewPopover($badge);\n }\n });\n\n // Group count badge click for preview popover\n this.$wrapper.on('click', '.group-count-badge.clickable', function(e) {\n e.stopPropagation();\n e.preventDefault();\n\n var $badge = $(this);\n\n if ($badge.hasClass('popover-open')) {\n self.hidePreviewPopover();\n } else {\n self.showGroupPreviewPopover($badge);\n }\n });\n\n // Total count badge click for summary popover\n this.$wrapper.on('click', '.trait-total-count', function(e) {\n e.stopPropagation();\n e.preventDefault();\n\n var $badge = $(this);\n\n if ($badge.hasClass('popover-open')) {\n self.hidePreviewPopover();\n } else {\n self.showTotalPreviewPopover($badge);\n }\n });\n\n // Close popover when clicking outside\n $(document).on('click', function(e) {\n if (!$(e.target).closest('.target-preview-popover').length &&\n !$(e.target).closest('.tab-badge').length &&\n !$(e.target).closest('.condition-match-count').length &&\n !$(e.target).closest('.group-count-badge').length &&\n !$(e.target).closest('.group-modifiers').length &&\n !$(e.target).closest('.group-preview-badge').length &&\n !$(e.target).closest('.toggle-count.clickable').length &&\n !$(e.target).closest('.trait-total-count').length) {\n self.hidePreviewPopover();\n }\n });\n\n // Block-level collapse toggle (click on header)\n this.$wrapper.on('click', '.condition-trait-header', function(e) {\n if ($(e.target).closest('.target-block-tabs').length ||\n $(e.target).closest('.trait-header-actions').length ||\n $(e.target).closest('.prestashop-switch').length ||\n $(e.target).closest('.trait-total-count').length) {\n return;\n }\n var $body = self.$wrapper.find('.condition-trait-body');\n $body.stop(true, true);\n if ($body.is(':visible')) {\n $body.slideUp(200);\n self.$wrapper.addClass('collapsed');\n } else {\n $body.slideDown(200);\n self.$wrapper.removeClass('collapsed');\n }\n });\n\n // Group-level collapse toggle (click on group header or toggle icon)\n this.$wrapper.on('click', '.group-header', function(e) {\n if ($(e.target).closest('.btn-remove-group, .group-name-input').length) {\n return;\n }\n if (self.$wrapper.data('mode') === 'single') {\n return;\n }\n var $group = $(this).closest('.selection-group');\n $group.toggleClass('collapsed');\n });\n\n // Toggle all groups (single button that switches between expand/collapse)\n this.$wrapper.on('click', '.trait-header-actions .btn-toggle-groups', function(e) {\n e.preventDefault();\n e.stopPropagation();\n var $btn = $(this);\n var currentState = $btn.attr('data-state') || 'collapsed';\n var trans = self.config.trans || {};\n\n if (currentState === 'collapsed') {\n self.$wrapper.find('.selection-group').removeClass('collapsed');\n $btn.attr('data-state', 'expanded');\n $btn.attr('title', trans.collapse_all || 'Collapse all groups');\n $btn.find('i').removeClass('icon-expand').addClass('icon-compress');\n } else {\n self.$wrapper.find('.selection-group').addClass('collapsed');\n $btn.attr('data-state', 'collapsed');\n $btn.attr('title', trans.expand_all || 'Expand all groups');\n $btn.find('i').removeClass('icon-compress').addClass('icon-expand');\n }\n });\n\n // Show all toggle change (legacy checkbox)\n this.$wrapper.on('change', '.trait-show-all-toggle .show-all-checkbox', function(e) {\n e.stopPropagation();\n var isChecked = $(this).prop('checked');\n if (isChecked) {\n self.clearAllConditions();\n }\n });\n\n // Target switch change (PrestaShop native switch)\n this.$wrapper.on('change', '.target-switch-toggle', function(e) {\n e.stopPropagation();\n var value = $(this).val();\n if (value === '1') {\n self.clearAllConditions();\n self.$wrapper.find('.condition-trait-body').slideUp(200);\n self.$wrapper.addClass('collapsed');\n } else {\n self.$wrapper.find('.condition-trait-body').slideDown(200);\n self.$wrapper.removeClass('collapsed');\n }\n });\n\n // Add group\n this.$wrapper.on('click', '.btn-add-group', function(e) {\n e.preventDefault();\n var $block = $(this).closest('.target-block');\n var blockType = $block.data('blockType');\n self.addGroup($block, blockType);\n });\n\n // Remove group\n this.$wrapper.on('click', '.btn-remove-group', function(e) {\n e.preventDefault();\n var $group = $(this).closest('.selection-group');\n var $block = $(this).closest('.target-block');\n self.removeGroup($group, $block);\n });\n\n // Group name input - stop propagation to prevent collapse\n this.$wrapper.on('click focus', '.group-name-input', function(e) {\n e.stopPropagation();\n });\n\n // Group name change\n this.$wrapper.on('change blur', '.group-name-input', function() {\n var $input = $(this);\n var $group = $input.closest('.selection-group');\n var name = $.trim($input.val());\n $group.attr('data-group-name', name);\n self.serializeAllBlocks();\n });\n\n // Add exceptions (first exclude row)\n this.$wrapper.on('click', '.btn-add-exclude', function(e) {\n e.preventDefault();\n var $group = $(this).closest('.selection-group');\n var $block = $(this).closest('.target-block');\n self.addFirstExcludeRow($group, $block);\n });\n\n // Add another exclude row\n this.$wrapper.on('click', '.btn-add-another-exclude', function(e) {\n e.preventDefault();\n var $group = $(this).closest('.selection-group');\n var $block = $(this).closest('.target-block');\n self.addExcludeRow($group, $block);\n });\n\n // Remove individual exclude row\n this.$wrapper.on('click', '.btn-remove-exclude-row', function(e) {\n e.preventDefault();\n var $excludeRow = $(this).closest('.exclude-row');\n var $group = $(this).closest('.selection-group');\n var $block = $(this).closest('.target-block');\n self.removeExcludeRow($excludeRow, $group, $block);\n });\n\n // Include method change\n this.$wrapper.on('change', '.include-method-select', function() {\n self.hideDropdown();\n\n var $group = $(this).closest('.selection-group');\n var $block = $(this).closest('.target-block');\n var $row = $group.find('.group-include');\n var blockType = $block.data('blockType');\n var blockDef = self.config.blocks[blockType] || {};\n var methods = blockDef.selection_methods || {};\n\n var $option = $(this).find('option:selected');\n var valueType = $option.data('valueType') || 'none';\n var searchEntity = $option.data('searchEntity') || '';\n var methodOptions = $option.data('options') || null;\n\n var $oldPicker = $group.find('.include-picker');\n var newPickerHtml = self.buildValuePickerHtml('include', valueType, searchEntity, methods);\n $oldPicker.replaceWith(newPickerHtml);\n\n if (valueType === 'select' && methodOptions) {\n var $newPicker = $group.find('.include-picker');\n var $select = $newPicker.find('.select-value-input');\n $select.empty();\n $.each(methodOptions, function(key, label) {\n $select.append('');\n });\n }\n\n if (valueType === 'multi_select_tiles' && methodOptions) {\n var $newPicker = $group.find('.include-picker');\n var isExclusive = $option.data('exclusive') === true;\n self.populateTiles($newPicker, methodOptions, isExclusive);\n }\n\n if (valueType === 'multi_numeric_range') {\n var $newPicker = $group.find('.include-picker');\n var step = $option.data('step');\n var min = $option.data('min');\n self.applyRangeInputConstraints($newPicker, step, min);\n }\n\n if (valueType === 'combination_attributes') {\n var $newPicker = $group.find('.include-picker');\n self.loadCombinationAttributeGroups($newPicker);\n }\n\n var selectedMethod = $(this).val();\n self.updateMethodInfoPlaceholder($group.find('.method-selector-wrapper'), selectedMethod, blockType);\n\n self.updateBlockStatus($block);\n self.serializeAllBlocks($row);\n });\n\n // Exclude method change (within an exclude row)\n this.$wrapper.on('change', '.exclude-method-select', function() {\n self.hideDropdown();\n\n var $excludeRow = $(this).closest('.exclude-row');\n var $group = $(this).closest('.selection-group');\n var $block = $(this).closest('.target-block');\n var blockType = $block.data('blockType');\n var blockDef = self.config.blocks[blockType] || {};\n var methods = blockDef.selection_methods || {};\n\n var $option = $(this).find('option:selected');\n var valueType = $option.data('valueType') || 'entity_search';\n var searchEntity = $option.data('searchEntity') || blockType;\n var methodOptions = $option.data('options') || null;\n\n var $oldPicker = $excludeRow.find('.exclude-picker');\n var newPickerHtml = self.buildValuePickerHtml('exclude', valueType, searchEntity, methods);\n $oldPicker.replaceWith(newPickerHtml);\n\n if (valueType === 'select' && methodOptions) {\n var $newPicker = $excludeRow.find('.exclude-picker');\n var $select = $newPicker.find('.select-value-input');\n $select.empty();\n $.each(methodOptions, function(key, label) {\n $select.append('');\n });\n }\n\n if (valueType === 'multi_select_tiles' && methodOptions) {\n var $newPicker = $excludeRow.find('.exclude-picker');\n var isExclusive = $option.data('exclusive') === true;\n self.populateTiles($newPicker, methodOptions, isExclusive);\n }\n\n if (valueType === 'multi_numeric_range') {\n var $newPicker = $excludeRow.find('.exclude-picker');\n var step = $option.data('step');\n var min = $option.data('min');\n self.applyRangeInputConstraints($newPicker, step, min);\n }\n\n if (valueType === 'combination_attributes') {\n var $newPicker = $excludeRow.find('.exclude-picker');\n self.loadCombinationAttributeGroups($newPicker);\n }\n\n var selectedMethod = $(this).val();\n self.updateMethodInfoPlaceholder($excludeRow.find('.exclude-header-row'), selectedMethod, blockType);\n\n self.serializeAllBlocks($excludeRow);\n });\n\n // Handle pattern input Enter key - adds pattern as tag\n this.$wrapper.on('keydown', '.pattern-input', function(e) {\n if (e.keyCode === 13) {\n e.preventDefault();\n var $btn = $(this).closest('.draft-tag').find('.btn-add-pattern');\n $btn.click();\n }\n });\n\n // Handle add pattern button click (in draft tag)\n this.$wrapper.on('click', '.draft-tag .btn-add-pattern', function(e) {\n e.preventDefault();\n e.stopPropagation();\n var $draftTag = $(this).closest('.draft-tag');\n var $picker = $draftTag.closest('.value-picker');\n var $row = $draftTag.closest('.group-include, .exclude-row');\n var $input = $draftTag.find('.pattern-input');\n var pattern = $.trim($input.val());\n\n if (pattern) {\n var caseSensitive = $draftTag.attr('data-case-sensitive') === '1';\n self.addPatternTag($picker, pattern, caseSensitive);\n\n $input.val('').focus();\n $draftTag.find('.pattern-match-count').removeClass('count-found count-zero').hide();\n $draftTag.find('.pattern-match-count .count-value').text('');\n\n self.serializeAllBlocks($row);\n }\n });\n\n // Handle pattern input live typing - update match count in draft tag\n this.$wrapper.on('input', '.pattern-input', function() {\n var $input = $(this);\n var $draftTag = $input.closest('.draft-tag');\n if (!$draftTag.length) return;\n\n var pattern = $.trim($input.val());\n\n if ($input.data('countTimeout')) {\n clearTimeout($input.data('countTimeout'));\n }\n\n var $matchCount = $draftTag.find('.pattern-match-count');\n\n if (!pattern) {\n $matchCount.removeClass('count-found count-zero').hide();\n $matchCount.find('.count-value').text('');\n var $group = $draftTag.closest('.selection-group');\n if ($group.length) {\n self.updateGroupTotalCount($group);\n }\n return;\n }\n\n var timeout = setTimeout(function() {\n var caseSensitive = $draftTag.attr('data-case-sensitive') === '1';\n self.updateDraftTagCount($draftTag, pattern, caseSensitive);\n }, 300);\n $input.data('countTimeout', timeout);\n });\n\n // Handle pattern tag remove\n this.$wrapper.on('click', '.pattern-tag .btn-remove-pattern', function(e) {\n e.preventDefault();\n e.stopPropagation();\n var $row = $(this).closest('.group-include, .exclude-row');\n $(this).closest('.pattern-tag').remove();\n self.serializeAllBlocks($row);\n });\n\n // Handle pattern tag case-sensitivity toggle\n this.$wrapper.on('click', '.pattern-tag .btn-toggle-case', function(e) {\n e.preventDefault();\n e.stopPropagation();\n var $tag = $(this).closest('.pattern-tag');\n var $btn = $(this);\n var trans = self.config.trans || {};\n var isDraftTag = $tag.hasClass('draft-tag');\n\n var isCaseSensitive = $tag.data('caseSensitive') === 1 || $tag.data('caseSensitive') === '1' || $tag.attr('data-case-sensitive') === '1';\n var newCaseSensitive = !isCaseSensitive;\n\n $tag.data('caseSensitive', newCaseSensitive ? 1 : 0);\n $tag.attr('data-case-sensitive', newCaseSensitive ? '1' : '0');\n $tag.toggleClass('case-sensitive', newCaseSensitive);\n\n $btn.find('.case-icon').text(newCaseSensitive ? 'Aa' : 'aa');\n var caseTitle = newCaseSensitive\n ? (trans.case_sensitive || 'Case sensitive - click to toggle')\n : (trans.case_insensitive || 'Case insensitive - click to toggle');\n $btn.attr('title', caseTitle);\n\n if (isDraftTag) {\n var pattern = $.trim($tag.find('.pattern-input').val());\n if (pattern) {\n self.updateDraftTagCount($tag, pattern, newCaseSensitive);\n }\n } else {\n var $row = $tag.closest('.group-include, .exclude-row');\n self.serializeAllBlocks($row);\n }\n });\n\n // Handle pattern match count click - show preview modal\n this.$wrapper.on('click', '.pattern-match-count', function(e) {\n e.preventDefault();\n e.stopPropagation();\n\n var $matchCount = $(this);\n var count = $matchCount.data('count');\n var pattern = $matchCount.data('pattern');\n var entityType = $matchCount.data('entityType');\n var caseSensitive = $matchCount.data('caseSensitive');\n\n if (!count || count <= 0 || !pattern) {\n return;\n }\n\n self.showPatternPreviewModal(pattern, entityType, caseSensitive, count);\n });\n\n // Handle pattern tag edit (click on tag text)\n this.$wrapper.on('click', '.pattern-tag .pattern-tag-text', function(e) {\n e.preventDefault();\n var $tag = $(this).closest('.pattern-tag');\n if ($tag.hasClass('editing')) return;\n\n var currentPattern = $tag.data('pattern');\n\n var $editInput = $('').val(currentPattern);\n var $saveBtn = $('');\n var $cancelBtn = $('');\n var $editActions = $('').append($saveBtn, $cancelBtn);\n\n $tag.addClass('editing').find('.pattern-tag-text').hide();\n $tag.find('.btn-remove-pattern').hide();\n $tag.prepend($editActions).prepend($editInput);\n $editInput.focus().select();\n\n $editInput.on('keydown', function(ev) {\n if (ev.keyCode === 13) {\n ev.preventDefault();\n $saveBtn.click();\n } else if (ev.keyCode === 27) {\n ev.preventDefault();\n $cancelBtn.click();\n }\n });\n });\n\n // Pattern edit - Save button\n this.$wrapper.on('click', '.pattern-tag .btn-pattern-save', function(e) {\n e.preventDefault();\n e.stopPropagation();\n var $tag = $(this).closest('.pattern-tag');\n var $editInput = $tag.find('.pattern-tag-edit');\n var currentPattern = $tag.data('pattern');\n var newPattern = $.trim($editInput.val());\n\n if (newPattern && newPattern !== currentPattern) {\n $tag.data('pattern', newPattern);\n $tag.find('.pattern-tag-text').text(newPattern);\n }\n $editInput.remove();\n $tag.find('.pattern-edit-actions').remove();\n $tag.removeClass('editing').find('.pattern-tag-text, .btn-remove-pattern').show();\n var $row = $tag.closest('.group-include, .exclude-row');\n self.serializeAllBlocks($row);\n });\n\n // Pattern edit - Cancel button\n this.$wrapper.on('click', '.pattern-tag .btn-pattern-cancel', function(e) {\n e.preventDefault();\n e.stopPropagation();\n var $tag = $(this).closest('.pattern-tag');\n $tag.find('.pattern-tag-edit').remove();\n $tag.find('.pattern-edit-actions').remove();\n $tag.removeClass('editing').find('.pattern-tag-text, .btn-remove-pattern').show();\n });\n\n // Handle mpr-info-wrapper tooltip with fixed positioning\n this.$wrapper.on('mouseenter', '.mpr-info-wrapper[data-details]', function() {\n var $wrapper = $(this);\n if ($wrapper.data('tooltip-active')) return;\n\n var content = $wrapper.attr('data-details');\n var tooltipClass = $wrapper.attr('data-tooltip-class') || '';\n var $tooltip = $('
', { class: 'mpr-tooltip mpr-tooltip-fixed ' + tooltipClass, html: content });\n\n $('body').append($tooltip);\n $wrapper.data('tooltip-active', true);\n\n var offset = $wrapper.offset();\n var triggerWidth = $wrapper.outerWidth();\n var tooltipWidth = $tooltip.outerWidth();\n var tooltipHeight = $tooltip.outerHeight();\n\n var left = offset.left + (triggerWidth / 2) - (tooltipWidth / 2);\n var top = offset.top - tooltipHeight - 10;\n\n if (left < 10) left = 10;\n if (left + tooltipWidth > $(window).width() - 10) {\n left = $(window).width() - tooltipWidth - 10;\n }\n\n $tooltip.css({\n position: 'fixed',\n left: left + 'px',\n top: (top - $(window).scrollTop()) + 'px'\n });\n\n $wrapper.data('tooltip-el', $tooltip);\n });\n\n this.$wrapper.on('mouseleave', '.mpr-info-wrapper[data-details]', function() {\n var $wrapper = $(this);\n var $tooltip = $wrapper.data('tooltip-el');\n if ($tooltip) {\n $tooltip.remove();\n }\n $wrapper.data('tooltip-active', false);\n $wrapper.data('tooltip-el', null);\n });\n\n // Handle numeric range input changes\n this.$wrapper.on('change', '.range-min-input, .range-max-input', function() {\n var $row = $(this).closest('.group-include, .exclude-row');\n self.serializeAllBlocks($row);\n });\n\n // Handle date range input changes\n this.$wrapper.on('change', '.date-from-input, .date-to-input', function() {\n var $row = $(this).closest('.group-include, .exclude-row');\n self.serializeAllBlocks($row);\n });\n\n // Handle select value changes\n this.$wrapper.on('change', '.select-value-input', function() {\n var $row = $(this).closest('.group-include, .exclude-row');\n self.serializeAllBlocks($row);\n });\n\n // Handle multi-range add button click\n this.$wrapper.on('click', '.btn-add-range', function(e) {\n e.preventDefault();\n var $picker = $(this).closest('.value-picker');\n var $row = $(this).closest('.group-include, .exclude-row');\n var $container = $picker.find('.multi-range-container');\n var $chipsContainer = $container.find('.multi-range-chips');\n var $minInput = $container.find('.range-min-input');\n var $maxInput = $container.find('.range-max-input');\n\n var minVal = $minInput.val().trim();\n var maxVal = $maxInput.val().trim();\n\n if (minVal === '' && maxVal === '') {\n return;\n }\n\n var step = parseFloat($minInput.attr('step')) || 0.01;\n var minAllowed = $minInput.attr('min');\n var hasMinConstraint = typeof minAllowed !== 'undefined' && minAllowed !== '';\n minAllowed = hasMinConstraint ? parseFloat(minAllowed) : null;\n\n var minNum = minVal !== '' ? parseFloat(minVal) : null;\n var maxNum = maxVal !== '' ? parseFloat(maxVal) : null;\n\n if (hasMinConstraint) {\n if (minNum !== null && minNum < minAllowed) {\n self.showRangeInputError($minInput, self.config.trans.min_value_error || 'Minimum value is ' + minAllowed);\n return;\n }\n if (maxNum !== null && maxNum < minAllowed) {\n self.showRangeInputError($maxInput, self.config.trans.min_value_error || 'Minimum value is ' + minAllowed);\n return;\n }\n }\n\n if (minNum !== null && maxNum !== null && minNum > maxNum) {\n self.showRangeInputError($minInput, self.config.trans.min_greater_than_max || 'Min cannot be greater than max');\n return;\n }\n\n var decimals = step < 1 ? String(step).split('.')[1].length : 0;\n if (minNum !== null) {\n if (step >= 1) {\n minNum = Math.round(minNum);\n } else {\n minNum = parseFloat(minNum.toFixed(decimals));\n }\n minVal = String(minNum);\n }\n if (maxNum !== null) {\n if (step >= 1) {\n maxNum = Math.round(maxNum);\n } else {\n maxNum = parseFloat(maxNum.toFixed(decimals));\n }\n maxVal = String(maxNum);\n }\n\n var chipText = '';\n if (minVal !== '' && maxVal !== '') {\n chipText = minVal + ' - ' + maxVal;\n } else if (minVal !== '') {\n chipText = '≥ ' + minVal;\n } else {\n chipText = '≤ ' + maxVal;\n }\n\n var $chip = $('', {\n class: 'range-chip',\n 'data-min': minVal,\n 'data-max': maxVal\n });\n $chip.append($('', { class: 'range-chip-text', text: chipText }));\n $chip.append($('';\n html += '';\n\n // Sort controls - options with data-entities attribute for entity-specific filtering\n html += '
';\n html += '';\n html += '';\n\n // View mode selector - Tree option always present, shown for categories\n html += '';\n html += '
'; // End sort-controls\n\n // Refine search\n html += '
';\n html += '';\n html += '';\n html += '';\n html += '
';\n\n // Filter toggle button\n html += '';\n\n // History button\n html += '';\n\n html += '
'; // End dropdown-actions\n html += '
'; // End dropdown-header\n\n // Filter panel\n html += '
';\n\n // Quick filters row (for products)\n html += '
';\n html += '';\n html += '';\n\n // Price range\n html += '
';\n html += '' + (trans.price || 'Price') + ':';\n html += '';\n html += '-';\n html += '';\n html += '
';\n\n html += '';\n html += '
';\n\n // Attribute/Feature filter toggles for products\n html += '
';\n html += ' ' + (trans.attributes || 'Attributes') + ':';\n html += '
';\n html += '
';\n html += '
';\n html += '
';\n html += '
';\n\n html += '
';\n html += ' ' + (trans.features || 'Features') + ':';\n html += '
';\n html += '
';\n html += '
';\n html += '
';\n html += '
';\n\n // Entity-specific filters: Categories\n html += '
';\n html += '
';\n html += '
';\n html += ' ' + (trans.product_count || 'Products') + ':';\n html += '';\n html += '-';\n html += '';\n html += '
';\n html += '
';\n html += ' ' + (trans.total_sales || 'Sales') + ':';\n html += '';\n html += '-';\n html += '';\n html += '
';\n html += '
';\n html += ' ' + (trans.turnover || 'Revenue') + ':';\n html += '';\n html += '-';\n html += '';\n html += '
';\n html += '';\n html += '
';\n html += '
';\n html += '
';\n html += ' ' + (trans.depth || 'Depth') + ':';\n html += '';\n html += '
';\n html += '';\n html += '';\n html += '';\n html += '';\n html += '
';\n html += '
';\n\n // Entity-specific filters: Manufacturers\n html += '
';\n html += '
';\n html += '
';\n html += ' ' + (trans.product_count || 'Products') + ':';\n html += '';\n html += '-';\n html += '';\n html += '
';\n html += '
';\n html += ' ' + (trans.total_sales || 'Sales') + ':';\n html += '';\n html += '-';\n html += '';\n html += '
';\n html += '
';\n html += ' ' + (trans.turnover || 'Revenue') + ':';\n html += '';\n html += '-';\n html += '';\n html += '
';\n html += '';\n html += '
';\n html += '
';\n html += '
';\n html += ' ' + (trans.date_added || 'Added') + ':';\n html += '';\n html += '-';\n html += '';\n html += '
';\n html += '
';\n html += ' ' + (trans.last_product || 'Last product') + ':';\n html += '';\n html += '-';\n html += '';\n html += '
';\n html += '';\n html += '
';\n html += '
';\n\n // Entity-specific filters: Suppliers\n html += '
';\n html += '
';\n html += '
';\n html += ' ' + (trans.product_count || 'Products') + ':';\n html += '';\n html += '-';\n html += '';\n html += '
';\n html += '
';\n html += ' ' + (trans.total_sales || 'Sales') + ':';\n html += '';\n html += '-';\n html += '';\n html += '
';\n html += '
';\n html += ' ' + (trans.turnover || 'Revenue') + ':';\n html += '';\n html += '-';\n html += '';\n html += '
';\n html += '';\n html += '
';\n html += '
';\n html += '
';\n html += ' ' + (trans.date_added || 'Added') + ':';\n html += '';\n html += '-';\n html += '';\n html += '
';\n html += '
';\n html += ' ' + (trans.last_product || 'Last product') + ':';\n html += '';\n html += '-';\n html += '';\n html += '
';\n html += '';\n html += '
';\n html += '
';\n\n // Entity-specific filters: Attributes\n html += '
';\n html += '
';\n html += '
';\n html += ' ' + (trans.product_count || 'Products') + ':';\n html += '';\n html += '-';\n html += '';\n html += '
';\n html += '
';\n html += ' ' + (trans.total_sales || 'Sales') + ':';\n html += '';\n html += '-';\n html += '';\n html += '
';\n html += '
';\n html += ' ' + (trans.turnover || 'Revenue') + ':';\n html += '';\n html += '-';\n html += '';\n html += '
';\n html += '
';\n html += '
';\n html += '
';\n html += ' ' + (trans.attribute_group || 'Group') + ':';\n html += '';\n html += '
';\n html += '';\n html += '';\n html += '
';\n html += '
';\n\n // Entity-specific filters: Features\n html += '
';\n html += '
';\n html += '
';\n html += ' ' + (trans.product_count || 'Products') + ':';\n html += '';\n html += '-';\n html += '';\n html += '
';\n html += '
';\n html += ' ' + (trans.total_sales || 'Sales') + ':';\n html += '';\n html += '-';\n html += '';\n html += '
';\n html += '
';\n html += ' ' + (trans.turnover || 'Revenue') + ':';\n html += '';\n html += '-';\n html += '';\n html += '
';\n html += '
';\n html += '
';\n html += '
';\n html += ' ' + (trans.feature_group || 'Group') + ':';\n html += '';\n html += '
';\n html += '';\n html += '';\n html += '
';\n html += '
';\n\n // Entity-specific filters: CMS Pages\n html += '
';\n html += '';\n html += '';\n html += '';\n html += '
';\n\n // Entity-specific filters: CMS Categories\n html += '
';\n html += '';\n html += '';\n html += '
';\n\n html += '
'; // End filter-panel\n\n // Results header for list view (product columns)\n html += '
';\n html += '';\n html += '' + (trans.product || 'Product') + '';\n html += '' + (trans.price || 'Price') + '';\n html += '' + (trans.sale || 'Sale') + '';\n html += '' + (trans.stock || 'Stock') + '';\n html += '' + (trans.sold || 'Sold') + '';\n html += '
';\n\n // Results\n html += '
';\n\n // Footer - unified load more + actions\n html += '
';\n\n // Left side: load more\n html += '';\n\n // Right side: action buttons\n html += '';\n\n html += '
';\n\n html += '';\n\n this.$dropdown = $(html);\n $('body').append(this.$dropdown);\n },\n\n hideDropdown: function() {\n if (this.$dropdown) {\n this.$dropdown.removeClass('show');\n }\n this.activeGroup = null;\n },\n\n positionDropdown: function($input) {\n if (!this.$dropdown) return;\n\n var $picker = $input.closest('.value-picker');\n var $searchBox = $input.closest('.entity-search-box');\n\n // Get absolute positions (dropdown is appended to body)\n var searchBoxOffset = $searchBox.offset();\n var searchBoxHeight = $searchBox.outerHeight();\n var pickerOffset = $picker.offset();\n var pickerWidth = $picker.outerWidth();\n\n // Calculate position relative to document\n var dropdownTop = searchBoxOffset.top + searchBoxHeight + 4;\n var dropdownLeft = pickerOffset.left;\n var dropdownWidth = Math.max(pickerWidth, 400);\n\n // Ensure dropdown doesn't overflow the viewport horizontally\n var viewportWidth = $(window).width();\n if (dropdownLeft + dropdownWidth > viewportWidth - 10) {\n dropdownWidth = viewportWidth - dropdownLeft - 10;\n }\n\n // Ensure dropdown doesn't overflow viewport vertically\n var viewportHeight = $(window).height();\n var scrollTop = $(window).scrollTop();\n var maxHeight = viewportHeight - (dropdownTop - scrollTop) - 20;\n maxHeight = Math.max(maxHeight, 400);\n\n this.$dropdown.css({\n position: 'absolute',\n top: dropdownTop,\n left: dropdownLeft,\n width: dropdownWidth,\n maxHeight: maxHeight,\n zIndex: 10000\n });\n\n // Show the dropdown\n this.$dropdown.addClass('show');\n }\n };\n\n})(jQuery);\n","/**\n * Entity Selector - Search Module\n * AJAX search, results rendering, category tree, filters, search history\n * @partial _search.js\n */\n\n(function($) {\n 'use strict';\n\n window._EntitySelectorMixins = window._EntitySelectorMixins || {};\n\n window._EntitySelectorMixins.search = {\n\n // Category tree cache\n categoryTreeCache: null,\n\n /**\n * Perform AJAX search for entities\n */\n performSearch: function(appendMode) {\n var self = this;\n\n if (!this.activeGroup) return;\n\n this.isLoading = true;\n\n var searchEntity = this.activeGroup.searchEntity;\n\n // Build request data with sort and filter params\n var limit = appendMode && this.loadMoreCount ? this.loadMoreCount : 20;\n var requestData = {\n ajax: 1,\n action: 'searchTargetEntities',\n trait: 'EntitySelector',\n entity_type: searchEntity,\n q: this.searchQuery,\n limit: limit,\n offset: appendMode ? this.searchOffset : 0,\n sort_by: this.currentSort ? this.currentSort.field : 'name',\n sort_dir: this.currentSort ? this.currentSort.dir : 'ASC'\n };\n\n // Add refine query if present\n if (this.refineQuery) {\n requestData.refine = this.refineQuery;\n if (this.refineNegate) {\n requestData.refine_negate = 1;\n }\n }\n\n // Add product-specific filters\n if (searchEntity === 'products' && this.filters) {\n if (this.filters.inStock) {\n requestData.filter_in_stock = 1;\n }\n if (this.filters.discounted) {\n requestData.filter_discounted = 1;\n }\n if (this.filters.priceMin !== null && this.filters.priceMin !== '') {\n requestData.filter_price_min = this.filters.priceMin;\n }\n if (this.filters.priceMax !== null && this.filters.priceMax !== '') {\n requestData.filter_price_max = this.filters.priceMax;\n }\n if (this.filters.attributes && this.filters.attributes.length > 0) {\n requestData.filter_attributes = JSON.stringify(this.filters.attributes);\n }\n if (this.filters.features && this.filters.features.length > 0) {\n requestData.filter_features = JSON.stringify(this.filters.features);\n }\n }\n\n // Add entity-specific filters for non-product entities\n if (searchEntity !== 'products' && this.filters) {\n // Product count range (categories, manufacturers, suppliers, attributes, features)\n if (this.filters.productCountMin !== null && this.filters.productCountMin !== '') {\n requestData.filter_product_count_min = this.filters.productCountMin;\n }\n if (this.filters.productCountMax !== null && this.filters.productCountMax !== '') {\n requestData.filter_product_count_max = this.filters.productCountMax;\n }\n\n // Category-specific\n if (searchEntity === 'categories') {\n if (this.filters.depth) {\n requestData.filter_depth = this.filters.depth;\n }\n if (this.filters.hasProducts) {\n requestData.filter_has_products = 1;\n }\n if (this.filters.hasDescription) {\n requestData.filter_has_description = 1;\n }\n if (this.filters.hasImage) {\n requestData.filter_has_image = 1;\n }\n if (this.filters.salesMin !== null && this.filters.salesMin !== '') {\n requestData.filter_sales_min = this.filters.salesMin;\n }\n if (this.filters.salesMax !== null && this.filters.salesMax !== '') {\n requestData.filter_sales_max = this.filters.salesMax;\n }\n if (this.filters.turnoverMin !== null && this.filters.turnoverMin !== '') {\n requestData.filter_turnover_min = this.filters.turnoverMin;\n }\n if (this.filters.turnoverMax !== null && this.filters.turnoverMax !== '') {\n requestData.filter_turnover_max = this.filters.turnoverMax;\n }\n if (this.filters.activeOnly) {\n requestData.filter_active = 1;\n }\n }\n\n // Manufacturer-specific\n if (searchEntity === 'manufacturers') {\n if (this.filters.salesMin !== null && this.filters.salesMin !== '') {\n requestData.filter_sales_min = this.filters.salesMin;\n }\n if (this.filters.salesMax !== null && this.filters.salesMax !== '') {\n requestData.filter_sales_max = this.filters.salesMax;\n }\n if (this.filters.turnoverMin !== null && this.filters.turnoverMin !== '') {\n requestData.filter_turnover_min = this.filters.turnoverMin;\n }\n if (this.filters.turnoverMax !== null && this.filters.turnoverMax !== '') {\n requestData.filter_turnover_max = this.filters.turnoverMax;\n }\n if (this.filters.dateAddFrom) {\n requestData.filter_date_add_from = this.filters.dateAddFrom;\n }\n if (this.filters.dateAddTo) {\n requestData.filter_date_add_to = this.filters.dateAddTo;\n }\n if (this.filters.lastProductFrom) {\n requestData.filter_last_product_from = this.filters.lastProductFrom;\n }\n if (this.filters.lastProductTo) {\n requestData.filter_last_product_to = this.filters.lastProductTo;\n }\n if (this.filters.activeOnly) {\n requestData.filter_active = 1;\n }\n }\n\n // Supplier-specific\n if (searchEntity === 'suppliers') {\n if (this.filters.salesMin !== null && this.filters.salesMin !== '') {\n requestData.filter_sales_min = this.filters.salesMin;\n }\n if (this.filters.salesMax !== null && this.filters.salesMax !== '') {\n requestData.filter_sales_max = this.filters.salesMax;\n }\n if (this.filters.turnoverMin !== null && this.filters.turnoverMin !== '') {\n requestData.filter_turnover_min = this.filters.turnoverMin;\n }\n if (this.filters.turnoverMax !== null && this.filters.turnoverMax !== '') {\n requestData.filter_turnover_max = this.filters.turnoverMax;\n }\n if (this.filters.dateAddFrom) {\n requestData.filter_date_add_from = this.filters.dateAddFrom;\n }\n if (this.filters.dateAddTo) {\n requestData.filter_date_add_to = this.filters.dateAddTo;\n }\n if (this.filters.lastProductFrom) {\n requestData.filter_last_product_from = this.filters.lastProductFrom;\n }\n if (this.filters.lastProductTo) {\n requestData.filter_last_product_to = this.filters.lastProductTo;\n }\n if (this.filters.activeOnly) {\n requestData.filter_active = 1;\n }\n }\n\n // Attribute-specific\n if (searchEntity === 'attributes') {\n if (this.filters.salesMin !== null && this.filters.salesMin !== '') {\n requestData.filter_sales_min = this.filters.salesMin;\n }\n if (this.filters.salesMax !== null && this.filters.salesMax !== '') {\n requestData.filter_sales_max = this.filters.salesMax;\n }\n if (this.filters.turnoverMin !== null && this.filters.turnoverMin !== '') {\n requestData.filter_turnover_min = this.filters.turnoverMin;\n }\n if (this.filters.turnoverMax !== null && this.filters.turnoverMax !== '') {\n requestData.filter_turnover_max = this.filters.turnoverMax;\n }\n if (this.filters.attributeGroup) {\n requestData.filter_attribute_group = this.filters.attributeGroup;\n }\n if (this.filters.isColor) {\n requestData.filter_is_color = 1;\n }\n }\n\n // Feature-specific\n if (searchEntity === 'features') {\n if (this.filters.salesMin !== null && this.filters.salesMin !== '') {\n requestData.filter_sales_min = this.filters.salesMin;\n }\n if (this.filters.salesMax !== null && this.filters.salesMax !== '') {\n requestData.filter_sales_max = this.filters.salesMax;\n }\n if (this.filters.turnoverMin !== null && this.filters.turnoverMin !== '') {\n requestData.filter_turnover_min = this.filters.turnoverMin;\n }\n if (this.filters.turnoverMax !== null && this.filters.turnoverMax !== '') {\n requestData.filter_turnover_max = this.filters.turnoverMax;\n }\n if (this.filters.featureGroup) {\n requestData.filter_feature_group = this.filters.featureGroup;\n }\n if (this.filters.isCustom) {\n requestData.filter_is_custom = 1;\n }\n }\n\n // CMS-specific\n if (searchEntity === 'cms') {\n if (this.filters.activeOnly) {\n requestData.filter_active = 1;\n }\n if (this.filters.indexable) {\n requestData.filter_indexable = 1;\n }\n }\n\n // CMS Categories-specific\n if (searchEntity === 'cms_categories') {\n if (this.filters.activeOnly) {\n requestData.filter_active = 1;\n }\n }\n }\n\n $.ajax({\n url: this.config.ajaxUrl,\n type: 'POST',\n dataType: 'json',\n data: requestData,\n success: function(response) {\n self.isLoading = false;\n\n if (!response.success) return;\n\n // Save to search history if query is not empty and has results\n if (self.searchQuery && self.searchQuery.length >= 2 && response.total > 0) {\n self.addToSearchHistory(searchEntity, self.searchQuery);\n }\n\n if (appendMode) {\n self.searchResults = self.searchResults.concat(response.results || []);\n } else {\n self.searchResults = response.results || [];\n }\n self.searchTotal = response.total || 0;\n self.searchOffset = appendMode ? self.searchOffset + (response.results || []).length : (response.results || []).length;\n\n self.renderSearchResults(appendMode);\n self.$dropdown.addClass('show');\n },\n error: function() {\n self.isLoading = false;\n }\n });\n },\n\n /**\n * Render search results in the dropdown\n */\n renderSearchResults: function(appendMode) {\n var self = this;\n var trans = this.config.trans || {};\n var $container = this.$dropdown.find('.dropdown-results');\n\n // Get selected IDs from current picker (to mark as selected)\n // and hidden IDs from sibling exclude pickers with same entity type (to hide completely)\n var selectedIds = [];\n var hiddenIds = [];\n if (this.activeGroup) {\n var $block = this.$wrapper.find('.target-block[data-block-type=\"' + this.activeGroup.blockType + '\"]');\n var $group = $block.find('.selection-group[data-group-index=\"' + this.activeGroup.groupIndex + '\"]');\n var currentSearchEntity = this.activeGroup.searchEntity;\n var currentExcludeIndex = this.activeGroup.excludeIndex;\n\n if (this.activeGroup.section === 'include') {\n // For include section, just get current picker's selections\n var $picker = $group.find('.include-picker');\n $picker.find('.entity-chip').each(function() {\n selectedIds.push(String($(this).data('id')));\n });\n } else {\n // For exclude section, get current picker's selections AND\n // collect IDs from sibling exclude rows with same entity type to hide\n var $currentExcludeRow = $group.find('.exclude-row[data-exclude-index=\"' + currentExcludeIndex + '\"]');\n var $currentPicker = $currentExcludeRow.find('.exclude-picker');\n\n // Get selected IDs from current exclude row\n $currentPicker.find('.entity-chip').each(function() {\n selectedIds.push(String($(this).data('id')));\n });\n\n // Get hidden IDs from OTHER exclude rows with the same entity type\n $group.find('.exclude-row').each(function() {\n var $row = $(this);\n var rowIndex = parseInt($row.data('excludeIndex'), 10);\n\n // Skip current exclude row\n if (rowIndex === currentExcludeIndex) return;\n\n var $picker = $row.find('.exclude-picker');\n var rowEntityType = $picker.attr('data-search-entity') || self.activeGroup.blockType;\n\n // Only collect if same entity type\n if (rowEntityType === currentSearchEntity) {\n $picker.find('.entity-chip').each(function() {\n hiddenIds.push(String($(this).data('id')));\n });\n }\n });\n }\n }\n\n // Check if this is a product search\n var isProductSearch = this.activeGroup && this.activeGroup.searchEntity === 'products';\n var isListView = this.viewMode === 'list';\n\n // Show/hide results header for products in list view\n this.$dropdown.find('.results-header').toggle(isProductSearch && isListView);\n\n // Build HTML - filter out items that are hidden (selected in sibling exclude rows)\n var visibleResults = this.searchResults.filter(function(item) {\n return hiddenIds.indexOf(String(item.id)) === -1;\n });\n\n // Update count (show visible count and total, noting hidden items if any)\n var hiddenCount = this.searchResults.length - visibleResults.length;\n var countText = visibleResults.length + ' / ' + this.searchTotal + ' results';\n if (hiddenCount > 0) {\n countText += ' (' + hiddenCount + ' hidden)';\n }\n this.$dropdown.find('.results-count').text(countText);\n\n var html = '';\n if (visibleResults.length === 0 && !appendMode) {\n html = '
' + (trans.no_results || 'No results found') + '
';\n } else {\n visibleResults.forEach(function(item) {\n var isSelected = selectedIds.indexOf(String(item.id)) !== -1;\n var itemClass = 'dropdown-item' + (isSelected ? ' selected' : '');\n if (item.type === 'product') itemClass += ' result-item-product';\n\n html += '
';\n } else {\n // Entity-specific icons\n var iconClass = 'icon-cube'; // default\n var searchEntity = self.activeGroup ? self.activeGroup.searchEntity : null;\n if (searchEntity === 'categories') iconClass = 'icon-folder';\n else if (searchEntity === 'manufacturers') iconClass = 'icon-building';\n else if (searchEntity === 'suppliers') iconClass = 'icon-truck';\n else if (searchEntity === 'attributes') iconClass = 'icon-paint-brush';\n else if (searchEntity === 'features') iconClass = 'icon-list-ul';\n else if (searchEntity === 'cms') iconClass = 'icon-file-text-o';\n else if (searchEntity === 'cms_categories') iconClass = 'icon-folder-o';\n html += '
';\n }\n\n html += '
';\n html += '
' + self.escapeHtml(item.name) + '
';\n if (item.subtitle) {\n // Split multi-line subtitles into separate divs for styling\n var subtitleLines = item.subtitle.split('\\n');\n html += '
';\n subtitleLines.forEach(function(line, idx) {\n var lineClass = idx === 0 ? 'subtitle-line subtitle-line-primary' : 'subtitle-line subtitle-line-secondary';\n html += '
' + self.escapeHtml(line) + '
';\n });\n html += '
';\n }\n html += '
';\n\n // Add product-specific columns (price, sale price, stock, sold)\n if (item.type === 'product') {\n if (isListView) {\n // List view: full columns\n // Regular price\n html += '
';\n html += '' + (item.regular_price_formatted || item.price_formatted || '') + '';\n html += '
';\n\n // Sale price (only if discounted)\n if (item.has_discount) {\n html += '
';\n html += '' + (item.price_formatted || '') + '';\n html += '
';\n } else {\n html += '
';\n }\n\n // Stock column\n var stockClass = item.stock_status === 'out_of_stock' ? 'stock-out' :\n (item.stock_status === 'low_stock' ? 'stock-low' : 'stock-ok');\n html += '
';\n html += '' + (item.stock_qty !== undefined ? item.stock_qty : '') + '';\n html += '
';\n\n // Sales column\n html += '
';\n html += '' + (item.sales_qty !== undefined ? item.sales_qty : '0') + '';\n html += '
';\n } else {\n // Grid view: compact info line\n var gridStockClass = item.stock_status === 'out_of_stock' ? 'stock-out' :\n (item.stock_status === 'low_stock' ? 'stock-low' : '');\n html += '
';\n html += '' + (item.price_formatted || '') + '';\n if (item.stock_qty !== undefined) {\n html += '' + item.stock_qty + ' qty';\n }\n if (item.has_discount) {\n html += '-' + (item.discount_percent || '') + '%';\n }\n html += '
';\n }\n }\n\n html += '';\n });\n }\n\n if (appendMode) {\n $container.append(html);\n } else {\n $container.html(html);\n }\n\n // Show/hide load more controls and update remaining count\n var hasMore = this.searchResults.length < this.searchTotal;\n var $loadMoreControls = this.$dropdown.find('.load-more-controls');\n $loadMoreControls.toggle(hasMore);\n\n if (hasMore) {\n var remaining = this.searchTotal - this.searchResults.length;\n $loadMoreControls.find('.remaining-count').text(remaining);\n\n // Update \"All\" option in dropdown\n var $select = $loadMoreControls.find('.load-more-select');\n var $allOption = $select.find('option[data-all=\"true\"]');\n if ($allOption.length) {\n $allOption.val(remaining).text((trans.all || 'All') + ' (' + remaining + ')');\n } else {\n $select.find('option:last').after('');\n }\n }\n\n // Ensure dropdown-actions are visible and history button is deactivated\n this.$dropdown.find('.dropdown-actions').show();\n this.$dropdown.find('.btn-show-history').removeClass('active');\n\n // Disable history button if no search history for current entity type\n var entityType = this.activeGroup ? this.activeGroup.searchEntity : null;\n var hasHistory = entityType && this.getSearchHistory(entityType).length > 0;\n this.$dropdown.find('.btn-show-history').prop('disabled', !hasHistory);\n },\n\n // NOTE: Tree methods (loadCategoryTree, renderCategoryTree, filterCategoryTree,\n // findTreeDescendants, findTreeAncestors, updateSelectChildrenButtons) are\n // defined in _tree.js which is merged later and takes precedence.\n\n // =========================================================================\n // Search History\n // =========================================================================\n\n loadSearchHistory: function() {\n try {\n var stored = localStorage.getItem(this.searchHistoryKey);\n this.searchHistory = stored ? JSON.parse(stored) : {};\n } catch (e) {\n this.searchHistory = {};\n }\n },\n\n saveSearchHistory: function() {\n try {\n localStorage.setItem(this.searchHistoryKey, JSON.stringify(this.searchHistory));\n } catch (e) {\n // localStorage might be full or unavailable\n }\n },\n\n addToSearchHistory: function(entityType, query) {\n if (!query || query.length < 2) return;\n\n if (!this.searchHistory[entityType]) {\n this.searchHistory[entityType] = [];\n }\n\n var history = this.searchHistory[entityType];\n\n // Remove if already exists (will re-add at top)\n var existingIndex = history.indexOf(query);\n if (existingIndex !== -1) {\n history.splice(existingIndex, 1);\n }\n\n // Add at beginning\n history.unshift(query);\n\n // Trim to max\n if (history.length > this.searchHistoryMax) {\n history = history.slice(0, this.searchHistoryMax);\n }\n\n this.searchHistory[entityType] = history;\n this.saveSearchHistory();\n },\n\n removeFromSearchHistory: function(entityType, query) {\n if (!this.searchHistory[entityType]) return;\n\n var index = this.searchHistory[entityType].indexOf(query);\n if (index !== -1) {\n this.searchHistory[entityType].splice(index, 1);\n this.saveSearchHistory();\n }\n },\n\n getSearchHistory: function(entityType) {\n return this.searchHistory[entityType] || [];\n },\n\n showSearchHistory: function(entityType) {\n var history = this.getSearchHistory(entityType);\n var trans = this.config.trans || {};\n var $container = this.$dropdown.find('.dropdown-results');\n\n // Update header\n this.$dropdown.find('.results-count').text(trans.recent_searches || 'Recent searches');\n\n // Hide filters, actions, and results header for history view\n this.$dropdown.find('.dropdown-actions').hide();\n this.$dropdown.find('.filter-panel').removeClass('show');\n this.$dropdown.find('.btn-toggle-filters').removeClass('active');\n this.$dropdown.find('.results-header').hide();\n\n if (!history.length) {\n // No history - just do a regular search\n this.performSearch();\n return;\n }\n\n // Build history items\n var html = '
';\n for (var i = 0; i < history.length; i++) {\n var query = history[i];\n html += '
';\n html += '';\n html += '' + this.escapeHtml(query) + '';\n html += '';\n html += '
';\n }\n html += '
';\n\n $container.html(html);\n this.$dropdown.addClass('show');\n },\n\n // =========================================================================\n // Filter Methods\n // =========================================================================\n\n refreshSearch: function() {\n // In tree view mode, re-filter the tree instead of doing a flat AJAX search\n if (this.viewMode === 'tree') {\n this.filterCategoryTree(this.searchQuery || '');\n return;\n }\n\n this.searchOffset = 0;\n this.loadMoreCount = 20;\n // Reset load more select to default\n if (this.$dropdown) {\n this.$dropdown.find('.load-more-select').val('20');\n // Remove the dynamic \"All\" option\n this.$dropdown.find('.load-more-select option[data-all=\"true\"]').remove();\n }\n this.performSearch(false);\n },\n\n clearFilters: function() {\n this.refineQuery = '';\n this.refineNegate = false;\n this.filters = {\n inStock: false,\n discounted: false,\n priceMin: null,\n priceMax: null,\n attributes: [],\n features: [],\n // Entity-specific filters\n productCountMin: null,\n productCountMax: null,\n salesMin: null,\n salesMax: null,\n turnoverMin: null,\n turnoverMax: null,\n depth: null,\n hasProducts: false,\n hasDescription: false,\n hasImage: false,\n activeOnly: true,\n attributeGroup: null,\n featureGroup: null,\n dateAddFrom: null,\n dateAddTo: null,\n lastProductFrom: null,\n lastProductTo: null\n };\n\n if (this.$dropdown) {\n var trans = this.config.trans || {};\n this.$dropdown.find('.refine-input').val('').attr('placeholder', trans.refine_short || 'Refine...');\n this.$dropdown.find('.btn-clear-refine').hide();\n this.$dropdown.find('.btn-refine-negate').removeClass('active');\n this.$dropdown.find('.filter-in-stock').prop('checked', false);\n this.$dropdown.find('.filter-discounted').prop('checked', false);\n this.$dropdown.find('.filter-price-min').val('');\n this.$dropdown.find('.filter-price-max').val('');\n this.$dropdown.find('.filter-attr-chip').removeClass('active');\n this.$dropdown.find('.filter-feat-chip').removeClass('active');\n this.$dropdown.find('.filter-group-toggle').removeClass('active has-selection');\n this.$dropdown.find('.filter-row-values').hide();\n\n // Clear entity-specific filter inputs\n this.$dropdown.find('.filter-product-count-min, .filter-product-count-max').val('');\n this.$dropdown.find('.filter-sales-min, .filter-sales-max').val('');\n this.$dropdown.find('.filter-turnover-min, .filter-turnover-max').val('');\n this.$dropdown.find('.filter-date-add-from, .filter-date-add-to').val('');\n this.$dropdown.find('.filter-last-product-from, .filter-last-product-to').val('');\n this.$dropdown.find('.filter-depth-select').val('');\n this.$dropdown.find('.filter-has-products').prop('checked', false);\n this.$dropdown.find('.filter-has-description').prop('checked', false);\n this.$dropdown.find('.filter-has-image').prop('checked', false);\n this.$dropdown.find('.filter-active-only').prop('checked', true);\n this.$dropdown.find('.filter-attribute-group-select, .filter-feature-group-select').val('');\n }\n\n this.refreshSearch();\n },\n\n // Reset filters without triggering a search (used when switching entity types)\n resetFiltersWithoutSearch: function() {\n this.refineQuery = '';\n this.refineNegate = false;\n this.filters = {\n inStock: false,\n discounted: false,\n priceMin: null,\n priceMax: null,\n attributes: [],\n features: [],\n productCountMin: null,\n productCountMax: null,\n salesMin: null,\n salesMax: null,\n turnoverMin: null,\n turnoverMax: null,\n depth: null,\n hasProducts: false,\n hasDescription: false,\n hasImage: false,\n activeOnly: true,\n attributeGroup: null,\n featureGroup: null,\n dateAddFrom: null,\n dateAddTo: null,\n lastProductFrom: null,\n lastProductTo: null\n };\n\n if (this.$dropdown) {\n var trans = this.config.trans || {};\n this.$dropdown.find('.refine-input').val('').attr('placeholder', trans.refine_short || 'Refine...');\n this.$dropdown.find('.btn-clear-refine').hide();\n this.$dropdown.find('.btn-refine-negate').removeClass('active');\n this.$dropdown.find('.filter-in-stock').prop('checked', false);\n this.$dropdown.find('.filter-discounted').prop('checked', false);\n this.$dropdown.find('.filter-price-min').val('');\n this.$dropdown.find('.filter-price-max').val('');\n this.$dropdown.find('.filter-attr-chip').removeClass('active');\n this.$dropdown.find('.filter-feat-chip').removeClass('active');\n this.$dropdown.find('.filter-group-toggle').removeClass('active has-selection');\n this.$dropdown.find('.filter-row-values').hide();\n this.$dropdown.find('.filter-product-count-min, .filter-product-count-max').val('');\n this.$dropdown.find('.filter-sales-min, .filter-sales-max').val('');\n this.$dropdown.find('.filter-turnover-min, .filter-turnover-max').val('');\n this.$dropdown.find('.filter-date-add-from, .filter-date-add-to').val('');\n this.$dropdown.find('.filter-last-product-from, .filter-last-product-to').val('');\n this.$dropdown.find('.filter-depth-select').val('');\n this.$dropdown.find('.filter-has-products').prop('checked', false);\n this.$dropdown.find('.filter-has-description').prop('checked', false);\n this.$dropdown.find('.filter-has-image').prop('checked', false);\n this.$dropdown.find('.filter-active-only').prop('checked', true);\n this.$dropdown.find('.filter-attribute-group-select, .filter-feature-group-select').val('');\n }\n // Note: Does NOT call refreshSearch() - caller handles search/load\n },\n\n updateFilterPanelForEntity: function(entityType) {\n if (!this.$dropdown) {\n return;\n }\n\n var $panel = this.$dropdown.find('.filter-panel');\n\n // Hide all filter rows first\n $panel.find('.filter-row').hide();\n\n // Show/hide tree view option based on entity type\n var $treeOption = this.$dropdown.find('.view-mode-select option.tree-view-option');\n if (entityType === 'categories' || entityType === 'cms_categories') {\n $treeOption.prop('disabled', false).prop('hidden', false);\n // Auto-switch to tree view for categories\n if (this.viewMode !== 'tree') {\n this.viewMode = 'tree';\n this.$dropdown.find('.view-mode-select').val('tree');\n this.$dropdown.removeClass('view-list view-cols-2 view-cols-3 view-cols-4 view-cols-5 view-cols-6 view-cols-7 view-cols-8').addClass('view-tree');\n this.loadCategoryTree();\n } else {\n this.loadCategoryTree();\n }\n } else {\n $treeOption.prop('disabled', true).prop('hidden', true);\n // If currently in tree mode, switch back to list\n if (this.viewMode === 'tree') {\n this.viewMode = 'list';\n this.$dropdown.find('.view-mode-select').val('list');\n this.$dropdown.removeClass('view-tree').addClass('view-list');\n }\n }\n\n // Show entity-specific filter row (prepare visibility, but don't auto-expand panel)\n if (entityType === 'products') {\n // Prepare the correct rows to be visible when panel is shown\n $panel.find('.filter-row-quick').show();\n // Show attribute/feature rows if we have cached data\n if (this.filterableData) {\n if (this.filterableData.attributes && this.filterableData.attributes.length > 0) {\n this.$dropdown.find('.filter-row-attributes').show();\n }\n if (this.filterableData.features && this.filterableData.features.length > 0) {\n this.$dropdown.find('.filter-row-features').show();\n }\n }\n } else if (entityType === 'categories') {\n $panel.find('.filter-row-entity-categories').show();\n } else if (entityType === 'manufacturers') {\n $panel.find('.filter-row-entity-manufacturers').show();\n } else if (entityType === 'suppliers') {\n $panel.find('.filter-row-entity-suppliers').show();\n } else if (entityType === 'attributes') {\n $panel.find('.filter-row-entity-attributes').show();\n this.loadAttributeGroups();\n } else if (entityType === 'features') {\n $panel.find('.filter-row-entity-features').show();\n } else if (entityType === 'cms') {\n $panel.find('.filter-row-entity-cms').show();\n } else if (entityType === 'cms_categories') {\n $panel.find('.filter-row-entity-cms-categories').show();\n }\n },\n\n loadAttributeGroups: function() {\n var self = this;\n var $select = this.$dropdown.find('.filter-attribute-group-select');\n\n // Already loaded?\n if ($select.find('option').length > 1) return;\n\n $.ajax({\n url: this.config.ajaxUrl,\n type: 'POST',\n dataType: 'json',\n data: {\n ajax: 1,\n action: 'getAttributeGroups',\n trait: 'EntitySelector'\n },\n success: function(response) {\n if (response.success && response.groups) {\n $.each(response.groups, function(i, group) {\n $select.append('');\n });\n }\n }\n });\n },\n\n loadFeatureGroups: function() {\n var self = this;\n var $select = this.$dropdown.find('.filter-feature-group-select');\n\n // Already loaded?\n if ($select.find('option').length > 1) return;\n\n $.ajax({\n url: this.config.ajaxUrl,\n type: 'POST',\n dataType: 'json',\n data: {\n ajax: 1,\n action: 'getFeatureGroups',\n trait: 'EntitySelector'\n },\n success: function(response) {\n if (response.success && response.groups) {\n $.each(response.groups, function(i, group) {\n $select.append('');\n });\n }\n }\n });\n }\n };\n\n})(jQuery);\n","/**\n * Entity Selector - Filters Module\n * Filter panel, filter state management\n * @partial _filters.js\n *\n * EXTRACTION SOURCE: assets/js/admin/entity-selector.js\n * Lines: 6605-6758 (filter methods)\n *\n * Contains:\n * - clearFilters() - Reset all filters\n * - resetFiltersWithoutSearch() - Reset without triggering search\n * - updateFilterPanelForEntity() - Show/hide filters based on entity type\n * - loadFilterableData() - Load attributes/features for filter panel\n * - renderFilterDropdowns() - Render attribute/feature group toggles\n * - showFilterGroupValues() - Show values for a filter group\n * - hideFilterGroupValues() - Hide filter values row\n * - updateFilterToggleStates() - Update toggle states based on selections\n */\n\n(function($) {\n 'use strict';\n\n window._EntitySelectorMixins = window._EntitySelectorMixins || {};\n\n window._EntitySelectorMixins.filters = {\n\n clearFilters: function() {\n this.refineQuery = '';\n this.refineNegate = false;\n this.filters = {\n inStock: false,\n discounted: false,\n priceMin: null,\n priceMax: null,\n attributes: [],\n features: [],\n productCountMin: null,\n productCountMax: null,\n salesMin: null,\n salesMax: null,\n turnoverMin: null,\n turnoverMax: null,\n depth: null,\n hasProducts: false,\n hasDescription: false,\n hasImage: false,\n activeOnly: true,\n attributeGroup: null,\n featureGroup: null,\n dateAddFrom: null,\n dateAddTo: null,\n lastProductFrom: null,\n lastProductTo: null\n };\n\n if (this.$dropdown) {\n var trans = this.config.trans || {};\n this.$dropdown.find('.refine-input').val('');\n this.$dropdown.find('.btn-refine-negate').removeClass('active');\n this.$dropdown.find('.filter-in-stock').prop('checked', false);\n this.$dropdown.find('.filter-discounted').prop('checked', false);\n this.$dropdown.find('.filter-price-min, .filter-price-max').val('');\n this.$dropdown.find('.filter-attr-chip, .filter-feat-chip').removeClass('active');\n this.$dropdown.find('.filter-product-count-min, .filter-product-count-max').val('');\n this.$dropdown.find('.filter-sales-min, .filter-sales-max').val('');\n this.$dropdown.find('.filter-depth-select').val('');\n this.$dropdown.find('.filter-has-products').prop('checked', false);\n this.$dropdown.find('.filter-active-only').prop('checked', true);\n }\n\n this.refreshSearch();\n },\n\n resetFiltersWithoutSearch: function() {\n // Same as clearFilters but doesn't trigger search\n // Used when switching entity types\n this.refineQuery = '';\n this.refineNegate = false;\n this.filters = {\n inStock: false,\n discounted: false,\n priceMin: null,\n priceMax: null,\n attributes: [],\n features: [],\n productCountMin: null,\n productCountMax: null,\n salesMin: null,\n salesMax: null,\n turnoverMin: null,\n turnoverMax: null,\n depth: null,\n hasProducts: false,\n hasDescription: false,\n hasImage: false,\n activeOnly: true,\n attributeGroup: null,\n featureGroup: null,\n dateAddFrom: null,\n dateAddTo: null,\n lastProductFrom: null,\n lastProductTo: null\n };\n },\n\n updateFilterPanelForEntity: function(entityType) {\n if (!this.$dropdown) {\n return;\n }\n\n var $panel = this.$dropdown.find('.filter-panel');\n\n // Hide all entity-specific filter rows\n $panel.find('.filter-row').hide();\n\n // Show filters for current entity type\n $panel.find('.filter-row[data-entity=\"' + entityType + '\"]').show();\n $panel.find('.filter-row-entity-' + entityType.replace('_', '-')).show();\n\n // Show/hide tree view option based on entity type\n var isCategory = (entityType === 'categories' || entityType === 'cms_categories');\n this.$dropdown.find('.tree-view-option').toggle(isCategory);\n\n // Default to tree view for categories (only if currently on list mode)\n if (isCategory && this.viewMode === 'list') {\n this.viewMode = 'tree';\n this.$dropdown.find('.view-mode-select').val('tree');\n this.$dropdown.removeClass('view-list view-cols-2 view-cols-3 view-cols-4 view-cols-5 view-cols-6 view-cols-7 view-cols-8').addClass('view-tree');\n } else if (!isCategory && this.viewMode === 'tree') {\n // If switching away from categories while in tree mode, switch to list\n this.viewMode = 'list';\n this.$dropdown.find('.view-mode-select').val('list');\n this.$dropdown.removeClass('view-tree view-cols-2 view-cols-3 view-cols-4 view-cols-5 view-cols-6 view-cols-7 view-cols-8').addClass('view-list');\n }\n\n // Update sort options for entity type\n this.updateSortOptionsForEntity(entityType);\n },\n\n /**\n * Show/hide sort options based on entity type\n * Options with data-entities attribute are only shown for matching entities\n */\n updateSortOptionsForEntity: function(entityType) {\n if (!this.$dropdown) {\n return;\n }\n\n var $select = this.$dropdown.find('.sort-field-select');\n var currentValue = $select.val();\n var hasCurrentOption = false;\n\n $select.find('option').each(function() {\n var $option = $(this);\n var entities = $option.data('entities');\n\n // Options without data-entities are universal (always shown)\n if (!entities) {\n $option.show();\n if ($option.val() === currentValue) {\n hasCurrentOption = true;\n }\n return;\n }\n\n // Check if this entity type is in the allowed list\n var allowedEntities = entities.split(',');\n var isAllowed = allowedEntities.indexOf(entityType) !== -1;\n\n $option.toggle(isAllowed);\n\n if (isAllowed && $option.val() === currentValue) {\n hasCurrentOption = true;\n }\n });\n\n // If current sort field is not available for this entity, reset to 'name'\n if (!hasCurrentOption) {\n $select.val('name');\n this.currentSort.field = 'name';\n }\n },\n\n loadFilterableData: function() {\n var self = this;\n\n if (this.filterableData) {\n this.renderFilterDropdowns();\n return;\n }\n\n $.ajax({\n url: this.config.ajaxUrl,\n type: 'POST',\n data: {\n ajax: 1,\n action: 'getTargetFilterableAttributes',\n trait: 'EntitySelector'\n },\n dataType: 'json',\n success: function(response) {\n if (response.success && response.data) {\n self.filterableData = response.data;\n self.renderFilterDropdowns();\n }\n }\n });\n },\n\n renderFilterDropdowns: function() {\n if (!this.$dropdown || !this.filterableData) return;\n\n var self = this;\n\n // Render attribute group toggle buttons\n var $attrContainer = this.$dropdown.find('.filter-attributes-container');\n $attrContainer.empty();\n\n if (this.filterableData.attributes && this.filterableData.attributes.length > 0) {\n this.filterableData.attributes.forEach(function(group) {\n var html = '';\n $attrContainer.append(html);\n });\n this.$dropdown.find('.filter-row-attributes').show();\n }\n\n // Render feature group toggle buttons\n var $featContainer = this.$dropdown.find('.filter-features-container');\n $featContainer.empty();\n\n if (this.filterableData.features && this.filterableData.features.length > 0) {\n this.filterableData.features.forEach(function(group) {\n var html = '';\n $featContainer.append(html);\n });\n this.$dropdown.find('.filter-row-features').show();\n }\n },\n\n showFilterGroupValues: function(groupId, type) {\n if (!this.filterableData) return;\n\n var self = this;\n var groups = type === 'attribute' ? this.filterableData.attributes : this.filterableData.features;\n var group = groups.find(function(g) { return g.id == groupId; });\n\n if (!group) return;\n\n // Hide all values rows first, then show the correct one\n this.$dropdown.find('.filter-row-values').hide();\n\n // Target the correct values row based on type\n var valuesRowClass = type === 'attribute' ? '.filter-row-attr-values' : '.filter-row-feat-values';\n var $filterRowValues = this.$dropdown.find(valuesRowClass);\n var $valuesContainer = $filterRowValues.find('.filter-values-container');\n $valuesContainer.empty();\n\n // Add group label\n var html = '' + group.name + ':';\n\n // Add chips\n group.values.forEach(function(val) {\n var isActive = type === 'attribute'\n ? self.filters.attributes.indexOf(val.id) !== -1\n : self.filters.features.indexOf(val.id) !== -1;\n var activeClass = isActive ? ' active' : '';\n var chipClass = type === 'attribute' ? 'filter-attr-chip' : 'filter-feat-chip';\n var colorStyle = val.color ? ' style=\"--chip-color: ' + val.color + '\"' : '';\n var colorClass = val.color ? ' has-color' : '';\n\n html += '';\n });\n\n $valuesContainer.html(html);\n\n // Add close button as sibling (outside filter-values-container, inside filter-row-values)\n $filterRowValues.find('.btn-close-values').remove();\n $filterRowValues.append('');\n $filterRowValues.show();\n\n // Scroll into view if needed\n var rowValues = $filterRowValues[0];\n if (rowValues) {\n rowValues.scrollIntoView({ behavior: 'smooth', block: 'nearest' });\n }\n },\n\n hideFilterGroupValues: function() {\n this.$dropdown.find('.filter-row-values').hide();\n this.$dropdown.find('.filter-group-toggle').removeClass('active');\n },\n\n updateFilterToggleStates: function() {\n if (!this.$dropdown || !this.filterableData) return;\n\n var self = this;\n\n // Update attribute group toggles\n if (this.filterableData.attributes) {\n this.filterableData.attributes.forEach(function(group) {\n var $toggle = self.$dropdown.find('.filter-group-toggle[data-group-id=\"' + group.id + '\"][data-type=\"attribute\"]');\n var hasActiveInGroup = group.values.some(function(val) {\n return self.filters.attributes.indexOf(val.id) !== -1;\n });\n $toggle.toggleClass('has-selection', hasActiveInGroup);\n });\n }\n\n // Update feature group toggles\n if (this.filterableData.features) {\n this.filterableData.features.forEach(function(group) {\n var $toggle = self.$dropdown.find('.filter-group-toggle[data-group-id=\"' + group.id + '\"][data-type=\"feature\"]');\n var hasActiveInGroup = group.values.some(function(val) {\n return self.filters.features.indexOf(val.id) !== -1;\n });\n $toggle.toggleClass('has-selection', hasActiveInGroup);\n });\n }\n }\n };\n\n})(jQuery);\n","/**\n * Entity Selector - Chips Module\n * Entity chip rendering, selection management, and pattern tag handling\n * @partial _chips.js\n *\n * EXTRACTION SOURCE: assets/js/admin/entity-selector.js\n *\n * Contains:\n * - addSelection() / addSelectionNoUpdate() - Add entity chip to picker\n * - removeSelection() - Remove chip and update state\n * - updateChipsVisibility() - Show/hide based on count\n * - loadExistingSelections() - Load saved values on init\n * - collectPickerEntities() / loadPickerValues() - Entity loading helpers\n * - Pattern tag methods: addPatternTag, getPatternTags, updateDraftTagCount\n * - Single mode: getCurrentSingleSelection, showReplaceConfirmation\n * - Count updates: updateConditionCount, updateGroupCounts, updateGroupTotalCount\n */\n\n(function($) {\n 'use strict';\n\n window._EntitySelectorMixins = window._EntitySelectorMixins || {};\n\n window._EntitySelectorMixins.chips = {\n\n // =========================================================================\n // Selection Methods (Entity Chips)\n // =========================================================================\n\n addSelection: function($picker, id, name, data) {\n this.addSelectionNoUpdate($picker, id, name, data);\n var $chips = $picker.find('.entity-chips');\n this.updateChipsVisibility($chips);\n },\n\n addSelectionNoUpdate: function($picker, id, name, data) {\n var $chips = $picker.find('.entity-chips');\n var $block = $picker.closest('.target-block');\n\n // Check for global single mode (only ONE item across ALL entity types)\n var globalMode = this.config.mode || 'multi';\n\n if (globalMode === 'single') {\n // Clear ALL selections in ALL blocks (across all entity types)\n this.$wrapper.find('.entity-chips .entity-chip').remove();\n // Clear all selected states in dropdown\n if (this.$dropdown) {\n this.$dropdown.find('.dropdown-item.selected, .tree-item.selected').removeClass('selected');\n }\n // Clear tab badges (since we're clearing other blocks)\n this.$wrapper.find('.target-block-tab .tab-badge').remove();\n this.$wrapper.find('.target-block-tab').removeClass('has-data');\n } else {\n // Check if this block is in per-block single mode\n var blockMode = $block.data('mode') || 'multi';\n\n // In per-block single mode, clear chips in THIS block only\n if (blockMode === 'single') {\n $chips.find('.entity-chip').remove();\n // Also deselect all items in dropdown\n if (this.$dropdown) {\n this.$dropdown.find('.dropdown-item.selected, .tree-item.selected').removeClass('selected');\n }\n }\n }\n\n if ($chips.find('.entity-chip[data-id=\"' + id + '\"]').length) {\n return;\n }\n\n var html = '';\n\n if (data && data.image) {\n html += '\"\"';\n }\n\n html += '' + this.escapeHtml(name) + '';\n html += '';\n html += '';\n\n $chips.append(html);\n },\n\n removeSelection: function($picker, id) {\n var $chips = $picker.find('.entity-chips');\n $picker.find('.entity-chip[data-id=\"' + id + '\"]').remove();\n this.updateChipsVisibility($chips);\n },\n\n updateChipsVisibility: function($chips) {\n var self = this;\n var trans = this.config.trans || {};\n var $picker = $chips.closest('.value-picker');\n var $allChips = $chips.find('.entity-chip');\n var totalCount = $allChips.length;\n\n // If no chips, remove the wrapper entirely\n var $existingWrapper = $chips.closest('.chips-wrapper');\n if (totalCount === 0) {\n if ($existingWrapper.length) {\n // Move chips out of wrapper before removing\n $existingWrapper.before($chips);\n $existingWrapper.remove();\n }\n return;\n }\n\n // Ensure chips wrapper structure exists\n this.ensureChipsWrapper($chips);\n\n var $wrapper = $chips.closest('.chips-wrapper');\n var $toolbar = $wrapper.find('.chips-toolbar');\n var $loadMore = $wrapper.find('.chips-load-more');\n\n // Get current search filter\n var searchTerm = $toolbar.find('.chips-search-input').val() || '';\n searchTerm = searchTerm.toLowerCase().trim();\n\n // Filter and paginate chips\n var visibleCount = 0;\n var filteredCount = 0;\n var isExpanded = $chips.hasClass('chips-expanded');\n var maxVisible = isExpanded ? 999999 : (this.maxVisibleChips || 12);\n\n $allChips.each(function() {\n var $chip = $(this);\n var chipName = ($chip.find('.chip-name').text() || '').toLowerCase();\n var matchesFilter = !searchTerm || chipName.indexOf(searchTerm) !== -1;\n\n $chip.removeClass('chip-filtered-out chip-paginated-out');\n\n if (!matchesFilter) {\n $chip.addClass('chip-filtered-out');\n } else {\n filteredCount++;\n if (filteredCount > maxVisible) {\n $chip.addClass('chip-paginated-out');\n } else {\n visibleCount++;\n }\n }\n });\n\n // Update toolbar (always show when we have chips)\n $toolbar.addClass('has-chips');\n this.updateChipsToolbar($toolbar, totalCount, filteredCount, searchTerm);\n\n // Update load more select dropdown\n var hiddenByPagination = filteredCount - visibleCount;\n if (hiddenByPagination > 0 && !isExpanded) {\n var loadText = trans.load || 'Load';\n var remainingText = (trans.remaining || '{count} remaining').replace('{count}', hiddenByPagination);\n var loadMoreHtml = '' + loadText + '' +\n '' +\n '' + remainingText + '';\n $loadMore.html(loadMoreHtml).show();\n } else if (isExpanded && filteredCount > (this.maxVisibleChips || 12)) {\n var collapseText = trans.collapse || 'Collapse';\n $loadMore.html(\n ''\n ).show();\n } else {\n $loadMore.hide();\n }\n },\n\n ensureChipsWrapper: function($chips) {\n // Check if already wrapped\n if ($chips.closest('.chips-wrapper').length) {\n return;\n }\n\n var trans = this.config.trans || {};\n var $picker = $chips.closest('.value-picker');\n\n // Create wrapper structure - integrated filter toolbar with sort\n var wrapperHtml = '
' +\n '
' +\n '' +\n '' +\n '' +\n '' +\n '
' +\n '
' +\n '
';\n\n var $wrapper = $(wrapperHtml);\n\n // Insert wrapper before chips and move chips inside\n $chips.before($wrapper);\n $wrapper.find('.chips-toolbar').after($chips);\n $wrapper.append($wrapper.find('.chips-load-more'));\n\n // Bind toolbar events\n this.bindChipsToolbarEvents($wrapper);\n },\n\n bindChipsToolbarEvents: function($wrapper) {\n var self = this;\n var $chips = $wrapper.find('.entity-chips');\n var searchTimeout;\n\n // Search input\n $wrapper.on('input', '.chips-search-input', function() {\n clearTimeout(searchTimeout);\n searchTimeout = setTimeout(function() {\n // Collapse when searching to show filtered results from start\n $chips.removeClass('chips-expanded');\n self.updateChipsVisibility($chips);\n }, 150);\n });\n\n // Sort select\n $wrapper.on('change', '.chips-sort-select', function() {\n var sortBy = $(this).val();\n self.sortChips($chips, sortBy);\n });\n\n // Clear all button\n $wrapper.on('click', '.btn-chips-clear', function() {\n var searchTerm = $wrapper.find('.chips-search-input').val() || '';\n var $chipsToRemove;\n\n if (searchTerm.trim()) {\n // Remove only filtered (visible) chips\n $chipsToRemove = $chips.find('.entity-chip:not(.chip-filtered-out)');\n } else {\n // Remove all chips\n $chipsToRemove = $chips.find('.entity-chip');\n }\n\n $chipsToRemove.each(function() {\n $(this).find('.chip-remove').trigger('click');\n });\n\n // Clear search\n $wrapper.find('.chips-search-input').val('');\n self.updateChipsVisibility($chips);\n });\n\n // Load more select dropdown\n $wrapper.on('change', '.load-more-select', function() {\n var loadCount = $(this).val();\n if (loadCount === 'all') {\n $chips.addClass('chips-expanded');\n self.maxVisibleChips = 999999;\n } else {\n self.maxVisibleChips = (self.maxVisibleChips || 12) + parseInt(loadCount, 10);\n }\n self.updateChipsVisibility($chips);\n });\n\n // Collapse button\n $wrapper.on('click', '.btn-collapse-chips', function() {\n $chips.removeClass('chips-expanded');\n self.maxVisibleChips = 12;\n self.updateChipsVisibility($chips);\n });\n },\n\n /**\n * Sort chips by specified criteria\n */\n sortChips: function($chips, sortBy) {\n var $allChips = $chips.find('.entity-chip');\n if ($allChips.length < 2) return;\n\n var sorted = $allChips.toArray().sort(function(a, b) {\n var $a = $(a);\n var $b = $(b);\n\n switch (sortBy) {\n case 'name_asc':\n var nameA = ($a.find('.chip-name').text() || '').toLowerCase();\n var nameB = ($b.find('.chip-name').text() || '').toLowerCase();\n return nameA.localeCompare(nameB);\n case 'name_desc':\n var nameA2 = ($a.find('.chip-name').text() || '').toLowerCase();\n var nameB2 = ($b.find('.chip-name').text() || '').toLowerCase();\n return nameB2.localeCompare(nameA2);\n case 'added':\n default:\n // Keep original DOM order (order added)\n return 0;\n }\n });\n\n // Re-append in sorted order\n $.each(sorted, function(i, chip) {\n $chips.append(chip);\n });\n\n this.updateChipsVisibility($chips);\n },\n\n updateChipsToolbar: function($toolbar, totalCount, filteredCount, searchTerm) {\n var trans = this.config.trans || {};\n var $count = $toolbar.find('.chips-count');\n var $clearBtn = $toolbar.find('.btn-chips-clear');\n var $clearText = $clearBtn.find('.clear-text');\n\n // Update count display\n if (searchTerm) {\n $count.addClass('has-filter').html(\n '' + filteredCount + '' +\n '/' +\n '' + totalCount + ''\n );\n $clearText.text((trans.clear || 'Clear') + ' ' + filteredCount);\n } else {\n $count.removeClass('has-filter').html(totalCount);\n $clearText.text(trans.clear_all || 'Clear all');\n }\n\n // Show/hide clear button\n if (searchTerm && filteredCount === 0) {\n $clearBtn.hide();\n } else if (totalCount > 0) {\n $clearBtn.show();\n } else {\n $clearBtn.hide();\n }\n },\n\n // =========================================================================\n // Loading/Initialization\n // =========================================================================\n\n loadExistingSelections: function() {\n var self = this;\n\n // Collect all entity IDs to load, grouped by entity type\n var entitiesToLoad = {}; // { entity_type: { ids: [], pickers: [] } }\n\n this.$wrapper.find('.selection-group').each(function() {\n var $group = $(this);\n var $block = $group.closest('.target-block');\n var blockType = $block.data('blockType');\n\n // Load include values\n var $includePicker = $group.find('.include-picker');\n self.collectPickerEntities($includePicker, blockType, entitiesToLoad);\n\n // Enhance the include method select if not already enhanced\n self.enhanceMethodSelect($group.find('.include-method-select'));\n\n // Load exclude values from each exclude row\n $group.find('.exclude-row').each(function() {\n var $excludeRow = $(this);\n self.collectPickerEntities($excludeRow.find('.exclude-picker'), blockType, entitiesToLoad);\n\n // Enhance the exclude method select if not already enhanced\n self.enhanceMethodSelect($excludeRow.find('.exclude-method-select'));\n });\n\n // Lock method selector if excludes exist\n var hasExcludes = $group.find('.group-excludes.has-excludes').length > 0;\n if (hasExcludes) {\n self.updateMethodSelectorLock($group, true);\n }\n });\n\n // Build bulk request: { entityType: [uniqueIds], ... }\n var bulkRequest = {};\n var hasEntities = false;\n\n Object.keys(entitiesToLoad).forEach(function(entityType) {\n var data = entitiesToLoad[entityType];\n if (data.ids.length === 0) return;\n\n // Deduplicate IDs\n var uniqueIds = data.ids.filter(function(id, index, arr) {\n return arr.indexOf(id) === index;\n });\n\n bulkRequest[entityType] = uniqueIds;\n hasEntities = true;\n });\n\n // Skip AJAX if no entities to load\n if (!hasEntities) {\n return;\n }\n\n // Single bulk AJAX call for all entity types\n $.ajax({\n url: self.config.ajaxUrl,\n type: 'POST',\n dataType: 'json',\n data: {\n ajax: 1,\n action: 'getTargetEntitiesByIdsBulk',\n trait: 'EntitySelector',\n entities: JSON.stringify(bulkRequest)\n },\n success: function(response) {\n if (!response.success || !response.entities) {\n return;\n }\n\n // Process each entity type's results\n Object.keys(entitiesToLoad).forEach(function(entityType) {\n var data = entitiesToLoad[entityType];\n var entities = response.entities[entityType] || [];\n\n // Build a map of id -> entity for quick lookup\n var entityMap = {};\n entities.forEach(function(entity) {\n entityMap[entity.id] = entity;\n });\n\n // Update each picker that requested this entity type\n data.pickers.forEach(function(pickerData) {\n var $picker = pickerData.$picker;\n var $chips = $picker.find('.entity-chips');\n var $dataInput = $picker.find('.include-values-data, .exclude-values-data');\n var validIds = [];\n\n // Replace loading chips with real data\n pickerData.ids.forEach(function(id) {\n var $loadingChip = $chips.find('.entity-chip-loading[data-id=\"' + id + '\"]');\n if (entityMap[id]) {\n var entity = entityMap[id];\n validIds.push(entity.id);\n\n // Create real chip\n var html = '';\n if (entity.image) {\n html += '\"\"';\n }\n html += '' + self.escapeHtml(entity.name) + '';\n html += '';\n html += '';\n\n $loadingChip.replaceWith(html);\n } else {\n // Entity not found, remove loading chip\n $loadingChip.remove();\n }\n });\n\n // Update chips visibility\n self.updateChipsVisibility($chips);\n\n // If some entities were not found, update the hidden input\n if (validIds.length !== pickerData.ids.length) {\n $dataInput.val(JSON.stringify(validIds));\n self.serializeAllBlocks();\n }\n\n self.updateBlockStatus($picker.closest('.target-block'));\n });\n });\n }\n });\n },\n\n /**\n * Collect entity IDs from a picker for bulk loading\n * Also shows loading placeholders for entity_search types\n */\n collectPickerEntities: function($picker, blockType, entitiesToLoad) {\n if (!$picker.length) {\n return;\n }\n\n var self = this;\n var $dataInput = $picker.find('.include-values-data, .exclude-values-data');\n if (!$dataInput.length) {\n return;\n }\n\n var valueType = $picker.attr('data-value-type');\n var rawValue = $dataInput.val() || '[]';\n\n var values = [];\n try {\n values = JSON.parse(rawValue);\n } catch (e) {\n return;\n }\n\n // Handle non-entity types synchronously\n if (valueType === 'multi_numeric_range') {\n if (!Array.isArray(values) || values.length === 0) return;\n\n var $chipsContainer = $picker.find('.multi-range-chips');\n values.forEach(function(range) {\n if (!range || (range.min === null && range.max === null)) return;\n\n var chipText = '';\n if (range.min !== null && range.max !== null) {\n chipText = range.min + ' - ' + range.max;\n } else if (range.min !== null) {\n chipText = '≥ ' + range.min;\n } else {\n chipText = '≤ ' + range.max;\n }\n\n var $chip = $('', {\n class: 'range-chip',\n 'data-min': range.min !== null ? range.min : '',\n 'data-max': range.max !== null ? range.max : ''\n });\n $chip.append($('', { class: 'range-chip-text', text: chipText }));\n $chip.append($('';\n html += '' + this.escapeHtml(pattern) + '';\n html += '';\n html += '';\n $chipsContainer.append(html);\n },\n\n /**\n * Get all pattern tags from a wrapper\n * Returns array of objects: { pattern: string, caseSensitive: boolean }\n */\n getPatternTags: function($wrapper) {\n var patterns = [];\n // Exclude draft-tag which is the input field, not a saved pattern\n $wrapper.find('.pattern-tag:not(.draft-tag)').each(function() {\n var pattern = $(this).data('pattern');\n var caseSensitive = $(this).data('caseSensitive') === 1 || $(this).data('caseSensitive') === '1';\n if (pattern) {\n patterns.push({\n pattern: pattern,\n caseSensitive: caseSensitive\n });\n }\n });\n return patterns;\n },\n\n /**\n * Update the match count displayed in the draft tag while typing\n * Shows live preview with current case sensitivity setting\n */\n updateDraftTagCount: function($draftTag, pattern, caseSensitive) {\n var self = this;\n var $matchCount = $draftTag.find('.pattern-match-count');\n var $countValue = $matchCount.find('.count-value');\n\n // Get entity type from block\n var $block = $draftTag.closest('.target-block');\n var entityType = $block.data('blockType') || 'products';\n\n // Show loading - keep eye icon, update count value\n $countValue.html('');\n $matchCount.show();\n\n // Store pattern for click handler\n $matchCount.data('pattern', pattern);\n $matchCount.data('caseSensitive', caseSensitive);\n $matchCount.data('entityType', entityType);\n\n $.ajax({\n url: this.config.ajaxUrl,\n type: 'POST',\n dataType: 'json',\n data: {\n ajax: 1,\n action: 'countPatternMatches',\n trait: 'EntitySelector',\n pattern: pattern,\n field: 'name',\n entity_type: entityType,\n case_sensitive: caseSensitive ? 1 : 0\n },\n success: function(response) {\n if (response.success) {\n var count = parseInt(response.count, 10) || 0;\n $countValue.text(count);\n $matchCount.show();\n // Add visual feedback based on count\n $matchCount.removeClass('count-zero count-found');\n $matchCount.addClass(count === 0 ? 'count-zero' : 'count-found');\n // Store count for preview\n $matchCount.data('count', count);\n // Update group total count to reflect draft pattern in calculation\n var $group = $draftTag.closest('.selection-group');\n if ($group.length) {\n self.updateGroupTotalCount($group);\n }\n } else {\n $countValue.text('?');\n $matchCount.show();\n }\n },\n error: function() {\n $countValue.text('?');\n $matchCount.show();\n }\n });\n },\n\n /**\n * Update condition count with a pending pattern (typed but not yet added as tag)\n * This shows a live preview of what the count would be if the user pressed Enter\n */\n updateConditionCountWithPendingPattern: function($row, pendingPattern) {\n var self = this;\n var trans = this.config.trans || {};\n\n // Find the count element - in method-selector-wrapper for include, in exclude-header-row for exclude\n var $countEl = $row.find('.method-selector-wrapper > .condition-match-count, > .exclude-header-row > .condition-match-count').first();\n if (!$countEl.length) return;\n\n var isExclude = $row.hasClass('exclude-row');\n var $methodSelect = isExclude\n ? $row.find('.exclude-method-select')\n : $row.find('.include-method-select');\n\n var method = $methodSelect.val();\n if (!method) {\n $countEl.hide();\n return;\n }\n\n var $picker = isExclude\n ? $row.find('.exclude-picker')\n : $row.find('.include-picker');\n\n var valueType = $picker.data('valueType') || 'none';\n\n // Only process for pattern value types\n if (valueType !== 'pattern') {\n return;\n }\n\n // Get existing pattern tags\n var values = this.getPatternTags($picker);\n\n // Add the pending pattern as a temporary tag (case-insensitive by default)\n if (pendingPattern) {\n values.push({ pattern: pendingPattern, caseSensitive: false });\n }\n\n if (values.length === 0) {\n $countEl.hide();\n return;\n }\n\n var $block = $row.closest('.target-block');\n var blockType = $block.data('blockType') || 'products';\n\n // Show loading\n $countEl.find('.preview-count').html('');\n $countEl.removeClass('clickable no-matches').show();\n\n // Store condition data on badge for popover\n $countEl.data('conditionData', {\n method: method,\n values: values,\n blockType: blockType,\n isExclude: isExclude\n });\n\n $.ajax({\n url: this.config.ajaxUrl,\n type: 'POST',\n dataType: 'json',\n data: {\n ajax: 1,\n action: 'countConditionMatches',\n trait: 'EntitySelector',\n method: method,\n values: JSON.stringify(values),\n block_type: blockType\n },\n success: function(response) {\n if (response && response.success) {\n var count = response.count || 0;\n $countEl.removeClass('no-matches clickable');\n if (count === 0) {\n $countEl.find('.preview-count').text(count);\n $countEl.addClass('no-matches').show();\n } else {\n $countEl.find('.preview-count').text(count);\n $countEl.addClass('clickable').show();\n }\n } else {\n $countEl.hide().removeClass('clickable');\n }\n },\n error: function() {\n $countEl.hide().removeClass('clickable');\n }\n });\n },\n\n /**\n * Fetch pattern match count via AJAX\n */\n fetchPatternMatchCount: function($picker, pattern, $countEl) {\n // Determine field type from method select\n // Check if we're in an exclude row first, then fall back to include\n var $excludeRow = $picker.closest('.exclude-row');\n var $methodSelect;\n if ($excludeRow.length) {\n $methodSelect = $excludeRow.find('.exclude-method-select');\n } else {\n var $group = $picker.closest('.selection-group');\n $methodSelect = $group.find('.include-method-select');\n }\n var method = $methodSelect.val() || '';\n var field = method.indexOf('reference') !== -1 ? 'reference' : 'name';\n\n // Get entity type from block\n var $block = $picker.closest('.target-block');\n var entityType = $block.data('blockType') || 'products';\n\n // Show loading state\n $countEl.find('.preview-count').html('');\n $countEl.removeClass('clickable no-matches').show();\n\n $.ajax({\n url: this.config.ajaxUrl,\n type: 'POST',\n dataType: 'json',\n data: {\n ajax: 1,\n action: 'countPatternMatches',\n trait: 'EntitySelector',\n pattern: pattern,\n field: field,\n entity_type: entityType,\n case_sensitive: 0\n },\n success: function(response) {\n if (response && response.success) {\n var count = response.count || 0;\n $countEl.find('.preview-count').text(count);\n $countEl.removeClass('no-matches clickable').show();\n if (count === 0) {\n $countEl.addClass('no-matches');\n } else {\n $countEl.addClass('clickable');\n }\n } else {\n $countEl.hide();\n }\n },\n error: function() {\n $countEl.hide();\n }\n });\n },\n\n // =========================================================================\n // Picker Value Extraction\n // =========================================================================\n\n /**\n * Get values from a picker based on its type\n */\n getPickerValues: function($picker, valueType) {\n switch (valueType) {\n case 'entity_search':\n var ids = [];\n $picker.find('.entity-chip').each(function() {\n var id = $(this).data('id');\n if (id) ids.push(id);\n });\n return ids;\n\n case 'pattern':\n var patternValues = this.getPatternTags($picker);\n // Also include draft pattern if it has content (not yet added as tag)\n var $draftPatternInput = $picker.find('.draft-tag .pattern-input');\n var draftPatternVal = $.trim($draftPatternInput.val());\n if (draftPatternVal) {\n var draftCaseSens = $draftPatternInput.closest('.draft-tag').attr('data-case-sensitive') === '1';\n patternValues.push({\n pattern: draftPatternVal,\n caseSensitive: draftCaseSens\n });\n }\n return patternValues;\n\n case 'numeric_range':\n var min = $picker.find('.range-min-input').val();\n var max = $picker.find('.range-max-input').val();\n return { min: min || null, max: max || null };\n\n case 'date_range':\n var from = $picker.find('.date-from-input').val();\n var to = $picker.find('.date-to-input').val();\n return { from: from || null, to: to || null };\n\n case 'select':\n return [$picker.find('.select-value-input').val()];\n\n case 'boolean':\n return [true];\n\n default:\n return [];\n }\n },\n\n // =========================================================================\n // Count/Status Updates\n // =========================================================================\n\n /**\n * Fetch and update condition match count for a row (include or exclude)\n */\n updateConditionCount: function($row) {\n var self = this;\n var trans = this.config.trans || {};\n\n // Find the count element - in method-selector-wrapper for include, in exclude-header-row for exclude\n var $countEl = $row.find('.method-selector-wrapper > .condition-match-count, > .exclude-header-row > .condition-match-count').first();\n if (!$countEl.length) return;\n\n // Determine if this is an include or exclude row\n var isExclude = $row.hasClass('exclude-row');\n var $methodSelect = isExclude\n ? $row.find('.exclude-method-select')\n : $row.find('.include-method-select');\n\n var method = $methodSelect.val();\n if (!method) {\n $countEl.hide();\n return;\n }\n\n // Get the picker and extract values\n var $picker = isExclude\n ? $row.find('.exclude-picker')\n : $row.find('.include-picker');\n\n var valueType = $picker.data('valueType') || 'none';\n var values = this.getPickerValues($picker, valueType);\n\n // Don't count if no values (except for boolean/all methods)\n var hasNoValues = !values ||\n (Array.isArray(values) && values.length === 0) ||\n (typeof values === 'object' && !Array.isArray(values) && (\n // For combination_attributes, check if attributes object is empty\n (valueType === 'combination_attributes' && values.attributes !== undefined && Object.keys(values.attributes).length === 0) ||\n // For other objects, check if completely empty\n (valueType !== 'combination_attributes' && Object.keys(values).length === 0)\n ));\n if (valueType !== 'none' && valueType !== 'boolean' && hasNoValues) {\n $countEl.hide();\n return;\n }\n\n // Get block type\n var $block = $row.closest('.target-block');\n var blockType = $block.data('blockType') || 'products';\n\n // Show loading\n $countEl.find('.preview-count').html('');\n $countEl.removeClass('clickable no-matches').show();\n\n // Store condition data on badge for popover\n $countEl.data('conditionData', {\n method: method,\n values: values,\n blockType: blockType,\n isExclude: isExclude\n });\n\n $.ajax({\n url: this.config.ajaxUrl,\n type: 'POST',\n dataType: 'json',\n data: {\n ajax: 1,\n action: 'countConditionMatches',\n trait: 'EntitySelector',\n method: method,\n values: JSON.stringify(values),\n block_type: blockType\n },\n success: function(response) {\n if (response && response.success) {\n var count = response.count || 0;\n $countEl.removeClass('no-matches clickable');\n if (count === 0) {\n $countEl.find('.preview-count').text(count);\n $countEl.addClass('no-matches').show();\n } else {\n // Show count, make clickable for preview popover\n $countEl.find('.preview-count').text(count);\n $countEl.addClass('clickable').show();\n }\n } else {\n $countEl.hide().removeClass('clickable');\n }\n },\n error: function() {\n $countEl.hide().removeClass('clickable');\n }\n });\n },\n\n /**\n * Update all condition counts in a group\n */\n updateGroupCounts: function($group) {\n var self = this;\n\n // Update include count\n var $include = $group.find('.group-include');\n if ($include.length) {\n this.updateConditionCount($include);\n }\n\n // Update each exclude row count\n $group.find('.exclude-row').each(function() {\n self.updateConditionCount($(this));\n });\n\n // Update group total count (include - excludes)\n this.updateGroupTotalCount($group);\n },\n\n /**\n * Update the group total count badge (include - excludes)\n * Also updates the limit input placeholder\n */\n updateGroupTotalCount: function($group) {\n var self = this;\n var $block = $group.closest('.target-block');\n var blockType = $block.data('blockType') || 'products';\n var $badge = $group.find('.group-header .group-count-badge');\n var $limitInput = $group.find('.group-modifier-limit');\n\n // Build group data for AJAX\n var groupData = this.serializeGroup($group, blockType);\n\n // Check if include has valid data\n if (!groupData.include || !groupData.include.method) {\n $badge.hide();\n $limitInput.attr('placeholder', '–');\n return;\n }\n\n // Show loading\n $badge.html('').show();\n\n $.ajax({\n url: this.config.ajaxUrl,\n type: 'POST',\n dataType: 'json',\n data: {\n ajax: 1,\n action: 'countGroupItems',\n trait: 'EntitySelector',\n group_data: JSON.stringify(groupData),\n block_type: blockType\n },\n success: function(response) {\n if (response && response.success) {\n var finalCount = response.final_count || 0;\n var excludeCount = response.exclude_count || 0;\n\n // Update badge with eye icon and count\n var badgeHtml = ' ' + finalCount;\n if (excludeCount > 0) {\n badgeHtml += ' (-' + excludeCount + ')';\n }\n $badge.html(badgeHtml);\n $badge.addClass('clickable').show();\n\n // Store group data on badge for preview popover\n $badge.data('groupData', groupData);\n $badge.data('blockType', blockType);\n $badge.data('finalCount', finalCount);\n\n // Update limit placeholder with the count\n $limitInput.attr('placeholder', finalCount);\n\n // Also update the group-preview-badge count (apply limit if set)\n var $previewBadge = $group.find('.group-preview-badge .preview-count');\n if ($previewBadge.length) {\n var limit = parseInt($limitInput.val(), 10);\n var displayCount = (limit > 0 && limit < finalCount) ? limit : finalCount;\n $previewBadge.text(displayCount);\n }\n } else {\n $badge.hide().removeClass('clickable');\n $limitInput.attr('placeholder', '–');\n }\n },\n error: function() {\n $badge.hide();\n $limitInput.attr('placeholder', '–');\n }\n });\n },\n\n /**\n * Update all condition counts for all visible groups\n */\n updateAllConditionCounts: function() {\n var self = this;\n this.$wrapper.find('.target-block.active .selection-group').each(function() {\n self.updateGroupCounts($(this));\n });\n },\n\n /**\n * Fetch category names by IDs and add chips to the picker\n * Used when adding selections from the tree modal\n * @param {jQuery} $picker - Picker element\n * @param {Array} ids - Category IDs to add\n * @param {string} entityType - 'categories' or 'cms_categories'\n * @param {Function} callback - Called when done\n */\n fetchCategoryNamesAndAddChips: function($picker, ids, entityType, callback) {\n var self = this;\n\n if (!ids || ids.length === 0) {\n if (typeof callback === 'function') {\n callback();\n }\n return;\n }\n\n $.ajax({\n url: this.config.ajaxUrl,\n type: 'POST',\n dataType: 'json',\n data: {\n ajax: 1,\n action: 'getTargetEntitiesByIds',\n trait: 'EntitySelector',\n entity_type: entityType,\n ids: JSON.stringify(ids)\n },\n success: function(response) {\n if (response.success && response.entities) {\n response.entities.forEach(function(entity) {\n self.addSelectionNoUpdate($picker, entity.id, entity.name, entity);\n });\n }\n if (typeof callback === 'function') {\n callback();\n }\n },\n error: function() {\n if (typeof callback === 'function') {\n callback();\n }\n }\n });\n }\n };\n\n})(jQuery);\n","/**\n * Entity Selector - Groups Module\n * Selection group management, serialization, block/tab management\n * @partial _groups.js\n *\n * Contains:\n * - Group management: addGroup, removeGroup, clearAllConditions\n * - Block/Tab: switchToBlock, updateTabBadges, updateBlockStatus\n * - Serialization: serializeGroup, serializeAllBlocks, getBlockGroups\n * - Counts: fetchProductCount, updateHeaderTotalCount, updateAllConditionCounts\n * - Excludes: addFirstExcludeRow, addExcludeRow, removeExcludeRow\n * - Validation: validate, showValidationError, clearValidationError\n */\n\n(function($) {\n 'use strict';\n\n window._EntitySelectorMixins = window._EntitySelectorMixins || {};\n\n window._EntitySelectorMixins.groups = {\n\n addGroup: function($block, blockType) {\n var $container = $block.find('.groups-container');\n var trans = this.config.trans || {};\n var blockDef = this.config.blocks[blockType] || {};\n var methods = blockDef.selection_methods || {};\n\n // Remove empty state\n $container.find('.groups-empty-state').remove();\n\n // Get next group index\n var maxIndex = -1;\n $container.find('.selection-group').each(function() {\n var idx = parseInt($(this).data('groupIndex'), 10);\n if (idx > maxIndex) maxIndex = idx;\n });\n var groupIndex = maxIndex + 1;\n\n // Build method options with optgroups\n var methodOptions = this.buildMethodOptions(methods, false);\n\n // Build exclude method options (no \"all\") with optgroups\n var excludeMethodOptions = this.buildMethodOptions(methods, true);\n\n var defaultGroupName = (trans.group || 'Group') + ' ' + (groupIndex + 1);\n var html = '
';\n\n // Group header\n html += '
';\n html += '';\n html += '';\n html += '';\n html += '';\n html += '';\n html += '';\n html += '
';\n\n // Group body (collapsible content)\n html += '
';\n\n // Include section\n html += '
';\n html += '
';\n html += '
';\n html += '';\n html += ' 0';\n html += '';\n html += '
';\n var noItemsText = trans.no_items_selected || 'No items selected - use search below';\n html += '
';\n html += '
';\n html += '
';\n html += '';\n html += '';\n html += '';\n html += '
';\n html += '';\n html += '
';\n html += '
';\n html += '
';\n\n // Excludes section (collapsed by default)\n html += '
';\n html += '';\n html += '
';\n\n // Group-level modifiers (limit & sort)\n html += '
';\n html += '';\n html += '' + (trans.limit || 'Limit') + '';\n html += '';\n html += '';\n html += '';\n html += '' + (trans.sort || 'Sort') + '';\n html += '';\n html += '';\n html += '';\n html += '';\n html += ' ';\n html += '';\n html += '
';\n\n html += '
'; // Close group-body\n\n html += '
'; // Close selection-group\n\n $container.append(html);\n\n // Find the new group and set method to \"all\" by default\n var $newGroup = $container.find('.selection-group[data-group-index=\"' + groupIndex + '\"]');\n\n // Enhance the method select with styled dropdown\n this.enhanceMethodSelect($newGroup.find('.include-method-select'));\n\n $newGroup.find('.include-method-select').val('all').trigger('change');\n\n this.updateBlockStatus($block);\n this.serializeAllBlocks();\n },\n\n removeGroup: function($group, $block) {\n $group.remove();\n\n var $container = $block.find('.groups-container');\n var remainingGroups = $container.find('.selection-group').length;\n\n if (remainingGroups === 0) {\n var emptyText = this.getEmptyStateText($block);\n var emptyHtml = '
';\n emptyHtml += '' + emptyText + '';\n emptyHtml += '
';\n $container.html(emptyHtml);\n }\n\n this.updateBlockStatus($block);\n this.serializeAllBlocks();\n\n // Update tab badges and header total count\n this.updateTabBadges();\n },\n\n clearAllConditions: function() {\n var self = this;\n\n // Remove all groups from all blocks\n this.$wrapper.find('.target-block').each(function() {\n var $block = $(this);\n var $container = $block.find('.groups-container');\n\n // Remove all groups\n $container.find('.selection-group').remove();\n\n // Show empty state\n var emptyText = self.getEmptyStateText($block);\n var emptyHtml = '
';\n emptyHtml += '' + emptyText + '';\n emptyHtml += '
';\n $container.html(emptyHtml);\n\n self.updateBlockStatus($block);\n });\n\n // Update serialized data\n this.serializeAllBlocks();\n\n // Update tab badges and header count\n this.updateTabBadges();\n\n // Also update header total count immediately (since all cleared)\n this.updateHeaderTotalCount();\n },\n\n switchToBlock: function(blockType) {\n // Update tabs\n this.$wrapper.find('.target-block-tab').removeClass('active');\n this.$wrapper.find('.target-block-tab[data-block-type=\"' + blockType + '\"]').addClass('active');\n\n // Update blocks\n this.$wrapper.find('.target-block').removeClass('active').hide();\n this.$wrapper.find('.target-block[data-block-type=\"' + blockType + '\"]').addClass('active').show();\n\n // Close dropdown if open\n this.hideDropdown();\n },\n\n updateTabBadges: function() {\n var self = this;\n\n // Collect all block types with data and set loading state\n var blockTypesWithData = [];\n this.$wrapper.find('.target-block-tab').each(function() {\n var $tab = $(this);\n var blockType = $tab.data('blockType');\n var $block = self.$wrapper.find('.target-block[data-block-type=\"' + blockType + '\"]');\n var groupCount = $block.find('.selection-group').length;\n\n // Update or add badge\n var $badge = $tab.find('.tab-badge');\n if (groupCount > 0) {\n // Show loading state first\n if ($badge.length) {\n $badge.addClass('loading').html('');\n } else {\n $tab.append('');\n }\n $tab.addClass('has-data');\n blockTypesWithData.push(blockType);\n } else {\n $badge.remove();\n $tab.removeClass('has-data');\n }\n });\n\n // Update target switch state based on whether any data exists\n this.updateTargetSwitchState();\n\n // Fetch all counts in a single bulk request\n if (blockTypesWithData.length > 0) {\n this.fetchAllCounts(blockTypesWithData);\n }\n },\n\n updateTargetSwitchState: function() {\n var $switch = this.$wrapper.find('.prestashop-switch');\n if (!$switch.length) {\n return;\n }\n\n // Check if any block has data\n var hasData = false;\n this.$wrapper.find('.target-block').each(function() {\n if ($(this).find('.selection-group').length > 0) {\n hasData = true;\n return false; // break\n }\n });\n\n // Update switch: value=\"1\" is \"Everyone/All/None\", value=\"0\" is \"Specific/Selected\"\n if (hasData) {\n $switch.find('input[value=\"0\"]').prop('checked', true);\n } else {\n $switch.find('input[value=\"1\"]').prop('checked', true);\n }\n },\n\n /**\n * Fetch counts for all block types in a single bulk AJAX request\n * @param {Array} blockTypes - Array of block type strings to fetch counts for\n */\n fetchAllCounts: function(blockTypes) {\n var self = this;\n\n // Read saved data from hidden input\n var $hiddenInput = this.$wrapper.find('input[name=\"' + this.config.name + '\"]');\n var savedData = {};\n try {\n savedData = JSON.parse($hiddenInput.val() || '{}');\n } catch (e) {\n savedData = {};\n }\n\n // Build conditions object for all requested block types\n var conditions = {};\n blockTypes.forEach(function(blockType) {\n var groups = (savedData[blockType] && savedData[blockType].groups) ? savedData[blockType].groups : [];\n if (groups.length > 0) {\n conditions[blockType] = { groups: groups };\n }\n });\n\n // If no valid conditions, remove loading spinners\n if (Object.keys(conditions).length === 0) {\n blockTypes.forEach(function(blockType) {\n var $tab = self.$wrapper.find('.target-block-tab[data-block-type=\"' + blockType + '\"]');\n $tab.find('.tab-badge').remove();\n $tab.removeClass('has-data');\n });\n return;\n }\n\n // Single bulk AJAX request for all counts\n $.ajax({\n url: this.config.ajaxUrl,\n type: 'POST',\n dataType: 'json',\n data: {\n ajax: 1,\n action: 'previewEntitySelectorBulk',\n trait: 'EntitySelector',\n conditions: JSON.stringify(conditions)\n },\n success: function(response) {\n if (response.success && response.counts) {\n // Update each tab with its count\n Object.keys(response.counts).forEach(function(blockType) {\n var count = response.counts[blockType];\n var $tab = self.$wrapper.find('.target-block-tab[data-block-type=\"' + blockType + '\"]');\n var $badge = $tab.find('.tab-badge');\n\n if ($badge.length) {\n $badge.removeClass('loading').html(' ' + count);\n // Store preview data for later popover use\n $tab.data('previewData', { count: count, success: true });\n }\n });\n\n // Handle any block types not in response (set count to 0 or remove badge)\n blockTypes.forEach(function(blockType) {\n if (!(blockType in response.counts)) {\n var $tab = self.$wrapper.find('.target-block-tab[data-block-type=\"' + blockType + '\"]');\n $tab.find('.tab-badge').remove();\n $tab.removeClass('has-data');\n }\n });\n\n self.updateHeaderTotalCount();\n } else {\n console.error('[EntitySelector] Bulk preview failed:', response.error || 'Unknown error');\n // Remove loading spinners on error\n blockTypes.forEach(function(blockType) {\n var $tab = self.$wrapper.find('.target-block-tab[data-block-type=\"' + blockType + '\"]');\n $tab.find('.tab-badge').remove();\n });\n }\n },\n error: function(xhr, status, error) {\n console.error('[EntitySelector] Bulk AJAX error:', status, error);\n // Remove loading spinners on error\n blockTypes.forEach(function(blockType) {\n var $tab = self.$wrapper.find('.target-block-tab[data-block-type=\"' + blockType + '\"]');\n $tab.find('.tab-badge').remove();\n });\n }\n });\n },\n\n /**\n * Fetch count for a single block type (legacy, used for single updates)\n */\n fetchProductCount: function(blockType, $tab) {\n var self = this;\n var data = {};\n\n // Read from hidden input (contains full saved data or freshly serialized data)\n var $hiddenInput = this.$wrapper.find('input[name=\"' + this.config.name + '\"]');\n var savedData = {};\n try {\n savedData = JSON.parse($hiddenInput.val() || '{}');\n } catch (e) {\n savedData = {};\n }\n\n // Get groups for the requested block type\n var groups = (savedData[blockType] && savedData[blockType].groups) ? savedData[blockType].groups : [];\n\n if (groups.length === 0) {\n $tab.find('.tab-badge').remove();\n $tab.removeClass('has-data');\n $tab.removeData('previewData');\n return;\n }\n\n // Show loading state\n var $badge = $tab.find('.tab-badge');\n if (!$badge.length) {\n $badge = $('');\n $tab.append($badge);\n } else {\n $badge.addClass('loading').html('');\n }\n $tab.addClass('has-data');\n\n data[blockType] = { groups: groups };\n\n $.ajax({\n url: this.config.ajaxUrl,\n type: 'POST',\n dataType: 'json',\n data: {\n ajax: 1,\n action: 'previewEntitySelector',\n trait: 'EntitySelector',\n conditions: JSON.stringify(data),\n block_type: blockType,\n limit: 10\n },\n success: function(response) {\n if (response.success) {\n var $badge = $tab.find('.tab-badge');\n $badge.removeClass('loading').html(' ' + response.count);\n\n // Store preview data for popover\n $tab.data('previewData', response);\n\n // Update header total count\n self.updateHeaderTotalCount();\n } else {\n console.error('[EntitySelector] Preview failed for', blockType, ':', response.error || 'Unknown error');\n $tab.find('.tab-badge').remove();\n }\n },\n error: function(xhr, status, error) {\n console.error('[EntitySelector] AJAX error for', blockType, ':', status, error);\n $tab.find('.tab-badge').remove();\n self.updateHeaderTotalCount();\n }\n });\n },\n\n updateHeaderTotalCount: function() {\n var self = this;\n var total = 0;\n\n // Sum up all tab badge counts\n this.$wrapper.find('.target-block-tab .tab-badge').each(function() {\n var $badge = $(this);\n if (!$badge.hasClass('loading')) {\n var count = parseInt($badge.text(), 10);\n if (!isNaN(count)) {\n total += count;\n }\n }\n });\n\n var $totalBadge = this.$wrapper.find('.trait-total-count');\n if (total > 0) {\n $totalBadge.find('.count-value').text(total);\n $totalBadge.show();\n } else {\n $totalBadge.hide();\n }\n\n // Update show-all toggle state\n this.updateShowAllToggle();\n },\n\n updateShowAllToggle: function() {\n var $toggle = this.$wrapper.find('.trait-show-all-toggle');\n if (!$toggle.length) return;\n\n var $checkbox = $toggle.find('.show-all-checkbox');\n var hasData = this.$wrapper.find('.target-block-tab.has-data').length > 0;\n\n // If there's data, uncheck (not showing to all), otherwise check\n $checkbox.prop('checked', !hasData);\n },\n\n updateBlockStatus: function($block) {\n var $status = $block.find('.block-status');\n var blockType = $block.data('blockType');\n var blockDef = this.config.blocks[blockType] || {};\n var trans = this.config.trans || {};\n\n var groups = this.getBlockGroups($block);\n\n if (groups.length === 0) {\n var emptyMeansAll = this.config.emptyMeansAll !== false;\n if (emptyMeansAll) {\n $status.text((trans.all || 'All') + ' ' + (blockDef.entity_label_plural || 'items'));\n } else {\n $status.text(trans.nothing_selected || 'Nothing selected');\n }\n } else {\n $status.text(groups.length + ' ' + (groups.length === 1 ? (trans.group || 'group') : (trans.groups || 'groups')));\n }\n },\n\n getEmptyStateText: function($block) {\n var blockType = $block.data('blockType');\n var blockMode = $block.data('mode') || 'multi';\n var blockDef = this.config.blocks[blockType] || {};\n var trans = this.config.trans || {};\n var emptyMeansAll = this.config.emptyMeansAll !== false;\n\n if (blockMode === 'single') {\n return trans.no_item_selected || 'No item selected';\n }\n\n if (emptyMeansAll) {\n return (trans.all || 'All') + ' ' + (blockDef.entity_label_plural || 'items') + ' ' + (trans.included || 'included');\n }\n\n return trans.nothing_selected || 'Nothing selected';\n },\n\n serializeGroup: function($group, blockType) {\n var self = this;\n\n // Include\n var includeMethod = $group.find('.include-method-select').val() || 'all';\n var $includePicker = $group.find('.include-picker');\n var includeValues = this.getPickerValues($includePicker);\n\n // Excludes (multiple rows)\n var excludes = [];\n var $excludesSection = $group.find('.group-excludes.has-excludes');\n if ($excludesSection.length) {\n $group.find('.exclude-row').each(function() {\n var $row = $(this);\n var excludeMethod = $row.find('.exclude-method-select').val() || null;\n var $excludePicker = $row.find('.exclude-picker');\n var excludeValues = self.getPickerValues($excludePicker);\n\n if (excludeMethod && excludeValues && (Array.isArray(excludeValues) ? excludeValues.length > 0 : true)) {\n excludes.push({\n method: excludeMethod,\n values: excludeValues\n });\n }\n });\n }\n\n var groupData = {\n include: {\n method: includeMethod,\n values: includeValues\n }\n };\n\n if (excludes.length > 0) {\n groupData.excludes = excludes;\n }\n\n // Add modifiers if present\n var modifiers = this.getGroupModifiers($group);\n if (modifiers.limit || modifiers.sort_by) {\n groupData.modifiers = modifiers;\n }\n\n return groupData;\n },\n\n serializeAllBlocks: function($changedRow) {\n var self = this;\n var data = {};\n\n this.$wrapper.find('.target-block').each(function() {\n var $block = $(this);\n var blockType = $block.data('blockType');\n var groups = self.getBlockGroups($block);\n\n // Groups now contain their own modifiers, no block-level modifiers\n if (groups.length > 0) {\n data[blockType] = { groups: groups };\n }\n\n self.updateBlockStatus($block);\n });\n\n // Update hidden input first\n var $input = this.$wrapper.find('input[name=\"' + this.config.name + '\"]');\n $input.val(JSON.stringify(data));\n\n // Then update tab badges (reads from hidden input)\n this.updateTabBadges();\n\n // Debounced update of condition count - only for changed row if specified\n if (this.countUpdateTimeout) {\n clearTimeout(this.countUpdateTimeout);\n }\n this.countUpdateTimeout = setTimeout(function() {\n if ($changedRow && $changedRow.length) {\n // Update the specific row that changed\n self.updateConditionCount($changedRow);\n // Also update the group total count (include - excludes)\n var $group = $changedRow.closest('.selection-group');\n if ($group.length) {\n self.updateGroupTotalCount($group);\n }\n } else {\n // Fallback: update all counts (initial load, structure changes)\n self.updateAllConditionCounts();\n }\n }, 500);\n },\n\n getBlockGroups: function($block) {\n var self = this;\n var groups = [];\n\n $block.find('.selection-group').each(function() {\n var $group = $(this);\n\n // Include\n var includeMethod = $group.find('.include-method-select').val() || 'all';\n var $includePicker = $group.find('.include-picker');\n var includeValues = self.getPickerValues($includePicker);\n\n // Skip groups with invalid include conditions (e.g., \"specific products\" with none selected)\n if (!self.isConditionValid(includeMethod, includeValues, $includePicker)) {\n return true; // continue to next group\n }\n\n // Excludes (multiple rows) - only include valid ones\n var excludes = [];\n var $excludesSection = $group.find('.group-excludes.has-excludes');\n if ($excludesSection.length) {\n $group.find('.exclude-row').each(function() {\n var $row = $(this);\n var excludeMethod = $row.find('.exclude-method-select').val() || null;\n var $excludePicker = $row.find('.exclude-picker');\n var excludeValues = self.getPickerValues($excludePicker);\n\n // Only include valid exclude conditions\n if (excludeMethod && self.isConditionValid(excludeMethod, excludeValues, $excludePicker)) {\n excludes.push({\n method: excludeMethod,\n values: excludeValues\n });\n }\n });\n }\n\n var groupData = {\n include: {\n method: includeMethod,\n values: includeValues\n }\n };\n\n // Group name (optional, for organizational purposes)\n var groupName = $.trim($group.attr('data-group-name') || '');\n if (groupName) {\n groupData.name = groupName;\n }\n\n if (excludes.length > 0) {\n groupData.excludes = excludes;\n }\n\n // Group-level modifiers\n var modifiers = self.getGroupModifiers($group);\n if (modifiers.limit || modifiers.sort_by) {\n groupData.modifiers = modifiers;\n }\n\n groups.push(groupData);\n });\n\n return groups;\n },\n\n getGroupModifiers: function($group) {\n var limit = $group.find('.group-modifier-limit').val();\n var sortBy = $group.find('.group-modifier-sort').val() || 'sales';\n var $sortDirBtn = $group.find('.group-modifiers .btn-sort-dir');\n var sortDir = $sortDirBtn.data('dir') || 'DESC';\n\n return {\n limit: limit ? parseInt(limit, 10) : null,\n sort_by: sortBy || null,\n sort_dir: sortDir || 'DESC'\n };\n },\n\n getPickerValues: function($picker) {\n var valueType = $picker.attr('data-value-type') || 'entity_search';\n var values = [];\n\n switch (valueType) {\n case 'entity_search':\n $picker.find('.entity-chip').each(function() {\n var id = $(this).data('id');\n values.push(isNaN(id) ? id : Number(id));\n });\n break;\n\n case 'pattern':\n values = this.getPatternTags($picker);\n // Also include draft pattern if it has content (not yet added as tag)\n var $draftInput = $picker.find('.draft-tag .pattern-input');\n var draftPattern = $.trim($draftInput.val());\n if (draftPattern) {\n var draftCaseSensitive = $draftInput.closest('.draft-tag').attr('data-case-sensitive') === '1';\n values.push({\n pattern: draftPattern,\n caseSensitive: draftCaseSensitive\n });\n }\n break;\n\n case 'numeric_range':\n var min = $picker.find('.range-min-input').val();\n var max = $picker.find('.range-max-input').val();\n if (min !== '' || max !== '') {\n values = {\n min: min !== '' ? parseFloat(min) : null,\n max: max !== '' ? parseFloat(max) : null\n };\n }\n break;\n\n case 'date_range':\n var from = $picker.find('.date-from-input').val();\n var to = $picker.find('.date-to-input').val();\n if (from || to) {\n values = {\n from: from || null,\n to: to || null\n };\n }\n break;\n\n case 'select':\n var selectVal = $picker.find('.select-value-input').val();\n if (selectVal) {\n values = [selectVal];\n }\n break;\n\n case 'boolean':\n values = [true];\n break;\n\n case 'multi_numeric_range':\n var ranges = [];\n $picker.find('.range-chip').each(function() {\n var $chip = $(this);\n var minVal = $chip.data('min');\n var maxVal = $chip.data('max');\n ranges.push({\n min: minVal !== '' && minVal !== undefined ? parseFloat(minVal) : null,\n max: maxVal !== '' && maxVal !== undefined ? parseFloat(maxVal) : null\n });\n });\n if (ranges.length > 0) {\n values = ranges;\n }\n break;\n\n case 'multi_select_tiles':\n $picker.find('.tile-option.selected').each(function() {\n values.push($(this).data('value'));\n });\n break;\n\n case 'combination_attributes':\n // Returns object: { mode: 'products'|'combinations', attributes: { groupId: [valueId1, valueId2], ... } }\n var combAttrs = {};\n $picker.find('.comb-attr-value.selected').each(function() {\n var groupId = $(this).data('groupId').toString();\n var valueId = $(this).data('valueId');\n if (!combAttrs[groupId]) {\n combAttrs[groupId] = [];\n }\n combAttrs[groupId].push(valueId);\n });\n if (Object.keys(combAttrs).length > 0) {\n // Get mode: from radio if toggle exists, otherwise from config\n var $combPicker = $picker.find('.combination-attributes-picker');\n var configMode = $combPicker.data('combinationMode') || this.config.combinationMode || 'products';\n var combMode;\n if (configMode === 'toggle') {\n combMode = $picker.find('.comb-mode-radio:checked').val() || 'products';\n } else {\n combMode = configMode;\n }\n values = {\n mode: combMode,\n attributes: combAttrs\n };\n }\n break;\n }\n\n return values;\n },\n\n isConditionValid: function(method, values, $picker) {\n // 'all' method never needs values\n if (method === 'all') {\n return true;\n }\n\n // Boolean methods are always valid (the value is implicit true)\n var valueType = $picker.attr('data-value-type') || 'entity_search';\n if (valueType === 'boolean') {\n return true;\n }\n\n // For other methods, check if values are meaningful\n if (Array.isArray(values)) {\n return values.length > 0;\n }\n\n // For object values (ranges, combination_attributes), check if meaningful\n if (typeof values === 'object' && values !== null) {\n // Special handling for combination_attributes: { mode, attributes }\n if (valueType === 'combination_attributes' && values.attributes !== undefined) {\n return Object.keys(values.attributes).length > 0;\n }\n // For ranges and other objects, check if at least one bound is set\n return Object.keys(values).some(function(key) {\n return values[key] !== null && values[key] !== '';\n });\n }\n\n return false;\n },\n\n /**\n * Update all condition counts using a single bulk AJAX request\n */\n updateAllConditionCounts: function() {\n var self = this;\n var conditions = {};\n var conditionElements = {};\n var conditionIndex = 0;\n\n // Collect all conditions from all active groups\n this.$wrapper.find('.target-block.active .selection-group').each(function() {\n var $group = $(this);\n var $block = $group.closest('.target-block');\n var blockType = $block.data('blockType') || 'products';\n\n // Process include row\n var $include = $group.find('.group-include');\n if ($include.length) {\n var includeData = self.getConditionData($include, blockType);\n if (includeData) {\n var id = 'c' + conditionIndex++;\n conditions[id] = includeData.condition;\n conditionElements[id] = includeData.$countEl;\n }\n }\n\n // Process exclude rows\n $group.find('.exclude-row').each(function() {\n var excludeData = self.getConditionData($(this), blockType);\n if (excludeData) {\n var id = 'c' + conditionIndex++;\n conditions[id] = excludeData.condition;\n conditionElements[id] = excludeData.$countEl;\n }\n });\n });\n\n // If no conditions, nothing to do\n if (Object.keys(conditions).length === 0) {\n return;\n }\n\n // Make single bulk AJAX request\n $.ajax({\n url: this.config.ajaxUrl,\n type: 'POST',\n dataType: 'json',\n data: {\n ajax: 1,\n action: 'countConditionMatchesBulk',\n trait: 'EntitySelector',\n conditions: JSON.stringify(conditions)\n },\n success: function(response) {\n if (response && response.success && response.counts) {\n // Update each count element with its result\n Object.keys(response.counts).forEach(function(id) {\n var count = response.counts[id] || 0;\n var $countEl = conditionElements[id];\n if ($countEl && $countEl.length) {\n $countEl.removeClass('no-matches clickable');\n if (count === 0) {\n $countEl.find('.preview-count').text(count);\n $countEl.addClass('no-matches').show();\n } else {\n $countEl.find('.preview-count').text(count);\n $countEl.addClass('clickable').show();\n }\n }\n });\n }\n // Note: Group totals are updated on-demand when user interacts, not on initial load\n },\n error: function() {\n // Hide all count elements on error\n Object.keys(conditionElements).forEach(function(id) {\n var $countEl = conditionElements[id];\n if ($countEl && $countEl.length) {\n $countEl.hide().removeClass('clickable');\n }\n });\n }\n });\n },\n\n /**\n * Extract condition data from a row for bulk counting\n */\n getConditionData: function($row, blockType) {\n var $countEl = $row.find('.method-selector-wrapper > .condition-match-count, > .exclude-header-row .condition-match-count').first();\n if (!$countEl.length) return null;\n\n var isExclude = $row.hasClass('exclude-row');\n var $methodSelect = isExclude\n ? $row.find('.exclude-method-select')\n : $row.find('.include-method-select');\n\n var method = $methodSelect.val();\n if (!method) {\n $countEl.hide();\n return null;\n }\n\n var $picker = isExclude\n ? $row.find('.exclude-picker')\n : $row.find('.include-picker');\n\n var valueType = $picker.data('valueType') || 'none';\n var values = this.getPickerValues($picker, valueType);\n\n // Don't count if no values (except for boolean/all methods)\n var hasNoValues = !values ||\n (Array.isArray(values) && values.length === 0) ||\n (typeof values === 'object' && !Array.isArray(values) && (\n (valueType === 'combination_attributes' && values.attributes !== undefined && Object.keys(values.attributes).length === 0) ||\n (valueType !== 'combination_attributes' && Object.keys(values).length === 0)\n ));\n if (valueType !== 'none' && valueType !== 'boolean' && hasNoValues) {\n $countEl.hide();\n return null;\n }\n\n // Show loading spinner\n $countEl.find('.preview-count').html('');\n $countEl.removeClass('clickable no-matches').show();\n\n // Store condition data on badge for popover\n $countEl.data('conditionData', {\n method: method,\n values: values,\n blockType: blockType,\n isExclude: isExclude\n });\n\n return {\n condition: {\n method: method,\n values: values,\n block_type: blockType\n },\n $countEl: $countEl\n };\n },\n\n updateGroupCounts: function($group) {\n var self = this;\n var $block = $group.closest('.target-block');\n var blockType = $block.data('blockType') || 'products';\n\n // Update include count\n var $include = $group.find('.group-include');\n if ($include.length) {\n this.updateConditionCount($include, blockType);\n }\n\n // Update each exclude row count\n $group.find('.exclude-row').each(function() {\n self.updateConditionCount($(this), blockType);\n });\n\n // Update group total count (include - excludes)\n this.updateGroupTotalCount($group);\n },\n\n /**\n * Update a single condition count (used for individual updates after user changes)\n */\n updateConditionCount: function($row, blockType) {\n var self = this;\n\n var $countEl = $row.find('.method-selector-wrapper > .condition-match-count, > .exclude-header-row .condition-match-count').first();\n if (!$countEl.length) return;\n\n var isExclude = $row.hasClass('exclude-row');\n var $methodSelect = isExclude\n ? $row.find('.exclude-method-select')\n : $row.find('.include-method-select');\n\n var method = $methodSelect.val();\n if (!method) {\n $countEl.hide();\n return;\n }\n\n var $picker = isExclude\n ? $row.find('.exclude-picker')\n : $row.find('.include-picker');\n\n var valueType = $picker.data('valueType') || 'none';\n var values = this.getPickerValues($picker, valueType);\n\n var hasNoValues = !values ||\n (Array.isArray(values) && values.length === 0) ||\n (typeof values === 'object' && !Array.isArray(values) && (\n (valueType === 'combination_attributes' && values.attributes !== undefined && Object.keys(values.attributes).length === 0) ||\n (valueType !== 'combination_attributes' && Object.keys(values).length === 0)\n ));\n if (valueType !== 'none' && valueType !== 'boolean' && hasNoValues) {\n $countEl.hide();\n return;\n }\n\n if (!blockType) {\n var $block = $row.closest('.target-block');\n blockType = $block.data('blockType') || 'products';\n }\n\n $countEl.find('.preview-count').html('');\n $countEl.removeClass('clickable no-matches').show();\n\n $countEl.data('conditionData', {\n method: method,\n values: values,\n blockType: blockType,\n isExclude: isExclude\n });\n\n $.ajax({\n url: this.config.ajaxUrl,\n type: 'POST',\n dataType: 'json',\n data: {\n ajax: 1,\n action: 'countConditionMatches',\n trait: 'EntitySelector',\n method: method,\n values: JSON.stringify(values),\n block_type: blockType\n },\n success: function(response) {\n if (response && response.success) {\n var count = response.count || 0;\n $countEl.removeClass('no-matches clickable');\n if (count === 0) {\n $countEl.find('.preview-count').text(count);\n $countEl.addClass('no-matches').show();\n } else {\n $countEl.find('.preview-count').text(count);\n $countEl.addClass('clickable').show();\n }\n } else {\n $countEl.hide().removeClass('clickable');\n }\n },\n error: function() {\n $countEl.hide().removeClass('clickable');\n }\n });\n },\n\n updateGroupTotalCount: function($group) {\n var self = this;\n var $block = $group.closest('.target-block');\n var blockType = $block.data('blockType') || 'products';\n var $badge = $group.find('.group-header .group-count-badge');\n var $limitInput = $group.find('.group-modifier-limit');\n\n // Build group data for AJAX\n var groupData = this.serializeGroup($group, blockType);\n\n // Check if include has valid data\n if (!groupData.include || !groupData.include.method) {\n $badge.hide();\n $limitInput.attr('placeholder', '–');\n return;\n }\n\n // Show loading\n $badge.html('').show();\n\n $.ajax({\n url: this.config.ajaxUrl,\n type: 'POST',\n dataType: 'json',\n data: {\n ajax: 1,\n action: 'countGroupItems',\n trait: 'EntitySelector',\n group_data: JSON.stringify(groupData),\n block_type: blockType\n },\n success: function(response) {\n if (response && response.success) {\n var finalCount = response.final_count || 0;\n var excludeCount = response.exclude_count || 0;\n\n // Update badge with eye icon and count\n var badgeHtml = ' ' + finalCount;\n if (excludeCount > 0) {\n badgeHtml += ' (-' + excludeCount + ')';\n }\n $badge.html(badgeHtml);\n $badge.addClass('clickable').show();\n\n // Store group data on badge for preview popover\n $badge.data('groupData', groupData);\n $badge.data('blockType', blockType);\n $badge.data('finalCount', finalCount);\n\n // Update limit placeholder with the count\n $limitInput.attr('placeholder', finalCount);\n\n // Also update the group-preview-badge count (apply limit if set)\n var $previewBadge = $group.find('.group-preview-badge .preview-count');\n if ($previewBadge.length) {\n var limit = parseInt($limitInput.val(), 10);\n var displayCount = (limit > 0 && limit < finalCount) ? limit : finalCount;\n $previewBadge.text(displayCount);\n }\n } else {\n $badge.hide().removeClass('clickable');\n $limitInput.attr('placeholder', '–');\n }\n },\n error: function() {\n $badge.hide();\n $limitInput.attr('placeholder', '–');\n }\n });\n },\n\n // Exclude row management\n addFirstExcludeRow: function($group, $block) {\n var $excludesDiv = $group.find('.group-excludes');\n var trans = this.config.trans || {};\n\n // Build the full excludes structure with first row\n var html = '
';\n html += ' ' + (trans.except || 'EXCEPT') + '';\n html += '
';\n\n html += '
';\n html += this.buildExcludeRowHtml($block, 0);\n html += '
';\n\n html += '';\n\n $excludesDiv.addClass('has-excludes').html(html);\n\n // Enhance the first exclude method select with styled dropdown\n var $firstRow = $excludesDiv.find('.exclude-row[data-exclude-index=\"0\"]');\n var $firstSelect = $firstRow.find('.exclude-method-select');\n this.enhanceMethodSelect($firstSelect);\n\n // Update method info placeholder for initial selection\n var blockType = $block.data('blockType');\n var initialMethod = $firstSelect.val();\n this.updateMethodInfoPlaceholder($firstRow.find('.method-selector-wrapper'), initialMethod, blockType);\n\n this.updateMethodSelectorLock($group, true);\n this.serializeAllBlocks();\n },\n\n addExcludeRow: function($group, $block) {\n var $container = $group.find('.exclude-rows-container');\n\n // Get next exclude index\n var maxIndex = -1;\n $container.find('.exclude-row').each(function() {\n var idx = parseInt($(this).data('excludeIndex'), 10);\n if (idx > maxIndex) maxIndex = idx;\n });\n var excludeIndex = maxIndex + 1;\n\n var html = this.buildExcludeRowHtml($block, excludeIndex);\n $container.append(html);\n\n // Enhance the exclude method select with styled dropdown\n var $newRow = $container.find('.exclude-row[data-exclude-index=\"' + excludeIndex + '\"]');\n var $newSelect = $newRow.find('.exclude-method-select');\n this.enhanceMethodSelect($newSelect);\n\n // Update method info placeholder for initial selection\n var blockType = $block.data('blockType');\n var initialMethod = $newSelect.val();\n this.updateMethodInfoPlaceholder($newRow.find('.method-selector-wrapper'), initialMethod, blockType);\n\n this.serializeAllBlocks();\n },\n\n buildExcludeRowHtml: function($block, excludeIndex) {\n var blockType = $block.data('blockType');\n var blockDef = this.config.blocks[blockType] || {};\n var methods = blockDef.selection_methods || {};\n var trans = this.config.trans || {};\n\n // Build exclude method options with optgroups (no \"all\")\n var excludeMethodOptions = this.buildMethodOptions(methods, true);\n\n // Find first non-all method for default search entity\n var firstSearchEntity = blockType;\n var firstValueType = 'entity_search';\n $.each(methods, function(methodKey, methodDef) {\n if (methodKey === 'all') return true;\n firstSearchEntity = methodDef.search_entity || blockType;\n firstValueType = methodDef.value_type || 'entity_search';\n return false; // break\n });\n\n var html = '
';\n\n // Header row with method select wrapped in method-selector-wrapper (same as include)\n html += '
';\n html += '
';\n html += '';\n html += ' 0';\n html += '';\n html += '
';\n html += '';\n html += '
';\n\n // Value picker based on first method's value type\n html += this.buildValuePickerHtml('exclude', firstValueType, firstSearchEntity, methods);\n\n html += '
';\n\n return html;\n },\n\n removeExcludeRow: function($excludeRow, $group, $block) {\n var $container = $group.find('.exclude-rows-container');\n var trans = this.config.trans || {};\n\n $excludeRow.remove();\n\n // Check if there are remaining exclude rows\n var remainingRows = $container.find('.exclude-row').length;\n\n if (remainingRows === 0) {\n // Remove entire excludes section and show \"Add exceptions\" button\n var $excludesDiv = $group.find('.group-excludes');\n $excludesDiv.removeClass('has-excludes').html(\n ''\n );\n // Unlock the method selector since no excludes exist\n this.updateMethodSelectorLock($group, false);\n }\n\n this.serializeAllBlocks();\n },\n\n // Method options building\n buildMethodOptions: function(methods, excludeAll) {\n var self = this;\n var trans = this.config.trans || {};\n var html = '';\n\n // Group labels\n var groupLabels = {\n 'select_by': trans.select_by || 'Select by...',\n 'filter_by': trans.filter_by || 'Filter by...'\n };\n\n // Separate methods by group\n var grouped = {};\n var ungrouped = {};\n\n $.each(methods, function(methodKey, methodDef) {\n if (excludeAll && methodKey === 'all') return true; // skip\n\n var group = methodDef.group || '';\n if (group) {\n if (!grouped[group]) {\n grouped[group] = {};\n }\n grouped[group][methodKey] = methodDef;\n } else {\n ungrouped[methodKey] = methodDef;\n }\n });\n\n // Render ungrouped options first\n $.each(ungrouped, function(methodKey, methodDef) {\n html += self.buildMethodOption(methodKey, methodDef);\n });\n\n // Render grouped options with optgroups\n $.each(grouped, function(groupKey, groupMethods) {\n var groupLabel = groupLabels[groupKey] || groupKey.replace(/_/g, ' ');\n html += '';\n $.each(groupMethods, function(methodKey, methodDef) {\n html += self.buildMethodOption(methodKey, methodDef);\n });\n html += '';\n });\n\n return html;\n },\n\n buildMethodOption: function(methodKey, methodDef) {\n var html = '