diff --git a/assets/css/admin/entity-selector.css b/assets/css/admin/entity-selector.css index a3831eb..b069df0 100644 --- a/assets/css/admin/entity-selector.css +++ b/assets/css/admin/entity-selector.css @@ -8579,6 +8579,67 @@ body > .target-search-dropdown .dropdown-item:not(:last-child) { opacity: 0.9; } +.schedule-preview-dropdown { + display: none; + position: absolute; + top: 100%; + left: 50%; + transform: translateX(-50%); + margin-top: 4px; + z-index: 1000; + min-width: 180px; + padding: 0.5rem; + background: #ffffff; + border: 1px solid #dee2e6; + border-radius: 0.25rem; + box-shadow: 0 1rem 3rem rgba(0, 0, 0, 0.175); + font-size: 0.875rem; + text-align: left; + white-space: nowrap; +} + +.schedule-preview-item { + display: flex; + align-items: flex-start; + gap: 0.5rem; + padding: 0.25rem 0; + color: #212529; +} +.schedule-preview-item .material-icons { + flex-shrink: 0; + font-size: 16px; + color: #6c757d; +} +.schedule-preview-item strong { + font-weight: 600; +} +.schedule-preview-item .schedule-time { + color: #6c757d; +} + +.btn-schedule-preview { + position: relative; + display: inline-flex; + align-items: center; + justify-content: center; + gap: 0.25rem; + min-width: 20px; + height: 20px; + padding: 0 0.5rem; + background: #25b9d7; + color: #ffffff; + font-size: 0.75rem; + font-weight: 600; + border-radius: 50rem; + cursor: pointer; + text-transform: none; +} +.btn-schedule-preview .icon-eye { + font-size: 10px; + line-height: 1; + opacity: 0.8; +} + /** * Entity Selector Styles * @package prestashop-entity-selector diff --git a/assets/css/admin/entity-selector.css.map b/assets/css/admin/entity-selector.css.map index fd142c1..bd2dbaf 100644 --- a/assets/css/admin/entity-selector.css.map +++ b/assets/css/admin/entity-selector.css.map @@ -1 +1 @@ -{"version":3,"sources":["main.scss","_variables.scss","../../../prestashop-admin/assets/scss/_variables.scss","_mixins.scss","layouts/_form-integration.scss","layouts/_responsive.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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;EACA,OJjJC;;AIqJL;AAAA;EACI;EACA,YL5JG;EK6JH;;AAIJ;AAAA;EACI;EACA;EACA;EACA;EACA,YL/HO;EKgIP;;AAGJ;AAAA;EACI;EACA;EACA;EACA,KL9FQ;EK+FR;EACA;EACA;EACA;EACA;EACA;EACA;EACA,OJnLI;EIoLJ,WLvDU;EKwDV,aLnDgB;EKoDhB;EACA;;AAEA;AAAA;EACI,YLrJG;EKsJH,OLjJG;;AKoJP;AAAA;EACI,YLlMD;EKmMC,qBL9IE;EK+IF,OJlMF;;AIqMF;AAAA;EACI,WLxEM;;AK2EV;AAAA;EACI;;AAGJ;AAAA;EH5CJ;EACA;EACA;EACA;EACA;EACA;EACA;EACA,YDxKM;ECyKN,OF3KO;EE4KP,WF7Cc;EE8Cd,aFvCsB;EEwCtB,eFjFa;EEkFb;EACA;EACA;;AAEA;AAAA;EACI;EACA;;AAIJ;AAAA;EACI;EACA;;AAIJ;AAAA;EACI;;AAEA;AAAA;EACI;EACA;;AAGJ;AAAA;EACI;EACA;;AAKR;AAAA;AAAA;EAEI,YFtKO;EEuKP;;AAEA;AAAA;AAAA;EACI;EACA;;AAKR;AAAA;EACI;EACA;;AAIJ;AAAA;EACI;EACA;EACA;;AAGJ;AAAA;EACI;;AAGJ;AAAA;EACI,aFpGc;;AK4Ed;AAAA;EHhDJ;EACA;EACA;EACA;EACA;EACA;EACA;EACA,YFhIW;EEiIX,OF3KO;EE4KP,WF7Cc;EE8Cd,aFvCsB;EEwCtB,eFjFa;EEkFb;EACA;EACA;;AAEA;AAAA;EACI;EACA;;AAIJ;AAAA;EACI;EACA;;AAIJ;AAAA;EACI;;AAEA;AAAA;EACI;EACA;;AAGJ;AAAA;EACI;EACA;;AAKR;AAAA;AAAA;EAEI,YFtKO;EEuKP;;AAEA;AAAA;AAAA;EACI;EACA;;AAKR;AAAA;EACI;EACA;;AAIJ;AAAA;EACI;EACA;EACA;;AAGJ;AAAA;EACI;;AAGJ;AAAA;EACI,aFpGc;;AKkFlB;AAAA;EACI;EACA;EACA,YLrLO;EKsLP;EACA;;AAEA;AAAA;EACI;EACA;EACA;;AAKR;AAAA;EACI;EACA;EACA;EACA;EACA,YLtMO;EKuMP;EACA,OL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EACI;EACA;;AAKR;AAAA;EACI;EACA;EACA;EACA;EACA,KPhSQ;EOiSR,SP9RQ;EO+RR;EACA,ONhXI;;AMkXJ;AAAA;EACI;EACA;;AAGJ;AAAA;EACI;EACA,WP5PM;;AOiQd;AAAA;EACI;EACA;EACA;EACA,SPlTQ;EOmTR,ONnYI;;AMqYJ;AAAA;EACI;EACA;;AAKR;AAAA;EACI;EACA;EACA;EACA,KN5ZC;EM6ZD;EACA,YP/WM;EOgXN;EACA;;AAIJ;AAAA;EACI;EACA;EACA,KP/UQ;EOgVR,WPhSU;EOiSV,ON7ZI;;AM+ZJ;AAAA;EACI,ONhaA;;AMmaJ;AAAA;AAAA;AAAA;EAEI;EACA;EACA;EACA,eNlZO;EMmZP;EACA;EACA,WP/SM;EOgTN,OP9YE;EO+YF;EACA;;AAEA;AAAA;AAAA;AAAA;EACI,cNlbN;;AMqbE;AAAA;AAAA;AAAA;EACI;EACA,cNvbN;;AM2bF;AAAA;EACI,ON3bA;;AM6bA;AAAA;EACI,OPhaF;EOiaE,aP5TU;;AOgUlB;AAAA;ELvaJ;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;AAAA;EACI;;AK8ZA;AAAA;EAEI;EACA,WP1UM;EO2UN,ONxcF;EMycE;EACA,eNnbO;EMobP;;AAEA;AAAA;EACI,YP1cG;;AOgdf;AAAA;EACI;EACA;EACA,KPzYQ;;AO4YZ;AAAA;EL7bA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;AAAA;EACI;;AKobJ;AAAA;EAEI;EACA;EACA;EACA;EACA,WPnWU;EOoWV,aP9VgB;EO+VhB,eN3cW;EM4cX;;AAEA;AAAA;EACI;EACA;EACA;EACA;EACA,aPxWY;;AO2WhB;AAAA;EACI,OP/cE;EOgdF,YPjfD;EOkfC;;AAEA;AAAA;EACI,YP9cD;EO+cC,cPxdF;;AO4dN;AAAA;AAAA;EAEI,OP5fD;EO6fC,YN3fF;EM4fE;;AAEA;AAAA;AAAA;EACI,YP5fG;EO6fH,cP7fG;;AOggBP;AAAA;AAAA;EACI;;AAMZ;AAAA;EACI;;AAGJ;AAAA;EACI;;AAIJ;AAAA;EACI,SN/hBC;EMgiBD,YPjfM;EOkfN;;AAGJ;AAAA;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xBR,SNl3BC;EMm3BD,YNl2BA;EMm2BA;EACA;EACA;;AAGJ;AAAA;EACI,WPjvBU;EOkvBV,aP5uBkB;EO6uBlB,OPh1BM;EOi1BN;;AAGJ;AAAA;EACI;EACA;EACA,KP3yBQ;EO4yBR;EACA;EACA;;AAGJ;AAAA;AAAA;AAAA;ELj2BA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;AAAA;AAAA;AAAA;EACI;;AKw1BJ;AAAA;AAAA;AAAA;EAGI;EACA;EACA;EACA;EACA,WPxwBU;EOywBV,OPv2BM;EOw2BN,YPz4BG;EO04BH;EACA,eNl3BW;EMm3BX;EACA;;AAEA;AAAA;AAAA;AAAA;EACI,YPp3BE;EOq3BF,cPx2BG;;AO22BP;AAAA;AAAA;AAAA;EACI;EACA;EACA,YPh3BG;EOi3BH;EACA,ONt5BA;;AM05BR;AAAA;EACI;EACA;;AAIJ;AAAA;ELj0BA;EACA;EACA,WF4Bc;EE3Bd,aFqCoB;EEpCpB,OFnEU;EEoEV,kBFvGO;EEwGP;EACA,eDjFY;ECkFZ;;AAEA;AAAA;EACI,cD3GE;EC4CN;EACA;;AAkEA;AAAA;EACI,OFnFM;;AOo4BV;AAAA;EAEI;EACA,WPvyBU;EOwyBV;EACA;EACA;EACA;;AAGJ;AAAA;EACI;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA,ONp7BI;EMq7BJ,YPx7BG;EOy7BH;EACA;EACA;EACA;;AAEA;AAAA;EACI;;AAGJ;AAAA;EACI,YPv6BE;EOw6BF,OPj6BE;;AOo6BN;AAAA;EACI,YPl8BO;EOm8BP,cNv8BF;EMw8BE,ONx8BF;;AM48BN;AAAA;EL52BA;EACA;EACA,WF4Bc;EE3Bd,aFqCoB;EEpCpB,OFnEU;EEoEV,kBFvGO;EEwGP;EACA,eDjFY;ECkFZ;;AAEA;AAAA;EACI,cD3GE;EC4CN;EACA;;AAkEA;AAAA;EACI,OFnFM;;AO+6BV;AAAA;EAEI;EACA,WPl1BU;EOm1BV;EACA;;AAGJ;AAAA;AAAA;AAAA;EAEI;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA,ON99BI;EM+9BJ,YPl+BG;EOm+BH;EACA,eN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EACI,WP/tCM;EOguCN,aPztCc;EO0tCd,OP/zCE;EOg0CF;;AAGJ;AAAA;ELr0CJ;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;AAAA;EACI;;AK4zCA;AAAA;EAEI;EACA;EACA;EACA;EACA;EACA;EACA,ONz2CA;EM02CA,eNp1CO;;AMs1CP;AAAA;EACI,YPx0CD;EOy0CC,OP90CF;;AOo1CV;AAAA;EACI,aPnvCgB;;AOsvCpB;AAAA;EACI;EACA,ON13CI;EM23CJ;;AAGJ;AAAA;AAAA;AAAA;EACI;;AAIJ;AAAA;EACI;EACA;;AL7wCJ;AAAA;EACI;EACA;;AAGJ;AAAA;EACI,YDzHA;EC0HA;;AAGJ;AAAA;EACI,YD/GO;ECgHP;;AAEA;AAAA;EACI,YF5GE;;AO82CV;AAAA;EACI;EACA;EACA,KPh0CQ;EOi0CR,SPh0CQ;;AOm0CZ;AAAA;EACI;EACA;EACA;EACA;EACA;EACA;;AAEA;AAAA;EACI,YN15CF;EM25CE,cN35CF;;AM+5CN;AAAA;EACI;EACA;EACA;EACA;EACA,eN74CW;EM84CX,YPh4CO;;AOm4CX;AAAA;EACI;EACA;;AAGJ;AAAA;EACI,WPhzCU;EOizCV,aP5yCgB;EO6yChB,OP/4CM;EEfV;EACA;EACA;;AKg6CA;AAAA;EACI,WPxzCU;EOyzCV,ONr7CI;ECiBR;EACA;EACA;;AKu6CA;AAAA;EACI;EACA;EACA;EACA,KN18CC;EM28CD;EACA,YP75CM;EO85CN;EACA;;AAGJ;AAAA;EACI;EACA;EACA,KP53CQ;EO63CR,WP70CU;EO80CV,ON18CI;;AM48CJ;AAAA;EACI,ON78CA;;AMg9CJ;AAAA;AAAA;AAAA;EAEI;EACA;EACA;EACA,eN/7CO;EMg8CP;EACA;EACA,WP51CM;EO61CN,OP37CE;EO47CF;EACA;;AAEA;AAAA;AAAA;AAAA;EACI,cN/9CN;;AMk+CE;AAAA;AAAA;AAAA;EACI;EACA,cNp+CN;;AMw+CF;AAAA;EACI,ONx+CA;;AM0+CA;AAAA;EACI,OP78CF;EO88CE,aPz2CU;;AO82CtB;AAAA;EACI;EACA;EACA,KPv6CQ;;AO06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;EACA,YR3vBO;EQ4vBP,ePluBe;EOmuBf,YRvpBW;EQwpBX;;AAEA;EACI;EACA;EACA;EACA,KRprBQ;EQqrBR;EACA,YP9vBA;EO+vBA;;AAGJ;EACI;EACA;EACA,KR7rBQ;EQ8rBR,WR9oBU;EQ+oBV,aRzoBkB;EQ0oBlB,OR7uBM;;AQgvBV;EACI;EACA;;AAGJ;ENzvBA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACI;;AMgvBJ;EAEI;EACA;EACA;EACA;EACA;EACA,OP5xBI;EO6xBJ,ePxwBQ;EOywBR;;AAEA;EACI,YR5vBG;EQ6vBH,ORpwBE;;AQuwBN;EACI;;AAIR;EACI;EACA;EACA,SRhuBQ;;AE2CZ;EACI;EACA;;AAGJ;EACI,YDzHA;EC0HA;;AAGJ;EACI,YD/GO;ECgHP;;AAEA;EACI,YF5GE;;AQuxBV;EACI;EACA;EACA;EACA,KRzuBQ;EQ0uBR;EACA,OPxzBI;EOyzBJ,WR5rBU;;AQ8rBV;EACI;;AAGJ;EACI;;AAKR;EACI;EACA;EACA,OPx0BI;;AO00BJ;EACI;EACA;EACA,eRhwBI;EQiwBJ;;AAGJ;EACI;EACA,WRttBM;;AQ2tBd;EACI;EACA;EACA,KR/wBQ;;AQkxBZ;EACI;EACA;EACA,KP72BC;EO82BD;EACA,YRh0BM;EQi0BN,eP/0BQ;EOg1BR;;AAEA;EAEI,mBPr2BL;;AOw2BC;EACI,mBP12BF;;AO62BF;EAEI;;AAIR;EACI;EACA;;AAEA;EACI;EACA,WR/vBM;EQgwBN,aR1vBc;EQ2vBd,OR91BE;;AQi2BN;EACI;EACA,WRvwBM;EQwwBN,OPp4BA;;AOw4BR;EACI;EACA;;AAGJ;EACI;EACA;EACA;EACA;;AAGJ;EACI;EACA,WRzxBU;EQ0xBV,ORv3BM;EQw3BN;;AAGJ;EACI;EACA,aRh1BQ;EQi1BR;EACA;EACA,aR9xBgB;EQ+xBhB;EACA,YR73BO;EQ83BP,ORr4BM;EQs4BN,eP94BW;EO+4BX;;AAGJ;EACI,YPr7BC;EOs7BD,WR9yBU;EQ+yBV,OP36BI;EO46BJ;;AAIJ;EACI;EACA;EACA,KRv2BQ;EQw2BR;EACA;EACA,YRn5BM;;AQq5BN;EACI;EACA,OP17BA;;AO67BJ;EACI;EACA;EACA;EACA,WRp0BM;EQq0BN,ORl6BE;EQm6BF;EACA;;AAEA;EACI,OPv8BJ;;;AO88BZ;EACI;IACI;;EAEJ;IACI;;;AAcI;AAAA;AAAA;AAAA;AAAA;AAAA;EACI;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA,ePt9BG;EOu9BH;EACA;EACA,OR/8BF;EQg9BE;EACA;;AAEA;AAAA;AAAA;AAAA;AAAA;AAAA;EACI,OPp/BR;EOq/BQ;;AAGJ;AAAA;AAAA;AAAA;AAAA;AAAA;EACI;EACA,cP3/BV;EO4/BU;;AAKR;AAAA;AAAA;AAAA;AAAA;AAAA;EACI;EACA;EACA;EACA;EACA,eP/+BG;EOg/BH;EACA;EACA;EACA;EACA,OR5+BF;EQ6+BE;EACA;EACA;EACA;;AAEA;AAAA;AAAA;AAAA;AAAA;AAAA;EACI,cPlhCV;;AOqhCM;AAAA;AAAA;AAAA;AAAA;AAAA;EACI;EACA,cPvhCV;EOwhCU;;;ATziCpB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AUAA;AAAA;AAAA;AAAA;AAYI;AAAA;EACI,YTEG;ESDH;EACA,eR0BW;EQzBX;;AAIJ;AAAA;EACI;EACA;EACA;EACA,KRlBC;EQmBD;EACA,YRHA;EQIA;;AAGJ;AAAA;EACI;EACA;EACA,KT8DQ;ES7DR,WT6GU;ES5GV,aTkHkB;ESjHlB,OTcM;;ASZN;AAAA;EACI;EACA;EACA;EACA;EACA;EACA;EACA,YR5BF;EQ6BE,OT/BD;ESgCC,WT+FM;ES9FN,aTsGU;ESrGV,eT2DK;;ASvDb;AAAA;EACI;EACA;EACA,KTsCQ;;ASnCZ;AAAA;EPbA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;AAAA;EACI;;AOIJ;AAAA;EAEI;EACA;EACA;EACA;EACA;EACA,ORhDI;EQiDJ,eR3BW;EQ4BX;;AAEA;AAAA;EACI,YThBG;ESiBH,OTxBE;;AS2BN;AAAA;EACI,YT/CM;ESgDN,ORzDH;;AQ8DL;AAAA;AAAA;AAAA;EAEI,SR9EC;;AQkFL;AAAA;EACI,eRnFC;;AQsFL;AAAA;EACI;EACA;EACA,KTDQ;ESER,eTDQ;ESER,WT6CU;ES5CV,aTmDkB;ESlDlB;EACA;;AAEA;AAAA;EACI,OT7EM;;AS+EN;AAAA;EACI,ORvFN;;AQ2FF;AAAA;EACI,OR3FH;;AQ6FG;AAAA;EACI,OR9FP;;AQoGL;AAAA;EACI;EACA;EACA,KT5BQ;ES6BR,eT7BQ;;ASgCZ;AAAA;EACI;EACA;;AAGJ;AAAA;EPnBA;EACA;EACA,WF4Bc;EE3Bd,aFqCoB;EEpCpB,OFnEU;EEoEV,kBFvGO;EEwGP;EACA,eDjFY;ECkFZ;;AAEA;AAAA;EACI,cD3GE;EC4CN;EACA;;AAkEA;AAAA;EACI,OFnFM;;ASsFV;AAAA;EAEI;EACA;EACA;EACA;EACA;EACA;EACA;;AAGJ;AAAA;EPjGA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;AAAA;EACI;;AOwFJ;AAAA;EAEI;EACA;EACA;EACA;EACA;EACA,ORpII;EQqIJ,eT3CS;ES4CT;;AAEA;AAAA;EACI,YTrGG;ESsGH,OR3IF;;AQgJN;AAAA;EACI;;AAGJ;AAAA;EPvHA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;AAAA;EACI;;AO8GJ;AAAA;EAEI;EACA;EACA,KT1EQ;ES2ER;EACA;EACA,YT7JG;ES8JH;EACA,eRvIQ;EQwIR,OR7JI;EQ8JJ,WTjCU;ESkCV;EACA;;AAEA;AAAA;EACI,cT7HG;;ASgIP;AAAA;EACI,cRxKF;EC4CN;EACA;;AO+HI;AAAA;EACI,OThJE;;ASqJV;AAAA;EACI;;AAGJ;AAAA;EPtFA;EACA;EACA,WF4Bc;EE3Bd,aFqCoB;EEpCpB,OFnEU;EEoEV,kBFvGO;EEwGP;EACA,eDjFY;ECkFZ;;AAEA;AAAA;EACI,cD3GE;EC4CN;EACA;;AAkEA;AAAA;EACI,OFnFM;;ASyJV;AAAA;EAEI;;AAGJ;AAAA;EP9JA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;AAAA;EACI;;AOqJJ;AAAA;EAEI;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA,ORtME;EQuMF,eRhLW;EQiLX;;AAEA;AAAA;EACI,YTvMO;;AS4Mf;AAAA;EACI;EACA;EACA,KTrIQ;;ASwIZ;AAAA;EACI;EACA;EACA,KT3IQ;;AS8IZ;AAAA;EP5HA;EACA;EACA,WF4Bc;EE3Bd,aFqCoB;EEpCpB,OFnEU;EEoEV,kBFvGO;EEwGP;EACA,eDjFY;ECkFZ;;AAEA;AAAA;EACI,cD3GE;EC4CN;EACA;;AAkEA;AAAA;EACI,OFnFM;;AS+LV;AAAA;EAEI;EACA;;AAGJ;AAAA;EACI,ORlOI;EQmOJ,WTtGU;;ASyGd;AAAA;EP1MA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;AAAA;EACI;;AOiMJ;AAAA;EAEI;EACA;EACA;EACA;EACA;EACA,OR7OI;EQ8OJ,eRxNW;EQyNX;;AAEA;AAAA;EACI,YTvOM;ESwON,ORjPH;;AQqPL;AAAA;EP3NA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;AAAA;EACI;;AOkNJ;AAAA;EAEI;EACA;EACA;EACA;EACA,OR9PE;EQ+PF,WTlIU;ESmIV,aT7HgB;ES8HhB,eR1OW;EQ2OX;;AAEA;AAAA;EACI,YTjQO;;ASsQf;AAAA;EACI;EACA;EACA,KThMQ;;ASmMZ;AAAA;EPnPA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;AAAA;EACI;;AO0OJ;AAAA;EAEI;EACA;EACA;EACA;EACA,YTjPO;ESkPP,OTxPM;ESyPN,WT3JU;ES4JV,aTtJgB;ESuJhB;EACA,eThMS;ESiMT;;AAEA;AAAA;EACI,YTzPG;;AS4PP;AAAA;EACI,YT/RO;ESgSP,ORpSF;EQqSE,cRrSF;;AQ0SN;AAAA;EACI,YRtTC;EQuTD,aRvTC;EQwTD;;AAIJ;AAAA;EACI;EACA;EACA,KTtOQ;;ASyOZ;AAAA;EACI;;AAGJ;AAAA;EP9RA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;AAAA;EACI;;AOqRJ;AAAA;EAEI;EACA;EACA;EACA;EACA;EACA,ORjUI;EQkUJ,eR5SW;EQ6SX;EACA;;AAEA;AAAA;EACI,YT5TM;ES6TN,ORtUH;;AQ0UL;AAAA;EPhTA;EACA;EACA;EACA;E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CI;EACA;EACA;;AAEA;AAAA;EACI;EACA;;AAKR;AAAA;ERlGA;EACA;EACA;EACA;EACA;EACA;EACA;EACA,YDxKM;ECyKN,OF3KO;EE4KP,WF7Cc;EE8Cd,aFvCsB;EEwCtB,eFjFa;EEkFb;EACA;EACA;;AAEA;AAAA;EACI;EACA;;AAIJ;AAAA;EACI;EACA;;AAIJ;AAAA;EACI;;AAEA;AAAA;EACI;EACA;;AAGJ;AAAA;EACI;EACA;;AAKR;AAAA;AAAA;EAEI,YFtKO;EEuKP;;AAEA;AAAA;AAAA;EACI;EACA;;AAKR;AAAA;EACI;EACA;;AAIJ;AAAA;EACI;EACA;EACA;;AAGJ;AAAA;EACI;;AAGJ;AAAA;EACI,aFpGc;;AU8HlB;AAAA;EAEI,aVvLQ;;;AD/FhB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AYAA;AAAA;AAAA;AAAA;AAUA;EACI;EACA;EACA;EACA;EACA;EACA;EACA,SXmHS;EWlHT;EACA;;AAEA;EACI;;;AAKR;EACI;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA,YXrBO;EWsBP,eXsEW;EWrEX,YX+EW;EW9EX;EACA;EACA;EACA;EACA;;AAEA;EACI;EACA;;AAGJ;EACI;;AAGJ;EACI;;AAGJ;EACI;;AAGJ;EACI;EACA;EACA;EACA;;;AAKR;EACI;EACA;EACA;EACA,KVrEK;EUsEL;EACA,YVtDI;EUuDJ;EACA;;;AAGJ;EACI,WX6DgB;EW5DhB,aXiEsB;EWhEtB,OXnCU;EWoCV;;;AAGJ;ET3CI;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACI;;ASkCR;EAEI;EACA;EACA;EACA;EACA;EACA,OV9EQ;EU+ER,eV1DY;EU2DZ;;AAEA;EACI,YX9CO;EW+CP,OXtDM;;AWyDV;EACI,WXuCU;;;AWlClB;EACI;EACA;EACA,SXjBY;;AEyCZ;EACI;EACA;;AAGJ;EACI,YDzHA;EC0HA;;AAGJ;EACI,YD/GO;ECgHP;;AAEA;EACI,YF5GE;;;AW0Ed;EACI;EACA;EACA;EACA,KX5BY;EW6BZ;EACA,YVtGI;EUuGJ;EACA;;;AAGJ;ETpFI;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACI;;AS2ER;EAEI;EACA;EACA;EACA,KXzCY;EW0CZ;EACA,WXMc;EWLd,aXUoB;EWTpB,eVpGY;EUqGZ;;AAEA;EACI,OX/FM;EWgGN,YX1FO;;AW4FP;EACI,YX5FG;;AWgGX;EACI,OXzIG;EW0IH,YVxIE;;AU0IF;EACI,YXxIO;;AW4If;EACI,OXlJG;EWmJH,YV9IC;;AUgJD;EACI;;AAIR;EACI;EACA;;;AAMR;EACI;EACA;EACA;EACA,KXtFY;EWuFZ;EACA,YVhKI;EUiKJ;EACA;;;AAGJ;EACI,WX9Cc;EW+Cd,aXzCsB;EW0CtB,OX7IU;;;AWgJd;ETpJI;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACI;;AS2IR;EAEI;EACA;EACA;EACA;EACA;EACA,OVvLQ;EUwLR,eVlKe;EUmKf;;AAEA;EACI,YXvJO;EWwJP,OX/JM;;;AWmKd;EACI;EACA;EACA,SXvHY;;AE2CZ;EACI;EACA;;AAGJ;EACI,YDzHA;EC0HA;;AAGJ;EACI,YD/GO;ECgHP;;AAEA;EACI,YF5GE;;;AW6Kd;EACI;EACA;EACA;EACA,KX/HY;EWgIZ;EACA,YVzMI;EU0MJ;EACA;;;AAGJ;EACI,WXxFc;EWyFd,OVrNQ;;;AUwNZ;ET5LI;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACI;;ASmLR;EAEI;EACA;EACA;EACA;EACA,WXlGc;EWmGd,aX7FoB;EW8FpB,OVjOM;EUkON,eV3Me;EU4Mf;;AAEA;EACI,YXlOW;;;AWuOnB;EACI;EACA;EACA;EACA,YXjPO;EWkPP;EACA;;AAEA;EACI;EACA;EACA;EACA;EACA;;AAGJ;EACI;EACA;EACA;EACA;EACA;;;AAQR;EACI;EACA;EACA;EACA;EACA;EACA;EACA,SX5JS;;AW8JT;EACI;EACA;EACA;;AAGJ;EACI;EACA;EACA;EACA;EACA;EACA;EACA;;AAGJ;EACI;EACA;EACA;EACA;EACA,YXxSG;EWySH,eV/QW;EUgRX,YXpMO;EWqMP;EACA;EACA;;AAGJ;EACI;EACA;EACA;EACA,KV7TC;EU8TD;EACA,YV9SA;EU+SA;EACA;;AAGJ;EACI;EACA;EACA,KX9OQ;EW+OR,WX9LY;EW+LZ,aX1LkB;EW2LlB,OX9RM;EW+RN;;AAEA;EACI;EACA,OVpUF;;AUwUN;ET3SA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACI;;ASkSJ;EAEI;EACA;EACA;EACA;EACA;EACA,OV9UI;EU+UJ,eV1TQ;EU2TR;;AAEA;EACI,YX9SG;EW+SH,OXtTE;;AWyTN;EACI;;AAIR;EACI;EACA;EACA,SXhRQ;;AEyCZ;EACI;EACA;;AAGJ;EACI,YDzHA;EC0HA;;AAGJ;EACI,YD/GO;ECgHP;;AAEA;EACI,YF5GE;;AWyUV;EACI;EACA;EACA;EACA,KX3RQ;EW4RR;EACA,OV1WI;EU2WJ,WX9OU;;AWgPV;EACI,WX/OM;;AWoPd;EACI;EACA;EACA,OVtXI;;AUwXJ;EACI;EACA;EACA,eVvYH;;AU0YD;EACI;;AAGJ;EACI,WXvQM;EWwQN,OVpYA;;AUyYR;EACI;EACA;EACA,KX/TQ;;AWkUZ;EACI;EACA;EACA,KV9ZC;EU+ZD;EACA,YXjXM;EWkXN,eVhYQ;EUiYR;;AAEA;EACI,mBVrZL;;AUwZC;EACI,mBV1ZF;;AU6ZF;EACI;;AAIR;EACI;EACA;;AAEA;EACI;EACA,WX9SM;EW+SN,aXzSc;EW0Sd,OX7YE;;AWgZN;EACI;EACA,WXtTM;EWuTN,OVnbA;;AUubR;EACI;EACA;;AAGJ;EACI;EACA,WXjUU;EWkUV,OX/ZM;EWgaN;;AAGJ;EACI;EACA,YXzXQ;EW0XR;EACA;EACA,aXtUgB;EWuUhB;EACA,YXraO;EWsaP,OX7aM;EW8aN,eVtbW;;AUybf;EACI,YV5dC;EU6dD,WXrVU;EWsVV,OVldI;EUmdJ;;;AZreR;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AaAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAeA;AAAA;EAEI;EACA;EACA;EACA;EACA,YZNO;EYOP;EACA,eXkBe;EWjBf,YZ4FW;EY3FX;;AAGA;AAAA;EACI;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAGJ;AAAA;EACI;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAKA;AAAA;AAAA;EAEI;EACA;;AAMJ;AAAA;AAAA;EAEI;EACA;EACA;;;AASZ;EACI;EACA;EACA;EACA;EACA,YXxDI;EWyDJ;;AAEA;EACI,WZ4DU;EY3DV,aZiEkB;EYhElB,OZnCM;;AYsCV;EV1CA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACI;;AUiCJ;EAEI;EACA;EACA;EACA;EACA;EACA,OX7EI;EW8EJ,eXxDW;EWyDX;;AAEA;EACI,YZ7CG;EY8CH,OZnDE;;;AY4Dd;EACI;EACA;EACA;EACA;EACA,YZ9DU;EY+DV;;;AAGJ;EACI;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA,OX9GQ;EW+GR,WZac;EYZd,aZkBoB;EYjBpB;EACA;EACA;;AAEA;EACI,YZlFO;EYmFP,OZzFM;;AY4FV;EACI,YZ9HG;EY+HH,qBX7HE;EW8HF,OX9HE;;AWiIN;EACI;;;AAQR;EACI;EACA;EACA,KZ/DY;EYgEZ;EACA,YZjJO;EYkJP;;AAEA;EACI,OXlJI;EWmJJ;;AAGJ;EACI;EACA;EACA;EACA,WZ9BU;EY+BV,OZ3HM;EY4HN;;AAEA;EACI,OX/JA;;;AWwKZ;EACI;EACA;;;AAGJ;EACI;EACA;EACA;;AVxDA;EACI;EACA;;AAGJ;EACI,YDzHA;EC0HA;;AAGJ;EACI,YD/GO;ECgHP;;AAEA;EACI,YF5GE;;AYwJV;EACI;;;AAQR;EACI;EACA;EACA;;;AAQJ;EACI;EACA;EACA,KZ7HY;EY8HZ,SZ9HY;EY+HZ,YZ/MO;EYgNP,eXvLe;EWwLf;;AAEA;EACI,YZxLM;;AY4LV;EACI;;;AAKR;EACI;EACA;EACA;EACA;EACA,eX1Me;EW2Mf,YZ7LW;;;AYiMf;EACI;EACA;EACA;EACA;EACA;EACA;EACA,YZxMW;EYyMX,OX7OQ;EW8OR,eXxNe;EWyNf,WZlHc;;;AYsHlB;EACI;EACA;EACA;EACA;EACA;;;AAIJ;EACI,WZhIc;EYiId,aZ5HoB;EY6HpB,OZ/NU;EEfV;EACA;EACA;;;AUiPJ;AAAA;EAEI,WZ1Ic;EY2Id,OXvQQ;ECiBR;EACA;EACA;;;AUyPJ;EACI;EACA;EACA,WZnJc;EYoJd,aZ7IsB;EY8ItB,OXlRM;EWmRN,YZ/Qe;EYgRf,eX7Pe;;;AWoQnB;EACI;EACA,YZzPU;EY0PV;;;AAGJ;EACI;EACA;EACA;EACA,KZvNY;EYwNZ,WZzKc;EY0Kd,OXtSQ;;AWwSR;EACI;;AAGJ;EACI;EACA;EACA;EACA,eX1RW;EW2RX;EACA;EACA,WZvLU;EYwLV,aZlLgB;EYmLhB,OXtTE;EWuTF;EACA;EACA;EACA;EACA;;AAEA;EACI,cX9TF;EW+TE,kBZ3TO;;AY8TX;EACI;EACA,cXpUF;EWqUE;;AAIR;EACI;;AAGJ;EACI,aZ1MkB;EY2MlB,OZhTM;;AYmTV;EACI;EACA;EACA;EACA,SZzQQ;EY0QR;EACA;EACA,OXzVE;EW0VF,YZtVW;EYuVX,eXpUW;EWqUX;EACA;EACA;;AAEA;EACI;;AAGJ;EACI;;AAGJ;EACI;;AAEA;EACI;;;AAUhB;EACI;EACA;EACA;EACA;EACA,KZ7SY;EY8SZ,SZ3SY;EY4SZ;EACA,OX7XQ;;AW+XR;EACI;EACA;;AAGJ;EACI;EACA,WZzQU;;;AY6QlB;EACI;EACA;EACA;EACA,SZ9TY;EY+TZ,OX/YQ;;AWiZR;EACI;EACA,OXpZE;EWqZF;;;AAQR;EACI;EACA;;AAEA;EACI;EACA;EACA;EACA,KXhbC;EWibD;EACA,YXjaA;EWkaA;;AAEA;EACI,aZvSc;EYwSd,OZ3YE;EY4YF,WZ/SM;;AYkTV;EACI;EACA,WZrTM;EYsTN,aZhTY;EYiTZ,OXnbA;EWobA,YZ/YG;EYgZH;EACA,eXhaO;;AWoaf;EACI;;AAGJ;EACI;EACA;EACA;;AAGJ;EACI;EACA;EACA,KZ1XQ;EY2XR;EACA;EACA;;AAEA;EACI,YZ1aE;;AY6aN;EACI;EACA;EACA,OXndA;EWodA;;AAGJ;EACI;EACA,WZ5VM;EY6VN,OZ1bE;;AY6bN;EACI,WZjWM;EYkWN,aZ5Vc;EY6Vd,OXjeF;EWkeE;EACA;EACA,eX7cO;;;AWmdnB;EACI;EACA;;AAEA;EACI;;AAGJ;EACI;;;AbpgBR;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AcAA;AAAA;AAAA;AAAA;AASA;EACI,YbKO;EaJP;EACA,eZ6Be;;;AYzBnB;EACI;EACA;EACA;EACA,KZdK;EYeL;EACA,YZCI;EYAJ;EACA;EACA;EACA;EACA;;AAEA;EACI,YbaM;;;AaTd;EACI;EACA;EACA;EACA,WbyGc;EaxGd,ab8GsB;Ea7GtB,ObUU;;AaRV;EACI,OZzBI;;;AY8BZ;EACI,SZ3CK;;;AY+CT;EACI,eb2CY;;AazCZ;EACI;;;AAIR;EACI;EACA;EACA,Kb+BY;Ea9BZ,eb8BY;Ea7BZ,Wb6Ec;Ea5Ed,abkFsB;EajFtB,OblBU;;AaoBV;EACI,OZrDI;;;AYyDZ;EACI,eZtEK;EYuEL,WbiEc;EahEd,OZ5DQ;;;AYgEZ;EACI;EACA;EACA,KZ/EK;;;AYkFT;EACI;EACA;;;AAGJ;EACI;EACA;EACA,Wb8Cc;Ea7Cd,abmDoB;EalDpB,OblDU;;;AaqDd;EXYI;EACA;EACA,WF4Bc;EE3Bd,aFqCoB;EEpCpB,OFnEU;EEoEV,kBFvGO;EEwGP;EACA,eDjFY;ECkFZ;;AAEA;EACI,cD3GE;EC4CN;EACA;;AAkEA;EACI,OFnFM;;;Aa4Dd;EACI;EACA;EACA,KbdY;;;AaiBhB;EACI;EACA;EACA,KZ7GK;EY8GL,SbrBY;EasBZ,YbhEU;EaiEV,eZ/EY;;AYiFZ;EACI;;;AAIR;EACI;EACA;EACA,KbjCY;EakCZ;;;AAGJ;EACI;EACA;EACA;;;AAGJ;EACI,WbIc;EaHd,abQoB;EaPpB,Ob3FU;;;Aa+Fd;EACI;EACA;EACA;EACA,Yb9FW;Ea+FX,eb1Ca;Ea2Cb;;;AAGJ;EACI;EACA;EACA;EACA,YZ7IM;EY8IN,ebnDa;EaoDb;;;AAGJ;EACI;EACA;EACA;EACA;EACA,YbzJO;Ea0JP;EACA;EACA;EACA;EACA,Yb3DW;Ea4DX;;AAEA;EACI,Yb9DO;;AaiEX;EACI;;AAGJ;EACI;;AAGJ;EACI;;;AAKR;EACI;EACA;EACA,KbvGY;EawGZ;EACA,WbzDc;Ea0Dd;EACA,ObzJU;;;Aa4Jd;EACI,OZ3LQ;;;AY+LZ;EACI,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GO;;AgByGP;AAAA;EACI,YhBtGC;EgBuGD,qBhBrGE;;AgByGV;AAAA;EACI;EACA;EACA;EACA;;AAGJ;AAAA;EACI;EACA;EACA;EACA;EACA,YflJO;EemJP,ehB7ES;EgB8ET;EACA,ahBtCkB;EgBuClB;EACA;EACA,Of5KI;;Ae8KJ;AAAA;EACI,YfhLF;EeiLE,OhBnLD;;AgBwLP;AAAA;EACI;EACA;EACA;EACA;EACA,YhBvJM;EgBwJN;;AAGJ;AAAA;EdlKA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;AAAA;EACI;;AcyJJ;AAAA;EAEI;EACA;EACA;EACA;EACA;EACA;EACA,YhBzMG;EgB0MH;EACA,eflLW;EemLX,OfzMI;Ee0MJ;EACA,WhB/EU;EgBgFV;;AAEA;AAAA;EACI,YhB3KG;EgB4KH,chBzKG;EgB0KH,OhBtKG;;AgB0KX;AAAA;EACI;EACA;EACA;EACA;EACA,efpMW;EeqMX;EACA;;AAEA;AAAA;EACI,cfhOF;;AemOF;AAAA;EACI,OhB5LG;;AgBiMX;AAAA;EACI;EACA;EACA;EACA;EACA;EACA;;AdtHJ;AAAA;EACI;EACA;;AAGJ;AAAA;EACI,YDzHA;EC0HA;;AAGJ;AAAA;EACI,YD/GO;ECgHP;;AAEA;AAAA;EACI,YF5GE;;AgBuNV;AAAA;AAAA;AAAA;AAAA;AAAA;EAGI;EACA;EACA,OhBhNO;EgBiNP;EACA;;AAGJ;AAAA;EACI,Of3PC;;Ae+PL;AAAA;EACI;EACA;EACA;EACA;EACA,YhBzQG;EgB0QH;EACA;EACA;EACA,OhBjOO;EgBkOP;EACA;EACA;;AAEA;AAAA;EACI,YhB5OG;EgB6OH,cfjRA;;AeoRJ;AAAA;EACI,YftRF;EeuRE,chBpRO;EgBqRP,OhB1RD;;AgB4RC;AAAA;EACI,YhBxRG;EgByRH;;AAKZ;AAAA;EACI;EACA,OhB3PO;EgB4PP,YhB/PO;EgBgQP;EACA;EACA;EACA;;AAEA;AAAA;EACI,OhB7SD;EgB8SC;;AAQR;AAAA;EACI;EACA;EACA,KhBzOQ;;AgB4OZ;AAAA;EACI;EACA;EACA,KhB/OQ;EgBgPR,ShBh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","file":"entity-selector.css","sourcesContent":["/**\n * Entity Selector Styles\n * @package prestashop-entity-selector\n * @version 2.0.0\n *\n * Compiles to: assets/css/admin/entity-selector.css\n */\n\n// Foundation\n@use 'variables' as *;\n@use 'mixins' as *;\n\n// Layouts\n@use 'layouts/form-integration';\n@use 'layouts/responsive';\n\n// Components\n@use 'components/entity-selector';\n@use 'components/entity-item'; // Shared base for chips and list items\n@use 'components/dropdown';\n@use 'components/chips';\n@use 'components/groups';\n@use 'components/value-picker';\n@use 'components/modal';\n@use 'components/list-preview';\n@use 'components/schedule';\n@use 'components/tips';\n@use 'components/condition-trait';\n@use 'components/combinations';\n@use 'components/method-dropdown';\n@use 'components/tooltip';\n@use 'components/tree';\n@use 'components/validation';\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 * 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 * Entity Selector Mixins\n * Reusable patterns - prefer Bootstrap utilities in HTML where possible\n */\n\n@use \"sass:color\";\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: color.adjust($bg, $lightness: -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// Excludes .layout-form-group which uses standard PrestaShop form layout\n.form-group:has(.entity-selector-trait:not(.layout-form-group)),\n.form-group:has(.target-conditions-trait:not(.layout-form-group)),\n.form-group:has(.condition-trait:not(.layout-form-group)) {\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// SAFEGUARD: Force label visibility for form-group layout widgets\n// This overrides any conflicting rules (including fallback class rules)\n// when the widget has layout-form-group class indicating standard form integration\n.form-group:has(.layout-form-group) > .control-label {\n display: flex !important;\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// =============================================================================\n// Embedded Layout\n// =============================================================================\n// Use .layout-embedded for entity selectors nested inside other components\n// Removes outer wrapper styling to avoid redundant borders/backgrounds\n\n.target-conditions-trait.layout-embedded,\n.entity-selector-trait.layout-embedded {\n background: transparent;\n border: none;\n border-radius: 0;\n\n // Remove padding from groups container when embedded\n .groups-container {\n padding: 0;\n }\n\n // Remove block body padding\n .block-body {\n padding: 0;\n }\n\n // Remove block footer border when embedded\n .block-footer {\n border-top: none;\n padding: $es-spacing-sm 0 0;\n }\n\n // Simplify selection group when embedded - single thin border only\n .selection-group {\n background: $es-white;\n border: 1px solid $es-slate-200;\n border-radius: $es-radius-md;\n\n // Lighter group header in embedded mode\n .group-header {\n background: $es-slate-50;\n border-bottom-color: $es-slate-200;\n padding: $es-spacing-xs $es-spacing-sm;\n border-radius: $es-radius-md $es-radius-md 0 0;\n }\n\n // Reduce group body padding (slightly more than $es-spacing-sm for readability)\n .group-body {\n padding: 0.75rem;\n }\n\n // Reduce group-include section padding\n .group-include {\n padding: $es-spacing-xs;\n margin-bottom: $es-spacing-sm;\n }\n\n // Smaller modifiers section\n .group-modifiers {\n padding: $es-spacing-xs $es-spacing-sm;\n margin: $es-spacing-sm (-$es-spacing-sm) (-$es-spacing-sm);\n }\n }\n\n // Empty state - smaller padding\n .groups-empty-state {\n padding: $es-spacing-md;\n }\n\n // Smaller add group button\n .btn-add-group {\n padding: 0.375rem 0.625rem;\n font-size: $es-font-size-xs;\n }\n}\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 - 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 // Tabs row with actions (form-content layout)\n .entity-selector-tabs-row {\n display: flex;\n align-items: stretch;\n background: $es-slate-100;\n border-bottom: 1px solid $es-border-color;\n border-radius: $es-radius-lg $es-radius-lg 0 0;\n\n .target-block-tabs {\n flex: 1;\n border-bottom: 0;\n border-radius: $es-radius-lg 0 0 0;\n }\n }\n\n // Expand/collapse toggle area (entire section is clickable)\n .entity-selector-actions.btn-toggle-blocks {\n display: flex;\n align-items: center;\n justify-content: center;\n padding: 0 $es-spacing-md;\n background: $es-slate-100;\n border-left: 1px solid $es-border-color;\n color: $es-slate-400;\n cursor: pointer;\n transition: all $es-transition-fast;\n\n &:hover {\n background: $es-slate-200;\n color: $es-primary;\n }\n\n .material-icons {\n font-size: 20px !important;\n }\n }\n\n // When expanded - highlight the toggle area\n .entity-selector-trait:not(.blocks-collapsed) .entity-selector-actions.btn-toggle-blocks {\n background: $es-primary-light;\n border-left-color: $es-primary;\n color: $es-primary;\n }\n\n // Blocks content wrapper (for form-content layout collapse)\n .entity-selector-blocks-content {\n // Inherits styles from condition-trait-body context\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 &.result-flag {\n width: 32px;\n height: 24px;\n border-radius: 2px;\n box-shadow: 0 0 0 1px rgba(0, 0, 0, 0.1);\n background: transparent;\n\n img {\n object-fit: contain;\n }\n\n .flag-fallback {\n display: flex;\n align-items: center;\n justify-content: center;\n width: 100%;\n height: 100%;\n background: linear-gradient(135deg, #e8eaed 0%, #dadce0 100%);\n font-size: 14px;\n color: #5f6368;\n }\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 \"sass:color\";\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 // Country flag in chip\n .chip-flag {\n display: flex;\n align-items: center;\n justify-content: center;\n flex-shrink: 0;\n\n img {\n width: 18px;\n height: 12px;\n object-fit: cover;\n border-radius: 2px;\n box-shadow: 0 0 0 1px rgba(0, 0, 0, 0.1);\n }\n\n .flag-fallback {\n width: 18px;\n height: 12px;\n display: inline-flex;\n align-items: center;\n justify-content: center;\n background: linear-gradient(135deg, #e8eaed 0%, #dadce0 100%);\n border-radius: 2px;\n font-size: 10px;\n color: #5f6368;\n }\n }\n\n // Holiday preview button in country chip\n .chip-preview-holidays {\n @include button-reset;\n display: flex;\n align-items: center;\n justify-content: center;\n width: 18px;\n height: 18px;\n color: $es-primary;\n border-radius: 50%;\n flex-shrink: 0;\n transition: all $es-transition-fast;\n\n &:hover {\n background: rgba($es-primary, 0.15);\n color: darken($es-primary, 10%);\n }\n\n i.material-icons {\n font-size: 14px;\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: color.adjust($es-warning, $lightness: -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// ==========================================================================\n// Holiday Preview Popover (Country chip eye button)\n// ==========================================================================\n\n.holiday-preview-popover {\n position: absolute;\n z-index: 10001;\n width: 320px;\n max-width: 90vw;\n background: $es-white;\n border-radius: $es-radius-lg;\n box-shadow: $es-shadow-xl;\n overflow: hidden;\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 }\n\n .popover-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\n .popover-flag {\n border-radius: 2px;\n box-shadow: 0 0 0 1px rgba(0, 0, 0, 0.1);\n }\n\n .popover-close {\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-md;\n transition: all $es-transition-fast;\n\n &:hover {\n background: $es-slate-200;\n color: $es-text-secondary;\n }\n\n i.material-icons {\n font-size: 18px;\n }\n }\n\n .popover-body {\n max-height: 350px;\n overflow-y: auto;\n padding: $es-spacing-sm;\n @include custom-scrollbar;\n }\n\n // Loading state\n .holiday-preview-loading {\n display: flex;\n align-items: center;\n justify-content: center;\n gap: $es-spacing-sm;\n padding: $es-spacing-xl 0;\n color: $es-text-muted;\n font-size: $es-font-size-sm;\n\n i.material-icons {\n font-size: 20px;\n }\n\n .icon-spin {\n animation: spin 1s linear infinite;\n }\n }\n\n // Empty state\n .holiday-preview-empty {\n text-align: center;\n padding: $es-spacing-xl 0;\n color: $es-text-muted;\n\n i.material-icons {\n font-size: 48px;\n opacity: 0.4;\n margin-bottom: $es-spacing-sm;\n display: block;\n }\n\n p {\n margin: 0;\n font-size: $es-font-size-sm;\n }\n }\n\n // Holiday list\n .holiday-list {\n display: flex;\n flex-direction: column;\n gap: $es-spacing-xs;\n }\n\n .holiday-item {\n display: flex;\n align-items: flex-start;\n gap: $es-spacing-md;\n padding: $es-spacing-sm $es-spacing-md;\n background: $es-slate-50;\n border-radius: $es-radius-md;\n border-left: 3px solid $es-success;\n\n &.holiday-type-bank,\n &.holiday-type-bank-holiday {\n border-left-color: $es-info;\n }\n\n &.holiday-type-observance {\n border-left-color: $es-warning;\n }\n\n &.holiday-type-regional,\n &.holiday-type-local-holiday {\n border-left-color: #8b5cf6;\n }\n }\n\n .holiday-date {\n flex-shrink: 0;\n min-width: 80px;\n\n .holiday-day {\n display: block;\n font-size: $es-font-size-sm;\n font-weight: $es-font-weight-semibold;\n color: $es-text-primary;\n }\n\n .holiday-weekday {\n display: block;\n font-size: $es-font-size-xs;\n color: $es-text-muted;\n }\n }\n\n .holiday-info {\n flex: 1;\n min-width: 0;\n }\n\n .holiday-country-flag {\n vertical-align: middle;\n margin-right: 0.25rem;\n border-radius: 2px;\n box-shadow: 0 0 0 1px rgba(0, 0, 0, 0.1);\n }\n\n .holiday-name {\n display: inline;\n font-size: $es-font-size-sm;\n color: $es-text-primary;\n word-wrap: break-word;\n }\n\n .holiday-type-badge {\n display: inline-block;\n margin-left: $es-spacing-sm;\n padding: 0.125rem 0.375rem;\n font-size: 10px;\n font-weight: $es-font-weight-medium;\n text-transform: capitalize;\n background: $es-slate-200;\n color: $es-text-secondary;\n border-radius: $es-radius-sm;\n vertical-align: middle;\n }\n\n .holiday-preview-note {\n margin-top: $es-spacing-md;\n font-size: $es-font-size-xs;\n color: $es-text-muted;\n text-align: center;\n }\n\n // Filter input\n .popover-filter {\n display: flex;\n align-items: center;\n gap: $es-spacing-xs;\n padding: $es-spacing-xs $es-spacing-md;\n border-bottom: 1px solid $es-border-color;\n background: $es-slate-50;\n\n i.material-icons {\n font-size: 18px;\n color: $es-text-muted;\n }\n\n .holiday-filter-input {\n flex: 1;\n border: none;\n background: transparent;\n font-size: $es-font-size-sm;\n color: $es-text-primary;\n outline: none;\n padding: $es-spacing-xs 0;\n\n &::placeholder {\n color: $es-text-muted;\n }\n }\n }\n}\n\n// Spin animation for loading icons\n@keyframes spin {\n from {\n transform: rotate(0deg);\n }\n to {\n transform: rotate(360deg);\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 // Country holidays variant - use calendar icon style\n &.country-holidays {\n background: rgba(139, 92, 246, 0.1);\n color: #8b5cf6;\n\n &:hover {\n background: rgba(139, 92, 246, 0.2);\n }\n\n &.clickable {\n background: rgba(139, 92, 246, 0.15);\n }\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.75rem;\n color: $es-text-muted;\n background: transparent;\n border: 1px dashed $es-border-color;\n border-radius: 100px; // Pill shape\n font-size: $es-font-size-xs;\n font-weight: $es-font-weight-normal;\n cursor: pointer;\n transition: all $es-transition-fast;\n\n &:hover {\n color: $es-text-secondary;\n border-color: $es-slate-400;\n border-style: solid;\n }\n\n &.selected {\n color: $es-primary;\n background: $es-primary-light;\n border: 1px solid $es-primary;\n font-weight: $es-font-weight-medium;\n }\n\n i {\n font-size: 11px;\n opacity: 0.6;\n }\n\n &.selected i {\n opacity: 1;\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 \"sass:color\";\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: color.adjust($es-danger, $lightness: -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// ==========================================================================\n// Holiday Preview Modal\n// ==========================================================================\n\n#mpr-holiday-preview-modal {\n display: none;\n position: fixed;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n z-index: $es-z-modal;\n\n &.show {\n display: flex;\n align-items: center;\n justify-content: center;\n }\n\n .mpr-modal-backdrop {\n position: absolute;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n background: rgba(0, 0, 0, 0.5);\n cursor: pointer;\n }\n\n .mpr-modal-dialog {\n position: relative;\n width: 90%;\n max-width: 480px;\n max-height: 80vh;\n background: $es-white;\n border-radius: $es-radius-lg;\n box-shadow: $es-shadow-xl;\n display: flex;\n flex-direction: column;\n overflow: hidden;\n }\n\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 display: flex;\n align-items: center;\n gap: $es-spacing-sm;\n font-size: $es-font-size-base;\n font-weight: $es-font-weight-semibold;\n color: $es-text-primary;\n margin: 0;\n\n i.material-icons {\n font-size: 20px;\n color: $es-primary;\n }\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: 18px;\n }\n }\n\n .mpr-modal-body {\n flex: 1;\n overflow-y: auto;\n padding: $es-spacing-lg;\n @include custom-scrollbar;\n }\n\n // Loading state\n .holiday-preview-loading {\n display: flex;\n align-items: center;\n justify-content: center;\n gap: $es-spacing-sm;\n padding: $es-spacing-xl 0;\n color: $es-text-muted;\n font-size: $es-font-size-sm;\n\n i {\n font-size: $es-font-size-lg;\n }\n }\n\n // Empty state\n .holiday-preview-empty {\n text-align: center;\n padding: $es-spacing-xl 0;\n color: $es-text-muted;\n\n i.material-icons {\n font-size: 48px;\n opacity: 0.5;\n margin-bottom: $es-spacing-md;\n }\n\n p {\n margin: 0 0 $es-spacing-xs;\n }\n\n .hint {\n font-size: $es-font-size-xs;\n color: $es-text-muted;\n }\n }\n\n // Holiday list\n .holiday-list {\n display: flex;\n flex-direction: column;\n gap: $es-spacing-sm;\n }\n\n .holiday-item {\n display: flex;\n align-items: flex-start;\n gap: $es-spacing-md;\n padding: $es-spacing-sm $es-spacing-md;\n background: $es-slate-50;\n border-radius: $es-radius-md;\n border-left: 3px solid $es-success;\n\n &.holiday-type-bank {\n border-left-color: $es-info;\n }\n\n &.holiday-type-observance {\n border-left-color: $es-warning;\n }\n\n &.holiday-type-regional {\n border-left-color: #8b5cf6;\n }\n }\n\n .holiday-date {\n flex-shrink: 0;\n min-width: 100px;\n\n .holiday-day {\n display: block;\n font-size: $es-font-size-sm;\n font-weight: $es-font-weight-semibold;\n color: $es-text-primary;\n }\n\n .holiday-weekday {\n display: block;\n font-size: $es-font-size-xs;\n color: $es-text-muted;\n }\n }\n\n .holiday-info {\n flex: 1;\n min-width: 0;\n }\n\n .holiday-name {\n display: block;\n font-size: $es-font-size-sm;\n color: $es-text-primary;\n word-wrap: break-word;\n }\n\n .holiday-type-badge {\n display: inline-block;\n margin-top: $es-spacing-xs;\n padding: 0.125rem 0.375rem;\n font-size: 10px;\n font-weight: $es-font-weight-medium;\n text-transform: capitalize;\n background: $es-slate-200;\n color: $es-text-secondary;\n border-radius: $es-radius-sm;\n }\n\n .holiday-preview-note {\n margin-top: $es-spacing-md;\n font-size: $es-font-size-xs;\n color: $es-text-muted;\n text-align: center;\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// Schedule toggle row (form-content layout)\n.schedule-toggle-row {\n display: flex;\n align-items: center;\n background: $es-slate-100;\n border: 1px solid $es-border-color;\n border-radius: $es-radius-lg;\n\n .schedule-toggle-switch {\n padding: $es-spacing-sm $es-spacing-md;\n }\n\n .schedule-toggle-actions {\n padding: $es-spacing-sm $es-spacing-md;\n border-left: 1px solid $es-border-color;\n cursor: pointer;\n transition: background-color $es-transition-fast;\n\n &:hover {\n background: $es-slate-200;\n }\n\n .material-icons {\n color: $es-slate-400;\n font-size: 20px;\n }\n }\n}\n\n// Schedule summary badges (read-only indicators in header)\n.schedule-summary-badges {\n display: flex;\n align-items: center;\n gap: 0.5rem;\n margin-left: auto;\n padding: 0 $es-spacing-sm;\n}\n\n.schedule-badge {\n display: inline-flex;\n align-items: center;\n gap: 0.25rem;\n padding: 0.25rem 0.5rem;\n background: $es-slate-200;\n color: $es-slate-600;\n font-size: $es-font-size-xs;\n font-weight: $es-font-weight-medium;\n border-radius: $es-radius-full;\n white-space: nowrap;\n\n .material-icons {\n font-size: 14px;\n opacity: 0.7;\n }\n}\n\n// Section hint after embedded entity selector - add margin\n.schedule-holidays .section-hint {\n margin-top: $es-spacing-md;\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// Schedule summary (shows current config at a glance)\n.trait-summary {\n display: inline-flex;\n align-items: center;\n gap: 0.375rem;\n padding: 0.25rem 0.625rem;\n font-size: $es-font-size-xs;\n font-weight: $es-font-weight-medium;\n color: $es-primary;\n background: rgba($es-primary, 0.08);\n border-radius: $es-radius-full;\n white-space: nowrap;\n margin-left: $es-spacing-md;\n flex-shrink: 0;\n max-width: 320px;\n overflow: hidden;\n text-overflow: ellipsis;\n\n &:empty {\n display: none;\n }\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// Collapse Header (form-content layout)\n// =============================================================================\n\n.entity-selector-collapse-header {\n padding: 0;\n margin-bottom: $es-spacing-sm;\n\n .btn-collapse-toggle {\n display: inline-flex;\n align-items: center;\n gap: 0.25rem;\n padding: 0.25rem 0;\n background: none;\n border: none;\n color: $es-primary;\n font-size: $es-font-size-sm;\n cursor: pointer;\n transition: color $es-transition-fast;\n\n &:hover {\n color: $es-primary-hover;\n }\n\n .collapse-icon {\n font-size: 1.25rem;\n transition: transform 0.2s;\n }\n\n .collapse-label {\n font-weight: $es-font-weight-medium;\n }\n }\n}\n\n// When collapsed, rotate icon\n.condition-trait.collapsed .entity-selector-collapse-header {\n .collapse-icon {\n // Icon already shows expand_more when collapsed\n }\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 \"sass:color\";\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: color.adjust($es-primary-hover, $lightness: -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 \"sass:color\";\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: color.adjust($es-primary, $lightness: -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":["main.scss","_variables.scss","../../../prestashop-admin/assets/scss/_variables.scss","_mixins.scss","layouts/_form-integration.scss","layouts/_responsive.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":";AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;ACAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;ACAA;AAAA;AAAA;AAAA;AFAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AGAA;AAAA;AAAA;AAAA;AA8PA;EACI;IAAO;;EACP;IAAK;;;AHhQT;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AIAA;AAAA;AAAA;AAAA;AAQA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;EAQI;EACA;EACA,cFoBW;;;AEff;AAAA;AAAA;EAGI;;AAEA;AAAA;AAAA;EACI;;AAGJ;AAAA;AAAA;EACI;EACA;EACA,cF7BC;EE8BD,eF9BC;EE+BD;;;AAKR;EACI;;AAEA;EACI;;AAGJ;EACI;EACA;EACA,cF9CC;EE+CD,eF/CC;EEgDD;;;AAOR;EACI;;;AAKJ;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;EAQI;;;AAIJ;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;EAQI;;;AASJ;AAAA;EAEI;EACA;EACA;;AAGA;AAAA;EACI;;AAIJ;AAAA;EACI;;AAIJ;AAAA;EACI;EACA;;AAIJ;AAAA;EACI,YHzGG;EG0GH;EACA,eFnFQ;;AEsFR;AAAA;EACI,YHzEE;EG0EF,qBHxEG;EGyEH;EACA;;AAIJ;AAAA;EACI;;AAIJ;AAAA;EACI,SH7CI;EG8CJ,eH7CI;;AGiDR;AAAA;EACI;EACA;;AAKR;AAAA;EACI,SFlJC;;AEsJL;AAAA;EACI;EACA,WHhBU;;;AD9IlB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AKAA;AAAA;AAAA;AAAA;AAQA;EAGQ;AAAA;IACI;IACA;IACA,KJiFI;;EI9ER;AAAA;IACI;IACA;;EAGJ;AAAA;IACI;;;AAMZ;EAGQ;AAAA;IACI,SJ8DI;II7DJ,WJ4GM;;EIzGV;AAAA;IACI;IACA;;EAGJ;AAAA;IACI;IACA;IACA;;EAGJ;AAAA;IACI;;;AAMZ;EAGQ;AAAA;IACI;;;AL3DZ;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AMAA;AAAA;AAAA;AAAA;AASA;AAAA;EAEI;EACA;EACA,YLEO;EKDP;EACA,eJ0Be;;AIvBf;AAAA;EACI;EACA;EACA;EACA;EACA,KJjBC;EIkBD;EACA,YJFA;EIGA;EACA;EACA;EACA;EACA;;AAEA;AAAA;EACI,YLUE;;AKNV;AAAA;EACI;EACA;EACA;EACA;EACA;;AAGJ;AAAA;EACI,WLmGU;EKlGV,OJ7BI;EI8BJ;;AAGJ;AAAA;EACI;EACA;EACA;EACA;;AAGJ;AAAA;EACI,WLoFU;EKnFV,aLyFkB;EKxFlB,OLXM;EKYN;;AAGJ;AAAA;EACI,WL4EU;EK3EV,OJjDI;EIkDJ;EACA;EACA;;AAIJ;AAAA;EHwGA;EACA;EACA;EACA;EACA;EACA;EACA;EACA,YDxKM;ECyKN,OF3KO;EE4KP,WF7Cc;EE8Cd,aFvCsB;EEwCtB,eFjFa;EEkFb;EACA;EACA;;AAEA;AAAA;EACI;EACA;;AAIJ;AAAA;EACI;EACA;;AAIJ;AAAA;EACI;;AAEA;AAAA;EACI;EACA;;AAGJ;AAAA;EACI;EACA;;AAKR;AAAA;AAAA;EAEI,YFtKO;EEuKP;;AAEA;AAAA;AAAA;EACI;EACA;;AAKR;AAAA;EACI;EACA;;AAIJ;AAAA;EACI;EACA;EACA;;AAGJ;AAAA;EACI;;AAGJ;AAAA;EACI,aFpGc;;AK5ElB;AAAA;EAEI,aLmBQ;;AKfZ;AAAA;EACI;EACA;EACA,KLYQ;EKXR;EACA;EACA,eJ9CW;EI+CX;EACA;EACA;;AAEA;AAAA;EACI;;AAGJ;AAAA;EACI,WL8CM;EK7CN,aLmDY;EKlDZ,OJhFA;;AImFJ;AAAA;EACI;;AAGJ;AAAA;EACI;EACA;EACA;EACA,YLrDG;EKsDH,eLFK;EKGL;;AAEA;AAAA;EACI;EACA;EACA;EACA;EACA;EACA;EACA,YLzGL;EK0GK;EACA;EACA;;AAIR;AAAA;EACI,YJ7GF;;AI+GE;AAAA;EACI;;AAMZ;AAAA;EACI,cJtHC;EIuHD;;AAEA;AAAA;EACI,qBJ1HH;;AI8HL;AAAA;EACI;EACA;EACA,KLtDQ;EKuDR;EACA,YL1HU;EK2HV;EACA,WLVU;EKWV,aLNgB;EKOhB;;AAEA;AAAA;EACI,OJ1IH;;AI+IL;AAAA;EACI;EACA,OJjJC;;AIqJL;AAAA;EACI;EACA,YL5JG;EK6JH;;AAIJ;AAAA;EACI;EACA;EACA;EACA;EACA,YL/HO;EKgIP;;AAGJ;AAAA;EACI;EACA;EACA;EACA,KL9FQ;EK+FR;EACA;EACA;EACA;EACA;EACA;EACA;EACA,OJnLI;EIoLJ,WLvDU;EKwDV,aLnDgB;EKoDhB;EACA;;AAEA;AAAA;EACI,YLrJG;EKsJH,OLjJG;;AKoJP;AAAA;EACI,YLlMD;EKmMC,qBL9IE;EK+IF,OJlMF;;AIqMF;AAAA;EACI,WLxEM;;AK2EV;AAAA;EACI;;AAGJ;AAAA;EH5CJ;EACA;EACA;EACA;EACA;EACA;EACA;EACA,YDxKM;ECyKN,OF3KO;EE4KP,WF7Cc;EE8Cd,aFvCsB;EEwCtB,eFjFa;EEkFb;EACA;EACA;;AAEA;AAAA;EACI;EACA;;AAIJ;AAAA;EACI;EACA;;AAIJ;AAAA;EACI;;AAEA;AAAA;EACI;EACA;;AAGJ;AAAA;EACI;EACA;;AAKR;AAAA;AAAA;EAEI,YFtKO;EEuKP;;AAEA;AAAA;AAAA;EACI;EACA;;AAKR;AAAA;EACI;EACA;;AAIJ;AAAA;EACI;EACA;EACA;;AAGJ;AAAA;EACI;;AAGJ;AAAA;EACI,aFpGc;;AK4Ed;AAAA;EHhDJ;EACA;EACA;EACA;EACA;EACA;EACA;EACA,YFhIW;EEiIX,OF3KO;EE4KP,WF7Cc;EE8Cd,aFvCsB;EEwCtB,eFjFa;EEkFb;EACA;EACA;;AAEA;AAAA;EACI;EACA;;AAIJ;AAAA;EACI;EACA;;AAIJ;AAAA;EACI;;AAEA;AAAA;EACI;EACA;;AAGJ;AAAA;EACI;EACA;;AAKR;AAAA;AAAA;EAEI,YFtKO;EEuKP;;AAEA;AAAA;AAAA;EACI;EACA;;AAKR;AAAA;EACI;EACA;;AAIJ;AAAA;EACI;EACA;EACA;;AAGJ;AAAA;EACI;;AAGJ;AAAA;EACI,aFpGc;;AKkFlB;AAAA;EACI;EACA;EACA,YLrLO;EKsLP;EACA;;AAEA;AAAA;EACI;EACA;EACA;;AAKR;AAAA;EACI;EACA;EACA;EACA;EACA,YLtMO;EKuMP;EACA,OLrMO;EKsMP;EACA;;AAEA;AAAA;EACI,YL5MG;EK6MH,OJnPF;;AIsPF;AAAA;EACI;;AAKR;AAAA;EACI,YLzPW;EK0PX,mBJ9PE;EI+PF,OJ/PE;;AIwQN;AAAA;EACI;;AAEA;AAAA;EACI;;AAIR;AAAA;EACI,SJ5RC;;AI+RL;AAAA;EACI;EACA;EACA,KJlSC;;AIsSL;AAAA;EACI;EACA;EACA;EACA;EACA,YJ1RA;EI2RA;;AAIJ;AAAA;EACI;EACA;EACA;EACA;EACA,KL5NQ;EK6NR,SL1NQ;EK2NR;EACA,OJ5SI;;AI8SJ;AAAA;EACI;EACA;;AAGJ;AAAA;EACI;EACA,WLxLM;;AK6Ld;AAAA;AAAA;AAAA;EAEI;EACA;EACA;EACA;EACA;EACA,OJjUI;EIkUJ;EACA;;AAEA;AAAA;AAAA;AAAA;EACI;;AAKR;AAAA;EACI;EACA;EACA,KLjQQ;;AKsQR;AAAA;EACI;;AAGJ;AAAA;EACI,eJjUO;;;AIyUf;AAAA;EACI;;AAGJ;AAAA;EACI;;;AAOJ;AAAA;EACI;EACA;EACA,KLnSQ;;AKsSZ;AAAA;EHtVA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;AAAA;EACI;;AG6UJ;AAAA;EAEI;EACA;EACA;EACA;EACA,WL5PU;EK6PV,aLvPgB;EKwPhB,OJ1XI;EI2XJ;EACA,eJtWW;EIuWX;;AAEA;AAAA;EACI,YL3VG;EK4VH,OLnWE;;AKsWN;AAAA;EACI;;;ANvZZ;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AOAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAyBA;EACI;EACA;EACA,KNmEY;EMlEZ,SNkEY;EMjEZ,YNfO;EMgBP,eLSe;EKRf;;AAEA;EACI,YNQM;;AMJV;EACI;;AAIJ;EACI,YNxBW;;;AMgCnB;EACI;EACA,OArCmB;EAsCnB,QAtCmB;EAuCnB;EACA,eLlBe;EKmBf,YNLW;;;AMSf;EACI,OA/CmB;EAgDnB,QAhDmB;EAiDnB;;;AAGJ;EACI,OAnDmB;EAoDnB,QApDmB;;;AAwDvB;EACI;EACA;EACA;EACA;EACA,OA9DmB;EA+DnB,QA/DmB;EAgEnB,YN5BW;EM6BX,OLjEQ;EKkER,eL5Ce;EK6Cf,WN0Dc;;AMxDd;EACI,OAvEe;EAwEf,QAxEe;EAyEf;EACA;;;AAQR;EACI;EACA;EACA;EACA;EACA;;;AAGJ;EACI,WNmCc;EMlCd,aNuCoB;EMtCpB,ON5DU;EEfV;EACA;EACA;;;AI6EJ;EACI,WN2Bc;EM1Bd,OLlGQ;ECiBR;EACA;EACA;;;AIuFJ;EACI;EACA;EACA,WNec;EMdd,aNoBoB;EMnBpB,YN3EW;EM4EX,OLhHQ;EKiHR,eL3Fe;;;AK8FnB;EACI;EACA,WNOc;EMNd,aNYsB;EMXtB,OLzHM;;;AKgIV;EJnGI;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACI;;AI0FR;EAEI;EACA;EACA;EACA;EACA;EACA;EACA,OLvIQ;EKwIR;EACA;;AAEA;EACI;EACA,OL3IC;;AK8IL;EACI;;;AAQR;EACI;EACA;EACA;EACA,YNzHW;EM0HX,eNpEa;;AMsEb;EACI,YN5HO;;AM+HX;EACI,OAtKe;EAuKf,QAvKe;EAwKf;;AAGJ;EACI,OA5Ke;EA6Kf,QA7Ke;EA8Kf;EACA;;AAGJ;EACI;EACA;EACA;;AAGJ;EACI,WN5DU;;AM+Dd;EACI;;AAGJ;EACI;EACA;EACA;;;AAQR;EACI;EACA;EACA;EACA;;AAEA;EACI;;AAGJ;EACI,YN5LM;;;AMoMd;EACI;EACA;EACA,YN7LU;EM8LV;EACA,eL7MY;EK8MZ;;;AAIJ;EACI;EACA;EACA;EACA,KN9JY;EM+JZ;EACA;EACA;;AAEA;EACI;;;AAKR;EACI;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA,eL3Oe;EK4Of;EACA;EACA,ONpOU;EMqOV;EACA;;AAEA;EACI,OLzQI;EK0QJ;;AAGJ;EACI;EACA,cLhRE;EKiRF;;;AAKR;EACI;EACA;EACA;EACA;EACA,eLpQe;EKqQf;EACA;EACA;EACA;EACA,ONjQU;EMkQV;EACA;EACA;;AAEA;EACI,cLtSE;;AKySN;EACI;EACA,cL3SE;EK4SF;;;AAKR;EACI;EACA;EACA;EACA;EACA;EACA,YNjRW;EMkRX,ONzRU;EM0RV;EACA,aNtLsB;EMuLtB,eLpSe;EKqSf;EACA;;AAEA;EACI,YN/QM;EMgRN,ON5QM;;;AMiRd;EJzSI;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACI;;AIgSR;EAEI;EACA;EACA;EACA;EACA;EACA,OL1UK;EK2UL;EACA,aN5MoB;EM6MpB;EACA,eL1Te;EK2Tf;EACA;EACA;;AAEA;EACI,YLpVC;EKqVD,ON1VG;;AM6VP;EACI;EACA;;;AAKR;EACI;EACA;EACA,KNxRY;EMyRZ;EACA;EACA;EACA;;AJhPA;EACI;EACA;;AAGJ;EACI,YDzHA;EC0HA;;AAGJ;EACI,YD/GO;ECgHP;;AAEA;EACI,YF5GE;;AMgVV;EACI;;AAIJ;EACI;EACA;EACA;EACA,SNvSQ;;;AM4ShB;EACI;EACA;EACA;EACA,KNhTY;EMiTZ;EACA;EACA;;AAEA;EACI,WNvQU;EMwQV,OLpYI;;AKuYR;EACI;EACA;EACA;EACA,eLrXW;EKsXX;EACA;EACA,WNlRU;EMmRV,aN7QgB;EM8QhB,OLjZE;EKkZF;EACA;EACA;EACA;EACA;;AAEA;EACI,cLzZF;EK0ZE,kBNtZO;;AMyZX;EACI;EACA,cL/ZF;EKgaE;;AAIR;EACI,WNxSU;EMySV,OLraI;;AKuaJ;EACI,aNrSc;EMsSd,ON3YE;;AM+YV;EACI;EACA;EACA;EACA,SNrWQ;EMsWR;EACA;EACA,OLrbE;EKsbF,YNlbW;EMmbX,eLhaW;EKiaX;EACA;EACA;;AAEA;EACI;;AAGJ;EACI;;AAGJ;EACI;;AAEA;EACI;;;AAUhB;EACI;EACA;EACA;EACA;EACA,KNzYY;EM0YZ,SNvYY;EMwYZ;EACA,OLzdQ;;AK2dR;EACI;EACA;;AAGJ;EACI;EACA,WNrWU;;;AMyWlB;EACI;EACA;EACA;EACA,SN1ZY;EM2ZZ,OL3eQ;;AK6eR;EACI;EACA;;;APjgBR;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AQAA;AAAA;AAAA;AAAA;AAYI;AAAA;EACI;;AAIJ;AAAA;ELqEA;EACA,SF4CY;EE3CZ,YFzEO;EE0EP;EACA,eDjDe;ECkDf,YFyBW;EOjGP;EACA;EACA;;AAEA;AAAA;EACI;;AAKR;AAAA;EACI;EACA;EACA,KP+DQ;EO9DR,SN3BC;EM4BD,YNXA;EMYA;EACA;;AAGJ;AAAA;EL0EA;EACA;EACA,WF4Bc;EE3Bd,aFqCoB;EEpCpB,OFnEU;EEoEV,kBFvGO;EEwGP;EACA,eDjFY;ECkFZ;;AAEA;AAAA;EACI,cD3GE;EC4CN;EACA;;AAkEA;AAAA;EACI,OFnFM;;AOPV;AAAA;EAEI;EACA;;AAGJ;AAAA;ELCA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;AAAA;EACI;;AKVJ;AAAA;EAEI;EACA;EACA;EACA;EACA;EACA,ONlCI;EMmCJ,eNdQ;EMeR;;AAEA;AAAA;EACI,YPFG;EOGH,OPVE;;AOeV;AAAA;EACI;EACA;EACA;EACA,KP4BQ;EO3BR;EACA,YPtDG;EOuDH;;AAGJ;AAAA;AAAA;AAAA;EAEI;EACA;EACA,KPkBQ;;AOdZ;AAAA;ELnCA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;AAAA;EACI;;AK0BJ;AAAA;EAEI;EACA;EACA;EACA;EACA;EACA,ONtEI;EMuEJ;EACA,eNlDW;EMmDX;;AAEA;AAAA;EACI,YPxCG;EOyCH,OP/CE;;AOkDN;AAAA;EACI,YNlFF;EMmFE,OPrFD;;AO0FP;AAAA;EACI,WPoCU;EOnCV,ONzFI;;AM6FR;AAAA;EACI;EACA;;ALyBJ;AAAA;EACI;EACA;;AAGJ;AAAA;EACI,YDzHA;EC0HA;;AAGJ;AAAA;EACI,YD/GO;ECgHP;;AAEA;AAAA;EACI,YF5GE;;AOyEV;AAAA;EACI;;AAIJ;AAAA;EACI,WPkBU;EOjBV,ON3GI;EM4GJ;;AAIJ;AAAA;EACI;EACA;EACA,KPtCQ;EOuCR;EACA,YPjFO;EOkFP;EACA,WPKU;EOJV,aPWkB;EOVlB,OP3FM;;AO+FV;AAAA;EACI;EACA,KPlDQ;;AOoDR;AAAA;EACI;;AAGJ;AAAA;EACI;;AAGJ;AAAA;EACI;;AAMR;AAAA;EACI;EACA;EACA,KPtEQ;EOuER;EACA,YPxJG;EOyJH;EACA;EACA;EACA;EACA;;AAEA;AAAA;EACI;;AAGJ;AAAA;EACI,YPxIE;;AO2IN;AAAA;EACI,YPlKO;;AOqKX;AAAA;EACI;EACA;;AAEA;AAAA;EACI,YPhLL;;AOqLP;AAAA;AAAA;AAAA;EAEI;EACA;EACA;EACA;EACA,eNlKW;EMmKX,YPrJO;;AOuJP;AAAA;AAAA;AAAA;EACI;EACA;EACA;;AAGJ;AAAA;AAAA;AAAA;EACI;EACA;EACA;EACA;EACA;;AAEA;AAAA;AAAA;AAAA;EACI;;AAGJ;AAAA;AAAA;AAAA;EACI;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAKZ;AAAA;EACI;EACA;EACA;EACA;EACA;EACA;EACA,YP5LO;EO6LP,eN3MW;EM4MX,ONlOI;;AMoOJ;AAAA;EACI;;AAIR;AAAA;AAAA;AAAA;EAEI;EACA;;AAGJ;AAAA;AAAA;AAAA;EAEI,WPpHU;EOqHV,aPhHgB;EOiHhB,OPnNM;EEfV;EACA;EACA;;AKoOA;AAAA;AAAA;AAAA;EAEI,WP7HU;EO8HV,ON1PI;;AM6PR;AAAA;EL5OA;EACA;EACA;;AK8OA;AAAA;EACI,OPpOM;;AOuOV;AAAA;EACI,ONtQI;EMuQJ;;AAIJ;AAAA;EACI;EACA;EACA;EACA,WPnJU;;AOsJd;AAAA;EACI,OPrPM;;AOwPV;AAAA;EACI,ONrRC;EMsRD,aPrJkB;;AO0Jd;AAAA;EACI,ON7RN;;AMgSE;AAAA;EACI,ON/RN;;AMkSE;AAAA;EACI,ONpSP;;AMySL;AAAA;EACI,ON5SI;;AM+SR;AAAA;EACI;;AAGJ;AAAA;AAAA;AAAA;EAEI;EACA;EACA;EACA;EACA;EACA;EACA;EACA,eNtSW;EMuSX;;AAEA;AAAA;AAAA;AAAA;EACI;EACA;EACA,OPrUD;;AOwUH;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;EAEI,YNxUF;EMyUE,cNzUF;;AM2UE;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;EACI;;AAMZ;AAAA;EACI;EACA;EACA,KPvQQ;;AO2QZ;AAAA;EACI;EACA;EACA;EACA,KP/QQ;EOgRR,SP7QQ;EO8QR,ON9VI;EM+VJ,WPlOU;;AOoOV;AAAA;EACI;EACA;;AAKR;AAAA;EACI;EACA;EACA;EACA;EACA,KPhSQ;EOiSR,SP9RQ;EO+RR;EACA,ONhXI;;AMkXJ;AAAA;EACI;EACA;;AAGJ;AAAA;EACI;EACA,WP5PM;;AOiQd;AAAA;EACI;EACA;EACA;EACA,SPlTQ;EOmTR,ONnYI;;AMqYJ;AAAA;EACI;EACA;;AAKR;AAAA;EACI;EACA;EACA;EACA,KN5ZC;EM6ZD;EACA,YP/WM;EOgXN;EACA;;AAIJ;AAAA;EACI;EACA;EACA,KP/UQ;EOgVR,WPhSU;EOiSV,ON7ZI;;AM+ZJ;AAAA;EACI,ONhaA;;AMmaJ;AAAA;AAAA;AAAA;EAEI;EACA;EACA;EACA,eNlZO;EMmZP;EACA;EACA,WP/SM;EOgTN,OP9YE;EO+YF;EACA;;AAEA;AAAA;AAAA;AAAA;EACI,cNlbN;;AMqbE;AAAA;AAAA;AAAA;EACI;EACA,cNvbN;;AM2bF;AAAA;EACI,ON3bA;;AM6bA;AAAA;EACI,OPhaF;EOiaE,aP5TU;;AOgUlB;AAAA;ELvaJ;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;AAAA;EACI;;AK8ZA;AAAA;EAEI;EACA,WP1UM;EO2UN,ONxcF;EMycE;EACA,eNnbO;EMobP;;AAEA;AAAA;EACI,YP1cG;;AOgdf;AAAA;EACI;EACA;EACA,KPzYQ;;AO4YZ;AAAA;EL7bA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;AAAA;EACI;;AKobJ;AAAA;EAEI;EACA;EACA;EACA;EACA,WPnWU;EOoWV,aP9VgB;EO+VhB,eN3cW;EM4cX;;AAEA;AAAA;EACI;EACA;EACA;EACA;EACA,aPxWY;;AO2WhB;AAAA;EACI,OP/cE;EOgdF,YPjfD;EOkfC;;AAEA;AAAA;EACI,YP9cD;EO+cC,cPxdF;;AO4dN;AAAA;AAAA;EAEI,OP5fD;EO6fC,YN3fF;EM4fE;;AAEA;AAAA;AAAA;EACI,YP5fG;EO6fH,cP7fG;;AOggBP;AAAA;AAAA;EACI;;AAMZ;AAAA;EACI;;AAGJ;AAAA;EACI;;AAIJ;AAAA;EACI,SN/hBC;EMgiBD,YPjfM;EOkfN;;AAGJ;AAAA;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xBR,SNl3BC;EMm3BD,YNl2BA;EMm2BA;EACA;EACA;;AAGJ;AAAA;EACI,WPjvBU;EOkvBV,aP5uBkB;EO6uBlB,OPh1BM;EOi1BN;;AAGJ;AAAA;EACI;EACA;EACA,KP3yBQ;EO4yBR;EACA;EACA;;AAGJ;AAAA;AAAA;AAAA;ELj2BA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;AAAA;AAAA;AAAA;EACI;;AKw1BJ;AAAA;AAAA;AAAA;EAGI;EACA;EACA;EACA;EACA,WPxwBU;EOywBV,OPv2BM;EOw2BN,YPz4BG;EO04BH;EACA,eNl3BW;EMm3BX;EACA;;AAEA;AAAA;AAAA;AAAA;EACI,YPp3BE;EOq3BF,cPx2BG;;AO22BP;AAAA;AAAA;AAAA;EACI;EACA;EACA,YPh3BG;EOi3BH;EACA,ONt5BA;;AM05BR;AAAA;EACI;EACA;;AAIJ;AAAA;ELj0BA;EACA;EACA,WF4Bc;EE3Bd,aFqCoB;EEpCpB,OFnEU;EEoEV,kBFvGO;EEwGP;EACA,eDjFY;ECkFZ;;AAEA;AAAA;EACI,cD3GE;EC4CN;EACA;;AAkEA;AAAA;EACI,OFnFM;;AOo4BV;AAAA;EAEI;EACA,WPvyBU;EOwyBV;EACA;EACA;EACA;;AAGJ;AAAA;EACI;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA,ONp7BI;EMq7BJ,YPx7BG;EOy7BH;EACA;EACA;EACA;;AAEA;AAAA;EACI;;AAGJ;AAAA;EACI,YPv6BE;EOw6BF,OPj6BE;;AOo6BN;AAAA;EACI,YPl8BO;EOm8BP,cNv8BF;EMw8BE,ONx8BF;;AM48BN;AAAA;EL52BA;EACA;EACA,WF4Bc;EE3Bd,aFqCoB;EEpCpB,OFnEU;EEoEV,kBFvGO;EEwGP;EACA,eDjFY;ECkFZ;;AAEA;AAAA;EACI,cD3GE;EC4CN;EACA;;AAkEA;AAAA;EACI,OFnFM;;AO+6BV;AAAA;EAEI;EACA,WPl1BU;EOm1BV;EACA;;AAGJ;AAAA;AAAA;AAAA;EAEI;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA,ON99BI;EM+9BJ,YPl+BG;EOm+BH;EACA,eN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EACI,WP/tCM;EOguCN,aPztCc;EO0tCd,OP/zCE;EOg0CF;;AAGJ;AAAA;ELr0CJ;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;AAAA;EACI;;AK4zCA;AAAA;EAEI;EACA;EACA;EACA;EACA;EACA;EACA,ONz2CA;EM02CA,eNp1CO;;AMs1CP;AAAA;EACI,YPx0CD;EOy0CC,OP90CF;;AOo1CV;AAAA;EACI,aPnvCgB;;AOsvCpB;AAAA;EACI;EACA,ON13CI;EM23CJ;;AAGJ;AAAA;AAAA;AAAA;EACI;;AAIJ;AAAA;EACI;EACA;;AL7wCJ;AAAA;EACI;EACA;;AAGJ;AAAA;EACI,YDzHA;EC0HA;;AAGJ;AAAA;EACI,YD/GO;ECgHP;;AAEA;AAAA;EACI,YF5GE;;AO82CV;AAAA;EACI;EACA;EACA,KPh0CQ;EOi0CR,SPh0CQ;;AOm0CZ;AAAA;EACI;EACA;EACA;EACA;EACA;EACA;;AAEA;AAAA;EACI,YN15CF;EM25CE,cN35CF;;AM+5CN;AAAA;EACI;EACA;EACA;EACA;EACA,eN74CW;EM84CX,YPh4CO;;AOm4CX;AAAA;EACI;EACA;;AAGJ;AAAA;EACI,WPhzCU;EOizCV,aP5yCgB;EO6yChB,OP/4CM;EEfV;EACA;EACA;;AKg6CA;AAAA;EACI,WPxzCU;EOyzCV,ONr7CI;ECiBR;EACA;EACA;;AKu6CA;AAAA;EACI;EACA;EACA;EACA,KN18CC;EM28CD;EACA,YP75CM;EO85CN;EACA;;AAGJ;AAAA;EACI;EACA;EACA,KP53CQ;EO63CR,WP70CU;EO80CV,ON18CI;;AM48CJ;AAAA;EACI,ON78CA;;AMg9CJ;AAAA;AAAA;AAAA;EAEI;EACA;EACA;EACA,eN/7CO;EMg8CP;EACA;EACA,WP51CM;EO61CN,OP37CE;EO47CF;EACA;;AAEA;AAAA;AAAA;AAAA;EACI,cN/9CN;;AMk+CE;AAAA;AAAA;AAAA;EACI;EACA,cNp+CN;;AMw+CF;AAAA;EACI,ONx+CA;;AM0+CA;AAAA;EACI,OP78CF;EO88CE,aPz2CU;;AO82CtB;AAAA;EACI;EACA;EACA,KPv6CQ;;AO06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;EACA,YR3vBO;EQ4vBP,ePluBe;EOmuBf,YRvpBW;EQwpBX;;AAEA;EACI;EACA;EACA;EACA,KRprBQ;EQqrBR;EACA,YP9vBA;EO+vBA;;AAGJ;EACI;EACA;EACA,KR7rBQ;EQ8rBR,WR9oBU;EQ+oBV,aRzoBkB;EQ0oBlB,OR7uBM;;AQgvBV;EACI;EACA;;AAGJ;ENzvBA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACI;;AMgvBJ;EAEI;EACA;EACA;EACA;EACA;EACA,OP5xBI;EO6xBJ,ePxwBQ;EOywBR;;AAEA;EACI,YR5vBG;EQ6vBH,ORpwBE;;AQuwBN;EACI;;AAIR;EACI;EACA;EACA,SRhuBQ;;AE2CZ;EACI;EACA;;AAGJ;EACI,YDzHA;EC0HA;;AAGJ;EACI,YD/GO;ECgHP;;AAEA;EACI,YF5GE;;AQuxBV;EACI;EACA;EACA;EACA,KRzuBQ;EQ0uBR;EACA,OPxzBI;EOyzBJ,WR5rBU;;AQ8rBV;EACI;;AAGJ;EACI;;AAKR;EACI;EACA;EACA,OPx0BI;;AO00BJ;EACI;EACA;EACA,eRhwBI;EQiwBJ;;AAGJ;EACI;EACA,WRttBM;;AQ2tBd;EACI;EACA;EACA,KR/wBQ;;AQkxBZ;EACI;EACA;EACA,KP72BC;EO82BD;EACA,YRh0BM;EQi0BN,eP/0BQ;EOg1BR;;AAEA;EAEI,mBPr2BL;;AOw2BC;EACI,mBP12BF;;AO62BF;EAEI;;AAIR;EACI;EACA;;AAEA;EACI;EACA,WR/vBM;EQgwBN,aR1vBc;EQ2vBd,OR91BE;;AQi2BN;EACI;EACA,WRvwBM;EQwwBN,OPp4BA;;AOw4BR;EACI;EACA;;AAGJ;EACI;EACA;EACA;EACA;;AAGJ;EACI;EACA,WRzxBU;EQ0xBV,ORv3BM;EQw3BN;;AAGJ;EACI;EACA,aRh1BQ;EQi1BR;EACA;EACA,aR9xBgB;EQ+xBhB;EACA,YR73BO;EQ83BP,ORr4BM;EQs4BN,eP94BW;EO+4BX;;AAGJ;EACI,YPr7BC;EOs7BD,WR9yBU;EQ+yBV,OP36BI;EO46BJ;;AAIJ;EACI;EACA;EACA,KRv2BQ;EQw2BR;EACA;EACA,YRn5BM;;AQq5BN;EACI;EACA,OP17BA;;AO67BJ;EACI;EACA;EACA;EACA,WRp0BM;EQq0BN,ORl6BE;EQm6BF;EACA;;AAEA;EACI,OPv8BJ;;;AO88BZ;EACI;IACI;;EAEJ;IACI;;;AAcI;AAAA;AAAA;AAAA;AAAA;AAAA;EACI;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA,ePt9BG;EOu9BH;EACA;EACA,OR/8BF;EQg9BE;EACA;;AAEA;AAAA;AAAA;AAAA;AAAA;AAAA;EACI,OPp/BR;EOq/BQ;;AAGJ;AAAA;AAAA;AAAA;AAAA;AAAA;EACI;EACA,cP3/BV;EO4/BU;;AAKR;AAAA;AAAA;AAAA;AAAA;AAAA;EACI;EACA;EACA;EACA;EACA,eP/+BG;EOg/BH;EACA;EACA;EACA;EACA,OR5+BF;EQ6+BE;EACA;EACA;EACA;;AAEA;AAAA;AAAA;AAAA;AAAA;AAAA;EACI,cPlhCV;;AOqhCM;AAAA;AAAA;AAAA;AAAA;AAAA;EACI;EACA,cPvhCV;EOwhCU;;;ATziCpB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AUAA;AAAA;AAAA;AAAA;AAYI;AAAA;EACI,YTEG;ESDH;EACA,eR0BW;EQzBX;;AAIJ;AAAA;EACI;EACA;EACA;EACA,KRlBC;EQmBD;EACA,YRHA;EQIA;;AAGJ;AAAA;EACI;EACA;EACA,KT8DQ;ES7DR,WT6GU;ES5GV,aTkHkB;ESjHlB,OTcM;;ASZN;AAAA;EACI;EACA;EACA;EACA;EACA;EACA;EACA,YR5BF;EQ6BE,OT/BD;ESgCC,WT+FM;ES9FN,aTsGU;ESrGV,eT2DK;;ASvDb;AAAA;EACI;EACA;EACA,KTsCQ;;ASnCZ;AAAA;EPbA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;AAAA;EACI;;AOIJ;AAAA;EAEI;EACA;EACA;EACA;EACA;EACA,ORhDI;EQiDJ,eR3BW;EQ4BX;;AAEA;AAAA;EACI,YThBG;ESiBH,OTxBE;;AS2BN;AAAA;EACI,YT/CM;ESgDN,ORzDH;;AQ8DL;AAAA;AAAA;AAAA;EAEI,SR9EC;;AQkFL;AAAA;EACI,eRnFC;;AQsFL;AAAA;EACI;EACA;EACA,KTDQ;ESER,eTDQ;ESER,WT6CU;ES5CV,aTmDkB;ESlDlB;EACA;;AAEA;AAAA;EACI,OT7EM;;AS+EN;AAAA;EACI,ORvFN;;AQ2FF;AAAA;EACI,OR3FH;;AQ6FG;AAAA;EACI,OR9FP;;AQoGL;AAAA;EACI;EACA;EACA,KT5BQ;ES6BR,eT7BQ;;ASgCZ;AAAA;EACI;EACA;;AAGJ;AAAA;EPnBA;EACA;EACA,WF4Bc;EE3Bd,aFqCoB;EEpCpB,OFnEU;EEoEV,kBFvGO;EEwGP;EACA,eDjFY;ECkFZ;;AAEA;AAAA;EACI,cD3GE;EC4CN;EACA;;AAkEA;AAAA;EACI,OFnFM;;ASsFV;AAAA;EAEI;EACA;EACA;EACA;EACA;EACA;EACA;;AAGJ;AAAA;EPjGA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;AAAA;EACI;;AOwFJ;AAAA;EAEI;EACA;EACA;EACA;EACA;EACA,ORpII;EQqIJ,eT3CS;ES4CT;;AAEA;AAAA;EACI,YTrGG;ESsGH,OR3IF;;AQgJN;AAAA;EACI;;AAGJ;AAAA;EPvHA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;AAAA;EACI;;AO8GJ;AAAA;EAEI;EACA;EACA,KT1EQ;ES2ER;EACA;EACA,YT7JG;ES8JH;EACA,eRvIQ;EQwIR,OR7JI;EQ8JJ,WTjCU;ESkCV;EACA;;AAEA;AAAA;EACI,cT7HG;;ASgIP;AAAA;EACI,cRxKF;EC4CN;EACA;;AO+HI;AAAA;EACI,OThJE;;ASqJV;AAAA;EACI;;AAGJ;AAAA;EPtFA;EACA;EACA,WF4Bc;EE3Bd,aFqCoB;EEpCpB,OFnEU;EEoEV,kBFvGO;EEwGP;EACA,eDjFY;ECkFZ;;AAEA;AAAA;EACI,cD3GE;EC4CN;EACA;;AAkEA;AAAA;EACI,OFnFM;;ASyJV;AAAA;EAEI;;AAGJ;AAAA;EP9JA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;AAAA;EACI;;AOqJJ;AAAA;EAEI;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA,ORtME;EQuMF,eRhLW;EQiLX;;AAEA;AAAA;EACI,YTvMO;;AS4Mf;AAAA;EACI;EACA;EACA,KTrIQ;;ASwIZ;AAAA;EACI;EACA;EACA,KT3IQ;;AS8IZ;AAAA;EP5HA;EACA;EACA,WF4Bc;EE3Bd,aFqCoB;EEpCpB,OFnEU;EEoEV,kBFvGO;EEwGP;EACA,eDjFY;ECkFZ;;AAEA;AAAA;EACI,cD3GE;EC4CN;EACA;;AAkEA;AAAA;EACI,OFnFM;;AS+LV;AAAA;EAEI;EACA;;AAGJ;AAAA;EACI,ORlOI;EQmOJ,WTtGU;;ASyGd;AAAA;EP1MA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;AAAA;EACI;;AOiMJ;AAAA;EAEI;EACA;EACA;EACA;EACA;EACA,OR7OI;EQ8OJ,eRxNW;EQyNX;;AAEA;AAAA;EACI,YTvOM;ESwON,ORjPH;;AQqPL;AAAA;EP3NA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;AAAA;EACI;;AOkNJ;AAAA;EAEI;EACA;EACA;EACA;EACA,OR9PE;EQ+PF,WTlIU;ESmIV,aT7HgB;ES8HhB,eR1OW;EQ2OX;;AAEA;AAAA;EACI,YTjQO;;ASsQf;AAAA;EACI;EACA;EACA,KThMQ;;ASmMZ;AAAA;EPnPA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;AAAA;EACI;;AO0OJ;AAAA;EAEI;EACA;EACA;EACA;EACA,YTjPO;ESkPP,OTxPM;ESyPN,WT3JU;ES4JV,aTtJgB;ESuJhB;EACA,eThMS;ESiMT;;AAEA;AAAA;EACI,YTzPG;;AS4PP;AAAA;EACI,YT/RO;ESgSP,ORpSF;EQqSE,cRrSF;;AQ0SN;AAAA;EACI,YRtTC;EQuTD,aRvTC;EQwTD;;AAIJ;AAAA;EACI;EACA;EACA,KTtOQ;;ASyOZ;AAAA;EACI;;AAGJ;AAAA;EP9RA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;AAAA;EACI;;AOqRJ;AAAA;EAEI;EACA;EACA;EACA;EACA;EACA,ORjUI;EQkUJ,eR5SW;EQ6SX;EACA;;AAEA;AAAA;EACI,YT5TM;ES6TN,ORtUH;;AQ0UL;AAAA;EPhTA;EACA;EACA;EACA;E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CI;EACA;EACA;;AAEA;AAAA;EACI;EACA;;AAKR;AAAA;ERlGA;EACA;EACA;EACA;EACA;EACA;EACA;EACA,YDxKM;ECyKN,OF3KO;EE4KP,WF7Cc;EE8Cd,aFvCsB;EEwCtB,eFjFa;EEkFb;EACA;EACA;;AAEA;AAAA;EACI;EACA;;AAIJ;AAAA;EACI;EACA;;AAIJ;AAAA;EACI;;AAEA;AAAA;EACI;EACA;;AAGJ;AAAA;EACI;EACA;;AAKR;AAAA;AAAA;EAEI,YFtKO;EEuKP;;AAEA;AAAA;AAAA;EACI;EACA;;AAKR;AAAA;EACI;EACA;;AAIJ;AAAA;EACI;EACA;EACA;;AAGJ;AAAA;EACI;;AAGJ;AAAA;EACI,aFpGc;;AU8HlB;AAAA;EAEI,aVvLQ;;;AD/FhB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AYAA;AAAA;AAAA;AAAA;AAUA;EACI;EACA;EACA;EACA;EACA;EACA;EACA,SXmHS;EWlHT;EACA;;AAEA;EACI;;;AAKR;EACI;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA,YXrBO;EWsBP,eXsEW;EWrEX,YX+EW;EW9EX;EACA;EACA;EACA;EACA;;AAEA;EACI;EACA;;AAGJ;EACI;;AAGJ;EACI;;AAGJ;EACI;;AAGJ;EACI;EACA;EACA;EACA;;;AAKR;EACI;EACA;EACA;EACA,KVrEK;EUsEL;EACA,YVtDI;EUuDJ;EACA;;;AAGJ;EACI,WX6DgB;EW5DhB,aXiEsB;EWhEtB,OXnCU;EWoCV;;;AAGJ;ET3CI;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACI;;ASkCR;EAEI;EACA;EACA;EACA;EACA;EACA,OV9EQ;EU+ER,eV1DY;EU2DZ;;AAEA;EACI,YX9CO;EW+CP,OXtDM;;AWyDV;EACI,WXuCU;;;AWlClB;EACI;EACA;EACA,SXjBY;;AEyCZ;EACI;EACA;;AAGJ;EACI,YDzHA;EC0HA;;AAGJ;EACI,YD/GO;ECgHP;;AAEA;EACI,YF5GE;;;AW0Ed;EACI;EACA;EACA;EACA,KX5BY;EW6BZ;EACA,YVtGI;EUuGJ;EACA;;;AAGJ;ETpFI;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACI;;AS2ER;EAEI;EACA;EACA;EACA,KXzCY;EW0CZ;EACA,WXMc;EWLd,aXUoB;EWTpB,eVpGY;EUqGZ;;AAEA;EACI,OX/FM;EWgGN,YX1FO;;AW4FP;EACI,YX5FG;;AWgGX;EACI,OXzIG;EW0IH,YVxIE;;AU0IF;EACI,YXxIO;;AW4If;EACI,OXlJG;EWmJH,YV9IC;;AUgJD;EACI;;AAIR;EACI;EACA;;;AAMR;EACI;EACA;EACA;EACA,KXtFY;EWuFZ;EACA,YVhKI;EUiKJ;EACA;;;AAGJ;EACI,WX9Cc;EW+Cd,aXzCsB;EW0CtB,OX7IU;;;AWgJd;ETpJI;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACI;;AS2IR;EAEI;EACA;EACA;EACA;EACA;EACA,OVvLQ;EUwLR,eVlKe;EUmKf;;AAEA;EACI,YXvJO;EWwJP,OX/JM;;;AWmKd;EACI;EACA;EACA,SXvHY;;AE2CZ;EACI;EACA;;AAGJ;EACI,YDzHA;EC0HA;;AAGJ;EACI,YD/GO;ECgHP;;AAEA;EACI,YF5GE;;;AW6Kd;EACI;EACA;EACA;EACA,KX/HY;EWgIZ;EACA,YVzMI;EU0MJ;EACA;;;AAGJ;EACI,WXxFc;EWyFd,OVrNQ;;;AUwNZ;ET5LI;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACI;;ASmLR;EAEI;EACA;EACA;EACA;EACA,WXlGc;EWmGd,aX7FoB;EW8FpB,OVjOM;EUkON,eV3Me;EU4Mf;;AAEA;EACI,YXlOW;;;AWuOnB;EACI;EACA;EACA;EACA,YXjPO;EWkPP;EACA;;AAEA;EACI;EACA;EACA;EACA;EACA;;AAGJ;EACI;EACA;EACA;EACA;EACA;;;AAQR;EACI;EACA;EACA;EACA;EACA;EACA;EACA,SX5JS;;AW8JT;EACI;EACA;EACA;;AAGJ;EACI;EACA;EACA;EACA;EACA;EACA;EACA;;AAGJ;EACI;EACA;EACA;EACA;EACA,YXxSG;EWySH,eV/QW;EUgRX,YXpMO;EWqMP;EACA;EACA;;AAGJ;EACI;EACA;EACA;EACA,KV7TC;EU8TD;EACA,YV9SA;EU+SA;EACA;;AAGJ;EACI;EACA;EACA,KX9OQ;EW+OR,WX9LY;EW+LZ,aX1LkB;EW2LlB,OX9RM;EW+RN;;AAEA;EACI;EACA,OVpUF;;AUwUN;ET3SA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACI;;ASkSJ;EAEI;EACA;EACA;EACA;EACA;EACA,OV9UI;EU+UJ,eV1TQ;EU2TR;;AAEA;EACI,YX9SG;EW+SH,OXtTE;;AWyTN;EACI;;AAIR;EACI;EACA;EACA,SXhRQ;;AEyCZ;EACI;EACA;;AAGJ;EACI,YDzHA;EC0HA;;AAGJ;EACI,YD/GO;ECgHP;;AAEA;EACI,YF5GE;;AWyUV;EACI;EACA;EACA;EACA,KX3RQ;EW4RR;EACA,OV1WI;EU2WJ,WX9OU;;AWgPV;EACI,WX/OM;;AWoPd;EACI;EACA;EACA,OVtXI;;AUwXJ;EACI;EACA;EACA,eVvYH;;AU0YD;EACI;;AAGJ;EACI,WXvQM;EWwQN,OVpYA;;AUyYR;EACI;EACA;EACA,KX/TQ;;AWkUZ;EACI;EACA;EACA,KV9ZC;EU+ZD;EACA,YXjXM;EWkXN,eVhYQ;EUiYR;;AAEA;EACI,mBVrZL;;AUwZC;EACI,mBV1ZF;;AU6ZF;EACI;;AAIR;EACI;EACA;;AAEA;EACI;EACA,WX9SM;EW+SN,aXzSc;EW0Sd,OX7YE;;AWgZN;EACI;EACA,WXtTM;EWuTN,OVnbA;;AUubR;EACI;EACA;;AAGJ;EACI;EACA,WXjUU;EWkUV,OX/ZM;EWgaN;;AAGJ;EACI;EACA,YXzXQ;EW0XR;EACA;EACA,aXtUgB;EWuUhB;EACA,YXraO;EWsaP,OX7aM;EW8aN,eVtbW;;AUybf;EACI,YV5dC;EU6dD,WXrVU;EWsVV,OVldI;EUmdJ;;;AZreR;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AaAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAeA;AAAA;EAEI;EACA;EACA;EACA;EACA,YZNO;EYOP;EACA,eXkBe;EWjBf,YZ4FW;EY3FX;;AAGA;AAAA;EACI;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAGJ;AAAA;EACI;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAKA;AAAA;AAAA;EAEI;EACA;;AAMJ;AAAA;AAAA;EAEI;EACA;EACA;;;AASZ;EACI;EACA;EACA;EACA;EACA,YXxDI;EWyDJ;;AAEA;EACI,WZ4DU;EY3DV,aZiEkB;EYhElB,OZnCM;;AYsCV;EV1CA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACI;;AUiCJ;EAEI;EACA;EACA;EACA;EACA;EACA,OX7EI;EW8EJ,eXxDW;EWyDX;;AAEA;EACI,YZ7CG;EY8CH,OZnDE;;;AY4Dd;EACI;EACA;EACA;EACA;EACA,YZ9DU;EY+DV;;;AAGJ;EACI;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA,OX9GQ;EW+GR,WZac;EYZd,aZkBoB;EYjBpB;EACA;EACA;;AAEA;EACI,YZlFO;EYmFP,OZzFM;;AY4FV;EACI,YZ9HG;EY+HH,qBX7HE;EW8HF,OX9HE;;AWiIN;EACI;;;AAQR;EACI;EACA;EACA,KZ/DY;EYgEZ;EACA,YZjJO;EYkJP;;AAEA;EACI,OXlJI;EWmJJ;;AAGJ;EACI;EACA;EACA;EACA,WZ9BU;EY+BV,OZ3HM;EY4HN;;AAEA;EACI,OX/JA;;;AWwKZ;EACI;EACA;;;AAGJ;EACI;EACA;EACA;;AVxDA;EACI;EACA;;AAGJ;EACI,YDzHA;EC0HA;;AAGJ;EACI,YD/GO;ECgHP;;AAEA;EACI,YF5GE;;AYwJV;EACI;;;AAQR;EACI;EACA;EACA;;;AAQJ;EACI;EACA;EACA,KZ7HY;EY8HZ,SZ9HY;EY+HZ,YZ/MO;EYgNP,eXvLe;EWwLf;;AAEA;EACI,YZxLM;;AY4LV;EACI;;;AAKR;EACI;EACA;EACA;EACA;EACA,eX1Me;EW2Mf,YZ7LW;;;AYiMf;EACI;EACA;EACA;EACA;EACA;EACA;EACA,YZxMW;EYyMX,OX7OQ;EW8OR,eXxNe;EWyNf,WZlHc;;;AYsHlB;EACI;EACA;EACA;EACA;EACA;;;AAIJ;EACI,WZhIc;EYiId,aZ5HoB;EY6HpB,OZ/NU;EEfV;EACA;EACA;;;AUiPJ;AAAA;EAEI,WZ1Ic;EY2Id,OXvQQ;ECiBR;EACA;EACA;;;AUyPJ;EACI;EACA;EACA,WZnJc;EYoJd,aZ7IsB;EY8ItB,OXlRM;EWmRN,YZ/Qe;EYgRf,eX7Pe;;;AWoQnB;EACI;EACA,YZzPU;EY0PV;;;AAGJ;EACI;EACA;EACA;EACA,KZvNY;EYwNZ,WZzKc;EY0Kd,OXtSQ;;AWwSR;EACI;;AAGJ;EACI;EACA;EACA;EACA,eX1RW;EW2RX;EACA;EACA,WZvLU;EYwLV,aZlLgB;EYmLhB,OXtTE;EWuTF;EACA;EACA;EACA;EACA;;AAEA;EACI,cX9TF;EW+TE,kBZ3TO;;AY8TX;EACI;EACA,cXpUF;EWqUE;;AAIR;EACI;;AAGJ;EACI,aZ1MkB;EY2MlB,OZhTM;;AYmTV;EACI;EACA;EACA;EACA,SZzQQ;EY0QR;EACA;EACA,OXzVE;EW0VF,YZtVW;EYuVX,eXpUW;EWqUX;EACA;EACA;;AAEA;EACI;;AAGJ;EACI;;AAGJ;EACI;;AAEA;EACI;;;AAUhB;EACI;EACA;EACA;EACA;EACA,KZ7SY;EY8SZ,SZ3SY;EY4SZ;EACA,OX7XQ;;AW+XR;EACI;EACA;;AAGJ;EACI;EACA,WZzQU;;;AY6QlB;EACI;EACA;EACA;EACA,SZ9TY;EY+TZ,OX/YQ;;AWiZR;EACI;EACA,OXpZE;EWqZF;;;AAQR;EACI;EACA;;AAEA;EACI;EACA;EACA;EACA,KXhbC;EWibD;EACA,YXjaA;EWkaA;;AAEA;EACI,aZvSc;EYwSd,OZ3YE;EY4YF,WZ/SM;;AYkTV;EACI;EACA,WZrTM;EYsTN,aZhTY;EYiTZ,OXnbA;EWobA,YZ/YG;EYgZH;EACA,eXhaO;;AWoaf;EACI;;AAGJ;EACI;EACA;EACA;;AAGJ;EACI;EACA;EACA,KZ1XQ;EY2XR;EACA;EACA;;AAEA;EACI,YZ1aE;;AY6aN;EACI;EACA;EACA,OXndA;EWodA;;AAGJ;EACI;EACA,WZ5VM;EY6VN,OZ1bE;;AY6bN;EACI,WZjWM;EYkWN,aZ5Vc;EY6Vd,OXjeF;EWkeE;EACA;EACA,eX7cO;;;AWmdnB;EACI;EACA;;AAEA;EACI;;AAGJ;EACI;;;AAQR;EACI;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA,SZtbY;EYubZ,YZvgBO;EYwgBP;EACA,eXjfY;EWkfZ,YZraW;EYsaX,WZ3Yc;EY4Yd;EACA;;;AAGJ;EACI;EACA;EACA,KZncY;EYocZ;EACA,OZlfU;;AYofV;EACI;EACA;EACA,OXvhBI;;AW0hBR;EACI,aZxZkB;;AY2ZtB;EACI,OX/hBI;;;AWoiBZ;EACI;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA,YX9iBM;EW+iBN,OZjjBO;EYkjBP,WZnbc;EYobd,aZ7asB;EY8atB;EACA;EACA;;AAEA;EACI;EACA;EACA;;;Ab1kBR;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AcAA;AAAA;AAAA;AAAA;AASA;EACI,YbKO;EaJP;EACA,eZ6Be;;;AYzBnB;EACI;EACA;EACA;EACA,KZdK;EYeL;EACA,YZCI;EYAJ;EACA;EACA;EACA;EACA;;AAEA;EACI,YbaM;;;AaTd;EACI;EACA;EACA;EACA,WbyGc;EaxGd,ab8GsB;Ea7GtB,ObUU;;AaRV;EACI,OZzBI;;;AY8BZ;EACI,SZ3CK;;;AY+CT;EACI,eb2CY;;AazCZ;EACI;;;AAIR;EACI;EACA;EACA,Kb+BY;Ea9BZ,eb8BY;Ea7BZ,Wb6Ec;Ea5Ed,abkFsB;EajFtB,OblBU;;AaoBV;EACI,OZrDI;;;AYyDZ;EACI,eZtEK;EYuEL,WbiEc;EahEd,OZ5DQ;;;AYgEZ;EACI;EACA;EACA,KZ/EK;;;AYkFT;EACI;EACA;;;AAGJ;EACI;EACA;EACA,Wb8Cc;Ea7Cd,abmDoB;EalDpB,OblDU;;;AaqDd;EXYI;EACA;EACA,WF4Bc;EE3Bd,aFqCoB;EEpCpB,OFnEU;EEoEV,kBFvGO;EEwGP;EACA,eDjFY;ECkFZ;;AAEA;EACI,cD3GE;EC4CN;EACA;;AAkEA;EACI,OFnFM;;;Aa4Dd;EACI;EACA;EACA,KbdY;;;AaiBhB;EACI;EACA;EACA,KZ7GK;EY8GL,SbrBY;EasBZ,YbhEU;EaiEV,eZ/EY;;AYiFZ;EACI;;;AAIR;EACI;EACA;EACA,KbjCY;EakCZ;;;AAGJ;EACI;EACA;EACA;;;AAGJ;EACI,WbIc;EaHd,abQoB;EaPpB,Ob3FU;;;Aa+Fd;EACI;EACA;EACA;EACA,Yb9FW;Ea+FX,eb1Ca;Ea2Cb;;;AAGJ;EACI;EACA;EACA;EACA,YZ7IM;EY8IN,ebnDa;EaoDb;;;AAGJ;EACI;EACA;EACA;EACA;EACA,YbzJO;Ea0JP;EACA;EACA;EACA;EACA,Yb3DW;Ea4DX;;AAEA;EACI,Yb9DO;;AaiEX;EACI;;AAGJ;EACI;;AAGJ;EACI;;;AAKR;EACI;EACA;EACA,KbvGY;EawGZ;EACA,WbzDc;Ea0Dd;EACA,ObzJU;;;Aa4Jd;EACI,OZ3LQ;;;AY+LZ;EACI,SZ5MK;EY6ML,Yb9JU;Ea+JV,eZ7KY;;;AYgLhB;EACI;EACA;EACA,Kb3HY;Ea4HZ,eZrNK;;;AYwNT;EACI;EACA;EACA;;;AAGJ;EACI,WbtFc;EauFd,ablFoB;EamFpB,ObrLU;;;AawLd;EACI;EACA;EACA,Kb/IY;;;AakJhB;EXoBI;EACA;EACA,KFxKY;EEyKZ;EACA,WF1Hc;EE2Hd,aFrHoB;EEsHpB,YF/NU;EEgOV,OF3NU;EE4NV,eFhKa;;AEkKb;EAhOA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACI;;AAuNJ;EAjQA;EACA;EACA;EAkQI;EACA;EACA;EACA,ODlQI;ECmQJ;;AAEA;EACI;EACA,ODrQH;;AY4NT;EAEI;;AAEA;EACI,YbhOW;EaiOX,OZrOE;;;AY0OV;EACI;EACA;EACA,Kb/JY;EagKZ;EACA,Yb5NY;Ea6NZ,eZ1NY;EY2NZ,WbpHc;EaqHd,OZ7OG;;AY+OH;EACI,WbvHU;;Aa0Hd;EACI;EACA,abtHkB;;;Aa2H1B;EACI;EACA;EACA,KbrLY;EasLZ,SZ9QK;EY+QL,YbhOU;EaiOV,eZ/OY;EYgPZ,WbxIc;EayId,ObxOU;;Aa0OV;EACI;EACA;EACA,Kb9LQ;;AagMR;EACI,OZ7QF;EY8QE,WblJM;;AaqJV;EACI,OZnRA;;;AY0RR;EACI;;AAGJ;EACI,eZxQW;;;AY6QnB;EACI;EACA;EACA,YbnQW;EaoQX;EACA,eZlRe;;AYoRf;EACI;;AAGJ;EACI;EACA;EACA;EACA;;AAEA;EACI,YbjRG;;AaoRP;EACI,ObnRG;EaoRH;;;AAMZ;EACI;EACA;EACA;EACA;EACA;;;AAGJ;EACI;EACA;EACA;EACA;EACA,YbzSW;Ea0SX,ObtSW;EauSX,WbpNc;EaqNd,ab/MoB;EagNpB,ebxPa;EayPb;;AAEA;EACI;EACA;;;AAKR;EACI,YZzWK;;;AFNT;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AeAA;AAAA;AAAA;AAAA;AAYI;AAAA;EACI;EACA;EACA,eb0BW;EazBX;EACA;;AAIJ;AAAA;EACI;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;AAAA;EACI;;AAIJ;AAAA;EACI;EACA,ObhBF;;AaoBF;AAAA;EACI;EACA;EACA,adyGc;EcxGd,OdcG;;AcTX;AAAA;EACI,Wd2FU;Ec1FV,OdKO;EcJP;;AAKA;AAAA;EACI;;AAGJ;AAAA;EACI;;AAKR;AAAA;EACI;EACA;;AAIJ;AAAA;EACI;EACA,KbtEC;EauED;;AAIJ;AAAA;EACI;EACA,Kb7EC;Ea8ED,Sb9EC;Ea+ED,YdtEG;EcuEH,eb/CQ;EagDR;;AAIJ;AAAA;EACI;EACA;EACA;EACA;EACA;EACA;EACA,Yd7EW;Ec8EX,eb5DQ;Ea6DR,ObnFE;EaoFF,Wd0CU;;ActCd;AAAA;EACI;EACA;;AAEA;AAAA;EACI;EACA,Wd+BM;Ec9BN,adqCc;EcpCd,OdrDG;EcsDH;;AAGJ;AAAA;EACI;EACA,ObrGA;EasGA;EACA;;AAKR;AAAA;EACI,YbzHC;Ea0HD;EACA,YdlHG;EcmHH,eb3FQ;Ea4FR;EACA;EACA,ObnHI;EaoHJ;;AAEA;AAAA;EACI,ObxHF;EayHE;;;Af1IZ;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AgBAA;AAAA;AAAA;AAAA;AASA;EACI,YfKO;EeJP;EACA,ed6Be;Ec5Bf,efoFY;;AelFZ;EACI;;;AAMJ;EACI;EACA,ediBW;;Acdf;EACI;;;AAQR;EACI;EACA;EACA;EACA,KfyDY;EexDZ;EACA;EACA,YfUU;EeTV;EACA;EACA;EACA;;AAEA;EACI,YfIO;;;AeAf;EACI;EACA;EACA,KdnDK;EcoDL;EACA;;;AAGJ;EACI;EACA,Od9CQ;Ec+CR;;;AAGJ;EACI;EACA;EACA;EACA;;;AAGJ;EACI,WfmEc;EelEd,afwEsB;EevEtB,OfjBW;EekBX;;;AAGJ;EACI,Wf2Dc;Ee1Dd,OdlEQ;EcmER;EACA;EACA;;;AAIJ;EACI;EACA;EACA;EACA;EACA,Wf8Cc;Ee7Cd,afmDoB;EelDpB,OdjFM;EckFN;EACA,efQa;EePb;EACA,adhGK;EciGL;EACA;EACA;EACA;;AAEA;EACI;;;AAIR;EACI;EACA;EACA,Kd9GK;Ec+GL;EACA;;;AAGJ;EACI;EACA;EACA,Kf7BY;;;AeiChB;EACI;EACA;EACA;EACA;EACA;EACA,WfSc;EeRd,OdrHQ;EcsHR;EACA;EACA,edlGe;EcmGf;;AAEA;EACI,Od7HE;Ec8HF;;;AAKR;EACI;EACA;EACA;EACA,WfVc;EeWd,OdxIM;EcyIN;;AAEA;EACI;;;AAKR;EbgBI;EACA;EACA;EACA;EACA;EACA;EACA;EACA,YDxKM;ECyKN,OF3KO;EE4KP,WF7Cc;EE8Cd,aFvCsB;EEwCtB,eFjFa;EEkFb;EACA;EACA;;AAEA;EACI;EACA;;AAIJ;EACI;EACA;;AAIJ;EACI;;AAEA;EACI;EACA;;AAGJ;EACI;EACA;;AAKR;EAEI,YFtKO;EEuKP;;AAEA;EACI;EACA;;AAKR;EACI;EACA;;AAIJ;EACI;EACA;EACA;;AAGJ;EACI;;AAGJ;EACI,aFpGc;;;AeiBtB;EACI,OdpJK;EcqJL,Wf3Bc;;;Ae+BlB;EACI,Od1JK;Ec2JL,WfjCc;EekCd;;;AAIJ;EbtII;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACI;;Aa6HR;EAEI;EACA;EACA;EACA;EACA,Wf5Cc;Ee6Cd,afvCoB;EewCpB,Of5IU;Ee6IV,Yf9KO;Ee+KP;EACA,edxJY;EcyJZ;;AAEA;EACI,Yf9IM;Ee+IN,cd9JO;;AciKX;EACI,OdvLE;EcwLF,cdxLE;EcyLF,YfrLW;;;Ae6LnB;EACI,SflHY;EemHZ;EACA,YftMO;EeuMP;;;AAIJ;EACI;;;AAOJ;AAAA;EAEI;EACA;EACA;;AAEA;AAAA;EACI;EACA;EACA;;;AAIR;EACI;EACA;EACA;EACA;EACA,af/FsB;EegGtB,Of1LW;Ee2LX,edhPK;;AckPL;EACI,Wf1GU;Ee2GV,OfjMO;EekMP;;;AAQR;EACI;EACA;EACA,Of7MW;;;AeoNf;EACI;;AAEA;EACI;;AAGJ;AAAA;EAEI;EACA;EACA;EACA;EACA;EACA;EACA;;;AAKR;EACI,WfnJc;EeoJd,af9IsB;Ee+ItB,OfxOW;EeyOX,ed/RK;;;AckST;EACI;EACA;EACA,KdrSK;;;Ac4ST;EACI;EACA,efrNY;;AeuNZ;EACI;EACA;EACA;EACA;EACA;EACA;EACA,Od5SE;Ec6SF,Wf/KU;EegLV;EACA;;AAEA;EACI,Of/SO;;AekTX;EACI;EACA;;AAGJ;EACI,afxLY;;;AewMxB;EACI;IACI;IACA;;EAEJ;IACI;IACA;;;AhBnWR;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AiBAA;AAAA;AAAA;AAAA;AAaI;AAAA;EACI;EACA;EACA;;AAIJ;AAAA;EACI;EACA;EACA;EACA,YhB8BO;EgB7BP,efcQ;EebR;;AAGJ;AAAA;EACI;EACA;EACA;EACA;EACA;EACA,OfjBI;EekBJ;EACA,efGW;EeFX;;AAEA;AAAA;EACI;;AAGJ;AAAA;EACI;;AAGJ;AAAA;EACI,OfhCF;EeiCE;;AAGJ;AAAA;EACI,YfrCF;EesCE,OhBxCD;EgByCC,ahB4FY;;AgBvFpB;AAAA;EACI;EACA;EACA,Kf1DC;;Ae8DL;AAAA;AAAA;AAAA;AAAA;AAAA;EAGI,OfrDI;EesDJ;EACA;;AAGJ;AAAA;EACI,OfzDC;;Ae6DL;AAAA;EACI,ef5EC;;Ae+EL;AAAA;EACI;EACA;EACA;EACA,ehBMQ;;AgBHZ;AAAA;EACI,WhBiDU;EgBhDV,ahBsDgB;EgBrDhB,Of7EI;;AegFR;AAAA;EACI;EACA,OhB3CO;;AgB+CX;AAAA;Ed1DA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;AAAA;EACI;;AciDJ;AAAA;EAEI;EACA;EACA;EACA;EACA,WhBgCU;EgB/BV,Of9FE;Ee+FF;EACA;EACA,ef1EW;Ee2EX;;AAEA;AAAA;EACI,YhBjGO;;AgBqGf;AAAA;Ed5EA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;AAAA;EACI;;AcmEJ;AAAA;EAEI;EACA;EACA;EACA;EACA,WhBcU;EgBbV,Of7GC;Ee8GD;;AAEA;AAAA;EACI;;AAQR;AAAA;EACI;EACA;EACA;EACA,YhBlIG;EgBmIH;EACA,ef3GW;Ee4GX;;AAEA;AAAA;EACI,cftIF;;Ae0IN;AAAA;EACI;EACA;EACA;EACA;EACA,YhB1GO;EgB2GP;EACA,ahBbkB;EgBclB,WhBrBU;EgBsBV,OhBvGO;;AgByGP;AAAA;EACI,YhBtGC;EgBuGD,qBhBrGE;;AgByGV;AAAA;EACI;EACA;EACA;EACA;;AAGJ;AAAA;EACI;EACA;EACA;EACA;EACA,YflJO;EemJP,ehB7ES;EgB8ET;EACA,ahBtCkB;EgBuClB;EACA;EACA,Of5KI;;Ae8KJ;AAAA;EACI,YfhLF;EeiLE,OhBnLD;;AgBwLP;AAAA;EACI;EACA;EACA;EACA;EACA,YhBvJM;EgBwJN;;AAGJ;AAAA;EdlKA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;AAAA;EACI;;AcyJJ;AAAA;EAEI;EACA;EACA;EACA;EACA;EACA;EACA,YhBzMG;EgB0MH;EACA,eflLW;EemLX,OfzMI;Ee0MJ;EACA,WhB/EU;EgBgFV;;AAEA;AAAA;EACI,YhB3KG;EgB4KH,chBzKG;EgB0KH,OhBtKG;;AgB0KX;AAAA;EACI;EACA;EACA;EACA;EACA,efpMW;EeqMX;EACA;;AAEA;AAAA;EACI,cfhOF;;AemOF;AAAA;EACI,OhB5LG;;AgBiMX;AAAA;EACI;EACA;EACA;EACA;EACA;EACA;;AdtHJ;AAAA;EACI;EACA;;AAGJ;AAAA;EACI,YDzHA;EC0HA;;AAGJ;AAAA;EACI,YD/GO;ECgHP;;AAEA;AAAA;EACI,YF5GE;;AgBuNV;AAAA;AAAA;AAAA;AAAA;AAAA;EAGI;EACA;EACA,OhBhNO;EgBiNP;EACA;;AAGJ;AAAA;EACI,Of3PC;;Ae+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","file":"entity-selector.css","sourcesContent":["/**\n * Entity Selector Styles\n * @package prestashop-entity-selector\n * @version 2.0.0\n *\n * Compiles to: assets/css/admin/entity-selector.css\n */\n\n// Foundation\n@use 'variables' as *;\n@use 'mixins' as *;\n\n// Layouts\n@use 'layouts/form-integration';\n@use 'layouts/responsive';\n\n// Components\n@use 'components/entity-selector';\n@use 'components/entity-item'; // Shared base for chips and list items\n@use 'components/dropdown';\n@use 'components/chips';\n@use 'components/groups';\n@use 'components/value-picker';\n@use 'components/modal';\n@use 'components/list-preview';\n@use 'components/schedule';\n@use 'components/tips';\n@use 'components/condition-trait';\n@use 'components/combinations';\n@use 'components/method-dropdown';\n@use 'components/tooltip';\n@use 'components/tree';\n@use 'components/validation';\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 * 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 * Entity Selector Mixins\n * Reusable patterns - prefer Bootstrap utilities in HTML where possible\n */\n\n@use \"sass:color\";\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: color.adjust($bg, $lightness: -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// Excludes .layout-form-group which uses standard PrestaShop form layout\n.form-group:has(.entity-selector-trait:not(.layout-form-group)),\n.form-group:has(.target-conditions-trait:not(.layout-form-group)),\n.form-group:has(.condition-trait:not(.layout-form-group)) {\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// SAFEGUARD: Force label visibility for form-group layout widgets\n// This overrides any conflicting rules (including fallback class rules)\n// when the widget has layout-form-group class indicating standard form integration\n.form-group:has(.layout-form-group) > .control-label {\n display: flex !important;\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// =============================================================================\n// Embedded Layout\n// =============================================================================\n// Use .layout-embedded for entity selectors nested inside other components\n// Removes outer wrapper styling to avoid redundant borders/backgrounds\n\n.target-conditions-trait.layout-embedded,\n.entity-selector-trait.layout-embedded {\n background: transparent;\n border: none;\n border-radius: 0;\n\n // Remove padding from groups container when embedded\n .groups-container {\n padding: 0;\n }\n\n // Remove block body padding\n .block-body {\n padding: 0;\n }\n\n // Remove block footer border when embedded\n .block-footer {\n border-top: none;\n padding: $es-spacing-sm 0 0;\n }\n\n // Simplify selection group when embedded - single thin border only\n .selection-group {\n background: $es-white;\n border: 1px solid $es-slate-200;\n border-radius: $es-radius-md;\n\n // Lighter group header in embedded mode\n .group-header {\n background: $es-slate-50;\n border-bottom-color: $es-slate-200;\n padding: $es-spacing-xs $es-spacing-sm;\n border-radius: $es-radius-md $es-radius-md 0 0;\n }\n\n // Reduce group body padding (slightly more than $es-spacing-sm for readability)\n .group-body {\n padding: 0.75rem;\n }\n\n // Reduce group-include section padding\n .group-include {\n padding: $es-spacing-xs;\n margin-bottom: $es-spacing-sm;\n }\n\n // Smaller modifiers section\n .group-modifiers {\n padding: $es-spacing-xs $es-spacing-sm;\n margin: $es-spacing-sm (-$es-spacing-sm) (-$es-spacing-sm);\n }\n }\n\n // Empty state - smaller padding\n .groups-empty-state {\n padding: $es-spacing-md;\n }\n\n // Smaller add group button\n .btn-add-group {\n padding: 0.375rem 0.625rem;\n font-size: $es-font-size-xs;\n }\n}\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 - 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 // Tabs row with actions (form-content layout)\n .entity-selector-tabs-row {\n display: flex;\n align-items: stretch;\n background: $es-slate-100;\n border-bottom: 1px solid $es-border-color;\n border-radius: $es-radius-lg $es-radius-lg 0 0;\n\n .target-block-tabs {\n flex: 1;\n border-bottom: 0;\n border-radius: $es-radius-lg 0 0 0;\n }\n }\n\n // Expand/collapse toggle area (entire section is clickable)\n .entity-selector-actions.btn-toggle-blocks {\n display: flex;\n align-items: center;\n justify-content: center;\n padding: 0 $es-spacing-md;\n background: $es-slate-100;\n border-left: 1px solid $es-border-color;\n color: $es-slate-400;\n cursor: pointer;\n transition: all $es-transition-fast;\n\n &:hover {\n background: $es-slate-200;\n color: $es-primary;\n }\n\n .material-icons {\n font-size: 20px !important;\n }\n }\n\n // When expanded - highlight the toggle area\n .entity-selector-trait:not(.blocks-collapsed) .entity-selector-actions.btn-toggle-blocks {\n background: $es-primary-light;\n border-left-color: $es-primary;\n color: $es-primary;\n }\n\n // Blocks content wrapper (for form-content layout collapse)\n .entity-selector-blocks-content {\n // Inherits styles from condition-trait-body context\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 &.result-flag {\n width: 32px;\n height: 24px;\n border-radius: 2px;\n box-shadow: 0 0 0 1px rgba(0, 0, 0, 0.1);\n background: transparent;\n\n img {\n object-fit: contain;\n }\n\n .flag-fallback {\n display: flex;\n align-items: center;\n justify-content: center;\n width: 100%;\n height: 100%;\n background: linear-gradient(135deg, #e8eaed 0%, #dadce0 100%);\n font-size: 14px;\n color: #5f6368;\n }\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 \"sass:color\";\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 // Country flag in chip\n .chip-flag {\n display: flex;\n align-items: center;\n justify-content: center;\n flex-shrink: 0;\n\n img {\n width: 18px;\n height: 12px;\n object-fit: cover;\n border-radius: 2px;\n box-shadow: 0 0 0 1px rgba(0, 0, 0, 0.1);\n }\n\n .flag-fallback {\n width: 18px;\n height: 12px;\n display: inline-flex;\n align-items: center;\n justify-content: center;\n background: linear-gradient(135deg, #e8eaed 0%, #dadce0 100%);\n border-radius: 2px;\n font-size: 10px;\n color: #5f6368;\n }\n }\n\n // Holiday preview button in country chip\n .chip-preview-holidays {\n @include button-reset;\n display: flex;\n align-items: center;\n justify-content: center;\n width: 18px;\n height: 18px;\n color: $es-primary;\n border-radius: 50%;\n flex-shrink: 0;\n transition: all $es-transition-fast;\n\n &:hover {\n background: rgba($es-primary, 0.15);\n color: darken($es-primary, 10%);\n }\n\n i.material-icons {\n font-size: 14px;\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: color.adjust($es-warning, $lightness: -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// ==========================================================================\n// Holiday Preview Popover (Country chip eye button)\n// ==========================================================================\n\n.holiday-preview-popover {\n position: absolute;\n z-index: 10001;\n width: 320px;\n max-width: 90vw;\n background: $es-white;\n border-radius: $es-radius-lg;\n box-shadow: $es-shadow-xl;\n overflow: hidden;\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 }\n\n .popover-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\n .popover-flag {\n border-radius: 2px;\n box-shadow: 0 0 0 1px rgba(0, 0, 0, 0.1);\n }\n\n .popover-close {\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-md;\n transition: all $es-transition-fast;\n\n &:hover {\n background: $es-slate-200;\n color: $es-text-secondary;\n }\n\n i.material-icons {\n font-size: 18px;\n }\n }\n\n .popover-body {\n max-height: 350px;\n overflow-y: auto;\n padding: $es-spacing-sm;\n @include custom-scrollbar;\n }\n\n // Loading state\n .holiday-preview-loading {\n display: flex;\n align-items: center;\n justify-content: center;\n gap: $es-spacing-sm;\n padding: $es-spacing-xl 0;\n color: $es-text-muted;\n font-size: $es-font-size-sm;\n\n i.material-icons {\n font-size: 20px;\n }\n\n .icon-spin {\n animation: spin 1s linear infinite;\n }\n }\n\n // Empty state\n .holiday-preview-empty {\n text-align: center;\n padding: $es-spacing-xl 0;\n color: $es-text-muted;\n\n i.material-icons {\n font-size: 48px;\n opacity: 0.4;\n margin-bottom: $es-spacing-sm;\n display: block;\n }\n\n p {\n margin: 0;\n font-size: $es-font-size-sm;\n }\n }\n\n // Holiday list\n .holiday-list {\n display: flex;\n flex-direction: column;\n gap: $es-spacing-xs;\n }\n\n .holiday-item {\n display: flex;\n align-items: flex-start;\n gap: $es-spacing-md;\n padding: $es-spacing-sm $es-spacing-md;\n background: $es-slate-50;\n border-radius: $es-radius-md;\n border-left: 3px solid $es-success;\n\n &.holiday-type-bank,\n &.holiday-type-bank-holiday {\n border-left-color: $es-info;\n }\n\n &.holiday-type-observance {\n border-left-color: $es-warning;\n }\n\n &.holiday-type-regional,\n &.holiday-type-local-holiday {\n border-left-color: #8b5cf6;\n }\n }\n\n .holiday-date {\n flex-shrink: 0;\n min-width: 80px;\n\n .holiday-day {\n display: block;\n font-size: $es-font-size-sm;\n font-weight: $es-font-weight-semibold;\n color: $es-text-primary;\n }\n\n .holiday-weekday {\n display: block;\n font-size: $es-font-size-xs;\n color: $es-text-muted;\n }\n }\n\n .holiday-info {\n flex: 1;\n min-width: 0;\n }\n\n .holiday-country-flag {\n vertical-align: middle;\n margin-right: 0.25rem;\n border-radius: 2px;\n box-shadow: 0 0 0 1px rgba(0, 0, 0, 0.1);\n }\n\n .holiday-name {\n display: inline;\n font-size: $es-font-size-sm;\n color: $es-text-primary;\n word-wrap: break-word;\n }\n\n .holiday-type-badge {\n display: inline-block;\n margin-left: $es-spacing-sm;\n padding: 0.125rem 0.375rem;\n font-size: 10px;\n font-weight: $es-font-weight-medium;\n text-transform: capitalize;\n background: $es-slate-200;\n color: $es-text-secondary;\n border-radius: $es-radius-sm;\n vertical-align: middle;\n }\n\n .holiday-preview-note {\n margin-top: $es-spacing-md;\n font-size: $es-font-size-xs;\n color: $es-text-muted;\n text-align: center;\n }\n\n // Filter input\n .popover-filter {\n display: flex;\n align-items: center;\n gap: $es-spacing-xs;\n padding: $es-spacing-xs $es-spacing-md;\n border-bottom: 1px solid $es-border-color;\n background: $es-slate-50;\n\n i.material-icons {\n font-size: 18px;\n color: $es-text-muted;\n }\n\n .holiday-filter-input {\n flex: 1;\n border: none;\n background: transparent;\n font-size: $es-font-size-sm;\n color: $es-text-primary;\n outline: none;\n padding: $es-spacing-xs 0;\n\n &::placeholder {\n color: $es-text-muted;\n }\n }\n }\n}\n\n// Spin animation for loading icons\n@keyframes spin {\n from {\n transform: rotate(0deg);\n }\n to {\n transform: rotate(360deg);\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 // Country holidays variant - use calendar icon style\n &.country-holidays {\n background: rgba(139, 92, 246, 0.1);\n color: #8b5cf6;\n\n &:hover {\n background: rgba(139, 92, 246, 0.2);\n }\n\n &.clickable {\n background: rgba(139, 92, 246, 0.15);\n }\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.75rem;\n color: $es-text-muted;\n background: transparent;\n border: 1px dashed $es-border-color;\n border-radius: 100px; // Pill shape\n font-size: $es-font-size-xs;\n font-weight: $es-font-weight-normal;\n cursor: pointer;\n transition: all $es-transition-fast;\n\n &:hover {\n color: $es-text-secondary;\n border-color: $es-slate-400;\n border-style: solid;\n }\n\n &.selected {\n color: $es-primary;\n background: $es-primary-light;\n border: 1px solid $es-primary;\n font-weight: $es-font-weight-medium;\n }\n\n i {\n font-size: 11px;\n opacity: 0.6;\n }\n\n &.selected i {\n opacity: 1;\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 \"sass:color\";\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: color.adjust($es-danger, $lightness: -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// ==========================================================================\n// Holiday Preview Modal\n// ==========================================================================\n\n#mpr-holiday-preview-modal {\n display: none;\n position: fixed;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n z-index: $es-z-modal;\n\n &.show {\n display: flex;\n align-items: center;\n justify-content: center;\n }\n\n .mpr-modal-backdrop {\n position: absolute;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n background: rgba(0, 0, 0, 0.5);\n cursor: pointer;\n }\n\n .mpr-modal-dialog {\n position: relative;\n width: 90%;\n max-width: 480px;\n max-height: 80vh;\n background: $es-white;\n border-radius: $es-radius-lg;\n box-shadow: $es-shadow-xl;\n display: flex;\n flex-direction: column;\n overflow: hidden;\n }\n\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 display: flex;\n align-items: center;\n gap: $es-spacing-sm;\n font-size: $es-font-size-base;\n font-weight: $es-font-weight-semibold;\n color: $es-text-primary;\n margin: 0;\n\n i.material-icons {\n font-size: 20px;\n color: $es-primary;\n }\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: 18px;\n }\n }\n\n .mpr-modal-body {\n flex: 1;\n overflow-y: auto;\n padding: $es-spacing-lg;\n @include custom-scrollbar;\n }\n\n // Loading state\n .holiday-preview-loading {\n display: flex;\n align-items: center;\n justify-content: center;\n gap: $es-spacing-sm;\n padding: $es-spacing-xl 0;\n color: $es-text-muted;\n font-size: $es-font-size-sm;\n\n i {\n font-size: $es-font-size-lg;\n }\n }\n\n // Empty state\n .holiday-preview-empty {\n text-align: center;\n padding: $es-spacing-xl 0;\n color: $es-text-muted;\n\n i.material-icons {\n font-size: 48px;\n opacity: 0.5;\n margin-bottom: $es-spacing-md;\n }\n\n p {\n margin: 0 0 $es-spacing-xs;\n }\n\n .hint {\n font-size: $es-font-size-xs;\n color: $es-text-muted;\n }\n }\n\n // Holiday list\n .holiday-list {\n display: flex;\n flex-direction: column;\n gap: $es-spacing-sm;\n }\n\n .holiday-item {\n display: flex;\n align-items: flex-start;\n gap: $es-spacing-md;\n padding: $es-spacing-sm $es-spacing-md;\n background: $es-slate-50;\n border-radius: $es-radius-md;\n border-left: 3px solid $es-success;\n\n &.holiday-type-bank {\n border-left-color: $es-info;\n }\n\n &.holiday-type-observance {\n border-left-color: $es-warning;\n }\n\n &.holiday-type-regional {\n border-left-color: #8b5cf6;\n }\n }\n\n .holiday-date {\n flex-shrink: 0;\n min-width: 100px;\n\n .holiday-day {\n display: block;\n font-size: $es-font-size-sm;\n font-weight: $es-font-weight-semibold;\n color: $es-text-primary;\n }\n\n .holiday-weekday {\n display: block;\n font-size: $es-font-size-xs;\n color: $es-text-muted;\n }\n }\n\n .holiday-info {\n flex: 1;\n min-width: 0;\n }\n\n .holiday-name {\n display: block;\n font-size: $es-font-size-sm;\n color: $es-text-primary;\n word-wrap: break-word;\n }\n\n .holiday-type-badge {\n display: inline-block;\n margin-top: $es-spacing-xs;\n padding: 0.125rem 0.375rem;\n font-size: 10px;\n font-weight: $es-font-weight-medium;\n text-transform: capitalize;\n background: $es-slate-200;\n color: $es-text-secondary;\n border-radius: $es-radius-sm;\n }\n\n .holiday-preview-note {\n margin-top: $es-spacing-md;\n font-size: $es-font-size-xs;\n color: $es-text-muted;\n text-align: center;\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// =============================================================================\n// Schedule Preview Dropdown (for admin list columns)\n// =============================================================================\n\n.schedule-preview-dropdown {\n display: none;\n position: absolute;\n top: 100%;\n left: 50%;\n transform: translateX(-50%);\n margin-top: 4px;\n z-index: 1000;\n min-width: 180px;\n padding: $es-spacing-sm;\n background: $es-white;\n border: 1px solid $es-border-color;\n border-radius: $es-radius-md;\n box-shadow: $es-shadow-lg;\n font-size: $es-font-size-sm;\n text-align: left;\n white-space: nowrap;\n}\n\n.schedule-preview-item {\n display: flex;\n align-items: flex-start;\n gap: $es-spacing-sm;\n padding: $es-spacing-xs 0;\n color: $es-text-primary;\n\n .material-icons {\n flex-shrink: 0;\n font-size: 16px;\n color: $es-text-muted;\n }\n\n strong {\n font-weight: $es-font-weight-semibold;\n }\n\n .schedule-time {\n color: $es-text-muted;\n }\n}\n\n// Badge trigger for schedule preview\n.btn-schedule-preview {\n position: relative;\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: $es-primary;\n color: $es-white;\n font-size: $es-font-size-xs;\n font-weight: $es-font-weight-semibold;\n border-radius: 50rem;\n cursor: pointer;\n text-transform: none;\n\n .icon-eye {\n font-size: 10px;\n line-height: 1;\n opacity: 0.8;\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// Schedule toggle row (form-content layout)\n.schedule-toggle-row {\n display: flex;\n align-items: center;\n background: $es-slate-100;\n border: 1px solid $es-border-color;\n border-radius: $es-radius-lg;\n\n .schedule-toggle-switch {\n padding: $es-spacing-sm $es-spacing-md;\n }\n\n .schedule-toggle-actions {\n padding: $es-spacing-sm $es-spacing-md;\n border-left: 1px solid $es-border-color;\n cursor: pointer;\n transition: background-color $es-transition-fast;\n\n &:hover {\n background: $es-slate-200;\n }\n\n .material-icons {\n color: $es-slate-400;\n font-size: 20px;\n }\n }\n}\n\n// Schedule summary badges (read-only indicators in header)\n.schedule-summary-badges {\n display: flex;\n align-items: center;\n gap: 0.5rem;\n margin-left: auto;\n padding: 0 $es-spacing-sm;\n}\n\n.schedule-badge {\n display: inline-flex;\n align-items: center;\n gap: 0.25rem;\n padding: 0.25rem 0.5rem;\n background: $es-slate-200;\n color: $es-slate-600;\n font-size: $es-font-size-xs;\n font-weight: $es-font-weight-medium;\n border-radius: $es-radius-full;\n white-space: nowrap;\n\n .material-icons {\n font-size: 14px;\n opacity: 0.7;\n }\n}\n\n// Section hint after embedded entity selector - add margin\n.schedule-holidays .section-hint {\n margin-top: $es-spacing-md;\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// Schedule summary (shows current config at a glance)\n.trait-summary {\n display: inline-flex;\n align-items: center;\n gap: 0.375rem;\n padding: 0.25rem 0.625rem;\n font-size: $es-font-size-xs;\n font-weight: $es-font-weight-medium;\n color: $es-primary;\n background: rgba($es-primary, 0.08);\n border-radius: $es-radius-full;\n white-space: nowrap;\n margin-left: $es-spacing-md;\n flex-shrink: 0;\n max-width: 320px;\n overflow: hidden;\n text-overflow: ellipsis;\n\n &:empty {\n display: none;\n }\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// Collapse Header (form-content layout)\n// =============================================================================\n\n.entity-selector-collapse-header {\n padding: 0;\n margin-bottom: $es-spacing-sm;\n\n .btn-collapse-toggle {\n display: inline-flex;\n align-items: center;\n gap: 0.25rem;\n padding: 0.25rem 0;\n background: none;\n border: none;\n color: $es-primary;\n font-size: $es-font-size-sm;\n cursor: pointer;\n transition: color $es-transition-fast;\n\n &:hover {\n color: $es-primary-hover;\n }\n\n .collapse-icon {\n font-size: 1.25rem;\n transition: transform 0.2s;\n }\n\n .collapse-label {\n font-weight: $es-font-weight-medium;\n }\n }\n}\n\n// When collapsed, rotate icon\n.condition-trait.collapsed .entity-selector-collapse-header {\n .collapse-icon {\n // Icon already shows expand_more when collapsed\n }\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 \"sass:color\";\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: color.adjust($es-primary-hover, $lightness: -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 \"sass:color\";\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: color.adjust($es-primary, $lightness: -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.bak b/assets/js/admin/entity-selector.js.bak new file mode 100644 index 0000000..ea22f35 --- /dev/null +++ b/assets/js/admin/entity-selector.js.bak @@ -0,0 +1,10186 @@ +/** + * Entity Selector - Utilities Module + * Helper functions: escape, validation, icons, search history + * @partial _utils.js (must be loaded first) + * + * EXTRACTION SOURCE: assets/js/admin/entity-selector.js + * Lines: 7552-7570 (escapeHtml, escapeAttr) + * 7577-7590 (getEntityTypeLabel) + * 6289-6350 (validate, showValidationError, clearValidationError) + * 7115-7137 (showRangeInputError) + * 7728-7745 (getBlockMode, isBlockSingleMode) + * 7707-7723 (getCurrentSingleSelection) + * 5411-5467 (search history methods) + */ + +(function($) { + 'use strict'; + + // Create mixin namespace + window._EntitySelectorMixins = window._EntitySelectorMixins || {}; + + // Utility functions mixin + window._EntitySelectorMixins.utils = { + + /** + * Debounce function - delays execution until after wait milliseconds + * @param {Function} func - Function to debounce + * @param {number} wait - Milliseconds to wait + * @returns {Function} Debounced function + */ + debounce: function(func, wait) { + var timeout; + return function() { + var context = this; + var args = arguments; + clearTimeout(timeout); + timeout = setTimeout(function() { + func.apply(context, args); + }, wait); + }; + }, + + escapeHtml: function(str) { + if (str === null || str === undefined) return ''; + return String(str) + .replace(/&/g, '&') + .replace(//g, '>') + .replace(/"/g, '"') + .replace(/'/g, '''); + }, + + escapeAttr: function(str) { + if (str === null || str === undefined) return ''; + return String(str) + .replace(/&/g, '&') + .replace(//g, '>') + .replace(/"/g, '"') + .replace(/'/g, '''); + }, + + getEntityTypeIcon: function(entityType) { + var icons = { + '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' + }; + return icons[entityType] || 'icon-cube'; + }, + + getEntityTypeLabel: function(entityType) { + var trans = this.config.trans || {}; + var labels = { + 'products': trans.product || 'Product', + 'categories': trans.category || 'Category', + 'manufacturers': trans.manufacturer || 'Manufacturer', + 'suppliers': trans.supplier || 'Supplier', + 'attributes': trans.attribute || 'Attribute', + 'features': trans.feature || 'Feature', + 'cms': trans.cms_page || 'CMS Page', + 'cms_categories': trans.cms_category || 'CMS Category' + }; + return labels[entityType] || entityType; + }, + + validate: function() { + var isRequired = this.$wrapper.data('required') === 1 || this.$wrapper.data('required') === '1'; + if (!isRequired) return true; + + var hasData = false; + this.$wrapper.find('.target-block').each(function() { + if ($(this).find('.selection-group').length > 0) { + hasData = true; + return false; + } + }); + + if (!hasData) { + this.showValidationError(); + return false; + } + + this.clearValidationError(); + return true; + }, + + showValidationError: function() { + this.$wrapper.addClass('has-validation-error'); + var message = this.$wrapper.data('required-message') || 'Please select at least one item'; + this.$wrapper.find('.trait-validation-error').remove(); + var $error = $('