Files
prestashop-entity-selector/assets/css/admin/entity-selector.css.map
myprestarocks 7d79273743 Add hierarchical tree view for category selection
Features:
- Tree view mode for categories with expand/collapse
- Product count badges with clickable preview popover
- Select parent with all children button
- Client-side tree filtering (refine search)
- Keyboard shortcuts: Ctrl+A (select all), Ctrl+D (clear)
- View mode switching between tree/list/columns
- Tree view as default for categories, respects user preference

Backend:
- Add previewCategoryProducts and previewCategoryPages AJAX handlers
- Support pagination and filtering in category previews

Styling:
- Consistent count-badge styling across tree and other views
- Loading and popover-open states for count badges

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-31 15:03:51 +01:00

1 line
240 KiB
Plaintext

{"version":3,"sources":["_mixins.scss","layouts/_form-integration.scss","../../../prestashop-admin/assets/scss/_variables.scss","layouts/_responsive.scss","_variables.scss","components/_entity-selector.scss","components/_dropdown.scss","components/_chips.scss","components/_groups.scss","components/_value-picker.scss","components/_modal.scss","components/_list-preview.scss","components/_schedule.scss","components/_tips.scss","components/_condition-trait.scss","components/_combinations.scss","components/_method-dropdown.scss","components/_tooltip.scss","components/_tree.scss"],"names":[],"mappings":"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,aACA,eACA,MF9SD,KEiTH,wjBAEI,WJjTF,QIkTE,aJlTF,QIoTE,wkBACI,cAMZ,0FACI,aACA,mBACA,IFhPQ,MEoPZ,wEACI,aACA,mBACA,uBACA,IFxPQ,MEyPR,QFtPQ,KEuPR,MJvUI,QIwUJ,UF3MU,QE6MV,4EACI,kBACA,WAKR,gFACI,aACA,sBACA,mBACA,uBACA,IFzQQ,ME0QR,QFvQQ,KEwQR,kBACA,MJzVI,QI2VJ,oFACI,eACA,WAGJ,oFACI,SACA,UFrOM,QE0Od,oFACI,aACA,mBACA,uBACA,QF3RQ,KE4RR,MJ5WI,QI8WJ,wFACI,iBACA,kCAKR,wFACI,aACA,mBACA,uBACA,IF5SQ,ME6SR,mBACA,6BACA,UFhQU,OEiQV,MJ7XI,QI+XJ,0HACI,YF7Pc,IE8Pd,MFnWE,QEsWN,4HNtSJ,WACA,mBACA,UI6Bc,QJ5Bd,YIsCoB,IJrCpB,MIlEU,QJmEV,iBItGO,KJuGP,yBACA,cEhFY,OFiFZ,qEAEA,wIACI,aE1GE,QF2CN,UACA,4CAkEA,sJACI,MIlFM,QEwWN,4HAEI,qBACA,UF3QM,OE4QN,eAKR,wFACI,aACA,uBACA,QJ5ZC,KI6ZD,6BAEA,sHNxXJ,UACA,SACA,gBACA,YACA,eACA,aACA,cAEA,kIACI,aM+WA,sHAEI,oBACA,mBACA,IF3UI,OE4UJ,mBACA,UF5RM,QE6RN,YFxRY,IEyRZ,MJ5ZF,QI6ZE,WFzZO,oBE0ZP,cJxYI,OIyYJ,gCAEA,kIACI,+BAGJ,sIACI,WACA,YAMZ,kFACI,aACA,mBACA,8BACA,IFnWQ,MEoWR,mBACA,WJ7aA,QI8aA,6BACA,8BAGJ,oGACI,UF5TU,OE6TV,MJzbI,QI2bJ,kHACI,MJ7bF,QIicN,oFACI,aACA,IFrXQ,MEwXZ,0FN1aA,UACA,SACA,gBACA,YACA,eACA,aACA,cAEA,sGACI,aMiaJ,0FAEI,mBACA,UF3UU,QE4UV,YFvUgB,IEwUhB,cJrbQ,OIsbR,gCAEA,gHACI,MFhbE,QEibF,WF3aG,QE6aH,4HACI,WF7aD,QEibP,8GACI,MF1dD,KE2dC,WJzdF,QI2dE,0HACI,WFzdG,QE+df,8FACI,Q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1BG,KEy1BH,yBACA,cJj0BW,MIk0BX,eACA,gCAEA,4MACI,WFn0BE,QEo0BF,aFvzBG,QE0zBP,oMACI,iBACA,uBACA,WF/zBG,QEg0BH,kBACA,MJr2BA,QIy2BR,mFACI,aACA,mBAIJ,2FNjxBA,WACA,mBACA,UI6Bc,QJ5Bd,YIsCoB,IJrCpB,MIlEU,QJmEV,iBItGO,KJuGP,yBACA,cEhFY,OFiFZ,qEAEA,uGACI,aE1GE,QF2CN,UACA,4CAkEA,qHACI,MIlFM,QEm1BV,2FAEI,qBACA,UFtvBU,OEuvBV,eACA,YACA,8BACA,kBAGJ,iFACI,aACA,mBACA,uBACA,WACA,eACA,cACA,YACA,UACA,SACA,MJn4BI,QIo4BJ,WFv4BG,KEw4BH,yBACA,8BACA,eACA,gCAEA,qFACI,eAGJ,6FACI,WFt3BE,QEu3BF,MFh3BE,QEm3BN,+FACI,WFj5BO,oBEk5BP,aJt5BF,QIu5BE,MJv5BF,QI25BN,yFN5zBA,WACA,mBACA,UI6Bc,QJ5Bd,YIsCoB,IJrCpB,MIlEU,QJmEV,iBItGO,KJuGP,yBACA,cEhFY,OFiFZ,qEAEA,qGACI,aE1GE,QF2CN,UACA,4CAkEA,mHACI,MIlFM,QE83BV,yFAEI,qBACA,UFjyBU,OEkyBV,eACA,mBAGJ,sLAEI,aACA,mBACA,uBACA,WACA,eACA,cACA,YACA,UACA,SACA,MJ76BI,QI86BJ,WFj7BG,KEk7BH,yBACA,cJ15BW,MI25BX,eACA,gCAEA,8LACI,eAGJ,8MACI,WFh6BE,QEi6BF,MF15BE,QE65BN,kNACI,WF37BO,oBE47BP,aJh8BF,QIi8BE,MJj8BF,QIq8BN,qFACI,aACA,mBAIA,2HACI,aACA,mBACA,uBACA,WACA,eACA,cACA,YACA,UACA,SACA,MJp9BA,QIq9BA,WFx9BD,KEy9BC,yBACA,kBACA,8BACA,eACA,gCAEA,uIACI,WFp8BF,QEq8BE,MF97BF,QEi8BF,yIACI,WFv9BE,QEw9BF,MJj+BP,QIk+BO,aJl+BP,QIs+BD,iHN14BJ,WACA,mBACA,UI6Bc,QJ5Bd,YIsCoB,IJrCpB,MIlEU,QJmEV,iBItGO,KJuGP,y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cL/jBW,MKgkBX,gCAEA,8FACI,WHtlBO,oBGylBX,sFACI,eAKR,0FACI,oBACA,mBACA,WACA,kBACA,MLvmBI,QKwmBJ,UH5eU,OG6eV,eAEA,gHACI,MLzmBF,QK4mBF,kHACI,ML/mBF,QKknBF,oHACI,YHjfc,IGsftB,sFACI,aACA,oBACA,IHhjBQ,OIlFZ,4EACI,WJEG,KIDH,yBACA,cN0BW,MMzBX,gBAIJ,0FACI,aACA,mBACA,8BACA,INlBC,KMmBD,mBACA,WNHA,QMIA,gCAGJ,wFACI,aACA,mBACA,IJ8DQ,MI7DR,UJ6GU,QI5GV,YJkHkB,IIjHlB,MJcM,QIZN,oHACI,oBACA,mBACA,uBACA,eACA,YACA,iBACA,WN5BF,QM6BE,MJ/BD,KIgCC,UJ+FM,OI9FN,YJsGU,IIrGV,cJ2DK,MIvDb,4FACI,aACA,mBACA,IJsCQ,OInCZ,oFRdA,UACA,SACA,gBACA,YACA,eACA,aACA,cAEA,gGACI,aQKJ,oFAEI,aACA,mBACA,uBACA,WACA,YACA,MNhDI,QMiDJ,cN3BW,MM4BX,gCAEA,gGACI,WJhBG,QIiBH,MJxBE,QI2BN,8GACI,WJ/CM,QIgDN,MNzDH,QM8DL,8JAEI,QN9EC,KMkFL,kFACI,cNnFC,KMsFL,8EACI,aACA,mBACA,IJDQ,OIER,cJDQ,MIER,UJ6CU,OI5CV,YJmDkB,IIlDlB,yBACA,qBAEA,0GACI,MJ7EM,QI+EN,8GACI,MNvFN,QM2FF,0GACI,MN3FH,QM6FG,8GACI,MN9FP,QMoGL,kFACI,aACA,mBACA,IJ5BQ,MI6BR,cJ7BQ,MIgCZ,kGACI,OACA,kBAGJ,8ERpBA,WACA,mBACA,UI6Bc,QJ5Bd,YIsCoB,IJrCpB,MIlEU,QJmEV,iBItGO,KJuGP,yBACA,cEhFY,OFiFZ,qEAEA,0FACI,aE1GE,QF2CN,UACA,4CAkEA,wGACI,MIlFM,QIsFV,8EAEI,mBACA,eACA,gBACA,mPACA,uCACA,4BACA,4BAGJ,kFRlGA,UACA,SACA,gBACA,YACA,eACA,aACA,cAEA,8FACI,aQyFJ,kFAEI,aACA,mBACA,uBACA,WACA,YACA,MNpII,QMqIJ,cJ3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qBV,yBACA,cN3wBW,MM4wBX,eAEA,sGACI,aNtyBF,QMuyBE,aAIR,4ER/wBA,UACA,SACA,gBACA,YACA,eACA,aACA,cAEA,wFACI,aQswBJ,4EAEI,aACA,mBACA,uBACA,MAvFc,KAwFd,OAxFc,KAyFd,MNjzBI,QMkzBJ,yBACA,cN7xBW,MM8xBX,gCAEA,wFACI,WJnxBG,QIoxBH,MJ1xBE,QI8xBV,0FACI,oBACA,mBACA,WACA,qBACA,WJ7xBO,QI8xBP,MNl0BI,QMm0BJ,UJvsBU,OIwsBV,YJlsBgB,IImsBhB,cJ3uBS,MI4uBT,gCAEA,8GACI,eAEA,0HACI,WJz0BG,oBI00BH,MN90BN,QMo1BN,kFACI,aACA,mBACA,uBACA,gBACA,MNx1BI,QMy1BJ,UJ7tBU,OI8tBV,YJvtBkB,IIwtBlB,yBACA,oBAEA,kMAEI,WACA,OACA,WACA,WN/0BG,QMg1BH,cAKR,kFACI,aACA,eACA,INx3BC,KMy3BD,YNz3BC,KM03BD,WN13BC,KM23BD,6BAGJ,gFACI,aACA,mBACA,IJxyBQ,MI2yBZ,gFACI,UJ7vBU,OI8vBV,YJxvBgB,IIyvBhB,MN33BI,QM43BJ,mBAGJ,gFRjyBA,WACA,mBACA,UI6Bc,QJ5Bd,YIsCoB,IJrCpB,MIlEU,QJmEV,iBItGO,KJuGP,yBACA,cEhFY,OFiFZ,qEAEA,4FACI,aE1GE,QF2CN,UACA,4CAkEA,0GACI,MIlFM,QIm2BV,gFAEI,WACA,qBACA,UJvwBU,OI0wBd,kFRxyBA,WACA,mBACA,UI6Bc,QJ5Bd,YIsCoB,IJrCpB,MIlEU,QJmEV,iBItGO,KJuGP,yBACA,cEhFY,OFiFZ,qEAEA,8FACI,aE1GE,QF2CN,UACA,4CAkEA,4GACI,MIlFM,QI02BV,kFAEI,WACA,mCACA,UJ9wBU,OI+wBV,eACA,gBACA,mPACA,wCACA,4BACA,8BAIJ,8FACI,oBACA,mBACA,WACA,wBACA,WJr3BO,QIs3BP,MN15BI,QM25BJ,UJ/xBU,OIgyBV,YJ1xBgB,II2xBhB,cJn0BS,MIo0BT,eACA,gCAEA,0GACI,WJ73BG,QIg4BP,sHACI,WJn6BO,oBIo6BP,MNx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CACI,MPxbM,QOybN,YPvVgB,IJlHpB,gBACA,uBACA,mBWycI,gBASR,uBACI,gBACA,gBAEA,+CACI,aACA,mBACA,8BACA,mBACA,WTxeA,QSyeA,gCAEA,sEACI,YP9Wc,IO+Wd,MPldE,QOmdF,UPtXM,QOyXV,sEACI,UP3XM,OO4XN,MTxfA,QS4fR,6CACI,iBAGJ,2CACI,gBACA,SACA,UAGJ,2CACI,aACA,mBACA,IP5bQ,MO6bR,mBACA,eACA,sCAEA,iDACI,WP5eE,QO+eN,6CACI,WACA,kBACA,MTrhBA,QSshBA,eAGJ,+DACI,OACA,UP9ZM,QO+ZN,MP5fE,QO+fN,+DACI,UPnaM,QOoaN,YP9Zc,IO+Zd,MTniBF,QSoiBE,+BACA,gBACA,cT/gBO,MSqhBnB,mBACI,eACA,yBAEA,yBACI,WAGJ,gCACI,WC7jBR,2BACI,WRKO,KQJP,yBACA,cV6Be,MUzBnB,iBACI,aACA,mBACA,8BACA,IVdK,KUeL,qBACA,WVCI,wCUCJ,8BACA,eACA,iBACA,6CAEA,uBACI,WRaM,QQTd,gBACI,aACA,mBACA,WACA,URyGc,QQxGd,YR8GsB,IQ7GtB,MRUU,QQRV,kBACI,MVzBI,QU8BZ,eACI,QV3CK,KU+CT,kBACI,cR2CY,OQzCZ,6BACI,gBAIR,wBACI,aACA,mBACA,IR+BY,MQ9BZ,cR8BY,MQ7BZ,UR6Ec,QQ5Ed,YRkFsB,IQjFtB,MRlBU,QQoBV,0BACI,MVrDI,QUyDZ,8BACI,cVtEK,KUuEL,URiEc,OQhEd,MV5DQ,QUgEZ,gBACI,aACA,eACA,IV/EK,KUkFT,gBACI,OACA,gBAGJ,gBACI,cACA,qBACA,UR8Cc,OQ7Cd,YRmDoB,IQlDpB,MRlDU,QQqDd,gBZWI,WACA,mBACA,UI6Bc,QJ5Bd,YIsCoB,IJrCpB,MIlEU,QJmEV,iBItGO,KJuGP,yBACA,cEhFY,OFiFZ,qEAEA,sBACI,aE1GE,QF2CN,UACA,4CAkEA,6BACI,MIlFM,QQ4Dd,iBACI,aACA,sBACA,IRdY,MQiBhB,SACI,aACA,mBACA,IV7GK,KU8GL,QRrBY,MQsBZ,WRhEU,QQiEV,cV/EY,OUiFZ,kBACI,WAIR,YACI,aACA,mBACA,IRjCY,MQkCZ,gBAGJ,cACI,WACA,YACA,eAGJ,UACI,URIc,QQHd,YRQoB,IQPpB,MR3FU,QQ+Fd,iBACI,OACA,kBACA,YACA,WR9FW,QQ+FX,cR1Ca,MQ2Cb,eAGJ,eACI,kBACA,MACA,YACA,WV7IM,QU8IN,cRnDa,MQoDb,gCAGJ,iBACI,kBACA,QACA,WACA,YACA,WRzJO,KQ0JP,yBACA,kBACA,gCACA,YACA,WR3DW,kCQ4DX,uCAEA,uBACI,WR9DO,6BQiEX,wBACI,gBAGJ,8BACI,UAGJ,4BACI,UAKR,WACI,aACA,mBACA,IRvGY,OQwGZ,gBACA,URzDc,OQ0Dd,sBACA,MRzJU,QQ4Jd,gBACI,MV3LQ,QU+LZ,iBACI,QV5MK,KU6ML,WR9JU,QQ+JV,cV7KY,OUgLhB,gBACI,aACA,mBACA,IR3HY,MQ4HZ,cVrNK,KUwNT,kBACI,WACA,YACA,eAGJ,eACI,URtFc,QQuFd,YRlFoB,IQmFpB,MRrLU,QQwLd,mBACI,aACA,eACA,IR/IY,OQkJhB,sBZmBI,oBACA,mBACA,IIvKY,OJwKZ,qBACA,UIzHc,OJ0Hd,YIpHoB,IJqHpB,WI9NU,QJ+NV,MI1NU,QJ2NV,cI/Ja,MJiKb,mCAhOA,UACA,SACA,gBACA,YACA,eACA,aACA,cAEA,yCACI,aAuNJ,mCAjQA,aACA,mBACA,uBAkQI,WACA,YACA,eACA,MEjQI,QFkQJ,kBAEA,yCACI,0BACA,MEpQH,QU4NT,sBAEI,eAEA,+BACI,WRhOW,oBQiOX,MVrOE,QU0OV,aACI,aACA,mBACA,IR/JY,MQgKZ,mBACA,WR5NY,QQ6NZ,cV1NY,OU2NZ,URpHc,OQqHd,MV7OG,QU+OH,eACI,URvHU,QQ0Hd,yBACI,sBACA,YRtHkB,IQ2H1B,kBACI,aACA,sBACA,IRrLY,OQsLZ,QV9QK,KU+QL,WRhOU,QQiOV,cV/OY,OUgPZ,URxIc,QQyId,MRxOU,QQ0OV,gCACI,aACA,mBACA,IR9LQ,MQgMR,kCACI,MV7QF,QU8QE,URlJM,QQqJV,2CACI,MVnRA,QU0RR,oDACI,aAGJ,sDACI,cVxQW,MW7Bf,kFACI,wBAC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","file":"entity-selector.css","sourcesContent":["/**\n * Entity Selector Mixins\n * Reusable patterns - prefer Bootstrap utilities in HTML where possible\n */\n\n@use 'variables' as *;\n\n// =============================================================================\n// Layout\n// =============================================================================\n\n@mixin flex-center {\n display: flex;\n align-items: center;\n justify-content: center;\n}\n\n@mixin flex-between {\n display: flex;\n align-items: center;\n justify-content: space-between;\n}\n\n@mixin grid-columns($cols) {\n display: grid;\n grid-template-columns: repeat($cols, 1fr);\n gap: $es-spacing-sm;\n}\n\n// =============================================================================\n// Text\n// =============================================================================\n\n@mixin text-truncate {\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n\n// =============================================================================\n// Interactive Elements\n// =============================================================================\n\n// Reset button styles\n@mixin button-reset {\n padding: 0;\n margin: 0;\n background: none;\n border: none;\n cursor: pointer;\n font: inherit;\n color: inherit;\n\n &:focus {\n outline: none;\n }\n}\n\n// Focus ring (Bootstrap 4 style)\n@mixin focus-ring($color: $es-primary) {\n outline: 0;\n box-shadow: 0 0 0 0.2rem rgba($color, 0.25);\n}\n\n// Interactive hover state\n@mixin interactive-item {\n cursor: pointer;\n transition: background-color $es-transition-fast, color $es-transition-fast;\n\n &:hover {\n background-color: $es-bg-hover;\n }\n}\n\n// =============================================================================\n// Cards & Containers\n// =============================================================================\n\n@mixin card {\n background: $es-white;\n border: 1px solid $es-border-color;\n border-radius: $es-radius-lg;\n}\n\n@mixin dropdown-container {\n position: absolute;\n z-index: $es-z-dropdown;\n background: $es-white;\n border: 1px solid $es-border-color;\n border-radius: $es-radius-lg;\n box-shadow: $es-shadow-lg;\n}\n\n// =============================================================================\n// Form Elements\n// =============================================================================\n\n// Reset input styles (for inputs in custom wrappers)\n@mixin input-reset {\n padding: 0;\n margin: 0;\n background: none;\n border: none;\n font: inherit;\n color: inherit;\n\n &:focus {\n outline: none;\n }\n}\n\n@mixin input-base {\n width: 100%;\n padding: $es-spacing-sm $es-spacing-md;\n font-size: $es-font-size-sm;\n line-height: $es-line-height-normal;\n color: $es-text-primary;\n background-color: $es-white;\n border: 1px solid $es-border-color;\n border-radius: $es-radius-md;\n transition: border-color $es-transition-fast, box-shadow $es-transition-fast;\n\n &:focus {\n border-color: $es-primary;\n @include focus-ring($es-primary);\n }\n\n &::placeholder {\n color: $es-text-light;\n }\n}\n\n// =============================================================================\n// Scrollbar\n// =============================================================================\n\n@mixin custom-scrollbar {\n &::-webkit-scrollbar {\n width: 6px;\n height: 6px;\n }\n\n &::-webkit-scrollbar-track {\n background: $es-gray-100;\n border-radius: 3px;\n }\n\n &::-webkit-scrollbar-thumb {\n background: $es-gray-300;\n border-radius: 3px;\n\n &:hover {\n background: $es-gray-400;\n }\n }\n}\n\n// =============================================================================\n// Badges & Chips\n// =============================================================================\n\n@mixin badge($bg: $es-gray-200, $color: $es-gray-700) {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n padding: 0.125rem 0.5rem;\n font-size: $es-font-size-xs;\n font-weight: $es-font-weight-medium;\n line-height: 1;\n background-color: $bg;\n color: $color;\n border-radius: $es-radius-full;\n}\n\n// Count badge with preview icon (used for tab badges, match counts, totals)\n// Note: Eye icon is provided in HTML via <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: darken($bg, 10%);\n box-shadow: 0 2px 8px rgba($bg, 0.4);\n }\n\n // Icon inside badge (eye, spinner, etc.)\n i {\n font-size: 10px;\n line-height: 1;\n opacity: 0.8;\n }\n\n &:hover i {\n opacity: 1;\n }\n\n .preview-count {\n font-weight: $es-font-weight-bold;\n }\n}\n\n@keyframes spin {\n from { transform: rotate(0deg); }\n to { transform: rotate(360deg); }\n}\n\n@mixin chip {\n display: inline-flex;\n align-items: center;\n gap: $es-spacing-xs;\n padding: $es-spacing-xs $es-spacing-sm;\n font-size: $es-font-size-xs;\n font-weight: $es-font-weight-medium;\n background: $es-gray-200;\n color: $es-gray-700;\n border-radius: $es-radius-full;\n\n .chip-remove {\n @include button-reset;\n @include flex-center;\n width: 14px;\n height: 14px;\n font-size: 10px;\n color: $es-text-muted;\n border-radius: 50%;\n\n &:hover {\n background: rgba(0, 0, 0, 0.1);\n color: $es-danger;\n }\n }\n}\n\n// =============================================================================\n// Toggle Switch\n// =============================================================================\n\n@mixin toggle-switch($width: 36px, $height: 20px) {\n position: relative;\n width: $width;\n height: $height;\n border-radius: $height;\n background: $es-gray-400;\n transition: background-color $es-transition-normal;\n cursor: pointer;\n\n &::after {\n content: '';\n position: absolute;\n top: 2px;\n left: 2px;\n width: $height - 4px;\n height: $height - 4px;\n background: $es-white;\n border-radius: 50%;\n box-shadow: 0 1px 3px rgba(0, 0, 0, 0.2);\n transition: transform $es-transition-normal;\n }\n\n &.active {\n background: $es-success;\n\n &::after {\n transform: translateX($width - $height);\n }\n }\n}\n\n// =============================================================================\n// Screen Reader Only\n// =============================================================================\n\n@mixin sr-only {\n position: absolute;\n width: 1px;\n height: 1px;\n padding: 0;\n margin: -1px;\n overflow: hidden;\n clip: rect(0, 0, 0, 0);\n white-space: nowrap;\n border: 0;\n}\n","/**\n * Form Integration Styles\n * Handles PrestaShop admin form layout overrides\n */\n\n@use '../variables' as *;\n\n// Base border reset for all entity-selector elements\n.target-conditions-trait,\n.target-conditions-trait *,\n.entity-selector-trait,\n.entity-selector-trait *,\n.method-dropdown-menu,\n.method-dropdown-menu *,\n.target-preview-popover,\n.target-preview-popover * {\n border-style: solid;\n border-width: 0;\n border-color: $es-border-color;\n}\n\n// Full-width form group override using :has()\n.form-group:has(.entity-selector-trait),\n.form-group:has(.target-conditions-trait),\n.form-group:has(.condition-trait) {\n display: block;\n\n > .control-label {\n display: none;\n }\n\n > .col-lg-8 {\n width: 100%;\n max-width: 100%;\n padding-left: $es-spacing-md;\n padding-right: $es-spacing-md;\n flex: 0 0 100% !important;\n }\n}\n\n// Fallback class for browsers without :has() support\n.form-group.condition-trait-fullwidth {\n display: block;\n\n > .control-label {\n display: none;\n }\n\n > .col-lg-8 {\n width: 100%;\n max-width: 100%;\n padding-left: $es-spacing-md;\n padding-right: $es-spacing-md;\n flex: 0 0 100% !important;\n }\n}\n\n// Dropdown overflow fix\n// When dropdown is open, parent containers must allow overflow\n.panel:has(.target-search-dropdown.show),\n.card:has(.target-search-dropdown.show),\n.form-wrapper:has(.target-search-dropdown.show),\n.panel-body:has(.target-search-dropdown.show),\n.card-body:has(.target-search-dropdown.show),\n.form-group:has(.target-search-dropdown.show),\n.col-lg-8:has(.target-search-dropdown.show),\n.col-lg-12:has(.target-search-dropdown.show) {\n overflow: visible !important;\n}\n\n// Target conditions wrapper hierarchy overflow fix\n.target-conditions-trait:has(.target-search-dropdown.show),\n.entity-selector-trait:has(.target-search-dropdown.show),\n.condition-trait-body:has(.target-search-dropdown.show),\n.target-block-content:has(.target-search-dropdown.show),\n.target-block-groups:has(.target-search-dropdown.show),\n.target-group:has(.target-search-dropdown.show),\n.target-group-body:has(.target-search-dropdown.show),\n.target-search-wrapper:has(.target-search-dropdown.show) {\n overflow: visible !important;\n}\n","/**\n * MPR Admin Variables\n * @package prestashop-admin\n */\n\n// Spacing scale (Bootstrap 4 compatible)\n$spacer: 1rem;\n$spacers: (\n 0: 0,\n 1: $spacer * 0.25,\n 2: $spacer * 0.5,\n 3: $spacer,\n 4: $spacer * 1.5,\n 5: $spacer * 3\n);\n\n// Colors - PrestaShop Admin Theme\n$primary: #25b9d7;\n$secondary: #6c757d;\n$success: #28a745;\n$danger: #dc3545;\n$warning: #ffc107;\n$info: #17a2b8;\n$light: #f8f9fa;\n$dark: #343a40;\n\n$colors: (\n primary: $primary,\n secondary: $secondary,\n success: $success,\n danger: $danger,\n warning: $warning,\n info: $info,\n light: $light,\n dark: $dark\n);\n\n// Border\n$border-color: #dee2e6;\n$border-radius: 0.25rem;\n$border-radius-sm: 0.2rem;\n$border-radius-lg: 0.3rem;\n\n// Breakpoints\n$breakpoint-sm: 576px;\n$breakpoint-md: 768px;\n$breakpoint-lg: 991px;\n$breakpoint-xl: 1200px;\n","/**\n * Responsive Styles\n * Media query adjustments for different screen sizes\n */\n\n@use '../variables' as *;\n\n// Tablet and below\n@media (max-width: 991px) {\n .target-conditions-trait,\n .entity-selector-trait {\n .condition-trait-header {\n flex-direction: column;\n align-items: flex-start;\n gap: $es-spacing-sm;\n }\n\n .trait-header-right {\n width: 100%;\n justify-content: flex-end;\n }\n\n .target-block-tabs {\n flex-wrap: wrap;\n }\n }\n}\n\n// Mobile\n@media (max-width: 767px) {\n .target-conditions-trait,\n .entity-selector-trait {\n .target-block-tab {\n padding: $es-spacing-sm;\n font-size: $es-font-size-xs;\n }\n\n .target-group-header {\n flex-direction: column;\n align-items: flex-start;\n }\n\n .target-search-dropdown {\n width: 100% !important;\n left: 0 !important;\n right: 0 !important;\n }\n\n .dropdown-results-grid {\n grid-template-columns: 1fr !important;\n }\n }\n}\n\n// High-resolution displays\n@media (min-width: 1600px) {\n .target-conditions-trait,\n .entity-selector-trait {\n .dropdown-results-grid.view-grid-3 {\n grid-template-columns: repeat(4, 1fr);\n }\n }\n}\n","/**\n * Entity Selector Variables\n * Bootstrap 4 compatible values for PrestaShop admin theme\n *\n * Imports shared variables from prestashop-admin package\n * and maps them to $es-* prefixed aliases for this package\n */\n\n// Import shared variables from prestashop-admin\n@use '../../../prestashop-admin/assets/scss/variables' as admin;\n\n// =============================================================================\n// Base Colors\n// =============================================================================\n\n$es-white: #ffffff !default;\n$es-black: #000000 !default;\n\n// Primary (from prestashop-admin)\n$es-primary: admin.$primary !default;\n$es-primary-hover: #1a9ab7 !default;\n$es-primary-light: rgba(37, 185, 215, 0.1) !default;\n\n// Semantic colors (from prestashop-admin)\n$es-success: admin.$success !default;\n$es-success-light: #d4edda !default;\n$es-success-dark: #1e7e34 !default;\n\n$es-danger: admin.$danger !default;\n$es-danger-light: #f8d7da !default;\n$es-danger-dark: #bd2130 !default;\n\n$es-warning: admin.$warning !default;\n$es-warning-light: #fff3cd !default;\n\n$es-info: admin.$info !default;\n$es-info-light: #d1ecf1 !default;\n\n// =============================================================================\n// Gray Scale (Bootstrap 4)\n// =============================================================================\n\n$es-gray-100: admin.$light !default;\n$es-gray-200: #e9ecef !default;\n$es-gray-300: admin.$border-color !default;\n$es-gray-400: #ced4da !default;\n$es-gray-500: #adb5bd !default;\n$es-gray-600: admin.$secondary !default;\n$es-gray-700: #495057 !default;\n$es-gray-800: admin.$dark !default;\n$es-gray-900: #212529 !default;\n\n// Slate (subtle variations)\n$es-slate-50: #f8fafc !default;\n$es-slate-100: #f1f5f9 !default;\n$es-slate-200: #e2e8f0 !default;\n$es-slate-300: #cbd5e1 !default;\n$es-slate-400: #94a3b8 !default;\n$es-slate-500: #64748b !default;\n$es-slate-600: #475569 !default;\n$es-slate-700: #334155 !default;\n$es-slate-800: #1e293b !default;\n$es-slate-900: #0f172a !default;\n\n// Cyan\n$es-cyan-50: #ecfeff !default;\n$es-cyan-100: #cffafe !default;\n$es-cyan-200: #a5f3fc !default;\n$es-cyan-500: #06b6d4 !default;\n$es-cyan-600: #0891b2 !default;\n$es-cyan-700: #0e7490 !default;\n\n// =============================================================================\n// Semantic Aliases\n// =============================================================================\n\n$es-bg-header: $es-gray-100 !default;\n$es-bg-hover: $es-gray-200 !default;\n$es-bg-active: $es-gray-200 !default;\n$es-bg-body: $es-white !default;\n\n$es-border-color: admin.$border-color !default;\n$es-border-light: $es-gray-200 !default;\n$es-border-dark: $es-gray-400 !default;\n\n$es-text-primary: $es-gray-900 !default;\n$es-text-secondary: $es-gray-700 !default;\n$es-text-muted: $es-gray-600 !default;\n$es-text-light: $es-gray-500 !default;\n\n// =============================================================================\n// Spacing (Bootstrap 4 compatible, derived from admin.$spacer)\n// =============================================================================\n\n$es-spacing-xs: admin.$spacer * 0.25 !default; // 4px\n$es-spacing-sm: admin.$spacer * 0.5 !default; // 8px\n$es-spacing-md: admin.$spacer !default; // 16px\n$es-spacing-lg: admin.$spacer * 1.5 !default; // 24px\n$es-spacing-xl: admin.$spacer * 2 !default; // 32px\n\n// =============================================================================\n// Border Radius (from prestashop-admin)\n// =============================================================================\n\n$es-radius-sm: admin.$border-radius-sm !default;\n$es-radius-md: admin.$border-radius !default;\n$es-radius-lg: admin.$border-radius-lg !default;\n$es-radius-xl: 0.5rem !default;\n$es-radius-full: 50rem !default;\n\n// =============================================================================\n// Box Shadows (Bootstrap 4 compatible)\n// =============================================================================\n\n$es-shadow-sm: 0 0.125rem 0.25rem rgba(0, 0, 0, 0.075) !default;\n$es-shadow-md: 0 0.5rem 1rem rgba(0, 0, 0, 0.15) !default;\n$es-shadow-lg: 0 1rem 3rem rgba(0, 0, 0, 0.175) !default;\n$es-shadow-xl: 0 1.5rem 4rem rgba(0, 0, 0, 0.2) !default;\n\n// =============================================================================\n// Transitions\n// =============================================================================\n\n$es-transition-fast: 0.15s ease-in-out !default;\n$es-transition-normal: 0.2s ease-in-out !default;\n$es-transition-slow: 0.3s ease-in-out !default;\n\n// =============================================================================\n// Z-Index (below Bootstrap modal)\n// =============================================================================\n\n$es-z-dropdown: 1000 !default;\n$es-z-modal: 1050 !default;\n$es-z-popover: 1060 !default;\n$es-z-tooltip: 1070 !default;\n\n// =============================================================================\n// Typography\n// =============================================================================\n\n$es-font-family: -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, \"Helvetica Neue\", Arial, sans-serif !default;\n\n$es-font-size-xs: 0.75rem !default; // 12px\n$es-font-size-sm: 0.875rem !default; // 14px\n$es-font-size-base: 1rem !default; // 16px\n$es-font-size-lg: 1.125rem !default; // 18px\n\n$es-font-weight-normal: 400 !default;\n$es-font-weight-medium: 500 !default;\n$es-font-weight-semibold: 600 !default;\n$es-font-weight-bold: 700 !default;\n\n$es-line-height-tight: 1.25 !default;\n$es-line-height-normal: 1.5 !default;\n","/**\n * Entity Selector - Main Component Styles\n * Wrapper, header, body, tabs, blocks\n */\n\n@use '../variables' as *;\n@use '../mixins' as *;\n\n// Main wrapper (supports both .target-conditions-trait and .entity-selector-trait)\n.target-conditions-trait,\n.entity-selector-trait {\n position: relative;\n overflow: visible;\n background: $es-white;\n border: 1px solid $es-border-color;\n border-radius: $es-radius-lg;\n\n // Trait Header (collapsible)\n .condition-trait-header {\n display: flex;\n align-items: center;\n justify-content: space-between;\n flex-wrap: wrap;\n gap: $es-spacing-md;\n padding: 0.875rem $es-spacing-md;\n background: $es-bg-header;\n border-bottom: 1px solid $es-border-color;\n border-radius: $es-radius-lg $es-radius-lg 0 0;\n cursor: pointer;\n user-select: none;\n transition: background-color $es-transition-fast;\n\n &:hover {\n background: $es-bg-hover;\n }\n }\n\n .trait-header-left {\n display: flex;\n align-items: center;\n gap: 0.75rem;\n min-width: 0;\n flex: 1;\n }\n\n .trait-icon {\n font-size: $es-font-size-lg;\n color: $es-text-muted;\n flex-shrink: 0;\n }\n\n .trait-title-group {\n display: flex;\n flex-direction: column;\n gap: 0.125rem;\n min-width: 0;\n }\n\n .trait-title {\n font-size: $es-font-size-sm;\n font-weight: $es-font-weight-semibold;\n color: $es-text-primary;\n white-space: nowrap;\n }\n\n .trait-subtitle {\n font-size: $es-font-size-xs;\n color: $es-text-muted;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n }\n\n // Total count badge in header\n .trait-total-count {\n @include count-badge($es-primary);\n margin-left: $es-spacing-sm;\n }\n\n // Show all toggle switch\n .trait-show-all-toggle {\n display: inline-flex;\n align-items: center;\n gap: $es-spacing-sm;\n margin-right: 0.75rem;\n padding: 0.25rem $es-spacing-sm;\n border-radius: $es-radius-sm;\n cursor: pointer;\n user-select: none;\n transition: background-color $es-transition-fast;\n\n &:hover {\n background: rgba(0, 0, 0, 0.05);\n }\n\n .toggle-label {\n font-size: $es-font-size-xs;\n font-weight: $es-font-weight-medium;\n color: $es-text-muted;\n }\n\n .show-all-checkbox {\n display: none;\n }\n\n .toggle-slider {\n position: relative;\n width: 36px;\n height: 20px;\n background: $es-slate-300;\n border-radius: $es-radius-full;\n transition: background-color $es-transition-normal;\n\n &::after {\n content: '';\n position: absolute;\n top: 2px;\n left: 2px;\n width: 16px;\n height: 16px;\n background: $es-white;\n border-radius: 50%;\n box-shadow: 0 1px 3px rgba(0, 0, 0, 0.2);\n transition: transform $es-transition-normal;\n }\n }\n\n .show-all-checkbox:checked + .toggle-slider {\n background: $es-success;\n\n &::after {\n transform: translateX(16px);\n }\n }\n }\n\n // Validation error states\n &.has-validation-error {\n border-color: $es-danger;\n box-shadow: 0 0 0 3px rgba($es-danger, 0.1);\n\n .condition-trait-header {\n border-bottom-color: $es-danger;\n }\n }\n\n .trait-validation-error {\n display: flex;\n align-items: center;\n gap: $es-spacing-sm;\n padding: 0.625rem $es-spacing-md;\n background: $es-danger-light;\n color: #b91c1c;\n font-size: $es-font-size-sm;\n font-weight: $es-font-weight-medium;\n border-bottom: 1px solid #fecaca;\n\n i {\n color: $es-danger;\n }\n }\n\n // Required indicator\n &.trait-required .trait-title::after {\n content: ' *';\n color: $es-danger;\n }\n\n // Body\n .condition-trait-body {\n padding: 0;\n background: $es-white;\n border-radius: 0 0 $es-radius-lg $es-radius-lg;\n }\n\n // Block type tabs\n .target-block-tabs {\n display: flex;\n flex-wrap: wrap;\n gap: 0;\n padding: 0;\n background: $es-slate-100;\n border-bottom: 1px solid $es-border-color;\n }\n\n .target-block-tab {\n position: relative;\n display: flex;\n align-items: center;\n gap: $es-spacing-sm;\n flex: none;\n min-width: 0;\n padding: 0.625rem $es-spacing-md;\n margin-bottom: -1px;\n background: transparent;\n border: 0;\n border-bottom: 2px solid transparent;\n color: $es-text-muted;\n font-size: $es-font-size-sm;\n font-weight: $es-font-weight-medium;\n cursor: pointer;\n transition: all $es-transition-fast;\n\n &:hover {\n background: $es-slate-200;\n color: $es-slate-700;\n }\n\n &.active {\n background: $es-white;\n border-bottom-color: $es-cyan-500;\n color: $es-primary;\n }\n\n i {\n font-size: $es-font-size-sm;\n }\n\n .tab-label {\n white-space: nowrap;\n }\n\n .tab-badge {\n @include count-badge($es-primary);\n }\n\n &.has-data:not(.active) .tab-badge {\n @include count-badge($es-slate-400);\n }\n }\n\n // Block container\n .target-block-container {\n display: none;\n\n &.active {\n display: block;\n }\n }\n\n .target-block-content {\n padding: $es-spacing-md;\n }\n\n .target-block-groups {\n display: flex;\n flex-direction: column;\n gap: $es-spacing-md;\n }\n\n // Block header (for standalone blocks)\n .target-block-header {\n display: flex;\n align-items: center;\n justify-content: space-between;\n padding: $es-spacing-sm $es-spacing-md;\n background: $es-bg-header;\n border-bottom: 1px solid $es-border-color;\n }\n\n // Empty state\n .target-block-empty {\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n gap: $es-spacing-sm;\n padding: $es-spacing-xl;\n text-align: center;\n color: $es-text-muted;\n\n i {\n font-size: 2rem;\n opacity: 0.5;\n }\n\n p {\n margin: 0;\n font-size: $es-font-size-sm;\n }\n }\n\n // Collapse toggle\n .trait-collapse-toggle,\n .collapse-toggle {\n display: flex;\n align-items: center;\n justify-content: center;\n width: 24px;\n height: 24px;\n color: $es-text-muted;\n cursor: pointer;\n transition: transform $es-transition-normal;\n\n &.collapsed {\n transform: rotate(-90deg);\n }\n }\n\n // Header actions\n .trait-header-right {\n display: flex;\n align-items: center;\n gap: $es-spacing-sm;\n }\n\n // Collapsed state\n &.collapsed {\n .condition-trait-body {\n display: none;\n }\n\n .condition-trait-header {\n border-radius: $es-radius-lg;\n }\n }\n}\n\n// Single mode specific styles\n.target-conditions-trait.single-mode,\n.entity-selector-trait.single-mode {\n .target-block-tabs {\n display: none;\n }\n\n .target-block-container {\n display: block;\n }\n}\n\n// Header action buttons\n.target-conditions-trait,\n.entity-selector-trait {\n .header-actions {\n display: flex;\n align-items: center;\n gap: $es-spacing-xs;\n }\n\n .header-action-btn {\n @include button-reset;\n display: inline-flex;\n align-items: center;\n gap: 0.25rem;\n padding: 0.25rem $es-spacing-sm;\n font-size: $es-font-size-xs;\n font-weight: $es-font-weight-medium;\n color: $es-text-muted;\n background: transparent;\n border-radius: $es-radius-sm;\n transition: all $es-transition-fast;\n\n &:hover {\n background: $es-slate-200;\n color: $es-text-secondary;\n }\n\n i {\n font-size: 12px;\n }\n }\n}\n","/**\n * Search Dropdown Component\n * Includes search input, filter panel, results grid\n */\n\n@use '../variables' as *;\n@use '../mixins' as *;\n\n.target-conditions-trait,\n.entity-selector-trait {\n\n // Search wrapper\n .target-search-wrapper {\n position: relative;\n }\n\n // Search dropdown\n .target-search-dropdown {\n @include dropdown-container;\n display: none;\n width: 600px;\n max-width: calc(100vw - 40px);\n\n &.show {\n display: block;\n }\n }\n\n // Dropdown header\n .dropdown-header {\n display: flex;\n align-items: center;\n gap: $es-spacing-sm;\n padding: $es-spacing-md;\n background: $es-bg-header;\n border-bottom: 1px solid $es-border-color;\n border-radius: $es-radius-lg $es-radius-lg 0 0;\n }\n\n .dropdown-search-input {\n @include input-base;\n flex: 1;\n padding: $es-spacing-sm $es-spacing-md;\n }\n\n .dropdown-close-btn {\n @include button-reset;\n display: flex;\n align-items: center;\n justify-content: center;\n width: 32px;\n height: 32px;\n color: $es-text-muted;\n border-radius: $es-radius-md;\n transition: all $es-transition-fast;\n\n &:hover {\n background: $es-slate-200;\n color: $es-text-secondary;\n }\n }\n\n // Dropdown controls bar\n .dropdown-controls {\n display: flex;\n align-items: center;\n justify-content: space-between;\n gap: $es-spacing-sm;\n padding: $es-spacing-sm $es-spacing-md;\n background: $es-white;\n border-bottom: 1px solid $es-border-color;\n }\n\n .dropdown-controls-left,\n .dropdown-controls-right {\n display: flex;\n align-items: center;\n gap: $es-spacing-sm;\n }\n\n // View mode buttons\n .view-mode-btn {\n @include button-reset;\n display: flex;\n align-items: center;\n justify-content: center;\n width: 28px;\n height: 28px;\n color: $es-text-muted;\n background: transparent;\n border-radius: $es-radius-sm;\n transition: all $es-transition-fast;\n\n &:hover {\n background: $es-slate-100;\n color: $es-text-secondary;\n }\n\n &.active {\n background: $es-primary;\n color: $es-white;\n }\n }\n\n // Results count\n .dropdown-results-count {\n font-size: $es-font-size-xs;\n color: $es-text-muted;\n }\n\n // Dropdown body\n .dropdown-body {\n max-height: 400px;\n overflow-y: auto;\n @include custom-scrollbar;\n }\n\n // Results container\n .dropdown-results {\n padding: 0 $es-spacing-sm;\n }\n\n // Results count text\n .results-count {\n font-size: $es-font-size-xs;\n color: $es-text-muted;\n padding: $es-spacing-xs $es-spacing-sm;\n }\n\n // Results header (for list view columns)\n .results-header {\n display: flex;\n align-items: center;\n gap: $es-spacing-sm;\n padding: $es-spacing-xs $es-spacing-md;\n background: $es-slate-100;\n border-bottom: 1px solid $es-border-color;\n font-size: $es-font-size-xs;\n font-weight: $es-font-weight-semibold;\n color: $es-text-secondary;\n }\n\n // Grid view\n .dropdown-results-grid {\n display: grid;\n gap: $es-spacing-sm;\n\n &.view-list {\n grid-template-columns: 1fr;\n }\n\n &.view-grid-2 {\n grid-template-columns: repeat(2, 1fr);\n }\n\n &.view-grid-3 {\n grid-template-columns: repeat(3, 1fr);\n }\n }\n\n // Result item (both class names for compatibility)\n // Note: Main dropdown-item styling is in the global .target-search-dropdown section below\n .dropdown-result-item {\n display: flex;\n align-items: center;\n gap: $es-spacing-sm;\n padding: $es-spacing-sm 0;\n background: $es-white;\n border: none;\n border-bottom: 1px solid $es-border-color;\n border-radius: 0;\n cursor: pointer;\n transition: background $es-transition-fast;\n\n &:last-child {\n border-bottom: none;\n }\n\n &:hover {\n background: $es-bg-hover;\n }\n\n &.selected {\n background: $es-primary-light;\n }\n\n &.disabled {\n opacity: 0.5;\n cursor: not-allowed;\n\n &:hover {\n background: $es-white;\n }\n }\n }\n\n .result-item-image,\n .result-image {\n flex-shrink: 0;\n width: 40px;\n height: 40px;\n overflow: hidden;\n border-radius: $es-radius-sm;\n background: $es-slate-100;\n\n img {\n width: 100%;\n height: 100%;\n object-fit: cover;\n }\n }\n\n .result-icon {\n display: flex;\n align-items: center;\n justify-content: center;\n flex-shrink: 0;\n width: 40px;\n height: 40px;\n background: $es-slate-100;\n border-radius: $es-radius-sm;\n color: $es-text-muted;\n\n i {\n font-size: 16px;\n }\n }\n\n .result-item-info,\n .result-info {\n flex: 1;\n min-width: 0;\n }\n\n .result-item-name,\n .result-name {\n font-size: $es-font-size-sm;\n font-weight: $es-font-weight-medium;\n color: $es-text-primary;\n @include text-truncate;\n }\n\n .result-item-meta,\n .result-subtitle {\n font-size: $es-font-size-xs;\n color: $es-text-muted;\n }\n\n .subtitle-line {\n @include text-truncate;\n }\n\n .subtitle-line-primary {\n color: $es-text-secondary;\n }\n\n .subtitle-line-secondary {\n color: $es-text-muted;\n font-size: 11px;\n }\n\n // Result columns (for product list view)\n .result-col {\n flex-shrink: 0;\n width: 70px;\n text-align: right;\n font-size: $es-font-size-xs;\n }\n\n .result-col-price {\n color: $es-text-secondary;\n }\n\n .result-col-sale {\n color: $es-danger;\n font-weight: $es-font-weight-semibold;\n }\n\n .result-col-stock {\n .col-value {\n &.stock-ok {\n color: $es-success;\n }\n\n &.stock-low {\n color: $es-warning;\n }\n\n &.stock-out {\n color: $es-danger;\n }\n }\n }\n\n .result-col-sales {\n color: $es-text-muted;\n }\n\n .col-value {\n display: block;\n }\n\n .result-item-checkbox,\n .result-checkbox {\n display: flex;\n align-items: center;\n justify-content: center;\n flex-shrink: 0;\n width: 18px;\n height: 18px;\n border: 2px solid $es-border-dark;\n border-radius: $es-radius-sm;\n transition: all $es-transition-fast;\n\n i {\n display: none;\n font-size: 10px;\n color: $es-white;\n }\n\n .dropdown-result-item.selected &,\n .dropdown-item.selected & {\n background: $es-primary;\n border-color: $es-primary;\n\n i {\n display: block;\n }\n }\n }\n\n // Product-specific result item\n .result-item-product {\n display: flex;\n align-items: center;\n gap: $es-spacing-sm;\n }\n\n // No results state\n .no-results {\n display: flex;\n align-items: center;\n justify-content: center;\n gap: $es-spacing-sm;\n padding: $es-spacing-xl;\n color: $es-text-muted;\n font-size: $es-font-size-sm;\n\n i {\n font-size: 1.25rem;\n opacity: 0.5;\n }\n }\n\n // Empty state\n .dropdown-empty {\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n gap: $es-spacing-sm;\n padding: $es-spacing-xl;\n text-align: center;\n color: $es-text-muted;\n\n i {\n font-size: 2rem;\n opacity: 0.5;\n }\n\n p {\n margin: 0;\n font-size: $es-font-size-sm;\n }\n }\n\n // Loading state\n .dropdown-loading {\n display: flex;\n align-items: center;\n justify-content: center;\n padding: $es-spacing-xl;\n color: $es-text-muted;\n\n i {\n font-size: 1.5rem;\n animation: spin 1s linear infinite;\n }\n }\n\n // 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 border-top: 1px solid $es-border-color;\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 .load-more-select {\n @include input-base;\n padding: 0.25rem 0.5rem;\n font-size: $es-font-size-xs;\n min-width: 70px;\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 footer\n .dropdown-footer {\n display: flex;\n align-items: center;\n justify-content: space-between;\n gap: $es-spacing-sm;\n padding: $es-spacing-sm $es-spacing-md;\n background: $es-bg-header;\n border-top: 1px solid $es-border-color;\n border-radius: 0 0 $es-radius-lg $es-radius-lg;\n }\n\n .dropdown-selection-count {\n font-size: $es-font-size-xs;\n color: $es-text-muted;\n\n strong {\n color: $es-primary;\n }\n }\n\n .dropdown-actions {\n display: flex;\n gap: $es-spacing-sm;\n }\n\n .dropdown-action-btn {\n @include button-reset;\n padding: $es-spacing-sm $es-spacing-md;\n font-size: $es-font-size-sm;\n font-weight: $es-font-weight-medium;\n border-radius: $es-radius-md;\n transition: all $es-transition-fast;\n\n &.btn-cancel {\n color: $es-text-secondary;\n background: $es-slate-100;\n\n &:hover {\n background: $es-slate-200;\n }\n }\n\n &.btn-apply {\n color: $es-white;\n background: $es-primary;\n\n &:hover {\n background: $es-primary-hover;\n }\n }\n }\n\n // Filter panel\n .dropdown-filter-panel {\n padding: $es-spacing-md;\n background: $es-slate-50;\n border-bottom: 1px solid $es-border-color;\n }\n\n .filter-panel-header {\n display: flex;\n align-items: center;\n justify-content: space-between;\n margin-bottom: $es-spacing-sm;\n }\n\n .filter-panel-title {\n font-size: $es-font-size-sm;\n font-weight: $es-font-weight-semibold;\n color: $es-text-primary;\n }\n\n .filter-panel-toggle {\n @include button-reset;\n font-size: $es-font-size-xs;\n color: $es-primary;\n\n &:hover {\n text-decoration: underline;\n }\n }\n\n .filter-panel-content {\n display: grid;\n gap: $es-spacing-sm;\n grid-template-columns: repeat(auto-fill, minmax(150px, 1fr));\n }\n\n .filter-group {\n display: flex;\n flex-direction: column;\n gap: 0.25rem;\n }\n\n .filter-label {\n font-size: $es-font-size-xs;\n font-weight: $es-font-weight-medium;\n color: $es-text-secondary;\n }\n\n .filter-select,\n .filter-input {\n @include input-base;\n padding: 0.375rem $es-spacing-sm;\n font-size: $es-font-size-xs;\n }\n}\n\n// Category tree view\n.target-conditions-trait,\n.entity-selector-trait {\n .category-tree {\n padding: $es-spacing-sm;\n }\n\n .tree-container {\n // Contains tree items\n }\n\n .tree-loading {\n display: flex;\n align-items: center;\n justify-content: center;\n gap: $es-spacing-sm;\n padding: $es-spacing-xl;\n color: $es-text-muted;\n font-size: $es-font-size-sm;\n\n i {\n animation: spin 0.6s linear infinite;\n }\n }\n\n // Tree item (used by JavaScript)\n .tree-item {\n display: flex;\n align-items: center;\n gap: $es-spacing-xs;\n padding: 0.375rem $es-spacing-sm;\n border-radius: $es-radius-sm;\n cursor: pointer;\n transition: background-color $es-transition-fast;\n\n &:hover {\n background: $es-bg-hover;\n }\n\n &.selected {\n background: $es-primary-light;\n\n .tree-checkbox {\n background: $es-primary;\n border-color: $es-primary;\n\n i {\n display: block;\n }\n }\n }\n\n &.has-children {\n // Parent node styling\n }\n }\n\n // tree-toggle, btn-select-children, tree-checkbox, tree-icon styles in _tree.scss\n\n .tree-info {\n display: flex;\n align-items: center;\n gap: $es-spacing-xs;\n flex: 1;\n min-width: 0;\n }\n\n .tree-name {\n font-size: $es-font-size-sm;\n color: $es-text-primary;\n @include text-truncate;\n }\n\n .tree-subtitle {\n font-size: $es-font-size-xs;\n color: $es-text-muted;\n }\n\n // Legacy category tree classes (for compatibility)\n .category-tree-item {\n padding: 0.25rem 0;\n }\n\n .category-tree-node {\n display: flex;\n align-items: center;\n gap: $es-spacing-sm;\n padding: $es-spacing-xs $es-spacing-sm;\n border-radius: $es-radius-sm;\n cursor: pointer;\n transition: background-color $es-transition-fast;\n\n &:hover {\n background: $es-bg-hover;\n }\n\n &.selected {\n background: $es-primary-light;\n }\n }\n\n .category-tree-toggle {\n display: flex;\n align-items: center;\n justify-content: center;\n width: 16px;\n height: 16px;\n color: $es-text-muted;\n transition: transform $es-transition-fast;\n\n &.expanded {\n transform: rotate(90deg);\n }\n\n &.empty {\n visibility: hidden;\n }\n }\n\n .category-tree-checkbox {\n flex-shrink: 0;\n width: 16px;\n height: 16px;\n border: 2px solid $es-border-dark;\n border-radius: 3px;\n transition: all $es-transition-fast;\n\n &.checked {\n background: $es-primary;\n border-color: $es-primary;\n\n &::after {\n content: '\\2713';\n display: flex;\n align-items: center;\n justify-content: center;\n width: 100%;\n height: 100%;\n color: $es-white;\n font-size: 10px;\n }\n }\n\n &.indeterminate {\n background: $es-primary;\n border-color: $es-primary;\n\n &::after {\n content: '\\2212';\n display: flex;\n align-items: center;\n justify-content: center;\n width: 100%;\n height: 100%;\n color: $es-white;\n font-size: 10px;\n }\n }\n }\n\n .category-tree-name {\n flex: 1;\n font-size: $es-font-size-sm;\n color: $es-text-primary;\n @include text-truncate;\n }\n\n .category-tree-count {\n font-size: $es-font-size-xs;\n color: $es-text-muted;\n }\n\n .category-tree-children {\n margin-left: 24px;\n }\n\n // Search history\n .search-history-list {\n padding: $es-spacing-sm;\n }\n\n .history-item {\n display: flex;\n align-items: center;\n gap: $es-spacing-sm;\n padding: $es-spacing-sm;\n border-radius: $es-radius-sm;\n cursor: pointer;\n transition: background-color $es-transition-fast;\n\n &:hover {\n background: $es-bg-hover;\n }\n\n > i {\n color: $es-text-muted;\n font-size: 14px;\n }\n }\n\n .history-query {\n flex: 1;\n font-size: $es-font-size-sm;\n color: $es-text-primary;\n }\n\n .btn-delete-history {\n @include button-reset;\n display: flex;\n align-items: center;\n justify-content: center;\n width: 24px;\n height: 24px;\n color: $es-text-muted;\n border-radius: $es-radius-sm;\n opacity: 0;\n transition: all $es-transition-fast;\n\n .history-item:hover & {\n opacity: 1;\n }\n\n &:hover {\n background: $es-danger-light;\n color: $es-danger;\n }\n\n i {\n font-size: 12px;\n }\n }\n\n // Filter panel\n .filter-panel {\n display: none;\n padding: $es-spacing-md;\n background: $es-slate-50;\n border-bottom: 1px solid $es-border-color;\n\n &.show {\n display: block;\n }\n }\n\n .filter-row {\n display: flex;\n flex-wrap: wrap;\n align-items: center;\n gap: $es-spacing-sm;\n margin-bottom: $es-spacing-sm;\n\n &:last-child {\n margin-bottom: 0;\n }\n }\n\n // View mode select\n .view-mode-select {\n @include input-base;\n padding: 0.25rem 0.5rem;\n font-size: $es-font-size-xs;\n min-width: 80px;\n }\n}\n\n// =============================================================================\n// Global dropdown styles (when appended to body instead of inside wrapper)\n// Duplicates key styles for when dropdown is outside .entity-selector-trait\n// =============================================================================\nbody > .target-search-dropdown,\n.target-search-dropdown {\n @include dropdown-container;\n display: none;\n width: 600px;\n max-width: calc(100vw - 40px);\n\n &.show {\n display: block;\n }\n\n // Dropdown header\n .dropdown-header {\n display: flex;\n align-items: center;\n gap: $es-spacing-sm;\n padding: $es-spacing-md;\n background: $es-bg-header;\n border-bottom: 1px solid $es-border-color;\n border-radius: $es-radius-lg $es-radius-lg 0 0;\n flex-wrap: wrap;\n }\n\n .results-count {\n font-size: $es-font-size-sm;\n font-weight: $es-font-weight-semibold;\n color: $es-text-primary;\n white-space: nowrap;\n }\n\n .dropdown-actions {\n display: flex;\n align-items: center;\n gap: $es-spacing-xs;\n flex-wrap: wrap;\n flex: 1;\n justify-content: flex-end;\n }\n\n .btn-select-all,\n .btn-clear-selection {\n @include button-reset;\n display: inline-flex;\n align-items: center;\n gap: 0.25rem;\n padding: 0.25rem 0.5rem;\n font-size: $es-font-size-xs;\n color: $es-text-secondary;\n background: $es-white;\n border: 1px solid $es-border-color;\n border-radius: $es-radius-sm;\n cursor: pointer;\n transition: all $es-transition-fast;\n\n &:hover {\n background: $es-bg-hover;\n border-color: $es-slate-300;\n }\n\n kbd {\n font-size: 0.65rem;\n padding: 0.125rem 0.25rem;\n background: $es-slate-100;\n border-radius: 2px;\n color: $es-text-muted;\n }\n }\n\n .sort-controls {\n display: flex;\n align-items: center;\n // No gap - elements are connected\n }\n\n .sort-field-select {\n @include input-base;\n padding: 0.25rem 0.5rem;\n font-size: $es-font-size-xs;\n min-width: 80px;\n height: 28px; // Match btn-sort-dir height\n border-radius: $es-radius-sm 0 0 $es-radius-sm;\n border-right: none;\n }\n\n .btn-sort-dir {\n display: flex;\n align-items: center;\n justify-content: center;\n width: 38px;\n min-width: 38px;\n flex-shrink: 0;\n height: 28px;\n padding: 0;\n margin: 0;\n color: $es-text-muted;\n background: $es-white;\n border: 1px solid $es-border-color;\n border-radius: 0 $es-radius-sm $es-radius-sm 0;\n cursor: pointer;\n transition: all $es-transition-fast;\n\n i {\n font-size: 14px;\n }\n\n &:hover {\n background: $es-bg-hover;\n color: $es-text-primary;\n }\n\n &.active {\n background: $es-primary-light;\n border-color: $es-primary;\n color: $es-primary;\n }\n }\n\n .view-mode-select {\n @include input-base;\n padding: 0.25rem 0.5rem;\n font-size: $es-font-size-xs;\n min-width: 80px;\n margin-left: 0.25rem;\n }\n\n .btn-toggle-filters,\n .btn-show-history {\n display: flex;\n align-items: center;\n justify-content: center;\n width: 32px;\n min-width: 32px;\n flex-shrink: 0;\n height: 28px;\n padding: 0;\n margin: 0;\n color: $es-text-muted;\n background: $es-white;\n border: 1px solid $es-border-color;\n border-radius: $es-radius-sm;\n cursor: pointer;\n transition: all $es-transition-fast;\n\n i {\n font-size: 14px;\n }\n\n &:hover {\n background: $es-bg-hover;\n color: $es-text-primary;\n }\n\n &.active {\n background: $es-primary-light;\n border-color: $es-primary;\n color: $es-primary;\n }\n }\n\n .refine-compact {\n display: flex;\n align-items: center;\n // No gap - elements are connected\n\n // Connected to refine-input\n .btn-refine-negate {\n display: flex;\n align-items: center;\n justify-content: center;\n width: 32px;\n min-width: 32px;\n flex-shrink: 0;\n height: 28px;\n padding: 0;\n margin: 0;\n color: $es-text-muted;\n background: $es-white;\n border: 1px solid $es-border-color;\n border-right: none;\n border-radius: $es-radius-sm 0 0 $es-radius-sm;\n cursor: pointer;\n transition: all $es-transition-fast;\n\n &:hover {\n background: $es-bg-hover;\n color: $es-text-primary;\n }\n\n &.active {\n background: $es-danger-light;\n color: $es-danger;\n border-color: $es-danger;\n }\n }\n\n .refine-input {\n @include input-base;\n width: 100px;\n padding: 0.25rem 0.5rem;\n font-size: $es-font-size-xs;\n border-radius: 0 $es-radius-sm $es-radius-sm 0;\n }\n\n .btn-clear-refine {\n display: flex;\n align-items: center;\n justify-content: center;\n width: 28px;\n height: 28px;\n padding: 0;\n margin: 0;\n margin-left: -1px; // Overlap input border when visible\n color: $es-text-muted;\n background: $es-white;\n border: 1px solid $es-border-color;\n border-radius: 0 $es-radius-sm $es-radius-sm 0;\n cursor: pointer;\n transition: all $es-transition-fast;\n\n &:hover {\n background: $es-bg-hover;\n color: $es-text-primary;\n }\n }\n }\n\n // Filter panel\n .filter-panel {\n display: none;\n padding: $es-spacing-md;\n background: $es-slate-50;\n border-bottom: 1px solid $es-border-color;\n\n &.show {\n display: block;\n }\n }\n\n .filter-row {\n display: flex;\n align-items: center;\n gap: $es-spacing-sm;\n flex-wrap: wrap;\n margin-bottom: $es-spacing-sm;\n\n &:last-child {\n margin-bottom: 0;\n }\n }\n\n .filter-label {\n display: inline-flex;\n align-items: center;\n gap: 0.25rem;\n font-size: $es-font-size-xs;\n color: $es-text-secondary;\n cursor: pointer;\n\n input[type=\"checkbox\"] {\n margin: 0;\n }\n }\n\n .filter-price-range {\n display: flex;\n align-items: center;\n gap: 0.25rem;\n\n .filter-price-label {\n font-size: $es-font-size-xs;\n color: $es-text-muted;\n }\n\n .filter-price-min,\n .filter-price-max {\n @include input-base;\n width: 70px;\n padding: 0.25rem 0.5rem;\n font-size: $es-font-size-xs;\n }\n\n .filter-price-sep {\n color: $es-text-muted;\n }\n }\n\n .btn-clear-filters {\n @include button-reset;\n display: flex;\n align-items: center;\n justify-content: center;\n width: 24px;\n height: 24px;\n color: $es-text-muted;\n border-radius: $es-radius-sm;\n cursor: pointer;\n margin-left: auto;\n\n &:hover {\n background: $es-slate-200;\n color: $es-text-primary;\n }\n }\n\n // Multi-row filters\n .filter-row-multi {\n flex-direction: column;\n align-items: stretch;\n gap: $es-spacing-sm;\n }\n\n .filter-subrow {\n display: flex;\n align-items: center;\n gap: $es-spacing-sm;\n flex-wrap: wrap;\n }\n\n .filter-range-group,\n .filter-date-group,\n .filter-select-group {\n display: flex;\n align-items: center;\n gap: 0.25rem;\n }\n\n .filter-range-label,\n .filter-date-label,\n .filter-select-label,\n .filter-row-label {\n font-size: $es-font-size-xs;\n color: $es-text-muted;\n white-space: nowrap;\n\n i {\n margin-right: 0.25rem;\n }\n }\n\n .filter-range-sep {\n color: $es-text-muted;\n }\n\n .filter-product-count-min,\n .filter-product-count-max,\n .filter-sales-min,\n .filter-sales-max,\n .filter-turnover-min,\n .filter-turnover-max,\n .filter-date-add-from,\n .filter-date-add-to,\n .filter-last-product-from,\n .filter-last-product-to {\n @include input-base;\n width: 70px;\n padding: 0.25rem 0.5rem;\n font-size: $es-font-size-xs;\n }\n\n .filter-depth-select,\n .filter-attribute-group-select,\n .filter-feature-group-select {\n @include input-base;\n padding: 0.25rem 0.5rem;\n font-size: $es-font-size-xs;\n min-width: 100px;\n }\n\n .filter-attributes-container,\n .filter-features-container,\n .filter-values-container {\n display: flex;\n flex-wrap: wrap;\n gap: 0.25rem;\n }\n\n // Filter group toggle buttons (attribute/feature groups)\n .filter-group-toggle {\n @include button-reset;\n display: inline-flex;\n align-items: center;\n gap: 0.25rem;\n padding: 0.25rem 0.5rem;\n font-size: $es-font-size-xs;\n color: $es-text-secondary;\n background: $es-white;\n border: 1px solid $es-border-color;\n border-radius: $es-radius-sm;\n cursor: pointer;\n transition: all $es-transition-fast;\n\n &:hover {\n background: $es-bg-hover;\n border-color: $es-slate-300;\n }\n\n &.active {\n background: $es-primary-light;\n border-color: $es-primary;\n color: $es-primary;\n\n .toggle-count {\n color: $es-primary;\n }\n }\n\n &.has-selection {\n border-color: $es-success;\n background: rgba($es-success, 0.05);\n\n .toggle-count {\n color: $es-success;\n font-weight: $es-font-weight-semibold;\n }\n }\n\n .toggle-name {\n font-weight: $es-font-weight-medium;\n }\n\n // Count with eye icon (like group-count-badge)\n .toggle-count {\n display: inline-flex;\n align-items: center;\n gap: 0.125rem;\n color: $es-text-muted;\n font-size: 0.65rem;\n\n i {\n font-size: 10px;\n color: $es-primary;\n }\n\n // Clickable preview badge\n &.clickable {\n cursor: pointer;\n padding: 0.125rem 0.25rem;\n border-radius: $es-radius-sm;\n transition: all $es-transition-fast;\n\n &:hover {\n background: rgba($es-primary, 0.1);\n color: $es-primary;\n\n i {\n color: $es-primary;\n }\n }\n\n &.popover-open {\n background: $es-primary;\n color: $es-white;\n\n i {\n color: $es-white;\n }\n }\n\n &.loading {\n i {\n animation: spin 0.6s linear infinite;\n }\n }\n }\n }\n }\n\n // Filter value chips\n .filter-chip {\n @include button-reset;\n display: inline-flex;\n align-items: center;\n gap: 0.25rem;\n padding: 0.25rem 0.5rem;\n font-size: $es-font-size-xs;\n color: $es-text-secondary;\n background: $es-slate-100;\n border: 1px solid transparent;\n border-radius: $es-radius-sm;\n cursor: pointer;\n transition: all $es-transition-fast;\n\n &:hover {\n background: $es-slate-200;\n }\n\n &.active {\n background: $es-primary;\n color: $es-white;\n }\n }\n\n // Filter attribute chip (specific)\n .filter-attr-chip,\n .filter-feat-chip {\n @extend .filter-chip;\n }\n\n // Filter row for values (expandable)\n .filter-row-values {\n display: flex;\n align-items: center;\n gap: $es-spacing-sm;\n padding: $es-spacing-sm;\n background: $es-white;\n border: 1px solid $es-border-color;\n border-radius: $es-radius-sm;\n\n .filter-values-container {\n display: flex;\n flex-wrap: wrap;\n align-items: center;\n gap: 0.25rem;\n flex: 1;\n }\n\n .filter-values-label {\n font-size: $es-font-size-xs;\n font-weight: $es-font-weight-semibold;\n color: $es-text-secondary;\n white-space: nowrap;\n }\n\n .btn-close-values {\n @include button-reset;\n display: flex;\n align-items: center;\n justify-content: center;\n flex-shrink: 0;\n width: 20px;\n height: 20px;\n color: $es-text-muted;\n border-radius: $es-radius-sm;\n\n &:hover {\n background: $es-slate-200;\n color: $es-text-primary;\n }\n }\n }\n\n // Filter chip name and count\n .chip-name {\n font-weight: $es-font-weight-medium;\n }\n\n .chip-count {\n font-size: 0.6rem;\n color: $es-text-muted;\n margin-left: 0.125rem;\n }\n\n .filter-chip.active .chip-count {\n color: rgba(255, 255, 255, 0.8);\n }\n\n // Dropdown content\n .dropdown-content {\n max-height: 400px;\n overflow-y: auto;\n @include custom-scrollbar;\n }\n\n .dropdown-items {\n display: flex;\n flex-direction: column;\n gap: $es-spacing-xs;\n padding: $es-spacing-sm;\n }\n\n .item-checkbox {\n flex-shrink: 0;\n width: 16px;\n height: 16px;\n border: 2px solid $es-border-dark;\n border-radius: 3px;\n transition: all $es-transition-fast;\n\n .dropdown-item.selected & {\n background: $es-primary;\n border-color: $es-primary;\n }\n }\n\n .item-image {\n flex-shrink: 0;\n width: 40px;\n height: 40px;\n object-fit: cover;\n border-radius: $es-radius-sm;\n background: $es-slate-100;\n }\n\n .item-info {\n flex: 1;\n min-width: 0;\n }\n\n .item-name {\n font-size: $es-font-size-sm;\n font-weight: $es-font-weight-medium;\n color: $es-text-primary;\n @include text-truncate;\n }\n\n .item-meta {\n font-size: $es-font-size-xs;\n color: $es-text-muted;\n @include text-truncate;\n }\n\n // Dropdown footer\n .dropdown-footer {\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-top: 1px solid $es-border-color;\n border-radius: 0 0 $es-radius-lg $es-radius-lg;\n }\n\n .dropdown-footer-info {\n font-size: $es-font-size-xs;\n color: $es-text-muted;\n }\n\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-text-secondary;\n background: $es-white;\n border: 1px solid $es-border-color;\n border-radius: $es-radius-sm;\n cursor: pointer;\n\n &:hover {\n background: $es-bg-hover;\n color: $es-danger;\n border-color: $es-danger;\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: $es-slate-100;\n border-radius: 2px;\n color: $es-text-muted;\n margin-left: 0.25rem;\n }\n }\n\n .btn-confirm-dropdown {\n @include button-reset;\n display: inline-flex;\n align-items: center;\n gap: 0.25rem;\n padding: 0.375rem 0.75rem;\n font-size: $es-font-size-sm;\n color: $es-white;\n background: $es-primary;\n border: 1px solid $es-primary;\n border-radius: $es-radius-sm;\n cursor: pointer;\n\n &:hover {\n background: $es-primary-hover;\n border-color: $es-primary-hover;\n }\n\n i {\n font-size: 10px;\n }\n\n kbd {\n font-size: 0.65rem;\n padding: 0.125rem 0.25rem;\n background: rgba(255, 255, 255, 0.2);\n border-radius: 2px;\n color: rgba(255, 255, 255, 0.8);\n }\n }\n\n // Filter chips in dropdown\n .filter-chips-row {\n display: flex;\n flex-wrap: wrap;\n gap: $es-spacing-xs;\n padding: $es-spacing-xs $es-spacing-md;\n border-bottom: 1px solid $es-border-color;\n }\n\n .filter-chip {\n @include chip;\n }\n\n // Empty and loading states\n .dropdown-empty,\n .dropdown-loading {\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n padding: $es-spacing-xl;\n text-align: center;\n color: $es-text-muted;\n font-size: $es-font-size-sm;\n\n i {\n font-size: 2rem;\n opacity: 0.5;\n margin-bottom: $es-spacing-sm;\n }\n }\n\n // Search history panel\n .search-history-panel {\n display: none;\n padding: $es-spacing-sm;\n background: $es-white;\n border-bottom: 1px solid $es-border-color;\n\n &.show {\n display: block;\n }\n }\n\n .history-item {\n display: flex;\n align-items: center;\n gap: $es-spacing-sm;\n padding: $es-spacing-xs $es-spacing-sm;\n border-radius: $es-radius-sm;\n cursor: pointer;\n transition: background $es-transition-fast;\n\n &:hover {\n background: $es-bg-hover;\n }\n\n i {\n color: $es-text-muted;\n font-size: $es-font-size-sm;\n }\n\n span {\n flex: 1;\n font-size: $es-font-size-sm;\n color: $es-text-primary;\n }\n\n .btn-remove-history,\n .btn-delete-history {\n @include button-reset;\n display: flex;\n align-items: center;\n justify-content: center;\n width: 20px;\n height: 20px;\n color: $es-text-muted;\n border-radius: $es-radius-sm;\n transition: all $es-transition-fast;\n\n &:hover {\n background: $es-slate-200;\n color: $es-danger;\n }\n }\n }\n\n // Search history list container\n .search-history-list {\n display: flex;\n flex-direction: column;\n gap: $es-spacing-xs;\n }\n\n // Results header (for list view columns)\n .results-header {\n display: flex;\n align-items: center;\n gap: $es-spacing-sm;\n padding: $es-spacing-xs $es-spacing-md;\n background: $es-slate-100;\n border-bottom: 1px solid $es-border-color;\n font-size: $es-font-size-xs;\n font-weight: $es-font-weight-semibold;\n color: $es-text-secondary;\n\n .header-spacer {\n width: 58px; // checkbox + image width\n flex-shrink: 0;\n }\n\n .header-col {\n flex-shrink: 0;\n width: 70px;\n text-align: right;\n }\n\n .header-col-name {\n flex: 1;\n text-align: left;\n }\n }\n\n // Results container\n .dropdown-results {\n padding: 0 $es-spacing-sm;\n background: $es-white;\n min-height: 200px;\n }\n\n // Dropdown item (search result)\n .dropdown-item {\n position: relative;\n display: flex;\n align-items: center;\n gap: $es-spacing-sm;\n padding: $es-spacing-sm 0;\n background: $es-white;\n border: none;\n border-bottom: 1px solid $es-border-color;\n border-radius: 0;\n cursor: pointer;\n transition: background $es-transition-fast;\n\n &:last-child {\n border-bottom: none;\n }\n\n &:hover {\n background: $es-bg-hover;\n }\n\n &.selected {\n background: $es-primary-light;\n\n .result-checkbox {\n background: $es-primary;\n border-color: $es-primary;\n color: $es-white;\n\n i {\n display: block;\n }\n }\n }\n\n &.disabled {\n opacity: 0.5;\n cursor: not-allowed;\n }\n }\n\n // Checkbox indicator\n .result-checkbox {\n display: flex;\n align-items: center;\n justify-content: center;\n flex-shrink: 0;\n width: 18px;\n height: 18px;\n background: $es-white;\n border: 2px solid $es-border-dark;\n border-radius: 3px;\n transition: all $es-transition-fast;\n\n i {\n display: none;\n font-size: 10px;\n }\n }\n\n // View mode classes (applied to dropdown container) - no gap/padding for shared borders\n &.view-cols-2 .dropdown-results { display: grid; grid-template-columns: repeat(2, 1fr); gap: 0; padding: 0; border-top: 1px solid $es-border-color; border-left: 1px solid $es-border-color; }\n &.view-cols-3 .dropdown-results { display: grid; grid-template-columns: repeat(3, 1fr); gap: 0; padding: 0; border-top: 1px solid $es-border-color; border-left: 1px solid $es-border-color; }\n &.view-cols-4 .dropdown-results { display: grid; grid-template-columns: repeat(4, 1fr); gap: 0; padding: 0; border-top: 1px solid $es-border-color; border-left: 1px solid $es-border-color; }\n &.view-cols-5 .dropdown-results { display: grid; grid-template-columns: repeat(5, 1fr); gap: 0; padding: 0; border-top: 1px solid $es-border-color; border-left: 1px solid $es-border-color; }\n &.view-cols-6 .dropdown-results { display: grid; grid-template-columns: repeat(6, 1fr); gap: 0; padding: 0; border-top: 1px solid $es-border-color; border-left: 1px solid $es-border-color; }\n &.view-cols-7 .dropdown-results { display: grid; grid-template-columns: repeat(7, 1fr); gap: 0; padding: 0; border-top: 1px solid $es-border-color; border-left: 1px solid $es-border-color; }\n &.view-cols-8 .dropdown-results { display: grid; grid-template-columns: repeat(8, 1fr); gap: 0; padding: 0; border-top: 1px solid $es-border-color; border-left: 1px solid $es-border-color; }\n\n // Grid view item styling (compact cards with shared borders)\n &.view-cols-2,\n &.view-cols-3,\n &.view-cols-4,\n &.view-cols-5,\n &.view-cols-6,\n &.view-cols-7,\n &.view-cols-8 {\n .dropdown-item {\n flex-direction: column;\n align-items: center;\n text-align: center;\n padding: $es-spacing-sm;\n border: none;\n border-right: 1px solid $es-border-color;\n border-bottom: 1px solid $es-border-color;\n border-radius: 0;\n\n .result-checkbox {\n position: absolute;\n top: $es-spacing-xs;\n left: $es-spacing-xs;\n }\n\n .result-image,\n .result-icon {\n width: 48px;\n height: 48px;\n margin-bottom: $es-spacing-xs;\n }\n\n .result-info {\n width: 100%;\n }\n\n .result-name {\n font-size: $es-font-size-xs;\n line-height: 1.3;\n display: -webkit-box;\n -webkit-line-clamp: 2;\n -webkit-box-orient: vertical;\n overflow: hidden;\n }\n\n .result-subtitle {\n display: none;\n }\n\n // Show compact product info in grid\n .result-col {\n display: none;\n }\n\n .result-grid-info {\n display: flex;\n flex-wrap: wrap;\n justify-content: center;\n gap: 0.25rem;\n margin-top: $es-spacing-xs;\n font-size: 0.65rem;\n\n .grid-price {\n color: $es-text-primary;\n font-weight: $es-font-weight-semibold;\n }\n\n .grid-stock {\n color: $es-text-muted;\n\n &.stock-out { color: $es-danger; }\n &.stock-low { color: $es-warning; }\n }\n\n .grid-discount {\n color: $es-success;\n font-weight: $es-font-weight-medium;\n }\n }\n }\n\n // Hide results header in grid views\n .results-header {\n display: none;\n }\n }\n\n // Remove right border from last item in each row (per column count)\n &.view-cols-2 .dropdown-results .dropdown-item:nth-child(2n) { border-right: none; }\n &.view-cols-3 .dropdown-results .dropdown-item:nth-child(3n) { border-right: none; }\n &.view-cols-4 .dropdown-results .dropdown-item:nth-child(4n) { border-right: none; }\n &.view-cols-5 .dropdown-results .dropdown-item:nth-child(5n) { border-right: none; }\n &.view-cols-6 .dropdown-results .dropdown-item:nth-child(6n) { border-right: none; }\n &.view-cols-7 .dropdown-results .dropdown-item:nth-child(7n) { border-right: none; }\n &.view-cols-8 .dropdown-results .dropdown-item:nth-child(8n) { border-right: none; }\n\n // Smaller items for higher column counts\n &.view-cols-5,\n &.view-cols-6,\n &.view-cols-7,\n &.view-cols-8 {\n .dropdown-item {\n .result-image,\n .result-icon {\n width: 40px;\n height: 40px;\n }\n\n .result-name {\n font-size: 0.65rem;\n }\n }\n }\n\n // Product-specific result item\n .result-item-product {\n display: flex;\n align-items: center;\n gap: $es-spacing-sm;\n flex: 1;\n min-width: 0;\n }\n\n .result-item-image,\n .result-image {\n flex-shrink: 0;\n width: 40px;\n height: 40px;\n overflow: hidden;\n border-radius: $es-radius-sm;\n background: $es-slate-100;\n\n img {\n width: 100%;\n height: 100%;\n object-fit: cover;\n }\n }\n\n .result-icon {\n display: flex;\n align-items: center;\n justify-content: center;\n flex-shrink: 0;\n width: 40px;\n height: 40px;\n background: $es-slate-100;\n border-radius: $es-radius-sm;\n color: $es-text-muted;\n\n i {\n font-size: 16px;\n }\n }\n\n .result-item-info,\n .result-info {\n flex: 1;\n min-width: 0;\n }\n\n .result-item-name,\n .result-name {\n font-size: $es-font-size-sm;\n font-weight: $es-font-weight-medium;\n color: $es-text-primary;\n @include text-truncate;\n }\n\n .result-item-meta,\n .result-subtitle {\n font-size: $es-font-size-xs;\n color: $es-text-muted;\n }\n\n .subtitle-line {\n @include text-truncate;\n }\n\n .subtitle-line-primary {\n color: $es-text-secondary;\n }\n\n .subtitle-line-secondary {\n color: $es-text-muted;\n font-size: 11px;\n }\n\n // Result columns (for product list view)\n .result-col {\n flex-shrink: 0;\n width: 70px;\n text-align: right;\n font-size: $es-font-size-xs;\n }\n\n .result-col-price {\n color: $es-text-secondary;\n }\n\n .result-col-sale {\n color: $es-danger;\n font-weight: $es-font-weight-semibold;\n }\n\n .result-col-stock {\n .col-value {\n &.stock-ok {\n color: $es-success;\n }\n\n &.stock-low {\n color: $es-warning;\n }\n\n &.stock-out {\n color: $es-danger;\n }\n }\n }\n\n .result-col-sales {\n color: $es-text-muted;\n }\n\n .col-value {\n display: block;\n }\n\n // Result checkbox\n .result-item-checkbox,\n .result-checkbox {\n display: flex;\n align-items: center;\n justify-content: center;\n flex-shrink: 0;\n width: 18px;\n height: 18px;\n border: 2px solid $es-border-dark;\n border-radius: $es-radius-sm;\n transition: all $es-transition-fast;\n\n i {\n display: none;\n font-size: 10px;\n color: $es-white;\n }\n\n .dropdown-result-item.selected &,\n .dropdown-item.selected & {\n background: $es-primary;\n border-color: $es-primary;\n\n i {\n display: block;\n }\n }\n }\n\n // No results state\n .no-results {\n display: flex;\n align-items: center;\n justify-content: center;\n gap: $es-spacing-sm;\n padding: $es-spacing-xl;\n color: $es-text-muted;\n font-size: $es-font-size-sm;\n\n i {\n font-size: 1.25rem;\n opacity: 0.5;\n }\n }\n\n // Load more controls\n .load-more-controls {\n display: flex;\n align-items: center;\n justify-content: center;\n gap: $es-spacing-sm;\n padding: $es-spacing-sm $es-spacing-md;\n font-size: $es-font-size-xs;\n color: $es-text-muted;\n\n .load-more-label,\n .load-more-of {\n white-space: nowrap;\n }\n\n .remaining-count {\n font-weight: $es-font-weight-semibold;\n color: $es-text-secondary;\n }\n\n .load-more-select {\n @include input-base;\n padding: 0.25rem 0.5rem;\n font-size: $es-font-size-xs;\n min-width: 60px;\n }\n\n .btn-load-more {\n display: flex;\n align-items: center;\n justify-content: center;\n padding: $es-spacing-xs;\n margin: 0;\n border: none;\n color: $es-primary;\n background: $es-primary-light !important;\n border-radius: $es-radius-sm;\n cursor: pointer;\n transition: all $es-transition-fast;\n font: inherit;\n\n i {\n font-size: 14px;\n }\n\n &:hover {\n background: rgba($es-primary, 0.2) !important;\n }\n }\n }\n\n // Load more button\n .dropdown-load-more {\n display: flex;\n justify-content: center;\n padding: $es-spacing-md;\n border-top: 1px solid $es-border-color;\n\n .load-more-btn {\n @include button-reset;\n display: inline-flex;\n align-items: center;\n gap: $es-spacing-xs;\n padding: $es-spacing-sm $es-spacing-md;\n font-size: $es-font-size-sm;\n font-weight: $es-font-weight-medium;\n color: $es-primary;\n background: $es-primary-light;\n border-radius: $es-radius-md;\n transition: all $es-transition-fast;\n\n &:hover {\n background: rgba($es-primary, 0.2);\n }\n\n &.loading {\n opacity: 0.7;\n cursor: wait;\n }\n }\n }\n\n // Dropdown body\n .dropdown-body {\n max-height: 400px;\n overflow-y: auto;\n @include custom-scrollbar;\n }\n\n // Tree view styles (for categories)\n .tree-container {\n padding: $es-spacing-sm;\n }\n\n .tree-loading {\n display: flex;\n align-items: center;\n justify-content: center;\n gap: $es-spacing-sm;\n padding: $es-spacing-xl;\n color: $es-text-muted;\n font-size: $es-font-size-sm;\n\n i {\n animation: spin 0.6s linear infinite;\n }\n }\n\n .tree-item {\n display: flex;\n align-items: center;\n gap: $es-spacing-xs;\n padding: 0.375rem $es-spacing-sm;\n border-radius: $es-radius-sm;\n cursor: pointer;\n transition: background-color $es-transition-fast;\n\n &:hover {\n background: $es-bg-hover;\n }\n\n &.selected {\n background: $es-primary-light;\n\n .tree-checkbox {\n background: $es-primary;\n border-color: $es-primary;\n\n i {\n display: block;\n }\n }\n }\n }\n\n // tree-toggle, btn-select-children, tree-checkbox, tree-icon styles in _tree.scss\n\n .tree-info {\n display: flex;\n align-items: center;\n gap: $es-spacing-xs;\n flex: 1;\n min-width: 0;\n }\n\n .tree-name {\n font-size: $es-font-size-sm;\n color: $es-text-primary;\n @include text-truncate;\n }\n\n .tree-subtitle {\n font-size: $es-font-size-xs;\n color: $es-text-muted;\n }\n}\n\n// ============================================================================\n// Standalone dropdown styles (for when dropdown is appended to body)\n// These selectors work because .target-search-dropdown is on the dropdown itself\n// ============================================================================\n\n.target-search-dropdown {\n // Results container - scrollable\n .dropdown-results {\n max-height: 400px;\n overflow-y: auto;\n padding: 0 $es-spacing-sm;\n @include custom-scrollbar;\n }\n\n // Results header (for list view columns)\n .results-header {\n display: flex;\n align-items: center;\n gap: $es-spacing-sm;\n padding: $es-spacing-xs $es-spacing-md;\n background: $es-slate-100;\n border-bottom: 1px solid $es-border-color;\n font-size: $es-font-size-xs;\n font-weight: $es-font-weight-semibold;\n color: $es-text-secondary;\n\n .header-spacer {\n width: 58px; // checkbox + image width\n flex-shrink: 0;\n }\n\n .header-col {\n flex-shrink: 0;\n width: 70px;\n text-align: right;\n }\n\n .header-col-name {\n flex: 1;\n text-align: left;\n }\n }\n\n // Hide results-header by default, show only for products in list view\n &:not(.view-list) .results-header,\n &.view-tree .results-header {\n display: none;\n }\n\n // Result item for products\n .result-item-product {\n display: flex;\n align-items: center;\n gap: $es-spacing-sm;\n flex: 1;\n min-width: 0;\n }\n\n // Result columns for product data\n .result-col {\n flex-shrink: 0;\n width: 70px;\n text-align: right;\n font-size: $es-font-size-xs;\n }\n\n .result-col-price {\n color: $es-text-secondary;\n }\n\n .result-col-sale {\n color: $es-danger;\n font-weight: $es-font-weight-semibold;\n }\n\n .result-col-stock {\n .col-value {\n &.stock-ok { color: $es-success; }\n &.stock-low { color: $es-warning; }\n &.stock-out { color: $es-danger; }\n }\n }\n\n .result-col-sales {\n color: $es-text-muted;\n }\n\n // Dropdown item styling\n .dropdown-item {\n display: flex;\n align-items: center;\n gap: $es-spacing-sm;\n padding: 0;\n border: none;\n border-bottom: 1px solid $es-border-color;\n border-radius: 0;\n cursor: pointer;\n transition: background-color $es-transition-fast;\n\n &:last-child {\n border-bottom: none;\n }\n\n &:hover {\n background: $es-bg-hover;\n }\n\n &.selected {\n background: $es-primary-light;\n }\n }\n\n // Result checkbox styling\n .result-checkbox {\n flex-shrink: 0;\n display: flex;\n align-items: center;\n justify-content: center;\n width: 18px;\n height: 18px;\n border: 2px solid $es-border-dark;\n border-radius: 3px;\n transition: all $es-transition-fast;\n\n i {\n font-size: 10px;\n color: transparent;\n }\n\n .dropdown-item.selected & {\n background: $es-primary;\n border-color: $es-primary;\n\n i {\n color: $es-white;\n }\n }\n }\n\n // Result image\n .result-image {\n flex-shrink: 0;\n width: 40px;\n height: 40px;\n overflow: hidden;\n border-radius: $es-radius-sm;\n background: $es-slate-100;\n\n img {\n width: 100%;\n height: 100%;\n object-fit: cover;\n }\n }\n\n // Result icon (for non-image entities)\n .result-icon {\n flex-shrink: 0;\n display: flex;\n align-items: center;\n justify-content: center;\n width: 40px;\n height: 40px;\n background: $es-slate-100;\n border-radius: $es-radius-sm;\n\n i {\n font-size: 16px;\n color: $es-text-muted;\n }\n }\n\n // Result info container\n .result-info {\n flex: 1;\n min-width: 0;\n }\n\n .result-name {\n font-size: $es-font-size-sm;\n font-weight: $es-font-weight-medium;\n color: $es-text-primary;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n }\n\n .result-subtitle {\n font-size: $es-font-size-xs;\n color: $es-text-muted;\n }\n\n .subtitle-line {\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n }\n\n .subtitle-line-primary {\n color: $es-text-secondary;\n }\n\n .subtitle-line-secondary {\n color: $es-text-muted;\n font-size: 11px;\n }\n\n // Hide columns in grid/tree views\n &[class*=\"view-cols-\"] .result-col,\n &.view-tree .result-col {\n display: none;\n }\n\n // Entity search box - full width\n .entity-search-box {\n display: flex;\n align-items: center;\n gap: $es-spacing-sm;\n width: 100%;\n padding: $es-spacing-sm $es-spacing-md;\n background: $es-white;\n border: none;\n border-bottom: 1px solid $es-border-color;\n border-radius: 0;\n\n .entity-search-icon {\n color: $es-text-muted;\n flex-shrink: 0;\n margin-left: $es-spacing-xs;\n }\n\n // Override Bootstrap/parent form input styles\n input.entity-search-input,\n input.entity-search-input[type=\"text\"] {\n flex: 1;\n min-width: 0;\n width: auto !important;\n max-width: none !important;\n height: auto;\n padding: 0;\n margin: 0;\n border: none !important;\n outline: none;\n background: transparent !important;\n font-size: $es-font-size-sm;\n color: $es-text-primary;\n box-shadow: none !important;\n\n &::placeholder {\n color: $es-text-muted;\n }\n\n &:focus {\n border: none !important;\n box-shadow: none !important;\n outline: none;\n }\n }\n\n .search-loading {\n color: $es-text-muted;\n }\n }\n}\n\n// Body-level dropdown (when appended to body for z-index)\nbody > .target-search-dropdown {\n // Override dropdown-item border when inside body-appended dropdown\n .dropdown-item {\n border: none;\n border-radius: 0;\n\n &:not(:last-child) {\n border-bottom: 1px solid $es-border-color;\n }\n }\n}\n\n@keyframes spin {\n from {\n transform: rotate(0deg);\n }\n to {\n transform: rotate(360deg);\n }\n}\n","/**\n * Chips Component\n * Entity chips, selection pills, tags\n */\n\n@use '../variables' as *;\n@use '../mixins' as *;\n\n.target-conditions-trait,\n.entity-selector-trait {\n\n // Chips container wrapper with toolbar\n .chips-wrapper {\n display: flex;\n flex-direction: column;\n margin-top: $es-spacing-sm;\n background: $es-slate-50;\n border: 1px solid $es-border-color;\n border-radius: $es-radius-md;\n overflow: hidden;\n }\n\n // Chips toolbar - search and actions\n .chips-toolbar {\n display: none; // Hidden by default, shown via JS when chips exist\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 &.has-chips {\n display: flex;\n }\n\n // Search icon\n > i {\n color: $es-text-muted;\n font-size: 14px;\n flex-shrink: 0;\n }\n }\n\n .chips-search-input,\n input.chips-search-input,\n input.chips-search-input[type=\"text\"] {\n flex: 1 !important;\n min-width: 80px !important;\n max-width: none !important;\n width: auto !important;\n height: auto !important;\n padding: 0 !important;\n border: none !important;\n border-bottom: 1px solid transparent !important;\n border-radius: 0 !important;\n background: transparent !important;\n font-size: $es-font-size-sm !important;\n color: $es-text-primary;\n box-shadow: none !important;\n transition: border-color $es-transition-fast;\n\n &:focus {\n outline: none !important;\n border: none !important;\n border-bottom: 1px solid $es-primary !important;\n box-shadow: none !important;\n }\n\n &::placeholder {\n color: $es-text-muted;\n }\n }\n\n .chips-count {\n display: inline-flex;\n align-items: center;\n gap: 0.25rem;\n padding: 0.25rem 0.625rem;\n background: $es-primary;\n color: $es-white;\n font-size: $es-font-size-xs;\n font-weight: $es-font-weight-semibold;\n border-radius: $es-radius-full;\n white-space: nowrap;\n\n &.has-filter {\n background: $es-cyan-500;\n }\n\n .count-filtered {\n font-weight: $es-font-weight-bold;\n }\n\n .count-separator {\n opacity: 0.7;\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 .btn-chips-clear {\n @include button-reset;\n display: flex;\n align-items: center;\n gap: 0.375rem;\n padding: 0.375rem 0.75rem;\n color: $es-white;\n font-size: $es-font-size-xs;\n font-weight: $es-font-weight-semibold;\n background: $es-danger;\n border-radius: $es-radius-sm;\n transition: all $es-transition-fast;\n\n &:hover {\n background: darken($es-danger, 8%);\n }\n\n i {\n font-size: 11px;\n }\n }\n\n // Chips container\n .entity-chips {\n display: flex;\n flex-wrap: wrap;\n gap: $es-spacing-xs;\n padding: $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 button\n .chips-load-more {\n display: flex;\n align-items: center;\n justify-content: center;\n padding: $es-spacing-sm $es-spacing-md;\n background: $es-white;\n border-top: 1px solid $es-border-color;\n\n .btn-load-more {\n @include button-reset;\n display: inline-flex;\n align-items: center;\n gap: 0.375rem;\n padding: 0.5rem 1rem;\n color: $es-white;\n font-size: $es-font-size-sm;\n font-weight: $es-font-weight-semibold;\n background: $es-primary;\n border-radius: $es-radius-sm;\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\n // Individual chip\n .entity-chip {\n display: inline-flex;\n align-items: center;\n gap: 0.375rem;\n padding: 0.25rem 0.5rem;\n background: $es-slate-100;\n color: $es-text-secondary;\n font-size: $es-font-size-xs;\n font-weight: $es-font-weight-medium;\n border-radius: $es-radius-full;\n transition: all $es-transition-fast;\n\n &:hover {\n background: $es-slate-200;\n }\n\n // Chip with image\n &.has-image {\n padding-left: 0.25rem;\n }\n\n // Hidden by search filter or pagination\n &.chip-filtered-out,\n &.chip-paginated-out {\n display: none;\n }\n }\n\n .chip-image {\n width: 20px;\n height: 20px;\n object-fit: cover;\n border-radius: 50%;\n flex-shrink: 0;\n }\n\n .chip-icon {\n display: flex;\n align-items: center;\n justify-content: center;\n font-size: 12px;\n color: $es-text-muted;\n flex-shrink: 0;\n\n // Product/entity images inside chip\n img {\n width: 20px;\n height: 20px;\n object-fit: cover;\n border-radius: $es-radius-sm;\n }\n }\n\n .chip-text,\n .chip-name {\n // Show full name, no truncation\n word-break: break-word;\n }\n\n .chip-remove {\n @include button-reset;\n display: flex;\n align-items: center;\n justify-content: center;\n width: 16px;\n height: 16px;\n margin-left: 0.125rem;\n color: $es-text-muted;\n border-radius: 50%;\n flex-shrink: 0;\n transition: all $es-transition-fast;\n\n &:hover {\n background: rgba(0, 0, 0, 0.1);\n color: $es-danger;\n }\n\n i {\n font-size: 10px;\n }\n }\n\n // Chip variants\n .entity-chip.chip-primary {\n background: $es-primary-light;\n color: $es-primary;\n\n &:hover {\n background: rgba($es-primary, 0.2);\n }\n }\n\n .entity-chip.chip-success {\n background: $es-success-light;\n color: $es-success-dark;\n\n &:hover {\n background: rgba($es-success, 0.2);\n }\n }\n\n .entity-chip.chip-danger {\n background: $es-danger-light;\n color: $es-danger;\n\n &:hover {\n background: rgba($es-danger, 0.2);\n }\n }\n\n .entity-chip.chip-warning {\n background: $es-warning-light;\n color: darken($es-warning, 20%);\n\n &:hover {\n background: rgba($es-warning, 0.3);\n }\n }\n\n // Chip loading state\n .entity-chip.loading,\n .entity-chip-loading {\n opacity: 0.7;\n\n .chip-remove {\n display: none;\n }\n\n .chip-icon i {\n animation: spin 0.6s linear infinite;\n }\n }\n\n // Hidden chip (collapsed view)\n .entity-chip.chip-hidden {\n display: none;\n }\n\n // Chips expanded/collapsed states\n .entity-chips.chips-collapsed,\n .entity-chips.chips-expanded {\n position: relative;\n }\n\n // Show more/less toggle\n .chips-show-more-toggle {\n display: inline-flex;\n align-items: center;\n gap: 0.25rem;\n padding: 0.25rem 0.5rem;\n color: $es-primary;\n font-size: $es-font-size-xs;\n font-weight: $es-font-weight-medium;\n cursor: pointer;\n transition: color $es-transition-fast;\n\n &:hover {\n color: $es-primary-hover;\n }\n\n i {\n font-size: 10px;\n }\n }\n\n .chips-collapse-toggle,\n .chips-expand-toggle {\n // Specific variants inherit from .chips-show-more-toggle\n }\n\n // More chips indicator\n .chips-more {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n padding: 0.25rem 0.5rem;\n background: $es-slate-200;\n color: $es-text-secondary;\n font-size: $es-font-size-xs;\n font-weight: $es-font-weight-semibold;\n border-radius: $es-radius-full;\n cursor: pointer;\n transition: all $es-transition-fast;\n\n &:hover {\n background: $es-slate-300;\n }\n }\n\n // Add chip button\n .chip-add-btn {\n @include button-reset;\n display: inline-flex;\n align-items: center;\n gap: 0.25rem;\n padding: 0.25rem 0.5rem;\n background: transparent;\n color: $es-primary;\n font-size: $es-font-size-xs;\n font-weight: $es-font-weight-medium;\n border: 1px dashed $es-primary;\n border-radius: $es-radius-full;\n transition: all $es-transition-fast;\n\n &:hover {\n background: $es-primary-light;\n }\n\n i {\n font-size: 10px;\n }\n }\n\n // Inline chips (compact mode)\n .entity-chips.inline {\n display: inline-flex;\n padding: 0;\n min-height: auto;\n\n .entity-chip {\n padding: 0.125rem 0.375rem;\n font-size: 11px;\n }\n }\n\n // Selected chips section in include/exclude\n .selected-chips-container {\n display: flex;\n flex-direction: column;\n gap: $es-spacing-xs;\n }\n\n .selected-chips-label {\n font-size: $es-font-size-xs;\n font-weight: $es-font-weight-medium;\n color: $es-text-muted;\n }\n\n // Pattern chips (for name/reference patterns)\n .entity-chip.chip-pattern {\n background: #fef3c7;\n color: #92400e;\n font-family: monospace;\n\n &:hover {\n background: #fde68a;\n }\n\n .chip-icon {\n color: #d97706;\n }\n }\n\n // Range chips (price, quantity, etc.)\n .entity-chip.chip-range,\n .range-chip {\n display: inline-flex;\n align-items: center;\n gap: 0.375rem;\n padding: 0.25rem 0.5rem;\n background: $es-cyan-50;\n color: $es-cyan-600;\n font-size: $es-font-size-xs;\n font-weight: $es-font-weight-medium;\n border-radius: $es-radius-full;\n transition: all $es-transition-fast;\n\n &:hover {\n background: $es-cyan-100;\n }\n }\n\n .range-chip-text {\n font-family: monospace;\n }\n\n .btn-remove-range {\n @include button-reset;\n display: flex;\n align-items: center;\n justify-content: center;\n width: 16px;\n height: 16px;\n color: $es-cyan-600;\n border-radius: 50%;\n transition: all $es-transition-fast;\n\n &:hover {\n background: rgba(0, 0, 0, 0.1);\n color: $es-danger;\n }\n\n i {\n font-size: 10px;\n }\n }\n\n // Multi-range chips container\n .multi-range-chips {\n display: flex;\n flex-wrap: wrap;\n gap: $es-spacing-xs;\n margin-bottom: $es-spacing-xs;\n\n &:empty {\n display: none;\n }\n }\n\n // Pattern chips container\n .pattern-chips {\n display: flex;\n flex-wrap: wrap;\n gap: $es-spacing-xs;\n padding: $es-spacing-sm 0;\n min-height: 32px;\n\n &:empty::before {\n content: attr(data-placeholder);\n color: $es-text-muted;\n font-size: $es-font-size-xs;\n font-style: italic;\n }\n }\n\n // Pattern tag\n .pattern-tag {\n display: inline-flex;\n align-items: center;\n gap: 0.25rem;\n padding: 0.25rem 0.5rem;\n background: #fef3c7;\n color: #92400e;\n font-size: $es-font-size-xs;\n font-weight: $es-font-weight-medium;\n border-radius: $es-radius-sm;\n transition: all $es-transition-fast;\n\n &:hover {\n background: #fde68a;\n }\n\n &.case-sensitive {\n .case-icon {\n color: $es-success;\n font-weight: $es-font-weight-bold;\n }\n }\n\n &.draft-tag {\n background: $es-white;\n border: 1px solid $es-border-color;\n padding: 0;\n flex: 1;\n min-width: 150px;\n\n &:hover {\n background: $es-white;\n }\n\n .pattern-input {\n flex: 1;\n min-width: 100px;\n padding: 0.375rem;\n border: 0;\n background: transparent;\n font-size: $es-font-size-sm;\n font-family: inherit;\n\n &:focus {\n outline: none;\n }\n\n &::placeholder {\n color: $es-text-muted;\n font-style: italic;\n }\n }\n }\n }\n\n .pattern-tag-text {\n font-family: monospace;\n max-width: 200px;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n }\n\n .btn-toggle-case {\n @include button-reset;\n display: flex;\n align-items: center;\n justify-content: center;\n width: 24px;\n height: 24px;\n color: $es-text-muted;\n border-radius: $es-radius-sm;\n transition: all $es-transition-fast;\n\n &:hover {\n background: rgba(0, 0, 0, 0.1);\n }\n }\n\n .case-icon {\n font-size: 11px;\n font-weight: $es-font-weight-semibold;\n font-family: monospace;\n }\n\n .btn-remove-pattern {\n @include button-reset;\n display: flex;\n align-items: center;\n justify-content: center;\n width: 18px;\n height: 18px;\n color: #d97706;\n border-radius: $es-radius-sm;\n transition: all $es-transition-fast;\n\n &:hover {\n background: rgba(0, 0, 0, 0.1);\n color: $es-danger;\n }\n\n i {\n font-size: 10px;\n }\n }\n\n .btn-add-pattern {\n @include button-reset;\n display: flex;\n align-items: center;\n justify-content: center;\n width: 28px;\n height: 28px;\n color: $es-primary;\n border-radius: $es-radius-sm;\n transition: all $es-transition-fast;\n\n &:hover {\n background: $es-primary-light;\n }\n\n i {\n font-size: 12px;\n }\n }\n\n // Pattern match count (in draft tag)\n .pattern-match-count {\n display: inline-flex;\n align-items: center;\n gap: 0.25rem;\n padding: 0 0.375rem;\n color: $es-text-muted;\n font-size: $es-font-size-xs;\n cursor: pointer;\n\n &.count-zero {\n color: $es-warning;\n }\n\n &.count-found {\n color: $es-success;\n }\n\n .count-value {\n font-weight: $es-font-weight-semibold;\n }\n }\n\n // Pattern input row\n .pattern-input-row {\n display: flex;\n align-items: stretch;\n gap: $es-spacing-xs;\n }\n}\n","/**\n * Groups Component\n * Selection groups, include/exclude sections, method selectors\n */\n\n@use '../variables' as *;\n@use '../mixins' as *;\n\n.target-conditions-trait,\n.entity-selector-trait {\n\n // Group container\n .target-group {\n background: $es-white;\n border: 1px solid $es-border-color;\n border-radius: $es-radius-lg;\n overflow: hidden;\n }\n\n // Group header\n .target-group-header {\n display: flex;\n align-items: center;\n justify-content: space-between;\n gap: $es-spacing-md;\n padding: $es-spacing-sm $es-spacing-md;\n background: $es-bg-header;\n border-bottom: 1px solid $es-border-color;\n }\n\n .target-group-title {\n display: flex;\n align-items: center;\n gap: $es-spacing-sm;\n font-size: $es-font-size-sm;\n font-weight: $es-font-weight-semibold;\n color: $es-text-primary;\n\n .group-number {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n min-width: 20px;\n height: 20px;\n padding: 0 0.25rem;\n background: $es-primary;\n color: $es-white;\n font-size: $es-font-size-xs;\n font-weight: $es-font-weight-bold;\n border-radius: $es-radius-full;\n }\n }\n\n .target-group-actions {\n display: flex;\n align-items: center;\n gap: $es-spacing-xs;\n }\n\n .group-action-btn {\n @include button-reset;\n display: flex;\n align-items: center;\n justify-content: center;\n width: 28px;\n height: 28px;\n color: $es-text-muted;\n border-radius: $es-radius-sm;\n transition: all $es-transition-fast;\n\n &:hover {\n background: $es-slate-200;\n color: $es-text-secondary;\n }\n\n &.danger:hover {\n background: $es-danger-light;\n color: $es-danger;\n }\n }\n\n // Group body\n .target-group-body,\n .group-body {\n padding: $es-spacing-md;\n }\n\n // Include section\n .include-section {\n margin-bottom: $es-spacing-md;\n }\n\n .section-label {\n display: flex;\n align-items: center;\n gap: $es-spacing-xs;\n margin-bottom: $es-spacing-sm;\n font-size: $es-font-size-xs;\n font-weight: $es-font-weight-semibold;\n text-transform: uppercase;\n letter-spacing: 0.05em;\n\n &.label-include {\n color: $es-success-dark;\n\n i {\n color: $es-success;\n }\n }\n\n &.label-exclude {\n color: $es-danger;\n\n i {\n color: $es-danger;\n }\n }\n }\n\n // Method selector\n .method-selector {\n display: flex;\n align-items: center;\n gap: $es-spacing-sm;\n margin-bottom: $es-spacing-sm;\n }\n\n .method-selector-wrapper {\n flex: 1;\n position: relative;\n }\n\n .method-select {\n @include input-base;\n padding-right: 2rem;\n cursor: pointer;\n appearance: none;\n background-image: url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 20 20'%3E%3Cpath stroke='%236b7280' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' d='m6 8 4 4 4-4'/%3E%3C/svg%3E\");\n background-position: right 0.5rem center;\n background-repeat: no-repeat;\n background-size: 1.5em 1.5em;\n }\n\n .method-help-btn {\n @include button-reset;\n display: flex;\n align-items: center;\n justify-content: center;\n width: 28px;\n height: 28px;\n color: $es-text-muted;\n border-radius: $es-radius-full;\n transition: all $es-transition-fast;\n\n &:hover {\n background: $es-slate-100;\n color: $es-primary;\n }\n }\n\n // Value picker (search trigger)\n .value-picker {\n position: relative;\n }\n\n .value-picker-trigger {\n @include button-reset;\n display: flex;\n align-items: center;\n gap: $es-spacing-sm;\n width: 100%;\n padding: $es-spacing-sm $es-spacing-md;\n background: $es-white;\n border: 1px solid $es-border-color;\n border-radius: $es-radius-md;\n color: $es-text-muted;\n font-size: $es-font-size-sm;\n text-align: left;\n transition: all $es-transition-fast;\n\n &:hover {\n border-color: $es-slate-300;\n }\n\n &:focus {\n border-color: $es-primary;\n @include focus-ring($es-primary);\n }\n\n i {\n color: $es-text-light;\n }\n }\n\n // Pattern input (text input for patterns)\n .pattern-input-wrapper {\n position: relative;\n }\n\n .pattern-input {\n @include input-base;\n font-family: monospace;\n }\n\n .pattern-add-btn {\n @include button-reset;\n position: absolute;\n right: 0.25rem;\n top: 50%;\n transform: translateY(-50%);\n display: flex;\n align-items: center;\n justify-content: center;\n width: 28px;\n height: 28px;\n color: $es-primary;\n border-radius: $es-radius-sm;\n transition: all $es-transition-fast;\n\n &:hover {\n background: $es-primary-light;\n }\n }\n\n // Multi-range input (price ranges)\n .multi-range-container {\n display: flex;\n flex-direction: column;\n gap: $es-spacing-sm;\n }\n\n .range-row {\n display: flex;\n align-items: center;\n gap: $es-spacing-sm;\n }\n\n .range-input {\n @include input-base;\n width: 100px;\n text-align: center;\n }\n\n .range-separator {\n color: $es-text-muted;\n font-size: $es-font-size-sm;\n }\n\n .range-remove-btn {\n @include button-reset;\n display: flex;\n align-items: center;\n justify-content: center;\n width: 24px;\n height: 24px;\n color: $es-text-muted;\n border-radius: $es-radius-sm;\n transition: all $es-transition-fast;\n\n &:hover {\n background: $es-danger-light;\n color: $es-danger;\n }\n }\n\n .range-add-btn {\n @include button-reset;\n display: inline-flex;\n align-items: center;\n gap: 0.25rem;\n padding: 0.25rem 0.5rem;\n color: $es-primary;\n font-size: $es-font-size-xs;\n font-weight: $es-font-weight-medium;\n border-radius: $es-radius-sm;\n transition: all $es-transition-fast;\n\n &:hover {\n background: $es-primary-light;\n }\n }\n\n // Multi-select tiles (stock status, etc.)\n .multi-select-tiles {\n display: flex;\n flex-wrap: wrap;\n gap: $es-spacing-xs;\n }\n\n .multi-select-tile {\n @include button-reset;\n display: inline-flex;\n align-items: center;\n gap: 0.25rem;\n padding: 0.375rem 0.75rem;\n background: $es-slate-100;\n color: $es-text-secondary;\n font-size: $es-font-size-xs;\n font-weight: $es-font-weight-medium;\n border: 1px solid transparent;\n border-radius: $es-radius-full;\n transition: all $es-transition-fast;\n\n &:hover {\n background: $es-slate-200;\n }\n\n &.selected {\n background: $es-primary-light;\n color: $es-primary;\n border-color: $es-primary;\n }\n }\n\n // Exclude section\n .exclude-section {\n margin-top: $es-spacing-md;\n padding-top: $es-spacing-md;\n border-top: 1px dashed $es-border-color;\n }\n\n // Legacy exclude-rows (if used elsewhere)\n .exclude-rows {\n display: flex;\n flex-direction: column;\n gap: $es-spacing-sm;\n }\n\n .exclude-row-content {\n flex: 1;\n }\n\n .exclude-remove-btn {\n @include button-reset;\n display: flex;\n align-items: center;\n justify-content: center;\n width: 24px;\n height: 24px;\n color: $es-text-muted;\n border-radius: $es-radius-sm;\n flex-shrink: 0;\n transition: all $es-transition-fast;\n\n &:hover {\n background: $es-danger-light;\n color: $es-danger;\n }\n }\n\n .add-exclude-btn {\n @include button-reset;\n display: inline-flex;\n align-items: center;\n gap: 0.25rem;\n margin-top: $es-spacing-sm;\n padding: 0.25rem 0.5rem;\n color: $es-danger;\n font-size: $es-font-size-xs;\n font-weight: $es-font-weight-medium;\n border: 1px dashed $es-danger;\n border-radius: $es-radius-sm;\n transition: all $es-transition-fast;\n\n &:hover {\n background: $es-danger-light;\n }\n }\n\n // Add group button (used in block-footer)\n .btn-add-group {\n @include button-reset;\n display: inline-flex;\n align-items: center;\n gap: 0.375rem;\n padding: 0.5rem 0.875rem;\n color: $es-primary;\n font-size: $es-font-size-sm;\n font-weight: $es-font-weight-medium;\n background: rgba($es-primary, 0.05);\n border: 1px dashed $es-primary;\n border-radius: 0.375rem;\n cursor: pointer;\n transition: all $es-transition-fast;\n\n &:hover {\n background: rgba($es-primary, 0.1);\n }\n\n i {\n font-size: 12px;\n }\n }\n\n // Block footer\n .block-footer {\n display: flex;\n align-items: center;\n gap: $es-spacing-sm;\n padding: $es-spacing-md;\n border-top: 1px solid $es-border-color;\n }\n\n // Block body\n .block-body {\n padding: 0;\n }\n\n // Groups container\n .groups-container {\n padding: $es-spacing-md;\n }\n\n // Groups empty state\n .groups-empty-state {\n display: flex;\n align-items: center;\n justify-content: center;\n padding: $es-spacing-xl;\n color: $es-text-muted;\n font-size: $es-font-size-sm;\n }\n\n // Selection group\n .selection-group {\n background: $es-white;\n border: 1px solid $es-border-color;\n border-radius: $es-radius-lg;\n margin-bottom: $es-spacing-md;\n\n &:last-child {\n margin-bottom: 0;\n }\n\n &.collapsed {\n .group-body {\n display: none;\n }\n\n .group-collapse-toggle i {\n transform: rotate(-90deg);\n }\n }\n }\n\n // Group header\n .group-header {\n display: flex;\n align-items: center;\n gap: $es-spacing-sm;\n padding: $es-spacing-sm $es-spacing-md;\n background: $es-bg-header;\n border-bottom: 1px solid $es-border-color;\n border-radius: $es-radius-lg $es-radius-lg 0 0;\n cursor: pointer;\n\n &.group-header-single {\n padding: $es-spacing-xs $es-spacing-md;\n background: transparent;\n border-bottom: none;\n }\n }\n\n .group-collapse-toggle {\n display: flex;\n align-items: center;\n justify-content: center;\n width: 20px;\n color: $es-text-muted;\n\n i {\n transition: transform $es-transition-fast;\n }\n }\n\n .group-name-wrapper {\n flex: 1;\n display: flex;\n align-items: center;\n gap: $es-spacing-sm;\n }\n\n .group-name-input {\n flex: 1;\n padding: 0.25rem 0.5rem;\n font-size: $es-font-size-sm;\n font-weight: $es-font-weight-semibold;\n color: $es-text-primary;\n background: transparent;\n border: 1px solid transparent;\n border-radius: $es-radius-sm;\n transition: all $es-transition-fast;\n\n &:hover,\n &:focus {\n background: $es-white;\n border-color: $es-border-color;\n outline: none;\n }\n\n &::placeholder {\n color: $es-text-muted;\n font-weight: $es-font-weight-medium;\n }\n }\n\n .group-count-badge {\n @include count-badge($es-primary);\n }\n\n .btn-remove-group {\n @include button-reset;\n display: flex;\n align-items: center;\n justify-content: center;\n width: 28px;\n height: 28px;\n color: $es-text-muted;\n border-radius: $es-radius-sm;\n transition: all $es-transition-fast;\n\n &:hover {\n background: $es-danger-light;\n color: $es-danger;\n }\n }\n\n // Group include section - green accent to distinguish from exclude\n .group-include {\n margin-bottom: $es-spacing-md;\n padding: $es-spacing-sm;\n background: rgba($es-success, 0.03);\n border: 1px solid rgba($es-success, 0.2);\n border-radius: $es-radius-md;\n }\n\n .section-row {\n display: flex;\n flex-direction: column;\n gap: $es-spacing-sm;\n }\n\n // Method selector wrapper (from PHP)\n .method-selector-wrapper {\n display: flex;\n align-items: center;\n gap: $es-spacing-sm;\n }\n\n .method-info-placeholder {\n display: flex;\n align-items: center;\n min-width: 20px;\n }\n\n .include-method-select,\n .exclude-method-select {\n flex: 1;\n @include input-base;\n cursor: pointer;\n }\n\n // Lock indicator for method selector (when excludes are present)\n .selector-locked {\n .include-method-select {\n opacity: 0.7;\n cursor: not-allowed;\n }\n }\n\n .lock-indicator {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n width: 24px;\n height: 24px;\n color: $es-warning;\n cursor: help;\n\n i {\n font-size: 14px;\n }\n\n .mpr-tooltip {\n display: none;\n position: absolute;\n bottom: calc(100% + 8px);\n left: 50%;\n transform: translateX(-50%);\n padding: $es-spacing-xs $es-spacing-sm;\n background: $es-slate-800;\n color: $es-white;\n font-size: $es-font-size-xs;\n font-weight: $es-font-weight-normal;\n white-space: nowrap;\n border-radius: $es-radius-sm;\n z-index: 100;\n }\n\n &:hover .mpr-tooltip {\n display: block;\n }\n }\n\n // Group excludes section\n .group-excludes {\n margin-top: $es-spacing-md;\n }\n\n .except-separator {\n display: flex;\n align-items: center;\n gap: $es-spacing-sm;\n margin: 0 0 $es-spacing-sm 0;\n\n // Lines on both sides\n &::before,\n &::after {\n content: '';\n flex: 1;\n height: 1px;\n background: rgba($es-danger, 0.3);\n }\n }\n\n .except-label {\n display: inline-flex;\n align-items: center;\n gap: 0.25rem;\n padding: 0.25rem 0.75rem;\n background: $es-danger-light;\n color: $es-danger;\n font-size: $es-font-size-xs;\n font-weight: $es-font-weight-semibold;\n border-radius: $es-radius-full;\n white-space: nowrap;\n flex-shrink: 0;\n\n i {\n font-size: 10px;\n }\n }\n\n .exclude-rows-container {\n display: flex;\n flex-direction: column;\n gap: $es-spacing-sm;\n }\n\n .exclude-row {\n display: flex;\n flex-direction: column;\n padding: $es-spacing-sm;\n background: rgba($es-danger, 0.03);\n border: 1px solid rgba($es-danger, 0.15);\n border-radius: $es-radius-md;\n\n // Value picker inside exclude row - full width\n .value-picker {\n width: 100%;\n margin-top: $es-spacing-sm;\n }\n }\n\n .exclude-header-row {\n display: flex;\n align-items: center;\n justify-content: space-between;\n gap: $es-spacing-sm;\n width: 100%;\n\n .method-selector-wrapper {\n flex: 1;\n }\n\n // Delete button at the far right\n .btn-remove-exclude-row {\n flex-shrink: 0;\n margin-left: auto;\n }\n }\n\n .btn-remove-exclude-row {\n @include button-reset;\n display: flex;\n align-items: center;\n justify-content: center;\n width: 28px;\n height: 28px;\n color: $es-text-muted;\n border-radius: $es-radius-sm;\n transition: all $es-transition-fast;\n\n &:hover {\n background: $es-danger-light;\n color: $es-danger;\n }\n }\n\n .btn-add-exclude,\n .btn-add-another-exclude {\n @include button-reset;\n display: inline-flex;\n align-items: center;\n gap: 0.25rem;\n margin-top: $es-spacing-sm;\n padding: 0.375rem 0.625rem;\n color: $es-danger;\n font-size: $es-font-size-xs;\n font-weight: $es-font-weight-medium;\n background: transparent;\n border: 1px dashed rgba($es-danger, 0.5);\n border-radius: $es-radius-sm;\n transition: all $es-transition-fast;\n\n &:hover {\n background: $es-danger-light;\n border-color: $es-danger;\n }\n\n i {\n font-size: 10px;\n }\n }\n\n // Group modifiers (inline version from PHP)\n // Uses negative margins to break out of .group-body padding\n .group-modifiers {\n display: flex;\n flex-wrap: wrap;\n align-items: center;\n gap: $es-spacing-md;\n padding: $es-spacing-sm $es-spacing-md;\n margin: $es-spacing-md (-$es-spacing-md) (-$es-spacing-md);\n background: $es-slate-50;\n border-top: 1px solid $es-border-color;\n border-radius: 0 0 $es-radius-lg $es-radius-lg;\n }\n\n .modifier-inline {\n display: flex;\n align-items: center;\n gap: 0.375rem;\n }\n\n // Common height for all modifier controls\n $modifier-height: 26px;\n\n .group-modifier-limit {\n width: 50px;\n max-width: 50px;\n height: $modifier-height;\n padding: 0 0.375rem;\n font-size: $es-font-size-xs;\n text-align: center;\n border: 1px solid $es-border-color;\n border-radius: $es-radius-sm;\n\n &:focus {\n border-color: $es-primary;\n outline: none;\n }\n }\n\n // Sort modifier - input group style (select + button glued together)\n .modifier-sort {\n gap: 0; // Remove gap to glue select + button together\n\n .modifier-label {\n margin-right: 0.375rem; // Keep space between label and input group\n }\n\n .group-modifier-sort {\n height: $modifier-height;\n padding: 0 0.5rem;\n font-size: $es-font-size-xs;\n border: 1px solid $es-border-color;\n border-radius: $es-radius-sm 0 0 $es-radius-sm;\n border-right: none;\n cursor: pointer;\n\n &:focus {\n border-color: $es-primary;\n outline: none;\n position: relative;\n z-index: 1;\n }\n }\n\n .btn-sort-dir {\n @include button-reset;\n display: flex;\n align-items: center;\n justify-content: center;\n width: $modifier-height;\n height: $modifier-height;\n color: $es-text-muted;\n background: $es-slate-100;\n border: 1px solid $es-border-color;\n border-radius: 0 $es-radius-sm $es-radius-sm 0;\n transition: all $es-transition-fast;\n\n &:hover {\n background: $es-slate-200;\n color: $es-text-secondary;\n }\n\n i {\n font-size: 11px;\n }\n }\n }\n\n // Fallback for elements outside .modifier-sort context\n .group-modifier-sort {\n height: $modifier-height;\n padding: 0 0.5rem;\n font-size: $es-font-size-xs;\n border: 1px solid $es-border-color;\n border-radius: $es-radius-sm;\n cursor: pointer;\n\n &:focus {\n border-color: $es-primary;\n outline: none;\n }\n }\n\n .btn-sort-dir {\n @include button-reset;\n display: flex;\n align-items: center;\n justify-content: center;\n width: $modifier-height;\n height: $modifier-height;\n color: $es-text-muted;\n border: 1px solid $es-border-color;\n border-radius: $es-radius-sm;\n transition: all $es-transition-fast;\n\n &:hover {\n background: $es-slate-100;\n color: $es-text-secondary;\n }\n }\n\n .group-preview-badge {\n display: inline-flex;\n align-items: center;\n gap: 0.25rem;\n padding: 0.25rem 0.5rem;\n background: $es-slate-100;\n color: $es-text-muted;\n font-size: $es-font-size-xs;\n font-weight: $es-font-weight-medium;\n border-radius: $es-radius-full;\n transition: all $es-transition-fast;\n\n &.clickable {\n cursor: pointer;\n\n &:hover {\n background: $es-primary-light;\n color: $es-primary;\n }\n }\n }\n\n // OR separator between groups\n .group-separator {\n display: flex;\n align-items: center;\n justify-content: center;\n padding: $es-spacing-sm 0;\n color: $es-text-muted;\n font-size: $es-font-size-xs;\n font-weight: $es-font-weight-semibold;\n text-transform: uppercase;\n letter-spacing: 0.1em;\n\n &::before,\n &::after {\n content: '';\n flex: 1;\n height: 1px;\n background: $es-border-color;\n margin: 0 $es-spacing-md;\n }\n }\n\n // Group modifiers (limit, sort)\n .group-modifiers {\n display: flex;\n flex-wrap: wrap;\n gap: $es-spacing-md;\n padding-top: $es-spacing-md;\n margin-top: $es-spacing-md;\n border-top: 1px solid $es-border-color;\n }\n\n .modifier-group {\n display: flex;\n align-items: center;\n gap: $es-spacing-sm;\n }\n\n .modifier-label {\n font-size: $es-font-size-xs;\n font-weight: $es-font-weight-medium;\n color: $es-text-muted;\n white-space: nowrap;\n }\n\n .modifier-input {\n @include input-base;\n width: 80px;\n padding: 0.25rem 0.5rem;\n font-size: $es-font-size-xs;\n }\n\n .modifier-select {\n @include input-base;\n width: auto;\n padding: 0.25rem 1.5rem 0.25rem 0.5rem;\n font-size: $es-font-size-xs;\n cursor: pointer;\n appearance: none;\n background-image: url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 20 20'%3E%3Cpath stroke='%236b7280' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' d='m6 8 4 4 4-4'/%3E%3C/svg%3E\");\n background-position: right 0.25rem center;\n background-repeat: no-repeat;\n background-size: 1.25em 1.25em;\n }\n\n // Condition match count badge\n .condition-match-count {\n display: inline-flex;\n align-items: center;\n gap: 0.25rem;\n padding: 0.125rem 0.375rem;\n background: $es-slate-100;\n color: $es-text-muted;\n font-size: $es-font-size-xs;\n font-weight: $es-font-weight-medium;\n border-radius: $es-radius-full;\n cursor: pointer;\n transition: all $es-transition-fast;\n\n &:hover {\n background: $es-slate-200;\n }\n\n &.has-results {\n background: $es-primary-light;\n color: $es-primary;\n }\n\n i {\n font-size: 10px;\n }\n }\n}\n","/**\n * Value Picker Component\n * Search boxes, input types, range inputs\n */\n\n@use '../variables' as *;\n@use '../mixins' as *;\n\n.target-conditions-trait,\n.entity-selector-trait {\n\n // Value picker container\n .value-picker {\n padding: $es-spacing-sm 0;\n\n &[style*=\"display: none\"],\n &[style*=\"display:none\"] {\n padding: 0;\n }\n }\n\n .include-picker,\n .exclude-picker {\n // Section-specific picker styles\n }\n\n // Entity search box\n .entity-search-box {\n position: relative;\n display: flex;\n align-items: center;\n gap: $es-spacing-sm;\n padding: $es-spacing-xs;\n background: $es-white;\n border: 1px solid $es-border-color;\n border-radius: $es-radius-md;\n transition: all $es-transition-fast;\n\n &:focus-within {\n border-color: $es-primary;\n box-shadow: 0 0 0 2px rgba($es-primary, 0.1);\n }\n }\n\n // Separation between chips and search box\n .chips-wrapper + .entity-search-box {\n margin-top: $es-spacing-md;\n }\n\n .entity-search-icon {\n color: $es-text-muted;\n font-size: 14px;\n flex-shrink: 0;\n margin-left: $es-spacing-xs;\n }\n\n // Override parent form's max-width on search input\n input.entity-search-input,\n input.entity-search-input[type=\"text\"] {\n @include input-reset;\n flex: 1;\n min-width: 0;\n width: auto !important;\n max-width: none !important;\n padding: 0.375rem;\n font-size: $es-font-size-sm;\n color: $es-text-primary;\n border: none !important;\n background: transparent !important;\n box-shadow: none !important;\n\n &::placeholder {\n color: $es-text-muted;\n }\n\n &:focus {\n border: none !important;\n box-shadow: none !important;\n outline: none;\n }\n }\n\n .search-loading {\n display: flex;\n align-items: center;\n justify-content: center;\n color: $es-primary;\n\n i {\n animation: spin 0.6s linear infinite;\n }\n }\n\n // Browse tree button (for categories)\n .btn-browse-tree {\n @include button-reset;\n display: flex;\n align-items: center;\n justify-content: center;\n width: 32px;\n height: 32px;\n margin-left: auto;\n color: $es-primary;\n background: $es-primary-light;\n border-radius: $es-radius-sm;\n flex-shrink: 0;\n transition: all $es-transition-fast;\n\n &:hover {\n background: $es-primary;\n color: $es-white;\n }\n\n i {\n font-size: 14px;\n }\n }\n\n // Numeric range box\n .numeric-range-box,\n .multi-range-input-row {\n display: flex;\n align-items: center;\n gap: $es-spacing-xs;\n }\n\n .range-min-input,\n .range-max-input {\n @include input-base;\n width: 100px;\n padding: $es-spacing-sm;\n text-align: center;\n font-size: $es-font-size-sm;\n\n &::-webkit-inner-spin-button,\n &::-webkit-outer-spin-button {\n -webkit-appearance: none;\n margin: 0;\n }\n -moz-appearance: textfield;\n }\n\n .range-separator {\n color: $es-text-muted;\n font-size: $es-font-size-sm;\n font-weight: $es-font-weight-medium;\n }\n\n .btn-add-range {\n @include button-reset;\n display: flex;\n align-items: center;\n justify-content: center;\n width: 32px;\n height: 32px;\n color: $es-white;\n background: $es-primary;\n border-radius: $es-radius-md;\n transition: all $es-transition-fast;\n\n &:hover {\n background: $es-primary-hover;\n }\n\n i {\n font-size: 12px;\n }\n }\n\n // Multi-range container\n .multi-range-container {\n display: flex;\n flex-direction: column;\n gap: $es-spacing-sm;\n }\n\n // Date range box\n .date-range-box {\n display: flex;\n align-items: center;\n gap: $es-spacing-xs;\n }\n\n .date-from-input,\n .date-to-input {\n @include input-base;\n width: 140px;\n padding: $es-spacing-sm;\n font-size: $es-font-size-sm;\n }\n\n // Multi-select tiles\n .multi-select-tiles {\n display: flex;\n flex-wrap: wrap;\n gap: $es-spacing-xs;\n }\n\n .tile-option {\n @include button-reset;\n display: inline-flex;\n align-items: center;\n gap: 0.25rem;\n padding: 0.375rem 0.625rem;\n color: $es-text-secondary;\n background: $es-slate-100;\n border: 1px solid transparent;\n border-radius: $es-radius-sm;\n font-size: $es-font-size-xs;\n font-weight: $es-font-weight-medium;\n cursor: pointer;\n transition: all $es-transition-fast;\n\n &:hover {\n background: $es-slate-200;\n }\n\n &.selected {\n color: $es-primary;\n background: $es-primary-light;\n border-color: $es-primary;\n }\n\n i {\n font-size: 12px;\n }\n }\n\n .tile-label {\n white-space: nowrap;\n }\n\n // Select input box\n .select-input-box {\n display: inline-block;\n }\n\n .select-value-input {\n @include input-base;\n padding: $es-spacing-sm $es-spacing-md;\n font-size: $es-font-size-sm;\n min-width: 150px;\n }\n\n // Boolean input box\n .boolean-input-box {\n display: inline-flex;\n align-items: center;\n padding: $es-spacing-sm $es-spacing-md;\n background: $es-success-light;\n color: $es-success-dark;\n border-radius: $es-radius-md;\n font-size: $es-font-size-sm;\n font-weight: $es-font-weight-medium;\n }\n\n .boolean-label {\n display: flex;\n align-items: center;\n gap: 0.25rem;\n\n &::before {\n content: '\\2713';\n font-weight: bold;\n }\n }\n\n // Condition match count badge\n .condition-match-count {\n @include count-badge($es-primary);\n margin-left: $es-spacing-sm;\n }\n}\n","/**\n * Modal Component\n * Preview modals, confirmation dialogs\n */\n\n@use '../variables' as *;\n@use '../mixins' as *;\n\n// Modal backdrop\n.mpr-modal-backdrop {\n position: fixed;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n background: rgba(0, 0, 0, 0.5);\n z-index: $es-z-modal;\n opacity: 0;\n transition: opacity $es-transition-normal;\n\n &.show {\n opacity: 1;\n }\n}\n\n// Modal container\n.mpr-modal {\n position: fixed;\n top: 50%;\n left: 50%;\n transform: translate(-50%, -50%) scale(0.95);\n z-index: $es-z-modal + 1;\n width: 90%;\n max-width: 600px;\n max-height: 90vh;\n background: $es-white;\n border-radius: $es-radius-xl;\n box-shadow: $es-shadow-xl;\n opacity: 0;\n transition: all $es-transition-normal;\n overflow: hidden;\n display: flex;\n flex-direction: column;\n\n &.show {\n opacity: 1;\n transform: translate(-50%, -50%) scale(1);\n }\n\n &.modal-sm {\n max-width: 400px;\n }\n\n &.modal-lg {\n max-width: 800px;\n }\n\n &.modal-xl {\n max-width: 1000px;\n }\n\n &.modal-fullscreen {\n width: 95%;\n max-width: none;\n height: 90vh;\n max-height: none;\n }\n}\n\n// Modal header\n.mpr-modal-header {\n display: flex;\n align-items: center;\n justify-content: space-between;\n gap: $es-spacing-md;\n padding: $es-spacing-md $es-spacing-lg;\n background: $es-bg-header;\n border-bottom: 1px solid $es-border-color;\n flex-shrink: 0;\n}\n\n.mpr-modal-title {\n font-size: $es-font-size-base;\n font-weight: $es-font-weight-semibold;\n color: $es-text-primary;\n margin: 0;\n}\n\n.mpr-modal-close {\n @include button-reset;\n display: flex;\n align-items: center;\n justify-content: center;\n width: 32px;\n height: 32px;\n color: $es-text-muted;\n border-radius: $es-radius-md;\n transition: all $es-transition-fast;\n\n &:hover {\n background: $es-slate-200;\n color: $es-text-secondary;\n }\n\n i {\n font-size: $es-font-size-lg;\n }\n}\n\n// Modal body\n.mpr-modal-body {\n flex: 1;\n overflow-y: auto;\n padding: $es-spacing-lg;\n @include custom-scrollbar;\n}\n\n// Modal footer\n.mpr-modal-footer {\n display: flex;\n align-items: center;\n justify-content: flex-end;\n gap: $es-spacing-sm;\n padding: $es-spacing-md $es-spacing-lg;\n background: $es-bg-header;\n border-top: 1px solid $es-border-color;\n flex-shrink: 0;\n}\n\n.mpr-modal-btn {\n @include button-reset;\n display: inline-flex;\n align-items: center;\n justify-content: center;\n gap: $es-spacing-xs;\n padding: $es-spacing-sm $es-spacing-md;\n font-size: $es-font-size-sm;\n font-weight: $es-font-weight-medium;\n border-radius: $es-radius-md;\n transition: all $es-transition-fast;\n\n &.btn-secondary {\n color: $es-text-secondary;\n background: $es-slate-100;\n\n &:hover {\n background: $es-slate-200;\n }\n }\n\n &.btn-primary {\n color: $es-white;\n background: $es-primary;\n\n &:hover {\n background: $es-primary-hover;\n }\n }\n\n &.btn-danger {\n color: $es-white;\n background: $es-danger;\n\n &:hover {\n background: darken($es-danger, 10%);\n }\n }\n\n &:disabled {\n opacity: 0.5;\n cursor: not-allowed;\n }\n}\n\n// Preview popover styles moved to _list-preview.scss\n\n.popover-header {\n display: flex;\n align-items: center;\n justify-content: space-between;\n gap: $es-spacing-sm;\n padding: $es-spacing-sm $es-spacing-md;\n background: $es-bg-header;\n border-bottom: 1px solid $es-border-color;\n border-radius: $es-radius-lg $es-radius-lg 0 0;\n}\n\n.popover-title {\n font-size: $es-font-size-sm;\n font-weight: $es-font-weight-semibold;\n color: $es-text-primary;\n}\n\n.popover-close {\n @include button-reset;\n display: flex;\n align-items: center;\n justify-content: center;\n width: 24px;\n height: 24px;\n color: $es-text-muted;\n border-radius: $es-radius-sm;\n transition: all $es-transition-fast;\n\n &:hover {\n background: $es-slate-200;\n color: $es-text-secondary;\n }\n}\n\n.popover-body {\n max-height: 300px;\n overflow-y: auto;\n padding: $es-spacing-sm;\n @include custom-scrollbar;\n}\n\n.popover-footer {\n display: flex;\n align-items: center;\n justify-content: space-between;\n gap: $es-spacing-sm;\n padding: $es-spacing-sm $es-spacing-md;\n background: $es-bg-header;\n border-top: 1px solid $es-border-color;\n border-radius: 0 0 $es-radius-lg $es-radius-lg;\n}\n\n.popover-info {\n font-size: $es-font-size-xs;\n color: $es-text-muted;\n}\n\n.popover-load-more {\n @include button-reset;\n display: inline-flex;\n align-items: center;\n gap: 0.25rem;\n padding: 0.25rem 0.5rem;\n font-size: $es-font-size-xs;\n font-weight: $es-font-weight-medium;\n color: $es-primary;\n border-radius: $es-radius-sm;\n transition: all $es-transition-fast;\n\n &:hover {\n background: $es-primary-light;\n }\n}\n\n// Popover arrow\n.popover-arrow {\n position: absolute;\n width: 12px;\n height: 12px;\n background: $es-white;\n border: 1px solid $es-border-color;\n transform: rotate(45deg);\n\n &.arrow-top {\n top: -7px;\n left: 50%;\n margin-left: -6px;\n border-right: none;\n border-bottom: none;\n }\n\n &.arrow-bottom {\n bottom: -7px;\n left: 50%;\n margin-left: -6px;\n border-left: none;\n border-top: none;\n }\n}\n","/**\n * List Preview Component\n * Entity list display in modals and popovers\n */\n\n@use '../variables' as *;\n@use '../mixins' as *;\n\n// =============================================================================\n// Preview Popover (floating popover attached to badges)\n// =============================================================================\n\n.target-preview-popover {\n position: absolute;\n z-index: 10000;\n min-width: 280px;\n max-width: 400px;\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 .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-count {\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: 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-text-primary;\n }\n }\n }\n\n .preview-list {\n max-height: 300px;\n overflow-y: auto;\n @include custom-scrollbar;\n padding: $es-spacing-sm;\n display: flex;\n flex-direction: column;\n gap: $es-spacing-xs;\n position: relative;\n\n // Loading overlay for AJAX filtering\n &.filtering {\n pointer-events: none;\n opacity: 0.6;\n }\n\n .filter-loading-overlay {\n position: absolute;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n display: flex;\n align-items: center;\n justify-content: center;\n background: rgba($es-white, 0.7);\n z-index: 10;\n\n i {\n font-size: 20px;\n color: $es-primary;\n animation: spin 0.6s linear infinite;\n }\n }\n }\n\n // Filter input section\n .preview-filter {\n padding: $es-spacing-sm;\n border-bottom: 1px solid $es-border-color;\n\n .preview-filter-input {\n width: 100%;\n padding: $es-spacing-xs $es-spacing-sm;\n font-size: $es-font-size-xs;\n line-height: 1.4;\n color: $es-text-primary;\n background-color: $es-white;\n border: 1px solid $es-border-color;\n border-radius: $es-radius-sm;\n box-sizing: border-box;\n\n &:focus {\n border-color: $es-primary;\n outline: none;\n }\n\n &::placeholder {\n color: $es-text-muted;\n }\n }\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 .preview-more-info {\n font-size: $es-font-size-xs;\n color: $es-text-muted;\n font-weight: $es-font-weight-medium;\n text-align: center;\n }\n }\n\n // Load more controls (select dropdown style)\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 @include input-base;\n padding: 0.25rem 0.5rem;\n font-size: $es-font-size-xs;\n min-width: 70px;\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 !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 &.loading {\n cursor: wait;\n\n i {\n animation: spin 0.6s linear infinite;\n }\n }\n }\n }\n}\n\n// =============================================================================\n// Preview List Container\n// =============================================================================\n\n// Preview list container\n.entity-list-preview {\n display: flex;\n flex-direction: column;\n gap: $es-spacing-xs;\n}\n\n// Preview item (list-style with bottom border divider)\n.preview-item {\n display: flex;\n align-items: center;\n gap: $es-spacing-sm;\n padding: $es-spacing-sm 0;\n background: $es-white;\n border: none;\n border-bottom: 1px solid $es-border-color;\n border-radius: 0;\n 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\n.preview-item-image {\n flex-shrink: 0;\n width: 36px;\n height: 36px;\n object-fit: cover;\n border-radius: $es-radius-sm;\n background: $es-slate-100;\n}\n\n.preview-item-icon {\n display: flex;\n align-items: center;\n justify-content: center;\n flex-shrink: 0;\n width: 36px;\n height: 36px;\n background: $es-slate-100;\n color: $es-text-muted;\n border-radius: $es-radius-sm;\n font-size: $es-font-size-base;\n}\n\n.preview-item-info {\n flex: 1;\n min-width: 0;\n}\n\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.preview-item-meta {\n font-size: $es-font-size-xs;\n color: $es-text-muted;\n @include text-truncate;\n}\n\n.preview-item-badge {\n @include badge($es-slate-100, $es-text-muted);\n flex-shrink: 0;\n}\n\n.preview-item-price {\n font-size: $es-font-size-sm;\n font-weight: $es-font-weight-semibold;\n color: $es-primary;\n flex-shrink: 0;\n}\n\n// Preview grid layout\n.entity-list-preview.grid-layout {\n display: grid;\n grid-template-columns: repeat(auto-fill, minmax(150px, 1fr));\n gap: $es-spacing-sm;\n\n .preview-item {\n flex-direction: column;\n text-align: center;\n padding: $es-spacing-md;\n }\n\n .preview-item-image {\n width: 60px;\n height: 60px;\n }\n\n .preview-item-info {\n width: 100%;\n }\n}\n\n// Compact list layout\n.entity-list-preview.compact {\n gap: 0;\n\n .preview-item {\n border-radius: 0;\n border-bottom: none;\n\n &:first-child {\n border-radius: $es-radius-md $es-radius-md 0 0;\n }\n\n &:last-child {\n border-radius: 0 0 $es-radius-md $es-radius-md;\n border-bottom: 1px solid $es-border-color;\n }\n }\n}\n\n// Preview empty state\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 state\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 .spinner {\n width: 24px;\n height: 24px;\n border: 3px solid $es-slate-200;\n border-top-color: $es-primary;\n border-radius: 50%;\n animation: spin 0.8s linear infinite;\n }\n}\n\n// Preview pagination\n.preview-pagination {\n display: flex;\n align-items: center;\n justify-content: center;\n gap: $es-spacing-xs;\n padding: $es-spacing-md 0;\n}\n\n.preview-page-btn {\n @include button-reset;\n display: flex;\n align-items: center;\n justify-content: center;\n min-width: 28px;\n height: 28px;\n padding: 0 $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:not(:disabled) {\n background: $es-bg-hover;\n border-color: $es-slate-300;\n }\n\n &.active {\n background: $es-primary;\n border-color: $es-primary;\n color: $es-white;\n }\n\n &:disabled {\n opacity: 0.5;\n cursor: not-allowed;\n }\n}\n\n// Preview summary\n.preview-summary {\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-top: 1px solid $es-border-color;\n font-size: $es-font-size-xs;\n color: $es-text-muted;\n}\n\n.preview-count {\n font-weight: $es-font-weight-medium;\n\n strong {\n color: $es-text-primary;\n }\n}\n\n// Preview filters in modal\n.preview-filters {\n display: flex;\n flex-wrap: wrap;\n gap: $es-spacing-sm;\n padding: $es-spacing-sm $es-spacing-md;\n background: $es-slate-50;\n border-bottom: 1px solid $es-border-color;\n}\n\n.preview-filter-chip {\n @include chip;\n}\n\n.preview-search {\n @include input-base;\n flex: 1;\n min-width: 150px;\n padding: 0.375rem $es-spacing-sm;\n font-size: $es-font-size-xs;\n}\n\n// Scrollable preview list\n.preview-list-scrollable {\n max-height: 400px;\n overflow-y: auto;\n @include custom-scrollbar;\n}\n\n// Mini preview (inline)\n.entity-mini-preview {\n display: inline-flex;\n align-items: center;\n gap: 0.375rem;\n padding: 0.25rem 0.5rem;\n background: $es-slate-50;\n border-radius: $es-radius-sm;\n font-size: $es-font-size-xs;\n\n img {\n width: 16px;\n height: 16px;\n object-fit: cover;\n border-radius: 2px;\n }\n\n .mini-preview-name {\n color: $es-text-primary;\n font-weight: $es-font-weight-medium;\n @include text-truncate;\n max-width: 100px;\n }\n}\n\n\n// =============================================================================\n// Total Summary Popover (header total badge click)\n// =============================================================================\n\n.total-preview-popover {\n min-width: 240px;\n max-width: 320px;\n\n .preview-popover-header {\n display: flex;\n align-items: center;\n justify-content: space-between;\n padding: $es-spacing-sm $es-spacing-md;\n background: $es-bg-header;\n border-bottom: 1px solid $es-border-color;\n\n .preview-popover-title {\n font-weight: $es-font-weight-semibold;\n color: $es-text-primary;\n font-size: $es-font-size-sm;\n }\n\n .preview-popover-count {\n font-size: $es-font-size-xs;\n color: $es-text-muted;\n }\n }\n\n .preview-popover-body {\n padding: $es-spacing-xs 0;\n }\n\n .total-summary-list {\n list-style: none;\n margin: 0;\n padding: 0;\n }\n\n .total-summary-item {\n display: flex;\n align-items: center;\n gap: $es-spacing-sm;\n padding: $es-spacing-sm $es-spacing-md;\n cursor: pointer;\n transition: background-color 0.15s ease;\n\n &:hover {\n background: $es-slate-50;\n }\n\n i {\n width: 18px;\n text-align: center;\n color: $es-text-muted;\n font-size: 14px;\n }\n\n .summary-item-label {\n flex: 1;\n font-size: $es-font-size-sm;\n color: $es-text-primary;\n }\n\n .summary-item-count {\n font-size: $es-font-size-sm;\n font-weight: $es-font-weight-semibold;\n color: $es-primary;\n background: rgba($es-primary, 0.1);\n padding: 2px 8px;\n border-radius: $es-radius-sm;\n }\n }\n}\n\n// Make trait-total-count clickable\n.trait-total-count {\n cursor: pointer;\n transition: all 0.15s ease;\n\n &:hover {\n opacity: 0.8;\n }\n\n &.popover-open {\n opacity: 0.9;\n }\n}\n","/**\n * Schedule Conditions Component\n * DateTime picker, weekly timeline, holidays\n */\n\n@use '../variables' as *;\n@use '../mixins' as *;\n\n// Schedule conditions wrapper\n.schedule-conditions-trait {\n background: $es-white;\n border: 1px solid $es-border-color;\n border-radius: $es-radius-lg;\n}\n\n// Schedule header\n.schedule-header {\n display: flex;\n align-items: center;\n justify-content: space-between;\n gap: $es-spacing-md;\n padding: 0.875rem $es-spacing-md;\n background: $es-bg-header;\n border-bottom: 1px solid $es-border-color;\n border-radius: $es-radius-lg $es-radius-lg 0 0;\n cursor: pointer;\n user-select: none;\n transition: background-color $es-transition-fast;\n\n &:hover {\n background: $es-bg-hover;\n }\n}\n\n.schedule-title {\n display: flex;\n align-items: center;\n gap: 0.75rem;\n font-size: $es-font-size-sm;\n font-weight: $es-font-weight-semibold;\n color: $es-text-primary;\n\n i {\n color: $es-text-muted;\n }\n}\n\n// Schedule body\n.schedule-body {\n padding: $es-spacing-md;\n}\n\n// Schedule section\n.schedule-section {\n margin-bottom: $es-spacing-lg;\n\n &:last-child {\n margin-bottom: 0;\n }\n}\n\n.schedule-section-title {\n display: flex;\n align-items: center;\n gap: $es-spacing-sm;\n margin-bottom: $es-spacing-sm;\n font-size: $es-font-size-sm;\n font-weight: $es-font-weight-semibold;\n color: $es-text-primary;\n\n i {\n color: $es-text-muted;\n }\n}\n\n.schedule-section-description {\n margin-bottom: $es-spacing-md;\n font-size: $es-font-size-xs;\n color: $es-text-muted;\n}\n\n// DateTime range picker\n.datetime-range {\n display: flex;\n flex-wrap: wrap;\n gap: $es-spacing-md;\n}\n\n.datetime-field {\n flex: 1;\n min-width: 200px;\n}\n\n.datetime-label {\n display: block;\n margin-bottom: 0.25rem;\n font-size: $es-font-size-xs;\n font-weight: $es-font-weight-medium;\n color: $es-text-secondary;\n}\n\n.datetime-input {\n @include input-base;\n}\n\n// Weekly schedule\n.weekly-schedule {\n display: flex;\n flex-direction: column;\n gap: $es-spacing-sm;\n}\n\n.day-row {\n display: flex;\n align-items: center;\n gap: $es-spacing-md;\n padding: $es-spacing-sm;\n background: $es-slate-50;\n border-radius: $es-radius-md;\n\n &.disabled {\n opacity: 0.5;\n }\n}\n\n.day-toggle {\n display: flex;\n align-items: center;\n gap: $es-spacing-sm;\n min-width: 100px;\n}\n\n.day-checkbox {\n width: 18px;\n height: 18px;\n cursor: pointer;\n}\n\n.day-name {\n font-size: $es-font-size-sm;\n font-weight: $es-font-weight-medium;\n color: $es-text-primary;\n}\n\n// Timeline slider\n.timeline-slider {\n flex: 1;\n position: relative;\n height: 24px;\n background: $es-slate-200;\n border-radius: $es-radius-full;\n cursor: pointer;\n}\n\n.timeline-fill {\n position: absolute;\n top: 0;\n height: 100%;\n background: $es-primary;\n border-radius: $es-radius-full;\n transition: all $es-transition-fast;\n}\n\n.timeline-handle {\n position: absolute;\n top: 50%;\n width: 16px;\n height: 16px;\n background: $es-white;\n border: 2px solid $es-primary;\n border-radius: 50%;\n transform: translate(-50%, -50%);\n cursor: grab;\n box-shadow: $es-shadow-sm;\n transition: box-shadow $es-transition-fast;\n\n &:hover {\n box-shadow: $es-shadow-md;\n }\n\n &:active {\n cursor: grabbing;\n }\n\n &.handle-start {\n z-index: 2;\n }\n\n &.handle-end {\n z-index: 1;\n }\n}\n\n// Time display\n.day-times {\n display: flex;\n align-items: center;\n gap: $es-spacing-xs;\n min-width: 120px;\n font-size: $es-font-size-xs;\n font-family: monospace;\n color: $es-text-secondary;\n}\n\n.time-separator {\n color: $es-text-muted;\n}\n\n// Holiday exclusions\n.holiday-section {\n padding: $es-spacing-md;\n background: $es-slate-50;\n border-radius: $es-radius-md;\n}\n\n.holiday-toggle {\n display: flex;\n align-items: center;\n gap: $es-spacing-sm;\n margin-bottom: $es-spacing-md;\n}\n\n.holiday-checkbox {\n width: 18px;\n height: 18px;\n cursor: pointer;\n}\n\n.holiday-label {\n font-size: $es-font-size-sm;\n font-weight: $es-font-weight-medium;\n color: $es-text-primary;\n}\n\n.holiday-countries {\n display: flex;\n flex-wrap: wrap;\n gap: $es-spacing-xs;\n}\n\n.holiday-country-chip {\n @include chip;\n cursor: pointer;\n\n &.selected {\n background: $es-primary-light;\n color: $es-primary;\n }\n}\n\n// Server time display\n.server-time {\n display: flex;\n align-items: center;\n gap: $es-spacing-sm;\n padding: $es-spacing-sm $es-spacing-md;\n background: $es-info-light;\n border-radius: $es-radius-md;\n font-size: $es-font-size-xs;\n color: $es-info;\n\n i {\n font-size: $es-font-size-sm;\n }\n\n .time-value {\n font-family: monospace;\n font-weight: $es-font-weight-semibold;\n }\n}\n\n// Schedule summary\n.schedule-summary {\n display: flex;\n flex-direction: column;\n gap: $es-spacing-xs;\n padding: $es-spacing-md;\n background: $es-slate-50;\n border-radius: $es-radius-md;\n font-size: $es-font-size-sm;\n color: $es-text-secondary;\n\n .summary-item {\n display: flex;\n align-items: center;\n gap: $es-spacing-sm;\n\n i {\n color: $es-success;\n font-size: $es-font-size-sm;\n }\n\n &.inactive i {\n color: $es-text-muted;\n }\n }\n}\n\n// Collapsed state\n.schedule-conditions-trait.collapsed {\n .schedule-body {\n display: none;\n }\n\n .schedule-header {\n border-radius: $es-radius-lg;\n }\n}\n","/**\n * Tips Box Component\n * Pro tips and help information display\n */\n\n@use '../variables' as *;\n@use '../mixins' as *;\n\n.target-conditions-trait,\n.entity-selector-trait {\n\n // Tips box container\n .target-tips-box {\n margin: $es-spacing-lg $es-spacing-md $es-spacing-md;\n border: 1px solid $es-border-color;\n border-radius: $es-radius-lg;\n overflow: hidden;\n background: linear-gradient(135deg, #f8fafc 0%, #f1f5f9 100%);\n }\n\n // Tips header (clickable to expand/collapse)\n .tips-header {\n display: flex;\n align-items: center;\n gap: 0.625rem;\n padding: $es-spacing-md $es-spacing-lg;\n cursor: pointer;\n user-select: none;\n transition: background-color $es-transition-fast;\n\n &:hover {\n background: rgba(0, 0, 0, 0.02);\n }\n\n // Lightbulb icon\n > i:first-child {\n font-size: 1rem;\n color: $es-warning;\n }\n\n // Title text\n > span {\n flex: 1;\n font-size: 13px;\n font-weight: $es-font-weight-semibold;\n color: $es-slate-600;\n }\n }\n\n // Toggle chevron icon\n .tips-toggle {\n font-size: $es-font-size-xs;\n color: $es-slate-400;\n transition: transform 0.2s;\n }\n\n // Expanded state\n .target-tips-box.expanded {\n .tips-toggle {\n transform: rotate(180deg);\n }\n\n .tips-content {\n display: block;\n }\n }\n\n // Tips content (hidden by default)\n .tips-content {\n display: none;\n padding: 0 $es-spacing-lg $es-spacing-lg;\n }\n\n // Tips grid layout\n .tips-grid {\n display: grid;\n gap: $es-spacing-md;\n grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));\n }\n\n // Individual tip item\n .tip-item {\n display: flex;\n gap: $es-spacing-md;\n padding: $es-spacing-md;\n background: $es-white;\n border-radius: $es-radius-md;\n border: 1px solid $es-border-color;\n }\n\n // Tip icon\n .tip-icon {\n flex-shrink: 0;\n width: 2rem;\n height: 2rem;\n display: flex;\n align-items: center;\n justify-content: center;\n background: $es-primary-light;\n border-radius: $es-radius-md;\n color: $es-primary;\n font-size: $es-font-size-sm;\n }\n\n // Tip text content\n .tip-text {\n flex: 1;\n min-width: 0;\n\n strong {\n display: block;\n font-size: $es-font-size-xs;\n font-weight: $es-font-weight-semibold;\n color: $es-slate-700;\n margin-bottom: 0.25rem;\n }\n\n p {\n font-size: 11px;\n color: $es-text-muted;\n line-height: 1.625;\n margin: 0;\n }\n }\n\n // Tips footer\n .tips-footer {\n margin-top: $es-spacing-md;\n padding: 0.625rem $es-spacing-md;\n background: $es-white;\n border-radius: $es-radius-md;\n border: 1px dashed $es-gray-300;\n font-size: 11px;\n color: $es-text-muted;\n line-height: 1.625;\n\n i {\n color: $es-primary;\n margin-right: 0.25rem;\n }\n }\n}\n","/**\n * Condition Trait Base Styles\n * Shared styling for all condition trait components\n */\n\n@use '../variables' as *;\n@use '../mixins' as *;\n\n// Base condition trait container\n.condition-trait {\n background: $es-white;\n border: 1px solid $es-border-color;\n border-radius: $es-radius-lg;\n margin-bottom: $es-spacing-lg;\n\n &:last-child {\n margin-bottom: 0;\n }\n}\n\n// Collapsed state\n.condition-trait.collapsed {\n .condition-trait-header {\n border-bottom-color: transparent;\n border-radius: $es-radius-lg;\n }\n\n .collapse-icon {\n transform: rotate(180deg);\n }\n}\n\n// =============================================================================\n// Trait Header\n// =============================================================================\n\n.condition-trait-header {\n display: flex;\n align-items: center;\n justify-content: space-between;\n gap: $es-spacing-lg;\n flex-wrap: wrap;\n padding: 0.875rem $es-spacing-lg;\n background: $es-slate-50;\n border-bottom: 1px solid $es-border-color;\n border-radius: $es-radius-lg $es-radius-lg 0 0;\n cursor: pointer;\n transition: background-color $es-transition-fast;\n\n &:hover {\n background: $es-slate-100;\n }\n}\n\n.trait-header-left {\n display: flex;\n align-items: center;\n gap: $es-spacing-md;\n min-width: 0;\n flex: 1;\n}\n\n.trait-icon {\n font-size: 1.125rem;\n color: $es-text-muted;\n flex-shrink: 0;\n}\n\n.trait-title-group {\n display: flex;\n flex-direction: column;\n gap: 0.125rem;\n min-width: 0;\n}\n\n.trait-title {\n font-size: $es-font-size-sm;\n font-weight: $es-font-weight-semibold;\n color: $es-slate-800;\n white-space: nowrap;\n}\n\n.trait-subtitle {\n font-size: $es-font-size-xs;\n color: $es-text-muted;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n}\n\n.trait-header-right {\n display: flex;\n align-items: center;\n gap: $es-spacing-md;\n flex-shrink: 0;\n margin-left: auto;\n}\n\n.trait-header-actions {\n display: flex;\n align-items: center;\n gap: $es-spacing-sm;\n}\n\n// Collapse icon\n.collapse-icon {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n width: 1.5rem;\n height: 1.5rem;\n font-size: $es-font-size-sm;\n color: $es-text-muted;\n cursor: pointer;\n transition: all 0.2s;\n border-radius: $es-radius-sm;\n background: transparent;\n\n &:hover {\n color: $es-primary;\n background: rgba($es-primary, 0.08);\n }\n}\n\n// Show all toggle\n.trait-show-all-toggle {\n display: inline-flex;\n align-items: center;\n gap: 0.25rem;\n font-size: $es-font-size-xs;\n color: $es-primary;\n cursor: pointer;\n\n &:hover {\n text-decoration: underline;\n }\n}\n\n// Trait total count badge (global fallback)\n.trait-total-count {\n @include count-badge($es-primary);\n}\n\n// Required indicator\n.trait-required {\n color: $es-danger;\n font-size: $es-font-size-xs;\n}\n\n// Validation error\n.trait-validation-error {\n color: $es-danger;\n font-size: $es-font-size-xs;\n margin-top: 0.25rem;\n}\n\n// Trait toggle button\n.trait-toggle {\n @include button-reset;\n display: inline-flex;\n align-items: center;\n gap: 0.25rem;\n padding: 0.375rem 0.75rem;\n font-size: $es-font-size-xs;\n font-weight: $es-font-weight-medium;\n color: $es-text-secondary;\n background: $es-white;\n border: 1px solid $es-border-color;\n border-radius: $es-radius-md;\n transition: all $es-transition-fast;\n\n &:hover {\n background: $es-slate-50;\n border-color: $es-gray-300;\n }\n\n &.active {\n color: $es-primary;\n border-color: $es-primary;\n background: $es-primary-light;\n }\n}\n\n// =============================================================================\n// Trait Body\n// =============================================================================\n\n.condition-trait-body {\n padding: $es-spacing-lg;\n border-radius: 0 0 $es-radius-lg $es-radius-lg;\n background: $es-white;\n animation: slideDown 0.2s ease-out;\n}\n\n// Condition trait collapsed - hide body\n.condition-trait.collapsed .condition-trait-body {\n display: none;\n}\n\n// =============================================================================\n// Section Styles\n// =============================================================================\n\n.schedule-section,\n.context-section {\n margin-bottom: 1.25rem;\n padding-bottom: 1.25rem;\n border-bottom: 1px solid $es-slate-100;\n\n &:last-child {\n margin-bottom: 0;\n padding-bottom: 0;\n border-bottom: 0;\n }\n}\n\n.section-label {\n display: flex;\n align-items: center;\n gap: 0.5rem;\n font-size: 13px;\n font-weight: $es-font-weight-semibold;\n color: $es-slate-600;\n margin-bottom: $es-spacing-md;\n\n i {\n font-size: $es-font-size-sm;\n color: $es-slate-400;\n margin-right: 0.25rem;\n }\n}\n\n.section-content {\n // Container for section content\n}\n\n.section-hint {\n margin-top: 0.5rem;\n font-size: 11px;\n color: $es-slate-400;\n}\n\n// =============================================================================\n// Full-width Form Group Override\n// =============================================================================\n\n.form-group.condition-trait-fullwidth {\n display: block !important;\n\n > .control-label {\n display: none !important;\n }\n\n > .col-lg-8,\n > .col-lg-8.col-lg-offset-3 {\n width: 100% !important;\n max-width: 100% !important;\n flex: 0 0 100% !important;\n padding-left: $es-spacing-lg !important;\n padding-right: $es-spacing-lg !important;\n margin: 0 !important;\n margin-left: 0 !important;\n }\n}\n\n// Condition traits group label\n.condition-traits-group-label {\n font-size: $es-font-size-sm;\n font-weight: $es-font-weight-semibold;\n color: $es-slate-700;\n margin-bottom: $es-spacing-md;\n}\n\n.condition-traits-wrapper {\n display: flex;\n flex-direction: column;\n gap: $es-spacing-md;\n}\n\n// =============================================================================\n// Animations\n// =============================================================================\n\n@keyframes slideDown {\n from {\n opacity: 0;\n transform: translateY(-10px);\n }\n to {\n opacity: 1;\n transform: translateY(0);\n }\n}\n","/**\n * Combination Attributes Picker Component\n * Product attribute combination selection styles\n */\n\n@use '../variables' as *;\n@use '../mixins' as *;\n\n.target-conditions-trait,\n.entity-selector-trait {\n\n // Main container\n .combination-attributes-picker {\n display: flex;\n flex-direction: column;\n gap: 0.625rem;\n }\n\n // Mode toggle (Any/All)\n .combination-mode-toggle {\n display: inline-flex;\n gap: 0.25rem;\n padding: 0.125rem;\n background: $es-slate-100;\n border-radius: $es-radius-md;\n margin-bottom: 0.5rem;\n }\n\n .combination-mode-option {\n display: flex;\n align-items: center;\n gap: 0.25rem;\n cursor: pointer;\n font-size: 11px;\n color: $es-text-muted;\n padding: 0.25rem 0.625rem;\n border-radius: $es-radius-sm;\n transition: all $es-transition-fast;\n\n input[type=\"radio\"] {\n display: none;\n }\n\n .mode-label {\n user-select: none;\n }\n\n &:hover {\n color: $es-primary;\n background: rgba($es-primary, 0.1);\n }\n\n &:has(input[type=\"radio\"]:checked) {\n background: $es-primary;\n color: $es-white;\n font-weight: $es-font-weight-medium;\n }\n }\n\n // Groups container\n .combination-groups-container {\n display: flex;\n flex-wrap: wrap;\n gap: $es-spacing-md;\n }\n\n // Loading/Empty/Error states\n .combination-loading,\n .combination-empty,\n .combination-error {\n color: $es-text-muted;\n font-style: italic;\n padding: 0.5rem;\n }\n\n .combination-error {\n color: $es-danger;\n }\n\n // Section header\n .combinations-section {\n margin-bottom: $es-spacing-md;\n }\n\n .combinations-header {\n display: flex;\n align-items: center;\n justify-content: space-between;\n margin-bottom: $es-spacing-sm;\n }\n\n .combinations-label {\n font-size: $es-font-size-xs;\n font-weight: $es-font-weight-medium;\n color: $es-text-muted;\n }\n\n .combinations-help {\n font-size: 11px;\n color: $es-slate-400;\n }\n\n // Toggle combinations button\n .btn-toggle-combinations {\n @include button-reset;\n display: inline-flex;\n align-items: center;\n gap: 0.25rem;\n padding: 0.25rem 0.5rem;\n font-size: $es-font-size-xs;\n color: $es-primary;\n background: transparent;\n border: 1px solid $es-primary;\n border-radius: $es-radius-sm;\n transition: all $es-transition-fast;\n\n &:hover {\n background: $es-primary-light;\n }\n }\n\n .btn-remove-combinations {\n @include button-reset;\n display: inline-flex;\n align-items: center;\n gap: 0.25rem;\n padding: 0.25rem 0.5rem;\n font-size: $es-font-size-xs;\n color: $es-danger;\n background: transparent;\n\n &:hover {\n text-decoration: underline;\n }\n }\n\n // =============================================================================\n // Attribute Group\n // =============================================================================\n\n .comb-attr-group {\n flex: none;\n min-width: 120px;\n max-width: 200px;\n background: $es-white;\n border: 1px solid $es-gray-300;\n border-radius: $es-radius-sm;\n overflow: hidden;\n\n &.has-selections {\n border-color: $es-primary;\n }\n }\n\n .comb-attr-group-header {\n display: flex;\n justify-content: space-between;\n align-items: center;\n padding: 0.375rem 0.625rem;\n background: $es-slate-100;\n border-bottom: 1px solid $es-gray-300;\n font-weight: $es-font-weight-semibold;\n font-size: $es-font-size-xs;\n color: $es-slate-800;\n\n .comb-attr-group.has-selections & {\n background: $es-cyan-50;\n border-bottom-color: $es-cyan-200;\n }\n }\n\n .comb-attr-group-name {\n flex: 1;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n }\n\n .comb-attr-group-count {\n flex-shrink: 0;\n min-width: 18px;\n height: 18px;\n padding: 0 0.25rem;\n background: $es-gray-300;\n border-radius: $es-radius-full;\n font-size: 11px;\n font-weight: $es-font-weight-semibold;\n line-height: 18px;\n text-align: center;\n color: $es-text-muted;\n\n .comb-attr-group.has-selections & {\n background: $es-primary;\n color: $es-white;\n }\n }\n\n // Toolbar\n .comb-attr-toolbar {\n display: flex;\n align-items: center;\n gap: 0.25rem;\n padding: 0.25rem 0.375rem;\n background: $es-slate-50;\n border-bottom: 1px solid $es-slate-100;\n }\n\n .comb-toolbar-btn {\n @include button-reset;\n display: flex;\n align-items: center;\n justify-content: center;\n width: 22px;\n height: 22px;\n padding: 0;\n background: $es-white;\n border: 1px solid $es-gray-300;\n border-radius: $es-radius-sm;\n color: $es-text-muted;\n cursor: pointer;\n font-size: $es-font-size-xs;\n transition: all $es-transition-fast;\n\n &:hover {\n background: $es-slate-100;\n border-color: $es-slate-400;\n color: $es-slate-800;\n }\n }\n\n .comb-attr-search {\n flex: 1;\n min-width: 60px;\n padding: 0.125rem 0.375rem;\n border: 1px solid $es-gray-300;\n border-radius: $es-radius-sm;\n font-size: 11px;\n outline: none;\n\n &:focus {\n border-color: $es-primary;\n }\n\n &::placeholder {\n color: $es-slate-400;\n }\n }\n\n // Values container\n .comb-attr-values {\n display: flex;\n flex-wrap: wrap;\n gap: 0.25rem;\n padding: 0.375rem;\n max-height: 150px;\n overflow-y: auto;\n @include custom-scrollbar;\n }\n\n .comb-attr-loading,\n .comb-attr-empty,\n .comb-attr-error {\n width: 100%;\n text-align: center;\n color: $es-slate-400;\n font-size: 11px;\n padding: 0.25rem;\n }\n\n .comb-attr-error {\n color: $es-danger;\n }\n\n // Individual value\n .comb-attr-value {\n display: inline-flex;\n align-items: center;\n gap: 0.25rem;\n padding: 0.125rem 0.5rem;\n background: $es-white;\n border: 1px solid $es-slate-400;\n border-radius: 0.75rem;\n font-size: 11px;\n color: $es-slate-600;\n cursor: pointer;\n transition: all $es-transition-fast;\n white-space: nowrap;\n\n &:hover {\n background: $es-slate-100;\n border-color: $es-text-muted;\n }\n\n &.selected {\n background: $es-primary;\n border-color: $es-primary-hover;\n color: $es-white;\n\n &:hover {\n background: $es-primary-hover;\n border-color: darken($es-primary-hover, 5%);\n }\n }\n }\n\n .comb-attr-value-count {\n font-size: 9px;\n color: $es-slate-400;\n background: $es-slate-100;\n padding: 1px 0.25rem;\n border-radius: 0.5rem;\n min-width: 14px;\n text-align: center;\n\n .comb-attr-value.selected & {\n color: $es-white;\n background: rgba(255, 255, 255, 0.3);\n }\n }\n\n // =============================================================================\n // Combination Conditions (Row-based)\n // =============================================================================\n\n .combination-conditions-container {\n display: flex;\n flex-direction: column;\n gap: $es-spacing-sm;\n }\n\n .combination-condition-row {\n display: flex;\n align-items: center;\n gap: $es-spacing-sm;\n padding: $es-spacing-sm;\n background: $es-slate-50;\n border-radius: $es-radius-sm;\n }\n\n .combination-group-select,\n .combination-values-select {\n flex: 1;\n min-width: 120px;\n }\n\n .combination-equals {\n font-size: $es-font-size-xs;\n color: $es-text-muted;\n padding: 0 0.25rem;\n }\n\n .btn-add-combination-condition {\n @include button-reset;\n display: inline-flex;\n align-items: center;\n gap: 0.25rem;\n padding: 0.375rem 0.75rem;\n font-size: $es-font-size-xs;\n font-weight: $es-font-weight-medium;\n color: $es-primary;\n background: transparent;\n border: 1px dashed $es-primary;\n border-radius: $es-radius-sm;\n transition: all $es-transition-fast;\n\n &:hover {\n background: $es-primary-light;\n }\n\n i {\n font-size: 10px;\n }\n }\n\n .btn-remove-combination-row {\n @include button-reset;\n display: flex;\n align-items: center;\n justify-content: center;\n width: 24px;\n height: 24px;\n color: $es-text-muted;\n border-radius: $es-radius-sm;\n transition: all $es-transition-fast;\n\n &:hover {\n background: rgba($es-danger, 0.1);\n color: $es-danger;\n }\n\n i {\n font-size: 12px;\n }\n }\n}\n","/**\n * Method Dropdown Component\n * Custom select dropdown with icons for method selection\n */\n\n@use '../variables' as *;\n@use '../mixins' as *;\n\n.target-conditions-trait,\n.entity-selector-trait {\n\n // Method dropdown trigger button\n .method-dropdown-trigger {\n display: inline-flex;\n align-items: center;\n gap: 0.5rem;\n height: 36px;\n padding: 0 $es-spacing-md;\n border-radius: $es-radius-md;\n background: $es-white;\n color: $es-slate-800;\n font-size: $es-font-size-sm;\n cursor: pointer;\n transition: all $es-transition-fast;\n min-width: 180px;\n max-width: 320px;\n border: 1px solid $es-border-color;\n\n &:hover {\n background: $es-slate-50;\n border-color: $es-gray-300;\n }\n\n &:focus,\n &:active {\n outline: none;\n border-color: $es-primary;\n box-shadow: 0 0 0 3px rgba($es-primary, 0.1);\n }\n }\n\n .method-trigger-icon {\n font-size: $es-font-size-sm;\n color: $es-text-muted;\n flex-shrink: 0;\n width: 18px;\n text-align: center;\n }\n\n .method-trigger-label {\n flex: 1;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n font-weight: $es-font-weight-medium;\n }\n\n .method-trigger-caret {\n font-size: $es-font-size-xs;\n color: $es-slate-400;\n flex-shrink: 0;\n margin-left: auto;\n }\n\n // Locked state\n .selector-locked .method-dropdown-trigger {\n background: $es-slate-100;\n color: $es-slate-400;\n cursor: not-allowed;\n border-color: $es-border-color;\n\n &:hover {\n background: $es-slate-100;\n border-color: $es-border-color;\n }\n }\n\n // Method selector wrapper\n .method-selector-wrapper {\n position: relative;\n }\n\n // Hidden select (for form submission)\n .method-select-hidden {\n position: absolute !important;\n opacity: 0 !important;\n pointer-events: none !important;\n width: 0 !important;\n height: 0 !important;\n overflow: hidden !important;\n }\n}\n\n// Global fallback for hidden method selects\n.method-select-hidden {\n position: absolute !important;\n opacity: 0 !important;\n pointer-events: none !important;\n width: 0 !important;\n height: 0 !important;\n overflow: hidden !important;\n}\n\n// =============================================================================\n// Method Dropdown Menu (appended to body, outside trait wrappers)\n// =============================================================================\n\n.method-dropdown-menu {\n position: absolute;\n z-index: $es-z-dropdown + 1;\n min-width: 200px;\n max-width: 360px;\n max-height: 400px;\n overflow-y: auto;\n background: $es-white;\n border-radius: $es-radius-lg;\n padding: 0.375rem 0;\n border: 1px solid $es-border-color;\n box-shadow: 0 10px 40px rgba(0, 0, 0, 0.15);\n animation: methodDropdownFadeIn 0.15s ease;\n @include custom-scrollbar;\n}\n\n@keyframes methodDropdownFadeIn {\n from {\n opacity: 0;\n transform: translateY(-4px);\n }\n to {\n opacity: 1;\n transform: translateY(0);\n }\n}\n\n// Method dropdown item\n.method-dropdown-item {\n display: flex;\n align-items: center;\n gap: 0.625rem;\n padding: 0.5rem $es-spacing-md;\n cursor: pointer;\n transition: background-color 0.1s;\n position: relative;\n\n &:hover {\n background: $es-slate-100;\n }\n\n &.selected {\n background: rgba($es-primary, 0.08);\n }\n\n .method-item-icon {\n font-size: $es-font-size-sm;\n color: $es-text-muted;\n width: 18px;\n text-align: center;\n flex-shrink: 0;\n }\n\n &.selected .method-item-icon {\n color: $es-primary;\n }\n\n .method-item-label {\n flex: 1;\n font-size: $es-font-size-sm;\n color: $es-slate-700;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n }\n\n &.selected .method-item-label {\n color: $es-cyan-700;\n font-weight: $es-font-weight-medium;\n }\n\n .method-item-check {\n font-size: $es-font-size-xs;\n flex-shrink: 0;\n margin-left: auto;\n color: $es-primary;\n }\n}\n\n// Method dropdown optgroup\n.method-dropdown-optgroup {\n margin-top: 0.25rem;\n\n &:first-child {\n margin-top: 0;\n }\n}\n\n.method-optgroup-label {\n padding: 0.5rem $es-spacing-md;\n font-size: 11px;\n font-weight: $es-font-weight-semibold;\n color: $es-text-muted;\n text-transform: uppercase;\n letter-spacing: 0.05em;\n background: $es-slate-50;\n border-top: 1px solid $es-slate-100;\n border-bottom: 1px solid $es-slate-100;\n\n .method-dropdown-optgroup:first-child & {\n border-top: 0;\n }\n}\n\n.method-optgroup-items {\n padding: 0.25rem 0;\n\n .method-dropdown-item {\n padding-left: $es-spacing-lg;\n }\n}\n\n// Method info placeholder\n.method-info-placeholder {\n font-size: $es-font-size-xs;\n color: $es-text-muted;\n font-style: italic;\n}\n","/**\n * Tooltip Component\n * Info tooltips and help popovers\n */\n\n@use '../variables' as *;\n@use '../mixins' as *;\n\n// =============================================================================\n// MPR Info Wrapper (hover 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.5rem;\n}\n\n// Tooltip (absolute positioned, follows element)\n.mpr-info-wrapper .mpr-tooltip {\n position: absolute;\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.625;\n white-space: normal;\n z-index: 1050;\n max-width: 350px;\n min-width: 200px;\n text-align: left;\n bottom: calc(100% + 10px);\n left: 50%;\n transform: translateX(-50%);\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\n // Arrow (border)\n &::before {\n content: '';\n position: absolute;\n top: 100%;\n left: 50%;\n transform: translateX(-50%);\n border: 9px solid transparent;\n border-top-color: rgba(64, 68, 82, 0.16);\n }\n\n // Arrow (fill)\n &::after {\n content: '';\n position: absolute;\n top: 100%;\n left: 50%;\n transform: translateX(-50%);\n border: 8px solid transparent;\n border-top-color: $es-white;\n }\n\n strong {\n display: block;\n margin-bottom: 0.5rem;\n font-weight: $es-font-weight-semibold;\n color: #337ab7;\n }\n\n p {\n margin: 0;\n color: $es-text-secondary;\n }\n}\n\n// =============================================================================\n// Fixed Tooltip (appended to body)\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.625;\n white-space: normal;\n z-index: 10500;\n max-width: 350px;\n min-width: 200px;\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\n strong {\n display: block;\n margin-bottom: 0.5rem;\n font-weight: $es-font-weight-semibold;\n color: #337ab7;\n }\n\n p {\n margin: 0;\n color: $es-text-secondary;\n }\n}\n\n// =============================================================================\n// Tooltip Content Styling\n// =============================================================================\n\n.tooltip-list {\n margin: 0.5rem 0;\n\n > div {\n margin: 0.25rem 0;\n padding-left: 0.5rem;\n }\n}\n\n.tooltip-example {\n font-family: monospace;\n font-size: 12px;\n background: $es-slate-100;\n padding: 0.25rem 0.5rem;\n border-radius: $es-radius-sm;\n margin: 0.25rem 0;\n}\n\n.tooltip-logic {\n font-size: 11px;\n color: $es-text-muted;\n margin-top: 0.5rem;\n padding-top: 0.5rem;\n border-top: 1px solid $es-border-color;\n}\n","/**\n * Category Tree Component\n * Hierarchical tree view for category selection inside dropdown\n */\n\n@use '../variables' as *;\n@use '../mixins' as *;\n\n// Category tree container (inside dropdown)\n.category-tree {\n display: flex;\n flex-direction: column;\n}\n\n// Tree toolbar inside dropdown\n.category-tree .tree-toolbar {\n display: flex;\n align-items: center;\n gap: $es-spacing-sm;\n padding: $es-spacing-xs $es-spacing-sm;\n background: $es-slate-50;\n border-bottom: 1px solid $es-border-light;\n flex-shrink: 0;\n\n .btn-expand-all,\n .btn-collapse-all {\n @include button-reset;\n display: inline-flex;\n align-items: center;\n gap: 0.25rem;\n padding: $es-spacing-xs $es-spacing-sm;\n font-size: $es-font-size-xs;\n font-weight: $es-font-weight-medium;\n color: $es-text-secondary;\n background: $es-white;\n border: 1px solid $es-border-color;\n border-radius: $es-radius-sm;\n transition: all $es-transition-fast;\n\n &:hover {\n background: $es-slate-100;\n border-color: $es-slate-300;\n }\n\n i {\n font-size: 12px;\n }\n }\n}\n\n// Tree items container\n.category-tree .tree-items {\n padding: 0;\n}\n\n// Tree item\n.tree-item {\n display: flex;\n align-items: center;\n gap: $es-spacing-xs;\n padding: $es-spacing-xs $es-spacing-sm;\n cursor: pointer;\n transition: background $es-transition-fast;\n border-radius: 0;\n\n &:hover {\n background: $es-slate-100;\n }\n\n &.selected {\n background: $es-primary-light;\n\n .tree-name {\n font-weight: $es-font-weight-semibold;\n color: $es-primary;\n }\n\n .tree-checkbox {\n color: $es-primary;\n\n i {\n opacity: 1;\n }\n }\n }\n\n &.inactive {\n opacity: 0.6;\n\n .tree-name {\n font-style: italic;\n }\n }\n\n &.filtered-out {\n display: none;\n }\n\n &.filter-match {\n background: $es-warning-light;\n\n &.selected {\n background: $es-primary-light;\n }\n }\n}\n\n// All tree element styles nested under .category-tree for specificity\n.category-tree {\n // Tree indentation\n .tree-indent {\n flex-shrink: 0;\n }\n\n // Tree toggle (expand/collapse)\n .tree-toggle {\n display: flex;\n align-items: center;\n justify-content: center;\n width: 12px;\n height: 12px;\n box-sizing: border-box;\n color: $es-text-secondary;\n flex-shrink: 0;\n border-radius: $es-radius-sm;\n transition: all $es-transition-fast;\n cursor: pointer;\n\n &:hover {\n background: $es-slate-200;\n color: $es-text-primary;\n }\n\n &.tree-leaf {\n cursor: default;\n visibility: hidden;\n\n &:hover {\n background: transparent;\n }\n }\n\n i {\n font-size: 10px;\n transition: transform $es-transition-fast;\n }\n }\n\n .tree-item.collapsed > .tree-toggle i {\n transform: rotate(-90deg);\n }\n\n // Tree checkbox indicator - 12x12 to match PrestaShop admin standards\n .tree-checkbox {\n display: flex;\n align-items: center;\n justify-content: center;\n width: 12px;\n height: 12px;\n box-sizing: border-box;\n flex-shrink: 0;\n border: 1px solid $es-border-color;\n border-radius: 2px;\n background: $es-white;\n\n i {\n font-size: 8px;\n opacity: 0;\n color: $es-white;\n transition: opacity $es-transition-fast;\n }\n }\n\n .tree-item.selected .tree-checkbox {\n background: $es-primary;\n border-color: $es-primary;\n\n i {\n opacity: 1;\n }\n }\n\n // Tree icon\n .tree-icon {\n display: flex;\n align-items: center;\n justify-content: center;\n width: 12px;\n height: 12px;\n box-sizing: border-box;\n color: $es-text-muted;\n flex-shrink: 0;\n\n i {\n font-size: 12px; // match visual weight of other icons\n }\n }\n\n .tree-item.selected .tree-icon {\n color: $es-primary;\n }\n\n // Tree name\n .tree-name {\n flex: 1;\n font-size: $es-font-size-sm;\n color: $es-text-primary;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n }\n\n // Tree product/page count with preview\n .tree-count {\n @include count-badge($es-primary);\n height: 18px;\n min-width: 18px;\n padding: 0 $es-spacing-sm;\n\n i {\n font-size: 10px;\n }\n\n &.clickable {\n &.loading {\n pointer-events: none;\n\n i {\n animation: spin 1s linear infinite;\n }\n }\n\n &.popover-open {\n background: darken($es-primary, 10%);\n }\n }\n }\n\n // Select children button - positioned on the left next to toggle\n .btn-select-children {\n @include button-reset;\n display: inline-flex;\n align-items: center;\n justify-content: center;\n width: 12px;\n height: 12px;\n box-sizing: border-box;\n color: $es-text-muted;\n border-radius: $es-radius-sm;\n opacity: 0.3;\n transition: all $es-transition-fast;\n flex-shrink: 0;\n\n i {\n font-size: 14px; // larger to visually match other icons\n }\n\n &:hover {\n color: $es-primary;\n opacity: 1;\n }\n }\n\n .tree-item:hover .btn-select-children {\n opacity: 0.6;\n }\n\n // Tree badge (inactive, etc.)\n .tree-badge {\n display: inline-flex;\n align-items: center;\n padding: 0.125rem $es-spacing-xs;\n font-size: 9px;\n font-weight: $es-font-weight-semibold;\n text-transform: uppercase;\n letter-spacing: 0.025em;\n border-radius: $es-radius-sm;\n flex-shrink: 0;\n\n &.inactive {\n color: $es-warning;\n background: $es-warning-light;\n }\n }\n\n // Tree children container\n .tree-children {\n display: block;\n\n &.filter-expanded {\n display: block !important;\n }\n }\n\n .tree-item.collapsed + .tree-children {\n display: none;\n }\n\n // Filtering - must be inside .category-tree for specificity\n .tree-item.filtered-out {\n display: none !important;\n }\n} // end .category-tree\n\n// Loading/empty/error states\n.category-tree .tree-loading,\n.category-tree .dropdown-empty,\n.category-tree .dropdown-error {\n display: flex;\n align-items: center;\n justify-content: center;\n padding: $es-spacing-xl;\n color: $es-text-muted;\n font-size: $es-font-size-sm;\n\n i {\n margin-right: $es-spacing-sm;\n }\n}\n\n.category-tree .dropdown-error {\n color: $es-danger;\n}\n\n// Tree view mode in dropdown\n.target-search-dropdown.view-tree {\n .dropdown-results {\n padding: 0;\n }\n\n .category-tree {\n max-height: 100%;\n overflow-y: auto;\n @include custom-scrollbar;\n }\n\n .tree-items {\n max-height: calc(100% - 40px);\n overflow-y: auto;\n @include custom-scrollbar;\n }\n}\n"]}