Files
prestashop-entity-selector/assets/css/admin/entity-selector.css.map
myprestarocks c6fd5cee13 refactor: entity selector full overhaul — Mar 2026
- Unified _setBadgeCount for ALL badge updates
- target-conditions-trait → entity-selector-trait
- target-* → es-* class rename (20+ classes)
- SCSS recompiled: zero duplicate selectors
- CSS transitions replace jQuery slideDown/slideUp
- Serialize cache, method swap cache
- Badge: no-matches gray, consistent hover, no blending
- Inline condition count always visible
- Preview popover refreshes in-place on sort change
- Categories add chips immediately
- Entity type icons on chips
- Consistent info_outline icons via buildHelpIcon
- Method dropdown text clipping fix (line-height)
- mpr-input-compact on all inputs
- Dropdown padding fixed in SCSS source
- Chips wrapper: same container always
- Reusable helpers: _buildEmptyState, _buildSearchBoxHtml, _buildInfoTooltip
- Asset path: uses $this->module->getPathUri() not reflection
- Debug logs removed

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-30 18:05:43 +00:00

1 line
287 KiB
Plaintext

{"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/_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","components/_replace-modal.scss"],"names":[],"mappings":";AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;ACAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;ACAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;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;EAMI;EACA;EACA,cF0DW;;;AErDf;AAAA;AAAA;EAGI;;AAEA;AAAA;AAAA;EACI;;AAGJ;AAAA;AAAA;EACI;EACA;EACA,cFpBC;EEqBD,eFrBC;EEsBD;;;AAKR;EACI;;AAEA;EACI;;AAGJ;EACI;EACA;EACA,cFrCC;EEsCD,eFtCC;EEuCD;;;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,YHvGG;EGwGH;EACA,eF7CQ;;AEgDR;AAAA;EACI,YHvEE;EGwEF,qBHtEG;EGuEH;EACA;;AAIJ;AAAA;EACI;;AAIJ;AAAA;EACI,SH3CI;EG4CJ,eH3CI;;AG+CR;AAAA;EACI;EACA;;AAKR;AAAA;EACI,SFzIC;;AE6IL;AAAA;EACI;EACA,WHdU;;;AD9IlB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AKAA;AAAA;AAAA;AAAA;AAQA;EAEQ;IACI;IACA;IACA,KJkFI;;EI/ER;IACI;IACA;;EAGJ;IACI;;;AAMZ;EAEQ;IACI,SJgEI;II/DJ,WJ8GM;;EI3GV;IACI;IACA;;EAGJ;IACI;IACA;IACA;;EAGJ;IACI;;;AAMZ;EAEQ;IACI;;;ALxDZ;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AMAA;AAAA;AAAA;AAAA;AASA;EACI;EACA;EACA,YLGO;EKFP;EACA,eJ+De;;AI5Df;EACI;EACA;EACA;EACA;EACA,KJTC;EIUD;EACA,YJQA;EIPA;EACA;EACA;EACA;EACA;;AAEA;EACI,YLWE;;AKPV;EACI;EACA;EACA;EACA;EACA;;AAGJ;EACI,WLoGU;EKnGV,OJnBI;EIoBJ;;AAGJ;EACI;EACA;EACA;EACA;;AAGJ;EACI,WLqFU;EKpFV,aL0FkB;EKzFlB,OLVM;EKWN;;AAGJ;EACI,WL6EU;EK5EV,OJvCI;EIwCJ;EACA;EACA;;AAIJ;EHyGA;EACA;EACA;EACA;EACA;EACA;EACA;EACA,YDhKM;ECiKN,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;;AK7ElB;EAEI,aLoBQ;;AKhBZ;EACI;EACA;EACA,KLaQ;EKZR;EACA;EACA,eJTW;EIUX;EACA;EACA;;AAEA;EACI;;AAGJ;EACI,WL+CM;EK9CN,aLoDY;EKnDZ,OJtEA;;AIyEJ;EACI;;AAGJ;EACI;EACA;EACA;EACA,YLpDG;EKqDH,eLDK;EKEL;;AAEA;EACI;EACA;EACA;EACA;EACA;EACA;EACA,YLxGL;EKyGK;EACA;EACA;;AAIR;EACI,YJnGF;;AIqGE;EACI;;AAMZ;EACI,cJ5GC;EI6GD;;AAEA;EACI,qBJhHH;;AIoHL;EACI;EACA;EACA,KLrDQ;EKsDR;EACA,YLzHU;EK0HV;EACA,WLTU;EKUV,aLLgB;EKMhB;;AAEA;EACI,OJhIH;;AIqIL;EACI;EACA,OJvIC;;AI2IL;EACI;EACA,YL3JG;EK4JH;;AAIJ;EACI;EACA;EACA;EACA;EACA,YL9HO;EK+HP;;AAGJ;EACI;EACA;EACA;EACA,KL7FQ;EK8FR;EACA;EACA;EACA;EACA;EACA;EACA;EACA,OJzKI;EI0KJ,WLtDU;EKuDV,aLlDgB;EKmDhB;EACA;;AAEA;EACI,YLpJG;EKqJH,OLhJG;;AKmJP;EACI,YLjMD;EKkMC,qBL7IE;EK8IF,OJzLF;;AI4LF;EACI,WLvEM;;AK0EV;EACI;;AAGJ;EH3CJ;EACA;EACA;EACA;EACA;EACA;EACA;EACA,YDhKM;ECiKN,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;;AK2Ed;EH/CJ;EACA;EACA;EACA;EACA;EACA;EACA;EACA,YFhIW;EEiIX,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;;AKiFlB;EACI;EACA;EACA,YLpLO;EKqLP;EACA;;AAEA;EACI;EACA;EACA;;AAKR;EACI;EACA;EACA;EACA;EACA,YLrMO;EKsMP;EACA,OLpMO;EKqMP;EACA;;AAEA;EACI,YL3MG;EK4MH,OJ1OF;;AI6OF;EACI;;AAKR;EACI,YLxPW;EKyPX,mBJrPE;EIsPF,OJtPE;;AI+PN;EACI;;AAEA;EACI;;AAIR;EACI,SJpRC;;AIuRL;EACI;EACA;EACA,KJ1RC;;AI8RL;EACI;EACA;EACA;EACA;EACA,YJhRA;EIiRA;;AAIJ;EACI;EACA;EACA;EACA;EACA,KL3NQ;EK4NR,SLzNQ;EK0NR;EACA,OJlSI;;AIoSJ;EACI;EACA;;AAGJ;EACI;EACA,WLvLM;;AK4Ld;AAAA;EAEI;EACA;EACA;EACA;EACA;EACA,OJvTI;EIwTJ;EACA;;AAEA;AAAA;EAC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CI,ONlSI;;AMqSR;EACI;;AAGJ;AAAA;EAEI;EACA;EACA;EACA;EACA;EACA;EACA;EACA,eNjQW;EMkQX;;AAEA;AAAA;EACI;EACA;EACA,OPpUD;;AOuUH;AAAA;AAAA;EAEI,YN/TF;EMgUE,cNhUF;;AMkUE;AAAA;AAAA;EACI;;AAMZ;EACI;EACA;EACA,KPtQQ;;AO0QZ;EACI;EACA;EACA;EACA,KP9QQ;EO+QR,SP5QQ;EO6QR,ONpVI;EMqVJ,WPjOU;;AOmOV;EACI;EACA;;AAKR;EACI;EACA;EACA;EACA;EACA,KP/RQ;EOgSR,SP7RQ;EO8RR;EACA,ONtWI;;AMwWJ;EACI;EACA;;AAGJ;EACI;EACA,WP3PM;;AOgQd;EACI;EACA;EACA;EACA,SPjTQ;EOkTR,ONzXI;;AM2XJ;EACI;EACA;;AAKR;EACI;EACA;EACA;EACA,KNpZC;EMqZD;EACA,YP9WM;EO+WN;EACA;;AAIJ;EACI;EACA;EACA,KP9UQ;EO+UR,WP/RU;EOgSV,ONnZI;;AMqZJ;EACI,ONtZA;;AMyZJ;AAAA;EAEI;EACA;EACA;EACA,eN7WO;EM8WP;EACA;EACA,WP9SM;EO+SN,OP7YE;EO8YF;EACA;;AAEA;AAAA;EACI,cNzaN;;AM4aE;AAAA;EACI;EACA,cN9aN;;AMkbF;EACI,ONjbA;;AMmbA;EACI,OP/ZF;EOgaE,aP3TU;;AO+TlB;ELtaJ;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACI;;AK6ZA;EAEI;EACA,WPzUM;EO0UN,ON/bF;EMgcE;EACA,eN9YO;EM+YP;;AAEA;EACI,YPzcG;;AO+cf;EACI;EACA;EACA,KPxYQ;;AO2YZ;EL5bA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACI;;AKmbJ;EAEI;EACA;EACA;EACA;EACA,WPlWU;EOmWV,aP7VgB;EO8VhB,eNtaW;EMuaX;;AAEA;EACI;EACA;EACA;EACA;EACA,aPvWY;;AO0WhB;EACI,OP9cE;EO+cF,YPhfD;EOifC;;AAEA;EACI,YP7cD;EO8cC,cPvdF;;AO2dN;EAEI,OP3fD;EO4fC,YNlfF;EMmfE;;AAEA;EACI,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CA;EACA;EACA;EACA;EACA,ON1/BA;EM2/BA,YPvgCD;EOwgCC;EACA;EACA;EACA;EACA;;AAEA;AAAA;EACI,YPn/BF;EOo/BE,OP7+BF;;AOg/BF;AAAA;EACI,YPtgCE;EOugCF,ONvgCP;EMwgCO,cNxgCP;;AM4gCD;AAAA;ELx7BJ;EACA;EACA,WF4Bc;EE3Bd,aFqCoB;EEpCpB,OFnEU;EEoEV,kBFvGO;EEwGP;EACA,eD7CY;EC8CZ;;AAEA;AAAA;EACI,cDnGE;ECoCN;EACA;;AAkEA;AAAA;EACI,OFnFM;;AO2/BN;AAAA;EAEI;EACA;EACA,WP/5BM;EOg6BN;;AAGJ;AAAA;EACI;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA,ON/hCA;EMgiCA,YP5iCD;EO6iCC;EACA;EACA;EACA;;AAEA;AAAA;EACI,YPvhCF;EOwhCE,OPjhCF;;AOuhCV;AAAA;EACI;EACA,SN9jCC;EM+jCD,YPvhCM;EOwhCN;;AAEA;AAAA;EACI;;AAIR;AAAA;EACI;EACA;EACA,KPx/BQ;EOy/BR;EACA,eP1/BQ;;AO4/BR;AAAA;EACI;;AAIR;AAAA;EACI;EACA;EACA;EACA,WPt9BU;EOu9BV,OPrjCM;EOsjCN;;AAEA;AAAA;EACI;;AAIR;AAAA;EACI;EACA;EACA;;AAEA;AAAA;EACI,WPr+BM;EOs+BN,ONzlCA;;AM4lCJ;AAAA;AAAA;AAAA;ELtgCJ;EACA;EACA,WF4Bc;EE3Bd,aFqCoB;EEpCpB,OFnEU;EEoEV,kBFvGO;EEwGP;EACA,eD7CY;EC8CZ;;AAEA;AAAA;AAAA;AAAA;EACI,cDnGE;ECoCN;EACA;;AAkEA;AAAA;AAAA;AAAA;EACI,OFnFM;;AOykCN;AAAA;AAAA;AAAA;EAGI;EACA;EACA,WP9+BM;;AOi/BV;AAAA;EACI,ONrmCA;;AMymCR;AAAA;ELtlCA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;AAAA;EACI;;AK6kCJ;AAAA;EAEI;EACA;EACA;EACA;EACA;EACA,ONhnCI;EMinCJ,eNhkCW;EMikCX;EACA;;AAEA;AAAA;EACI,YP1lCG;EO2lCH,OPhmCE;;AOqmCV;AAAA;EACI;EACA;EACA,KP3jCQ;;AO8jCZ;AAAA;EACI;EACA;EACA,KPjkCQ;EOkkCR;;AAGJ;AAAA;AAAA;AAAA;AAAA;AAAA;EAGI;EACA;EACA;;AAGJ;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;EAII,WPliCU;EOmiCV,ONtpCI;EMupCJ;;AAEA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;EACI;;AAIR;AAAA;EACI,ON/pCI;;AMkqCR;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;EL5kCA;EACA;EACA,WF4Bc;EE3Bd,aFqCoB;EEpCpB,OFnEU;EEoEV,kBFvGO;EEwGP;EACA,eD7CY;EC8CZ;;AAEA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;EACI,cDnGE;ECoCN;EACA;;AAkEA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;EACI,OFnFM;;AO+oCV;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;EAWI;EACA;EACA,WP5jCU;;AO+jCd;AAAA;AAAA;AAAA;AAAA;AAAA;EL5lCA;EACA;EACA,WF4Bc;EE3Bd,aFqCoB;EEpCpB,OFnEU;EEoEV,kBFvGO;EEwGP;EACA,eD7CY;EC8CZ;;AAEA;AAAA;AAAA;AAAA;AAAA;AAAA;EACI,cDnGE;ECoCN;EACA;;AAkEA;AAAA;AAAA;AAAA;AAAA;AAAA;EACI,OFnFM;;AO+pCV;AAAA;AAAA;AAAA;AAAA;AAAA;EAII;EACA,WPpkCU;EOqkCV;;AAGJ;AAAA;AAAA;AAAA;AAAA;AAAA;EAGI;EACA;EACA;;AAIJ;AAAA;ELjrCA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;AAAA;EACI;;AKwqCJ;AAAA;EAEI;EACA;EACA;EACA;EACA,WPvlCU;EOwlCV,OPtrCM;EOurCN,YPxtCG;EOytCH;EACA,eN7pCW;EM8pCX;EACA;;AAEA;AAAA;EACI,YPnsCE;EOosCF,cPvrCG;;AO0rCP;AAAA;EACI,YP9tCO;EO+tCP,cN3tCF;EM4tCE,ON5tCF;;AM8tCE;AAAA;EACI,ON/tCN;;AMmuCF;AAAA;EACI,cNjuCF;EMkuCE;;AAEA;AAAA;EACI,ONruCN;EMsuCM,aP7mCU;;AOinClB;AAAA;EACI,aPnnCY;;AOunChB;AAAA;EACI;EACA;EACA;EACA,ONpvCA;EMqvCA;;AAEA;AAAA;EACI;EACA,ON3vCN;;AM+vCE;AAAA;EACI;EACA;EACA,eN/sCG;EMgtCH;;AAEA;AAAA;EACI;EACA,ONvwCV;;AMywCU;AAAA;EACI,ON1wCd;;AM8wCM;AAAA;EACI,YN/wCV;EMgxCU,OP1xCT;;AO4xCS;AAAA;EACI,OP7xCb;;AOkyCS;AAAA;EACI;;AAQpB;AAAA;AAAA;AAAA;AAAA;EL5wCA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;AAAA;AAAA;AAAA;EACI;;AKmwCJ;AAAA;AAAA;AAAA;AAAA;EAEI;EACA;EACA;EACA;EACA,WPlrCU;EOmrCV,OPjxCM;EOkxCN,YP5wCO;EO6wCP;EACA,eNxvCW;EMyvCX;EACA;;AAEA;AAAA;AAAA;AAAA;EACI,YPlxCG;;AOqxCP;AAAA;AAAA;AAAA;EACI,YNpzCF;EMqzCE,OP/zCD;;AO00CP;AAAA;EACI;EACA;EACA,KP7vCQ;EO8vCR,SP9vCQ;EO+vCR,YP/0CG;EOg1CH;EACA,eNpxCW;;AMsxCX;AAAA;EACI;EACA;EACA;EACA;EACA;;AAGJ;AAAA;EACI,WP7tCM;EO8tCN,aPvtCc;EOwtCd,OP7zCE;EO8zCF;;AAGJ;AAAA;ELn0CJ;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;AAAA;EACI;;AK0zCA;AAAA;EAEI;EACA;EACA;EACA;EACA;EACA;EACA,ON91CA;EM+1CA,eN9yCO;;AMgzCP;AAAA;EACI,YPt0CD;EOu0CC,OP50CF;;AOk1CV;AAAA;EACI,aPjvCgB;;AOovCpB;AAAA;EACI;EACA,ON/2CI;EMg3CJ;;AAGJ;AAAA;AAAA;AAAA;EACI;;AAIJ;AAAA;EACI;EACA;;AL3wCJ;AAAA;EACI;EACA;;AAGJ;AAAA;EACI,YDhHA;ECiHA;;AAGJ;AAAA;EACI,YD3EO;EC4EP;;AAEA;AAAA;EACI,YF5GE;;AO42CV;AAAA;EACI;EACA;EACA,KP9zCQ;EO+zCR,SP9zCQ;;AOi0CZ;AAAA;EACI;EACA;EACA;EACA;EACA;EACA;;AAEA;AAAA;EACI,YNh5CF;EMi5CE,cNj5CF;;AMq5CN;AAAA;EACI;EACA;EACA;EACA;EACA,eNv2CW;EMw2CX,YP93CO;;AOi4CX;AAAA;EACI;EACA;;AAGJ;AAAA;EACI,WP9yCU;EO+yCV,aP1yCgB;EO2yChB,OP74CM;EEfV;EACA;EACA;;AK85CA;AAAA;EACI,WPtzCU;EOuzCV,ON16CI;ECQR;EACA;EACA;;AKq6CA;AAAA;EACI;EACA;EACA;EACA,KNj8CC;EMk8CD;EACA,YP35CM;EO45CN;EACA;;AAGJ;AAAA;EACI;EACA;EACA,KP13CQ;EO23CR,WP30CU;EO40CV,ON/7CI;;AMi8CJ;AAAA;EACI,ONl8CA;;AMq8CJ;AAAA;AAAA;AAAA;EAEI;EACA;EACA;EACA,eNz5CO;EM05CP;EACA;EACA,WP11CM;EO21CN,OPz7CE;EO07CF;EACA;;AAEA;AAAA;AAAA;AAAA;EACI,cNr9CN;;AMw9CE;AAAA;AAAA;AAAA;EACI;EACA,cN19CN;;AM89CF;AAAA;EACI,ON79CA;;AM+9CA;AAAA;EACI,OP38CF;EO48CE,aPv2CU;;AO42CtB;AAAA;EACI;EACA;EACA,KPr6CQ;;AOw6CZ;AAAA;ELz9CA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;AAAA;EACI;;AKg9CJ;AAAA;EAEI;EACA;EACA;EACA;EACA,WP/3CU;EOg4CV,aP13CgB;EO23ChB,eNn8CW;EMo8CX;EACA;;AAEA;AAAA;EACI;EACA;EACA;EACA;EACA,aPr4CY;;AOw4ChB;AAAA;EACI,OP5+C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EA;AAAA;EACI,OFnFM;;AO4hEN;AAAA;EAEI;EACA,WP/7DM;EOg8DN;;AAGJ;AAAA;EACI;EACA;EACA;EACA,SPv/DI;EOw/DJ;EACA;EACA,ON/jEF;EMgkEE;EACA,eN9gEO;EM+gEP;EACA;EACA;;AAEA;AAAA;EACI;;AAGJ;AAAA;EACI;;AAMZ;AAAA;EACI;EACA;EACA,SNhmEC;EMimED;;AAEA;AAAA;ELlkEJ;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;AAAA;EACI;;AKyjEA;AAAA;EAEI;EACA;EACA,KPthEI;EOuhEJ;EACA,WPv+DM;EOw+DN,aPn+DY;EOo+DZ,ON/lEF;EMgmEE,YPpmEO;EOqmEP,eN/iEI;EMgjEJ;;AAEA;AAAA;EACI;;AAGJ;AAAA;EACI;EACA;;AAMZ;AAAA;EACI;EACA;;ALjgEJ;AAAA;EACI;EACA;;AAGJ;AAAA;EACI,YDhHA;ECiHA;;AAGJ;AAAA;EACI,YD3EO;EC4EP;;AAEA;AAAA;EACI,YF5GE;;AOmmEV;AAAA;EACI,SPljEQ;;AOqjEZ;AAAA;EACI;EACA;EACA;EACA,KPzjEQ;EO0jER,SPvjEQ;EOwjER,ON/nEI;EMgoEJ,WP5gEU;;AO8gEV;AAAA;EACI;;AAIR;AAAA;EACI;EACA;EACA,KPvkEQ;EOwkER;EACA,eN3lEW;EM4lEX;EACA;;AAEA;AAAA;EACI,YPjoEE;;AOooEN;AAAA;EACI,YP3pEO;;AO6pEP;AAAA;EACI,YN1pEN;EM2pEM,cN3pEN;;AM6pEM;AAAA;EACI;;AAQhB;AAAA;EACI;EACA;EACA,KPpmEQ;EOqmER;EACA;;AAGJ;AAAA;EACI,WPzjEU;EO0jEV,OPvpEM;EEfV;EACA;EACA;;AKwqEA;AAAA;EACI,WPhkEU;EOikEV,ONprEI;;;AM+rER;EACI;EACA;EACA;;ALnlEJ;EACI;EACA;;AAGJ;EACI,YDhHA;ECiHA;;AAGJ;EACI,YD3EO;EC4EP;;AAEA;EACI,YF5GE;;AOqrEV;EACI;EACA;EACA,KPtoEQ;EOuoER;EACA,YPjrEO;EOkrEP;EACA,WP3lEU;EO4lEV,aPrlEkB;EOslElB,OP3rEM;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OPxqBH;;AO2qBD;EACI;;AAIR;EN/pBA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACI;;AMspBJ;EAEI;EACA;EACA;EACA;EACA;EACA,OP3rBE;EO4rBF,ePzoBW;EO0oBX;;AAEA;EACI,YRpsBO;;AQusBX;EACI;;AAKR;EACI;EACA;EACA;EACA;EACA,OP5sBI;EO6sBJ,WR1lBU;EQ2lBV;;AAEA;EACI,OP9sBF;;AOitBF;EACI,OPptBF;;AOutBF;EACI,aR/lBc;;AQomBtB;EACI;EACA;EACA,KR9pBQ;;;AQsqBhB;EACI;EACA;EACA;EACA;EACA,YR1vBO;EQ2vBP,eP7rBe;EO8rBf,YRtpBW;EQupBX;;AAEA;EACI;EACA;EACA;EACA,KRnrBQ;EQorBR;EACA,YPpvBA;EOqvBA;;AAGJ;EACI;EACA;EACA,KR5rBQ;EQ6rBR,WR7oBU;EQ8oBV,aRxoBkB;EQyoBlB,OR5uBM;;AQ+uBV;EACI;EACA;;AAGJ;ENxvBA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACI;;AM+uBJ;EAEI;EACA;EACA;EACA;EACA;EACA,OPlxBI;EOmxBJ,ePnuBQ;EOouBR;;AAEA;EACI,YR3vBG;EQ4vBH,ORnwBE;;AQswBN;EACI;;AAIR;EACI;EACA;EACA,SR/tBQ;;AE2CZ;EACI;EACA;;AAGJ;EACI,YDhHA;ECiHA;;AAGJ;EACI,YD3EO;EC4EP;;AAEA;EACI,YF5GE;;AQsxBV;EACI;EACA;EACA;EACA,KRxuBQ;EQyuBR;EACA,OP9yBI;EO+yBJ,WR3rBU;;AQ6rBV;EACI;;AAGJ;EACI;;AAKR;EACI;EACA;EACA,OP9zBI;;AOg0BJ;EACI;EACA;EACA,eR/vBI;EQgwBJ;;AAGJ;EACI;EACA,WRrtBM;;AQ0tBd;EACI;EACA;EACA,KR9wBQ;;AQixBZ;EACI;EACA;EACA,KPr2BC;EOs2BD;EACA,YR/zBM;EQg0BN,eP1yBQ;EO2yBR;;AAEA;EAEI,mBP31BL;;AO81BC;EACI,mBPh2BF;;AOm2BF;EAEI;;AAIR;EACI;EACA;;AAEA;EACI;EACA,WR9vBM;EQ+vBN,aRzvBc;EQ0vBd,OR71BE;;AQg2BN;EACI;EACA,WRtwBM;EQuwBN,OP13BA;;AO83BR;EACI;EACA;;AAGJ;EACI;EACA;EACA;EACA;;AAGJ;EACI;EACA,WRxxBU;EQyxBV,ORt3BM;EQu3BN;;AAGJ;EACI;EACA,aR/0BQ;EQg1BR;EACA;EACA,aR7xBgB;EQ8xBhB;EACA,YR53BO;EQ63BP,ORp4BM;EQq4BN,ePz2BW;EO02BX;;AAGJ;EACI,YP76BC;EO86BD,WR7yBU;EQ8yBV,OPj6BI;EOk6BJ;;AAIJ;EACI;EACA;EACA,KRt2BQ;EQu2BR;EACA;EACA,YRl5BM;;AQo5BN;EACI;EACA,OPh7BA;;AOm7BJ;EACI;EACA;EACA;EACA,WRn0BM;EQo0BN,ORj6BE;EQk6BF;EACA;;AAEA;EACI,OP77BJ;;;AOo8BZ;EACI;IACI;;EAEJ;IACI;;;AAaI;AAAA;AAAA;EACI;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA,ePh7BG;EOi7BH;EACA;EACA,OR78BF;EQ88BE;EACA;;AAEA;AAAA;AAAA;EACI,OPz+BR;EO0+BQ;;AAGJ;AAAA;AAAA;EACI;EACA,cPj/BV;EOk/BU;;AAKR;AAAA;AAAA;EACI;EACA;EACA;EACA;EACA,ePz8BG;EO08BH;EACA;EACA;EACA;EACA,OR1+BF;EQ2+BE;EACA;EACA;EACA;;AAEA;AAAA;AAAA;EACI,cPxgCV;;AO2gCM;AAAA;AAAA;EACI;EACA,cP7gCV;EO8gCU;;;ATviCpB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AUAA;AAAA;AAAA;AAAA;AAWI;EACI,YTGG;ESFH;EACA,eR+DW;EQ9DX;;AAIJ;EACI;EACA;EACA;EACA,KRVC;EQWD;EACA,YROA;EQNA;;AAGJ;EACI;EACA;EACA,KT+DQ;ES9DR,WT8GU;ES7GV,aTmHkB;ESlHlB,OTeM;;ASbN;EACI;EACA;EACA;EACA;EACA;EACA;EACA,YRnBF;EQoBE,OT9BD;ES+BC,WTgGM;ES/FN,aTuGU;EStGV,eT4DK;;ASxDb;EACI;EACA;EACA,KTuCQ;;ASpCZ;EPZA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACI;;AOGJ;EAEI;EACA;EACA;EACA;EACA;EACA,ORtCI;EQuCJ,eRUW;EQTX;;AAEA;EACI,YTfG;ESgBH,OTvBE;;AS0BN;EACI,YT9CM;ES+CN,OR/CH;;AQoDL;AAAA;EAEI,SRtEC;;AQ0EL;EACI,eR3EC;;AQ8EL;EACI;EACA;EACA;EACA;EACA,WT8CU;ES7CV,aToDkB;ESnDlB;EACA;;AAEA;EACI,OT5EM;;AS8EN;EACI,OR7EN;;AQiFF;EACI,ORjFH;;AQmFG;EACI,ORpFP;;AQ0FL;EACI;EACA;EACA,KT3BQ;ES4BR,eT5BQ;;AS+BZ;EACI;EACA;;AAGJ;EPlBA;EACA;EACA,WF4Bc;EE3Bd,aFqCoB;EEpCpB,OFnEU;EEoEV,kBFvGO;EEwGP;EACA,eD7CY;EC8CZ;;AAEA;EACI,cDnGE;ECoCN;EACA;;AAkEA;EACI,OFnFM;;ASqFV;EAEI;EACA;EACA;EACA;EACA;EACA;EACA;;AAGJ;EPhGA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACI;;AOuFJ;EAEI;EACA;EACA;EACA;EACA;EACA,OR1HI;EQ2HJ,eT1CS;ES2CT;;AAEA;EACI,YTpGG;ESqGH,ORlIF;;AQuIN;EACI;;AAGJ;EPtHA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACI;;AO6GJ;EAEI;EACA;EACA,KTzEQ;ES0ER;EACA;EACA,YT5JG;ES6JH;EACA,eRlGQ;EQmGR,ORnJI;EQoJJ,WThCU;ESiCV;EACA;;AAEA;EACI,cT5HG;;AS+HP;EACI,cR/JF;ECoCN;EACA;;AO8HI;EACI,OT/IE;;ASoJV;EACI;;AAGJ;EPrFA;EACA;EACA,WF4Bc;EE3Bd,aFqCoB;EEpCpB,OFnEU;EEoEV,kBFvGO;EEwGP;EACA,eD7CY;EC8CZ;;AAEA;EACI,cDnGE;ECoCN;EACA;;AAkEA;EACI,OFnFM;;ASwJV;EAEI;;AAGJ;EP7JA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACI;;AOoJJ;EAEI;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA,OR7LE;EQ8LF,eR3IW;EQ4IX;;AAEA;EACI,YTtMO;;AS2Mf;EACI;EACA;EACA,KTpIQ;;ASuIZ;EACI;EACA;EACA,KT1IQ;;AS6IZ;EP3HA;EACA;EACA,WF4Bc;EE3Bd,aFqCoB;EEpCpB,OFnEU;EEoEV,kBFvGO;EEwGP;EACA,eD7CY;EC8CZ;;AAEA;EACI,cDnGE;ECoCN;EACA;;AAkEA;EACI,OFnFM;;AS8LV;EAEI;EACA;;AAGJ;EACI,ORxNI;EQyNJ,WTrGU;;ASwGd;EPzMA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACI;;AOgMJ;EAEI;EACA;EACA;EACA;EACA;EACA,ORnOI;EQoOJ,eRnLW;EQoLX;;AAEA;EACI,YTtOM;ESuON,ORvOH;;AQ2OL;EP1NA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACI;;AOiNJ;EAEI;EACA;EACA;EACA;EACA,ORrPE;EQsPF,WTjIU;ESkIV,aT5HgB;ES6HhB,eRrMW;EQsMX;;AAEA;EACI,YThQO;;ASqQf;EACI;EACA;EACA,KT/LQ;;ASkMZ;EPlPA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACI;;AOyOJ;EAEI;EACA;EACA;EACA;EACA,YThPO;ESiPP,OTvPM;ESwPN,WT1JU;ES2JV,aTrJgB;ESsJhB;EACA,eT/LS;ESgMT;;AAEA;EACI,YTxPG;;AS2PP;EACI,YT9RO;ES+RP,OR3RF;EQ4RE,cR5RF;;AQiSN;EACI,YR9SC;EQ+SD,aR/SC;EQgTD;;AAIJ;EACI;EACA;EACA,KTrOQ;;ASwOZ;EACI;;AAGJ;EP7RA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACI;;AOoRJ;EAEI;EACA;EACA;EACA;EACA;EACA,ORvTI;EQwTJ,eRvQW;EQwQX;EACA;;AAEA;EACI,YT3TM;ES4TN,OR5TH;;AQgUL;EP/SA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACI;;AOsSJ;EAEI;EACA;EACA;EACA,YTnQQ;ESoQR;EACA,ORvUC;EQwUD,WTvNU;ESwNV,aTlNgB;ESmNhB;EACA,eR5RW;EQ6R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SA;EACI,YZKO;EYJP;EACA,eXiEe;;;AW7DnB;EACI;EACA;EACA;EACA,KXPK;EWQL;EACA,YXUI;EWTJ;EACA;EACA;EACA;EACA;;AAEA;EACI,YZaM;;;AYTd;EACI;EACA;EACA;EACA,WZyGc;EYxGd,aZ8GsB;EY7GtB,OZUU;;AYRV;EACI,OXhBI;;;AWqBZ;EACI,SXpCK;;;AWwCT;EACI,eZ2CY;;AYzCZ;EACI;;;AAIR;EACI;EACA;EACA,KZ+BY;EY9BZ,eZ8BY;EY7BZ,WZ6Ec;EY5Ed,aZkFsB;EYjFtB,OZlBU;;AYoBV;EACI,OX5CI;;;AWgDZ;EACI,eX/DK;EWgEL,WZiEc;EYhEd,OXnDQ;;;AWuDZ;EACI;EACA;EACA,KXxEK;;;AW2ET;EACI;EACA;;;AAGJ;EACI;EACA;EACA,WZ8Cc;EY7Cd,aZmDoB;EYlDpB,OZlDU;;;AYqDd;EVYI;EACA;EACA,WF4Bc;EE3Bd,aFqCoB;EEpCpB,OFnEU;EEoEV,kBFvGO;EEwGP;EACA,eD7CY;EC8CZ;;AAEA;EACI,cDnGE;ECoCN;EACA;;AAkEA;EACI,OFnFM;;;AY4Dd;EACI;EACA;EACA,KZdY;;;AYiBhB;EACI;EACA;EACA,KXtGK;EWuGL,SZrBY;EYsBZ,YZhEU;EYiEV,eX3CY;;AW6CZ;EACI;;;AAIR;EACI;EACA;EACA,KZjCY;EYkCZ;;;AAGJ;EACI;EACA;EACA;;;AAGJ;EACI,WZIc;EYHd,aZQoB;EYPpB,OZ3FU;;;AY+Fd;EACI;EACA;EACA;EACA,YZ9FW;EY+FX,eZ1Ca;EY2Cb;;;AAGJ;EACI;EACA;EACA;EACA,YXrIM;EWsIN,eZnDa;EYoDb;;;AAGJ;EACI;EACA;EACA;EACA;EACA,YZzJO;EY0JP;EACA;EACA;EACA;EACA,YZ3DW;EY4DX;;AAEA;EACI,YZ9DO;;AYiEX;EACI;;AAGJ;EACI;;AAGJ;EACI;;;AAKR;EACI;EACA;EACA,KZvGY;EYwGZ;EACA,WZzDc;EY0Dd;EACA,OZzJU;;;AY4Jd;EACI,OXlLQ;;;AWsLZ;EACI,SXrMK;EWsML,YZ9JU;EY+JV,eXzIY;;;AW4IhB;EACI;EACA;EACA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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@use 'components/replace-modal';\n\n// Refactor additions (Mar 2026)\n// Loading state\n.loading-count { opacity: 0.5; transition: opacity 0.15s; }\n.tab-badge.loading { opacity: 0.5; transition: opacity 0.15s; }\n\n// Expand/collapse CSS transitions (replaces jQuery slideDown/slideUp)\n.entity-selector-blocks-content,\n.condition-trait-body,\n.group-modifiers-content {\n transition: max-height 0.2s ease-out, opacity 0.2s ease-out;\n overflow: hidden;\n}\n.entity-selector-blocks-content:not(.es-expanded),\n.condition-trait-body:not(.es-expanded),\n.group-modifiers-content:not(.es-expanded) {\n max-height: 0 !important;\n opacity: 0;\n pointer-events: none;\n}\n.entity-selector-blocks-content.es-expanded,\n.condition-trait-body.es-expanded,\n.group-modifiers-content.es-expanded {\n max-height: 2000px;\n opacity: 1;\n pointer-events: auto;\n}\n\n// Empty state component\n.es-empty-state,\n.chips-empty-state {\n display: block;\n padding: 0.75rem 1rem;\n color: #94a3b8;\n font-size: 0.8rem;\n font-style: italic;\n text-align: center;\n}\n// chips-wrapper, chips-toolbar, and chips-load-more are created by JS\n// only when chips exist — not rendered in template when empty\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 * Color token system:\n * - PS theme vars (--primary, --danger, etc.) → set by PrestaShop admin theme\n * - MPR tokens (--mpr-*) → set here as defaults, overridable per module/theme\n *\n * Usage in SCSS: var(--token, $fallback)\n * The $fallback SCSS vars below ensure compilation succeeds even without :root.\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// ─── PS Admin Theme Colors (compile-time fallbacks) ─────────────────\n// PS 1.7/8: --primary: #25b9d7, PS 9.x: --primary: #1d1d1b\n$primary: #25b9d7;\n$primary-dark: #1fa0b8;\n$secondary: #6c757d;\n$success: #70b580;\n$danger: #dc3545;\n$warning: #fab000;\n$info: #17a2b8;\n$light: #f8f9fa;\n$dark: #363a41;\n$white: #fff;\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// ─── Text Colors ────────────────────────────────────────────────────\n$mpr-text-primary: #1e293b;\n$mpr-text-body: #363a41;\n$mpr-text-secondary: #6b7280;\n$mpr-text-muted: #94a3b8;\n$mpr-text-placeholder: #9ca3af;\n\n// ─── Border Colors ──────────────────────────────────────────────────\n$mpr-border-color: #e2e8f0;\n$mpr-border-light: #e5e7eb;\n$mpr-border-dark: #d1d5db;\n$mpr-border-input: #dee2e6;\n\n// ─── Background Colors ──────────────────────────────────────────────\n$mpr-bg-primary: #fff;\n$mpr-bg-surface: #f8fafc;\n$mpr-bg-secondary: #f3f4f6;\n$mpr-bg-muted: #e9ecef;\n$mpr-bg-hover: #f0f0f0;\n$mpr-bg-selected: #e2e8f0;\n\n// ─── Accent / Focus ─────────────────────────────────────────────────\n$mpr-accent: #3b82f6;\n$mpr-accent-dark: #2563eb;\n$mpr-focus-ring: #66afe9;\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 <i class=\"icon-eye\"></i>\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.entity-selector-trait,\n.entity-selector-trait *,\n.method-dropdown-menu,\n.method-dropdown-menu *,\n.es-preview-popover,\n.es-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(.entity-selector-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(.es-search-dropdown.show),\n.card:has(.es-search-dropdown.show),\n.form-wrapper:has(.es-search-dropdown.show),\n.panel-body:has(.es-search-dropdown.show),\n.card-body:has(.es-search-dropdown.show),\n.form-group:has(.es-search-dropdown.show),\n.col-lg-8:has(.es-search-dropdown.show),\n.col-lg-12:has(.es-search-dropdown.show) {\n overflow: visible !important;\n}\n\n// Target conditions wrapper hierarchy overflow fix\n.entity-selector-trait:has(.es-search-dropdown.show),\n.entity-selector-trait:has(.es-search-dropdown.show),\n.condition-trait-body:has(.es-search-dropdown.show),\n.es-block-content:has(.es-search-dropdown.show),\n.es-block-groups:has(.es-search-dropdown.show),\n.es-group:has(.es-search-dropdown.show),\n.es-group-body:has(.es-search-dropdown.show),\n.es-search-wrapper:has(.es-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.entity-selector-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 .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 .es-block-tabs {\n flex-wrap: wrap;\n }\n }\n}\n\n// Mobile\n@media (max-width: 767px) {\n .entity-selector-trait {\n .es-block-tab {\n padding: $es-spacing-sm;\n font-size: $es-font-size-xs;\n }\n\n .es-group-header {\n flex-direction: column;\n align-items: flex-start;\n }\n\n .es-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 .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 .entity-selector-trait and .entity-selector-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 .es-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 .es-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 .es-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 .es-block-container {\n display: none;\n\n &.active {\n display: block;\n }\n }\n\n .es-block-content {\n padding: $es-spacing-md;\n }\n\n .es-block-groups {\n display: flex;\n flex-direction: column;\n gap: $es-spacing-md;\n }\n\n // Block header (for standalone blocks)\n .es-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 .es-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.entity-selector-trait.single-mode,\n.entity-selector-trait.single-mode {\n .es-block-tabs {\n display: none;\n }\n\n .es-block-container {\n display: block;\n }\n}\n\n// Header action buttons\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.entity-selector-trait {\n\n // Search wrapper\n .es-search-wrapper {\n position: relative;\n }\n\n // Search dropdown\n .es-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;\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 .es-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;\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.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 > .es-search-dropdown,\n.es-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;\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;\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 .es-search-dropdown is on the dropdown itself\n// ============================================================================\n\n.es-search-dropdown {\n // Results container - scrollable\n .dropdown-results {\n max-height: 400px;\n overflow-y: auto;\n padding: 0;\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: $es-spacing-sm;\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 > .es-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.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 .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.entity-selector-trait {\n\n // Group container\n .es-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 .es-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 .es-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 .es-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 .es-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.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 * 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.es-preview-popover,\n.es-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 Dropdown Preview\n// Inline dropdown for schedule details in admin list\n// =============================================================================\n\n.mpr-dropdown-preview {\n display: none;\n position: absolute;\n top: 100%;\n left: 50%;\n transform: translateX(-50%);\n margin-top: 6px;\n z-index: 1000;\n padding: 0.625rem 0.75rem;\n background: $es-white;\n border: 1px solid $es-border-color;\n border-radius: $es-radius-lg;\n box-shadow: $es-shadow-lg;\n font-size: 12px;\n text-align: left;\n text-transform: none;\n font-weight: normal;\n white-space: nowrap; // Allow dropdown to grow as needed\n\n &.is-open {\n display: block;\n }\n}\n\n.mpr-dropdown-preview__item {\n display: flex;\n align-items: center;\n gap: 0.5rem;\n padding: 0.375rem 0;\n color: #666;\n line-height: 1.4;\n\n &:not(:last-child) {\n margin-bottom: 0.25rem;\n padding-bottom: 0.5rem;\n border-bottom: 1px solid rgba($es-border-color, 0.5);\n }\n\n // Icon styles\n > .material-icons,\n > i:first-child {\n flex-shrink: 0;\n width: 16px;\n font-size: 14px;\n color: #999;\n text-align: center;\n }\n}\n\n.mpr-dropdown-preview__muted {\n color: #999;\n}\n\n// Schedule inline layout\n.mpr-dropdown-preview__schedule {\n display: inline;\n}\n\n.mpr-dropdown-preview__schedule-row {\n display: inline;\n\n &:not(:last-child)::after {\n content: ',';\n margin-right: 0.5rem;\n }\n}\n\n.mpr-dropdown-preview__day {\n color: #666;\n}\n\n.mpr-dropdown-preview__hours {\n color: $es-primary;\n font-weight: 500;\n margin-left: 0.25rem;\n}\n\n// Badge trigger for preview dropdown/popover\n.mpr-badge--preview {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n gap: 0.25rem;\n position: relative;\n min-width: 20px;\n height: 20px;\n padding: 0 0.5rem;\n font-size: 0.75rem;\n font-weight: 600;\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 .material-icons {\n font-size: 12px;\n line-height: 1;\n }\n}\n\n.mpr-badge--preview-primary {\n background: $es-primary;\n color: $es-white;\n}\n\n.mpr-badge--preview-success {\n background: #d4edda;\n color: #155724;\n}\n\n.mpr-badge--preview-warning {\n background: #fff3cd;\n color: #856404;\n}\n\n.mpr-badge--preview-muted {\n background: $es-slate-200;\n color: $es-text-muted;\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.entity-selector-trait {\n\n // Tips box container\n .es-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 .es-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.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.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 min-height: 36px;\n padding: 0.25rem $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 line-height: 1.4;\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.es-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","// Replace confirmation modal for single-mode entity selectors\n// Displayed when user tries to replace an already-selected item\n\n@use '../variables' as *;\n\n.mpr-replace-body {\n padding: $es-spacing-sm 0;\n}\n\n.mpr-replace-message {\n margin: 0 0 $es-spacing-md;\n color: $es-text-secondary;\n font-size: $es-font-size-sm;\n line-height: $es-line-height-normal;\n}\n\n.mpr-replace-item {\n display: flex;\n align-items: center;\n gap: $es-spacing-sm;\n padding: $es-spacing-sm $es-spacing-md;\n border-radius: $es-radius-md;\n border: 1px solid $es-border-color;\n background: $es-white;\n}\n\n.mpr-replace-current {\n border-color: $es-danger;\n background: $es-danger-light;\n\n .mpr-replace-label {\n color: $es-danger-dark;\n background: rgba($es-danger, 0.12);\n }\n}\n\n.mpr-replace-new {\n border-color: $es-success;\n background: $es-success-light;\n\n .mpr-replace-label {\n color: $es-success-dark;\n background: rgba($es-success, 0.12);\n }\n}\n\n.mpr-replace-label {\n flex-shrink: 0;\n padding: 2px $es-spacing-sm;\n border-radius: $es-radius-sm;\n font-size: $es-font-size-xs;\n font-weight: $es-font-weight-semibold;\n text-transform: uppercase;\n letter-spacing: 0.03em;\n}\n\n.mpr-replace-value {\n font-size: $es-font-size-sm;\n font-weight: $es-font-weight-medium;\n color: $es-text-primary;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n min-width: 0;\n}\n\n.mpr-replace-arrow {\n display: flex;\n justify-content: center;\n padding: $es-spacing-xs 0;\n color: $es-text-light;\n\n .material-icons {\n font-size: 20px;\n }\n}\n"]}