{"version":3,"file":"spend-rules-list.css","mappings":"AAIA,4BACC,gBAEA,yDACC,gBACA,YAIF,kCACC,aACA,sBACA,QAGD,kCACC,aACA,sBACA,uBACA,iBACA,YACA,yBACA,eACA,kBACA,gBACA,qCAEA,sFAEC,yBAGD,yCACC,yBAIF,yCACC,aACA,mBACA,QACA,WACA,kBAGD,uCACC,eACA,cAGD,wCACC,eACA,gBACA,cACA,4FAID,8CACC,eACA,cACA,iBAGD,mCACC,aACA,cACA,eACA,kB;AClED,qBACC,oBACA,mBACA,QACA,gBACA,yBACA,yBACA,kBACA,yBACA,kBACA,oBACA,iBACA,wBACA,gBACA,cAEA,2BACC,yBACA,qBACA,wCAIF,2BACC,gBACA,cACA,WAGD,4BACC,kBACA,cACA,mBAUA,gJACC,sB;AC2BF,iCACC,KACC,4BCzEF,gCACC,aACA,sBACA,SAGD,yCDIC,4DACA,iBATyB,CAUzB,kBACA,gBACA,YAEA,gDACC,WACA,kBACA,QACA,4BAEA,0HAOA,+CAEA,uCAfD,gDAgBE,gBAKD,wDACC,aAWF,yCACC,qCAGD,gDACC,qCAGD,uCACC,yCACC,qCAGD,gDACC,sC;AEzDH,WAEC,6CACA,+CACA,kBAGA,iBAGA,aACA,sBAGA,kBAGA,+BACA,6BAGA,2CACC,oDACA,qCAOD,qBAEC,oBAEA,2BACC,eACA,gBAQF,oBACC,iBAEA,wCACC,uBAGD,sCACC,WACA,YACA,mBAGD,sCACC,eACA,gBAGD,qCACC,eAGD,wCACC,kBACA,gBASH,oBAEC,OACA,aACA,sBACA,mBACA,uBACA,uBACA,kBAOD,kBACC,WACA,YACA,kBACA,aACA,mBACA,uBACA,sCAEA,sBACC,WACA,YAGD,sBACC,WACA,YACA,mBAQF,kBAEC,eACA,gBACA,gBACA,iBACA,wCAGA,gBACA,aACA,mBACA,uBAGA,mGAGC,kBACA,oBACA,oBACA,mBACA,uBACA,wBACA,uBACA,oBAEA,iBACA,wCACA,gBACA,aACA,mBACA,uBAQF,iBACC,eACA,gBACA,cACA,iBAGA,0BACC,yCAID,0BACC,yCAID,uBACC,oBACA,mBACA,uBACA,mBACA,eACA,gBACA,yCACA,2CACA,qBAID,8BACC,gBACA,oBAQF,wBAEC,eACA,gBACA,uCACA,iBACA,kBAGA,+GAGC,oBACA,mBACA,uBACA,wBACA,uBACA,oBAEA,iBAEA,uCACA,iBACA,kBAQF,oBAEC,mDACA,kBACA,gBACA,aACA,sBACA,UACA,mBACA,uBACA,+CACA,0BAGA,mFAEC,gBACA,WACA,gBAGA,mHACC,aACA,mBACA,uBACA,eACA,oBAEA,2HACC,cAKF,6HACC,yCACA,2CAEA,yIACC,UAKF,iIACC,sCACA,wCAEA,6IACC,UAUJ,kBACC,uCACA,eACA,eACA,kBAOD,oBACC,yCACA,2CACA,eACA,eACA,iBACA,kBACA,kBACA,gBAOD,kBACC,kBACA,SACA,WACA,uBACA,kBACA,gBACA,cACA,qBACA,UAGA,mCACA,iDAGA,6BAOD,yBACC,iBACA,uCACA,kBACA,kBAOD,qBACC,oBAEA,8DACC,+DAIF,sCACC,QAEC,UAED,IACC,YAQF,yBACC,WACC,gBAEA,oBACC,iB;AClXH,4CACC,mBACA,oBACA,UACA,YACA,uBACA,kBACA,kBACA,iCAGA,sBACA,eAEA,kDACC,+BACA,mBAGD,gFACC,cAGA,kBACA,iBAEA,oFACC,kBAUF,6EACC,yBACA,mBACA,mBAEA,mFACC,WAKF,kHAEC,yBACA,mBAEA,0IACC,wCAGD,8HACC,WAUD,iGACC,WAKF,kFACC,gDACA,uCAEA,uGACC,WAQF,qDACC,mBAEA,yFACC,WAcF,8DACC,qCACA,mCACA,YACA,mBACA,kBACA,gBACA,gBACA,eACA,iBACA,uBACA,oBACA,qBACA,mBACA,gBACA,oBACA,mBACA,uBAEA,oFACC,qCACA,mCACA,WAGD,wEACC,WACA,mBAQF,+DACC,mBACA,kBACA,YAEA,oEACC,uBAWF,iFACC,oDACA,sDACA,eAEA,uFACC,UAIF,mFACC,iDACA,mDACA,eAEA,yFACC,UAIF,kFACC,qDACA,uDACA,eAEA,wFACC,U;AClMH,kBACC,aACA,oBACA,mBACA,gBACA,gDACA,oBAEA,kDACC,cACA,aACA,mBACA,sBACA,8CACA,sDAGD,2CACC,SACA,UACA,yBACA,YACA,sBACA,mBACA,gBACA,qBACA,yBACA,wCACA,gBAKD,gDACC,cACA,oCACA,uCACA,iBACA,mBAMD,8DACC,aACA,oBACA,cAEA,gGACC,qCACA,wCACA,aACA,mBACA,uBACA,WACA,mBACA,UAEA,oGACC,WACA,YAIF,+FACC,aACA,mBACA,uBACA,wFACA,SACA,yCACA,WACA,eACA,WACA,UACA,gCACA,0BACA,6BACA,SAEA,oHACC,yDAGD,wGACC,WACA,mBAGD,mGACC,WACA,YAOJ,cACC,kBACA,UACA,WACA,UACA,YACA,gBACA,sBACA,mBACA,e;AC5GD,qBACC,eACA,QACA,2BACA,aACA,mBACA,uBACA,eACA,aACA,2CAGD,YACC,kBACA,gBACA,mBACA,aACA,WACA,gBACA,8BACA,gBACA,aACA,sBACA,SACA,uCACA,0CAEA,kBACC,aAIF,oBACC,aACA,mBACA,8BACA,SAGD,mBACC,SACA,gBACA,eACA,iBACA,uBACA,WACA,sBAGD,mBACC,cACA,oBACA,mBACA,uBACA,WACA,YACA,wBACA,UACA,yBACA,YACA,oBACA,WACA,eACA,sCAEA,0DAEC,2BAGD,iCACC,uBACA,mBAIF,kBACC,aACA,sBACA,SAGD,8BACC,KACC,UAED,GACC,WAIF,6BACC,KACC,UACA,sCAED,GACC,UACA,kC;ACnFF,uBACC,WAGD,6BACC,aACA,WACA,SACA,UAIA,0BARD,6BASE,iDAGD,yBAZD,6BAaE,sCAQD,wCACC,iCAEA,gBACA,YACA,kBACA,aACA,SACA,aACA,gBACA,4DAEA,wEACC,2BACA,sCACA,2BAWD,+DACC,WACA,YACA,iDACA,SACA,kBACA,gBACA,cAEA,mEACC,WACA,YACA,iBACA,kBACA,gBAGD,mEACC,WACA,YAKF,iEACC,cACA,UACA,uBACA,gBACA,QAGD,0DACC,SACA,aACA,cACA,gBACA,gBACA,yBACA,eACA,gBACA,WAGD,gEACC,SACA,gBACA,eACA,gBACA,uCAID,oEACC,SACA,eACA,gBACA,WAID,iEACC,gBACA,yBACA,UACA,aACA,WACA,oBASH,kEACC,WAMD,gCACC,aACA,sBACA,QACA,WAGD,qCACC,aACA,mBACA,8BACA,SAGD,sCACC,eACA,gBACA,WAGD,2CACC,cACA,gBACA,eACA,cACA,WACA,kCACA,mBAGD,oCACC,kBACA,WACA,WACA,yBACA,mBACA,gBAGD,qCACC,kBACA,MACA,OACA,YACA,sBACA,mBACA,8BAMD,4FAGC,aACA,kBACA,cAGD,8BACC,cAGD,oCACC,aACA,sBACA,mBACA,uBACA,WACA,kBACA,iBACA,kBAEA,sCACC,SACA,mBACA,gBACA,cACA,gBACA,gBAGD,kEACC,gBAQD,4BACC,aACA,mBACA,QACA,aACA,2BACA,kBAGD,kCACC,cACA,WACA,YACA,sBACA,gBACA,gBACA,aACA,mBACA,uBAEA,4EAEC,WACA,YACA,iBACA,cAIF,iCACC,aACA,sBACA,QACA,YAGD,kCACC,SACA,gBACA,eACA,mBACA,WACA,sBAGD,iCACC,SACA,gBACA,eACA,iBACA,WAGD,0BACC,aACA,sBACA,QAGD,gCACC,SACA,gBACA,eACA,iBACA,WAGD,+BACC,SACA,gBACA,eACA,iBACA,WAID,+BACC,aACA,mBACA,SAGD,iCACC,cACA,WACA,YACA,kBACA,gBACA,2BACA,aACA,mBACA,uBAEA,0EAEC,WACA,YACA,iBACA,cAIF,iCACC,SACA,gBACA,eACA,gBACA,WACA,sBAGD,yBACC,aACA,mBACA,8BACA,SACA,4BACA,mBACA,kBAGD,8BACC,aACA,sBACA,QACA,YAGD,+BACC,gBACA,eACA,iBACA,WAGD,+BACC,oBACA,gBACA,eACA,iBACA,WACA,yBACA,UACA,iBACA,oBACA,gBACA,mBACA,gBACA,uBAGD,6DACC,cACA,YACA,WACA,YACA,kBACA,kBACA,gBACA,WACA,2BACA,gBACA,eACA,cACA,oBACA,iBACA,mBACA,gBAEA,mFACC,gBACA,WACA,WAIF,4BACC,SACA,eACA,gBACA,WAGD,0BACC,SACA,eACA,gBACA,cAGD,qDACC,W;AC7aD,8CACC,cAEA,oDACC,eAKF,yFACC,mBAID,2DACC,0BACA,kBACA,mBAEA,8EACC,oBACA,2B","sources":["webpack://leat/./assets/ts/frontend/blocks/_shared/components/variable-autocomplete.scss","webpack://leat/./assets/ts/frontend/blocks/_shared/components/variable-badge.scss","webpack://leat/./assets/ts/frontend/blocks/_shared/_mixins.scss","webpack://leat/./assets/ts/frontend/blocks/_shared/skeleton/styles.scss","webpack://leat/./assets/ts/frontend/blocks/_shared/components/item/item.scss","webpack://leat/./assets/ts/frontend/blocks/_shared/button/styles.scss","webpack://leat/./assets/ts/frontend/blocks/_shared/components/coupon-code.scss","webpack://leat/./assets/ts/frontend/blocks/_shared/components/modal.scss","webpack://leat/./assets/ts/frontend/blocks/spend-rules-list/style.scss","webpack://leat/./assets/ts/frontend/blocks/spend-rules-list/editor.scss"],"sourcesContent":["/**\n * Variable Autocomplete Styles\n */\n\n.leat-variable-autocomplete {\n\tz-index: 1000000;\n\n\t.components-popover__content {\n\t\tmin-width: 280px;\n\t\tpadding: 4px;\n\t}\n}\n\n.leat-variable-autocomplete__list {\n\tdisplay: flex;\n\tflex-direction: column;\n\tgap: 2px;\n}\n\n.leat-variable-autocomplete__item {\n\tdisplay: flex;\n\tflex-direction: column;\n\talign-items: flex-start;\n\tpadding: 8px 12px;\n\tborder: none;\n\tbackground: transparent;\n\tcursor: pointer;\n\tborder-radius: 4px;\n\ttext-align: left;\n\ttransition: background-color 0.1s ease;\n\n\t&:hover,\n\t&.is-selected {\n\t\tbackground-color: #f0f7ff;\n\t}\n\n\t&:active {\n\t\tbackground-color: #e3f2ff;\n\t}\n}\n\n.leat-variable-autocomplete__item-header {\n\tdisplay: flex;\n\talign-items: center;\n\tgap: 8px;\n\twidth: 100%;\n\tmargin-bottom: 2px;\n}\n\n.leat-variable-autocomplete__item-icon {\n\tfont-size: 14px;\n\tline-height: 1;\n}\n\n.leat-variable-autocomplete__item-value {\n\tfont-size: 13px;\n\tfont-weight: 500;\n\tcolor: #1e1e1e;\n\tfont-family: 'SF Mono', Monaco, 'Cascadia Code', 'Roboto Mono', Consolas,\n\t\t'Courier New', monospace;\n}\n\n.leat-variable-autocomplete__item-description {\n\tfont-size: 12px;\n\tcolor: #757575;\n\tmargin-left: 22px; // Align with value (icon width + gap)\n}\n\n.leat-variable-autocomplete__empty {\n\tpadding: 12px;\n\tcolor: #757575;\n\tfont-size: 13px;\n\ttext-align: center;\n}\n","/**\n * Variable Badge Styles\n *\n * Used both in the editor (overlay) and on the frontend\n */\n\n.leat-variable-badge {\n\tdisplay: inline-flex;\n\talign-items: center;\n\tgap: 4px;\n\tpadding: 2px 8px;\n\tbackground-color: #f0f7ff;\n\tborder: 1px solid #b8daff;\n\tborder-radius: 4px;\n\ttransition: all 0.15s ease;\n\tfont-size: inherit;\n\tline-height: inherit;\n\tuser-select: none;\n\tvertical-align: baseline;\n\tfont-weight: 600;\n\tcolor: #0073aa;\n\n\t&:hover {\n\t\tbackground-color: #e3f2ff;\n\t\tborder-color: #9fc5f8;\n\t\tbox-shadow: 0 1px 3px rgba(0, 100, 200, 0.1);\n\t}\n}\n\n.leat-variable-badge__icon {\n\tfont-size: 0.85em;\n\tline-height: 1;\n\topacity: 0.8;\n}\n\n.leat-variable-badge__value {\n\tfont-size: inherit;\n\tline-height: 1;\n\twhite-space: nowrap;\n}\n\n// Make sure badges work well in headings and other contexts\nh1,\nh2,\nh3,\nh4,\nh5,\nh6 {\n\t.leat-variable-badge {\n\t\tvertical-align: middle;\n\t}\n}\n","/**\n * Shared SCSS Mixins\n *\n * Common mixins used across Leat frontend blocks\n */\n\n// Universal border radius variable (can be overridden)\n$universal-border-radius: 4px !default;\n\n/**\n * Skeleton animation mixin\n *\n * Creates an animated shimmer effect for loading states\n */\n@mixin skeleton-animation() {\n\tbackground: color-mix(in srgb, currentColor 5%, transparent);\n\tborder-radius: $universal-border-radius;\n\tposition: relative;\n\toverflow: hidden;\n\tborder: none;\n\n\t&::after {\n\t\tcontent: '';\n\t\tposition: absolute;\n\t\tinset: 0;\n\t\ttransform: translateX(-100%);\n\t\t/* stylelint-disable declaration-colon-newline-after, function-parentheses-space-inside, function-comma-space-after */\n\t\tbackground: linear-gradient(\n\t\t\t90deg,\n\t\t\ttransparent 0%,\n\t\t\tcolor-mix(in srgb, currentColor 5%, transparent) 50%,\n\t\t\ttransparent 100%\n\t\t);\n\t\t/* stylelint-enable */\n\t\tanimation: leat-skeleton-shimmer 1.25s infinite;\n\n\t\t@media (prefers-reduced-motion: reduce) {\n\t\t\tanimation: none;\n\t\t}\n\t}\n\n\t&--static {\n\t\t&::after {\n\t\t\tdisplay: none;\n\t\t}\n\t}\n}\n\n/**\n * Skeleton animation fade mixin\n *\n * Adds smooth transitions for skeleton appearance/disappearance\n */\n@mixin skeleton-animation-fade() {\n\t& {\n\t\ttransition: background-color 0.2s ease;\n\t}\n\n\t&::after {\n\t\ttransition: background-color 0.2s ease;\n\t}\n\n\t@media (prefers-reduced-motion: reduce) {\n\t\t& {\n\t\t\ttransition: background-color 0.2s ease;\n\t\t}\n\n\t\t&::after {\n\t\t\ttransition: background-color 0.2s ease;\n\t\t}\n\t}\n}\n\n/**\n * Skeleton shimmer animation\n */\n@keyframes leat-skeleton-shimmer {\n\t100% {\n\t\ttransform: translateX(100%);\n\t}\n}\n","/**\n * Skeleton Component Styles\n */\n@import '../mixins';\n\n.leat-block-components-skeleton {\n\tdisplay: flex;\n\tflex-direction: column;\n\tgap: 1rem;\n}\n\n.leat-block-components-skeleton__element {\n\t@include skeleton-animation();\n\t@include skeleton-animation-fade();\n}","/**\n * Item Component Styles\n *\n * Flexible card component for rule lists and similar layouts.\n * Based on earn-rules-list card design with enhanced flexibility.\n */\n\n// ============================================================================\n// Main Item Container\n// ============================================================================\n\n.leat-item {\n\t// Base card styles\n\tbackground: var(--leat-card-background, #fff);\n\tborder: 1px solid var(--leat-card-border, #ddd);\n\tborder-radius: 8px;\n\n\t// Fixed height for consistent grid alignment\n\tmin-height: 280px;\n\n\t// Flexbox layout with content area and fixed action zone\n\tdisplay: flex;\n\tflex-direction: column;\n\n\t// Position relative for badge positioning\n\tposition: relative;\n\n\t// Smooth transitions\n\tbox-shadow: 0 0 0 transparent;\n\ttransition: all 0.15s ease-out;\n\n\t// Hover state (not disabled)\n\t&:not(.leat-item--disabled):hover {\n\t\tborder-color: var(--leat-card-border-hover, #949494);\n\t\tbox-shadow: 0 2px 6px rgba(0, 0, 0, 0.05);\n\t}\n\n\t// ========================================================================\n\t// Variants\n\t// ========================================================================\n\n\t&--disabled {\n\t\t// opacity: 0.6;\n\t\tpointer-events: none;\n\n\t\t&:hover {\n\t\t\ttransform: none;\n\t\t\tbox-shadow: none;\n\t\t}\n\t}\n\n\t// ========================================================================\n\t// Sizes\n\t// ========================================================================\n\n\t&--compact {\n\t\tmin-height: 220px;\n\n\t\t.leat-item__content {\n\t\t\tpadding: 16px 16px 12px;\n\t\t}\n\n\t\t.leat-item__media {\n\t\t\twidth: 40px;\n\t\t\theight: 40px;\n\t\t\tmargin-bottom: 12px;\n\t\t}\n\n\t\t.leat-item__label {\n\t\t\tfont-size: 13px;\n\t\t\tmin-height: 32px;\n\t\t}\n\n\t\t.leat-item__meta {\n\t\t\tfont-size: 16px;\n\t\t}\n\n\t\t.leat-item__actions {\n\t\t\tpadding: 10px 12px;\n\t\t\tmin-height: 48px;\n\t\t}\n\t}\n}\n\n// ============================================================================\n// Item Content Area\n// ============================================================================\n\n.leat-item__content {\n\t// Grows to fill available space\n\tflex: 1;\n\tdisplay: flex;\n\tflex-direction: column;\n\talign-items: center;\n\tjustify-content: center;\n\tpadding: 24px 20px 16px;\n\ttext-align: center;\n}\n\n// ============================================================================\n// Item Media (Icon/Image)\n// ============================================================================\n\n.leat-item__media {\n\twidth: 48px;\n\theight: 48px;\n\tmargin: 0 0 16px 0;\n\tdisplay: flex;\n\talign-items: center;\n\tjustify-content: center;\n\tcolor: var(--leat-icon-color, #1e1e1e);\n\n\tsvg {\n\t\twidth: 100%;\n\t\theight: 100%;\n\t}\n\n\timg {\n\t\twidth: 100%;\n\t\theight: 100%;\n\t\tobject-fit: contain;\n\t}\n}\n\n// ============================================================================\n// Item Label (Heading)\n// ============================================================================\n\n.leat-item__label {\n\t// Default styles - will be overridden by block typography settings\n\tfont-size: 18px;\n\tfont-weight: 700;\n\tline-height: 1.4;\n\tmargin: 0 0 8px 0;\n\tcolor: var(--leat-text-primary, #1e1e1e);\n\n\t// Consistent minimum height for label text\n\tmin-height: 40px;\n\tdisplay: flex;\n\talign-items: center;\n\tjustify-content: center;\n\n\t// When inside WordPress blocks, inherit typography\n\t.wp-block-leat-earn-rules-list &,\n\t.wp-block-leat-spend-rules-list & {\n\t\t// Inherit typography from block wrapper\n\t\tfont-size: inherit;\n\t\tfont-family: inherit;\n\t\tfont-weight: inherit;\n\t\tfont-style: inherit;\n\t\ttext-transform: inherit;\n\t\ttext-decoration: inherit;\n\t\tletter-spacing: inherit;\n\t\tline-height: inherit;\n\t\t// Only keep layout and color styles\n\t\tmargin: 0 0 8px 0;\n\t\tcolor: var(--leat-text-primary, #1e1e1e);\n\t\tmin-height: 40px;\n\t\tdisplay: flex;\n\t\talign-items: center;\n\t\tjustify-content: center;\n\t}\n}\n\n// ============================================================================\n// Item Meta (Credits/Cost/Status)\n// ============================================================================\n\n.leat-item__meta {\n\tfont-size: 20px;\n\tfont-weight: 600;\n\tline-height: 1;\n\tmargin: 4px 0 0 0;\n\n\t// Default variant\n\t&--default {\n\t\tcolor: var(--leat-primary-color, #2271b1);\n\t}\n\n\t// Credits variant (earn points)\n\t&--credits {\n\t\tcolor: var(--leat-primary-color, #2271b1);\n\t}\n\n\t// Cost variant (spend points)\n\t&--cost {\n\t\tdisplay: inline-flex;\n\t\talign-items: center;\n\t\tjustify-content: center;\n\t\tpadding: 0.5rem 1rem;\n\t\tfont-size: 1rem;\n\t\tfont-weight: 700;\n\t\tcolor: var(--leat-success-color, #059669);\n\t\tbackground: var(--leat-success-bg, #d1fae5);\n\t\tborder-radius: 0.25rem;\n\t}\n\n\t// Coupon code variant\n\t&--coupon-code {\n\t\tmargin-top: 12px;\n\t\tpointer-events: auto; // Ensure coupon code is always interactive\n\t}\n}\n\n// ============================================================================\n// Item Description\n// ============================================================================\n\n.leat-item__description {\n\t// Default styles - will be overridden by block typography settings\n\tfont-size: 14px;\n\tline-height: 1.5;\n\tcolor: var(--leat-text-secondary, #666);\n\tmargin: 8px 0 0 0;\n\ttext-align: center;\n\n\t// When inside WordPress blocks, inherit typography\n\t.wp-block-leat-earn-rules-list &,\n\t.wp-block-leat-spend-rules-list & {\n\t\t// Inherit base typography from block wrapper\n\t\tfont-family: inherit;\n\t\tfont-style: inherit;\n\t\ttext-transform: inherit;\n\t\ttext-decoration: inherit;\n\t\tletter-spacing: inherit;\n\t\tline-height: inherit;\n\t\t// Keep description slightly smaller than label\n\t\tfont-size: 0.875em;\n\t\t// Only keep layout and color styles\n\t\tcolor: var(--leat-text-secondary, #666);\n\t\tmargin: 8px 0 0 0;\n\t\ttext-align: center;\n\t}\n}\n\n// ============================================================================\n// Item Actions Zone\n// ============================================================================\n\n.leat-item__actions {\n\t// Fixed footer zone\n\tborder-top: 1px solid var(--leat-card-border, #ddd);\n\tpadding: 12px 16px;\n\tmin-height: 56px;\n\tdisplay: flex;\n\tflex-direction: column;\n\tgap: 0.5rem;\n\talign-items: center;\n\tjustify-content: center;\n\tbackground: var(--leat-card-footer-bg, #f9f9f9);\n\tborder-radius: 0 0 8px 8px;\n\n\t// All buttons in action zone - only layout/sizing, let component handle colors\n\t.leat-button,\n\t.leat-block-components-button {\n\t\tmin-width: 140px;\n\t\twidth: auto;\n\t\tmin-height: 36px;\n\n\t\t// Display-only buttons (status indicators)\n\t\t&.is-display-only {\n\t\t\tdisplay: flex;\n\t\t\talign-items: center;\n\t\t\tjustify-content: center;\n\t\t\tcursor: default;\n\t\t\tpointer-events: none;\n\n\t\t\tsvg {\n\t\t\t\tflex-shrink: 0;\n\t\t\t}\n\t\t}\n\n\t\t// Claimed status styling\n\t\t&.leat-button--claimed {\n\t\t\tcolor: var(--leat-success-color, #00a32a);\n\t\t\tbackground: var(--leat-success-bg, #f0f6fc);\n\n\t\t\t&:hover {\n\t\t\t\topacity: 1; // Override text button hover\n\t\t\t}\n\t\t}\n\n\t\t// Automatic status styling\n\t\t&.leat-button--automatic {\n\t\t\tcolor: var(--leat-info-color, #757575);\n\t\t\tbackground: var(--leat-info-bg, #f0f0f0);\n\n\t\t\t&:hover {\n\t\t\t\topacity: 1; // Override text button hover\n\t\t\t}\n\t\t}\n\t}\n}\n\n// ============================================================================\n// Item Error\n// ============================================================================\n\n.leat-item__error {\n\tcolor: var(--leat-error-color, #cc1818);\n\tfont-size: 12px;\n\tmargin-top: 8px;\n\ttext-align: center;\n}\n\n// ============================================================================\n// Item Success\n// ============================================================================\n\n.leat-item__success {\n\tcolor: var(--leat-success-color, #00a32a);\n\tbackground: var(--leat-success-bg, #f0f6fc);\n\tfont-size: 13px;\n\tmargin-top: 8px;\n\tpadding: 8px 12px;\n\ttext-align: center;\n\tborder-radius: 4px;\n\tfont-weight: 500;\n}\n\n// ============================================================================\n// Item Badge - Top Right Corner\n// ============================================================================\n\n.leat-item__badge {\n\tposition: absolute;\n\ttop: 12px;\n\tright: 12px;\n\tpadding: 0.375rem 0.75rem;\n\tfont-size: 0.875rem;\n\tfont-weight: 600;\n\tline-height: 1;\n\tborder-radius: 9999px;\n\tz-index: 1;\n\n\t// Default colors\n\tcolor: var(--leat-badge-text, #fff);\n\tbackground: var(--leat-badge-background, #2271b1);\n\n\t// Smooth transitions\n\ttransition: all 0.15s ease-out;\n}\n\n// ============================================================================\n// Insufficient Credits Message\n// ============================================================================\n\n.leat-item__insufficient {\n\tfont-size: 0.75rem;\n\tcolor: var(--leat-error-color, #dc2626);\n\ttext-align: center;\n\tmargin-top: 0.25rem;\n}\n\n// ============================================================================\n// Skeleton State\n// ============================================================================\n\n.leat-item--skeleton {\n\tpointer-events: none;\n\n\t.leat-block-components-skeleton__element {\n\t\tanimation: leat-item-skeleton-loading 1.5s ease-in-out infinite;\n\t}\n}\n\n@keyframes leat-item-skeleton-loading {\n\t0%,\n\t100% {\n\t\topacity: 1;\n\t}\n\t50% {\n\t\topacity: 0.4;\n\t}\n}\n\n// ============================================================================\n// Responsive Adjustments\n// ============================================================================\n\n@media (max-width: 768px) {\n\t.leat-item {\n\t\tmin-height: auto; // Allow flexible height on mobile\n\n\t\t&--compact {\n\t\t\tmin-height: auto;\n\t\t}\n\t}\n}\n","// ============================================================================\n// Shared Button Component Styles\n// ============================================================================\n//\n// This component integrates with Gutenberg's native color system via CSS custom properties.\n// When using native Gutenberg button color support, the colors are applied via:\n// - style.elements.button.color.background → --leat-button-bg\n// - style.elements.button.color.text → --leat-button-text\n//\n// Usage:\n// 1. Standard buttons: Use variant=\"contained|outlined|text\"\n// 2. Size modifiers: Add leat-button--small for compact buttons\n// 3. Status styles: Add leat-button--claimed, leat-button--automatic for status indicators\n// ============================================================================\n\n.leat-block-components-button:not(.is-link) {\n\talign-items: center;\n\tdisplay: inline-flex;\n\tgap: 0.5rem;\n\theight: auto;\n\tjustify-content: center;\n\ttext-align: center;\n\tposition: relative;\n\ttransition: box-shadow 0.1s linear;\n\n\t// Default padding (can be overridden by size modifiers)\n\tpadding: 0.75rem 1.5rem;\n\tfont-size: 1rem;\n\n\t&:focus {\n\t\toutline: 2px solid currentColor;\n\t\toutline-offset: 2px;\n\t}\n\n\t.leat-block-components-button__text {\n\t\tdisplay: block;\n\n\t\t// Prevent runts/widows. Overwrite `balance` with `pretty`, as `pretty` is not supported in all browsers.\n\t\ttext-wrap: balance;\n\t\ttext-wrap: pretty;\n\n\t\t> svg {\n\t\t\tfill: currentColor;\n\t\t}\n\t}\n\n\t// ========================================================================\n\t// Variant Styles\n\t// ========================================================================\n\n\t// Text variant - minimal button with no background\n\t// Only apply when NOT using theme button styles\n\t&.text:not(.wp-block-button__link) {\n\t\tbackground: transparent;\n\t\tcolor: currentColor;\n\t\tpadding: 0.5rem 1rem;\n\n\t\t&:hover {\n\t\t\topacity: 0.9;\n\t\t}\n\t}\n\n\t// Outlined variant\n\t&.outlined,\n\t&.is-style-outline {\n\t\tbackground: transparent;\n\t\tcolor: currentColor;\n\n\t\t&:not(:focus) {\n\t\t\tbox-shadow: inset 0 0 0 1px currentColor;\n\t\t}\n\n\t\t&:hover {\n\t\t\topacity: 0.9;\n\t\t}\n\t}\n\n\t// Contained variant - inherits theme colors via wp-block-button__link\n\t// The .wp-block-button__link class provides theme button colors automatically\n\t// Custom colors from Gutenberg are applied as INLINE STYLES on buttons (not via CSS custom properties)\n\t// We intentionally DO NOT set background-color or color here to let theme styles apply\n\t&.contained.wp-block-button__link {\n\t\t// Only set hover behavior - colors come from theme or inline styles\n\t\t&:hover:not(:disabled) {\n\t\t\topacity: 0.9;\n\t\t}\n\t}\n\n\t// Fallback for contained buttons without wp-block-button__link (shouldn't happen in practice)\n\t&.contained:not(.wp-block-button__link) {\n\t\tbackground-color: var(--leat-button-bg, #1e1e1e);\n\t\tcolor: var(--leat-button-text, #ffffff);\n\n\t\t&:hover:not(:disabled) {\n\t\t\topacity: 0.9;\n\t\t}\n\t}\n\n\t// ========================================================================\n\t// State Styles\n\t// ========================================================================\n\n\t&:disabled {\n\t\tcursor: not-allowed;\n\n\t\t.leat-block-components-button__text {\n\t\t\topacity: 0.5;\n\t\t}\n\t}\n\n\t// ========================================================================\n\t// Primary loyalty action pill\n\t// ========================================================================\n\t// Canonical design for the headline action across loyalty blocks\n\t// (coupon copy, spend-rule redeem + modal CTA, referral share).\n\t// Block-specific layout tweaks (width, min-width) live in each block's SCSS.\n\t// Colors are intentionally settable via inline style from the Gutenberg\n\t// \"Styles\" panel — we use CSS custom properties with fallbacks so the\n\t// user-picked color always wins.\n\n\t&.leat-button--pill {\n\t\tbackground: var(--leat-pill-bg, #000);\n\t\tcolor: var(--leat-pill-color, #fff);\n\t\tborder: none;\n\t\tborder-radius: 24px;\n\t\tpadding: 14px 24px;\n\t\tmin-height: 48px;\n\t\tfont-weight: 500;\n\t\tfont-size: 14px;\n\t\tline-height: 21px;\n\t\tletter-spacing: -0.28px;\n\t\ttext-transform: none;\n\t\ttext-decoration: none;\n\t\twhite-space: nowrap;\n\t\tbox-shadow: none;\n\t\tdisplay: inline-flex;\n\t\talign-items: center;\n\t\tjustify-content: center;\n\n\t\t&:hover:not([disabled]) {\n\t\t\tbackground: var(--leat-pill-bg, #000);\n\t\t\tcolor: var(--leat-pill-color, #fff);\n\t\t\topacity: 0.9;\n\t\t}\n\n\t\t&[disabled] {\n\t\t\topacity: 0.6;\n\t\t\tcursor: not-allowed;\n\t\t}\n\t}\n\n\t// ========================================================================\n\t// Size Modifiers\n\t// ========================================================================\n\n\t&.leat-button--small {\n\t\tpadding: 0.5rem 1rem;\n\t\tfont-size: 0.875rem;\n\t\tgap: 0.375rem;\n\n\t\t&.text {\n\t\t\tpadding: 0.375rem 0.75rem;\n\t\t}\n\t}\n\n\t// ========================================================================\n\t// Status Indicators\n\t// ========================================================================\n\t// These special button styles are used for non-interactive status displays\n\t// They should only apply when rendered as spans (is-display-only), not regular buttons\n\t// This prevents them from overriding theme button colors\n\n\t&.leat-button--claimed.is-display-only {\n\t\tcolor: var(--leat-success-color, #00a32a) !important;\n\t\tbackground: var(--leat-success-bg, #f0f6fc) !important;\n\t\tcursor: default;\n\n\t\t&:hover {\n\t\t\topacity: 1; // Override hover effects for status indicators\n\t\t}\n\t}\n\n\t&.leat-button--automatic.is-display-only {\n\t\tcolor: var(--leat-info-color, #757575) !important;\n\t\tbackground: var(--leat-info-bg, #f0f0f0) !important;\n\t\tcursor: default;\n\n\t\t&:hover {\n\t\t\topacity: 1; // Override hover effects for status indicators\n\t\t}\n\t}\n\n\t&.leat-button--location.is-display-only {\n\t\tcolor: var(--leat-location-color, #92400e) !important;\n\t\tbackground: var(--leat-location-bg, #fef3c7) !important;\n\t\tcursor: default;\n\n\t\t&:hover {\n\t\t\topacity: 1; // Override hover effects for status indicators\n\t\t}\n\t}\n}","/**\n * CouponCode Component Styles\n */\n\n.leat-coupon-code {\n\tdisplay: flex;\n\talign-items: stretch;\n\tborder-radius: 24px;\n\toverflow: hidden;\n\tborder: 1px dashed var(--leat-code-border, #ddd);\n\tpointer-events: auto; // Override any parent pointer-events: none\n\n\t.leat-coupon-code__code-section {\n\t\tflex: 0 0 auto;\n\t\tdisplay: flex;\n\t\talign-items: center;\n\t\tpadding: 0.5rem 0.875rem;\n\t\tbackground-color: var(--leat-code-bg, #f5f5f5);\n\t\tborder-right: 1px dashed var(--leat-code-border, #ddd);\n\t}\n\n\t.leat-coupon-code__value {\n\t\tmargin: 0;\n\t\tpadding: 0;\n\t\tbackground: transparent;\n\t\tborder: none;\n\t\tfont-family: monospace;\n\t\tfont-size: 0.8125rem;\n\t\tfont-weight: 700;\n\t\tletter-spacing: 0.75px;\n\t\ttext-transform: uppercase;\n\t\tcolor: var(--leat-code-value-text, #333);\n\t\tuser-select: all;\n\t}\n\n\t// Button styling is now handled by the shared Button component\n\t// Only override necessary layout properties\n\t.leat-block-components-button {\n\t\tflex: 0 0 auto;\n\t\tborder-top-left-radius: 0 !important;\n\t\tborder-bottom-left-radius: 0 !important;\n\t\tfont-size: 0.75rem;\n\t\twhite-space: nowrap;\n\t}\n}\n\n// Apply mode specific styles\n.leat-coupon-code--apply-mode {\n\t.leat-coupon-code__split-button {\n\t\tdisplay: flex;\n\t\talign-items: stretch;\n\t\tflex: 0 0 auto;\n\n\t\t.leat-coupon-code__applied-button {\n\t\t\tborder-top-right-radius: 0 !important;\n\t\t\tborder-bottom-right-radius: 0 !important;\n\t\t\tdisplay: flex;\n\t\t\talign-items: center;\n\t\t\tjustify-content: center;\n\t\t\tgap: 0.25rem;\n\t\t\tcursor: not-allowed;\n\t\t\topacity: 1;\n\n\t\t\tsvg {\n\t\t\t\twidth: 16px;\n\t\t\t\theight: 16px;\n\t\t\t}\n\t\t}\n\n\t\t.leat-coupon-code__remove-button {\n\t\t\tdisplay: flex;\n\t\t\talign-items: center;\n\t\t\tjustify-content: center;\n\t\t\tbackground-color: var(--leat-color-primary, var(--wp--preset--color--contrast, #007cba));\n\t\t\tborder: 0;\n\t\t\tborder-left: 1px solid rgba(255, 255, 255, 0.3);\n\t\t\tcolor: white;\n\t\t\tcursor: pointer;\n\t\t\twidth: 30px;\n\t\t\tpadding: 0;\n\t\t\ttransition: background-color 0.2s;\n\t\t\tborder-top-right-radius: 0;\n\t\t\tborder-bottom-right-radius: 0;\n\t\t\tmargin: 0;\n\n\t\t\t&:hover:not(:disabled) {\n\t\t\t\tbackground-color: var(--leat-color-primary-dark, #0069a8);\n\t\t\t}\n\n\t\t\t&:disabled {\n\t\t\t\topacity: 0.7;\n\t\t\t\tcursor: not-allowed;\n\t\t\t}\n\n\t\t\tsvg {\n\t\t\t\twidth: 14px;\n\t\t\t\theight: 14px;\n\t\t\t}\n\t\t}\n\t}\n}\n\n// Screen reader only class\n.leat-sr-only {\n\tposition: absolute;\n\twidth: 1px;\n\theight: 1px;\n\tpadding: 0;\n\tmargin: -1px;\n\toverflow: hidden;\n\tclip: rect(0, 0, 0, 0);\n\twhite-space: nowrap;\n\tborder-width: 0;\n}\n","/**\n * Modal Component Styles\n */\n\n.leat-modal__overlay {\n\tposition: fixed;\n\tinset: 0;\n\tbackground: rgba(0, 0, 0, 0.45);\n\tdisplay: flex;\n\talign-items: center;\n\tjustify-content: center;\n\tz-index: 999999;\n\tpadding: 16px;\n\tanimation: leat-modal-fade-in 0.15s ease-out;\n}\n\n.leat-modal {\n\tposition: relative;\n\tbackground: #ffffff;\n\tborder-radius: 16px;\n\tpadding: 20px;\n\twidth: 100%;\n\tmax-width: 420px;\n\tmax-height: calc(100vh - 32px);\n\toverflow-y: auto;\n\tdisplay: flex;\n\tflex-direction: column;\n\tgap: 20px;\n\tbox-shadow: 0 20px 60px rgba(0, 0, 0, 0.25);\n\tanimation: leat-modal-pop-in 0.18s ease-out;\n\n\t&:focus {\n\t\toutline: none;\n\t}\n}\n\n.leat-modal__header {\n\tdisplay: flex;\n\talign-items: center;\n\tjustify-content: space-between;\n\tgap: 12px;\n}\n\n.leat-modal__title {\n\tmargin: 0;\n\tfont-weight: 600;\n\tfont-size: 24px;\n\tline-height: 1.05;\n\tletter-spacing: -0.48px;\n\tcolor: #000;\n\tword-break: break-word;\n}\n\n.leat-modal__close {\n\tflex: 0 0 auto;\n\tdisplay: inline-flex;\n\talign-items: center;\n\tjustify-content: center;\n\twidth: 32px;\n\theight: 32px;\n\tmargin: -6px -6px -6px 0;\n\tpadding: 0;\n\tbackground: transparent;\n\tborder: none;\n\tborder-radius: 999px;\n\tcolor: #000;\n\tcursor: pointer;\n\ttransition: background-color 0.15s ease;\n\n\t&:hover,\n\t&:focus-visible {\n\t\tbackground: rgba(0, 0, 0, 0.06);\n\t}\n\n\t&:focus-visible {\n\t\toutline: 2px solid #000;\n\t\toutline-offset: 2px;\n\t}\n}\n\n.leat-modal__body {\n\tdisplay: flex;\n\tflex-direction: column;\n\tgap: 20px;\n}\n\n@keyframes leat-modal-fade-in {\n\tfrom {\n\t\topacity: 0;\n\t}\n\tto {\n\t\topacity: 1;\n\t}\n}\n\n@keyframes leat-modal-pop-in {\n\tfrom {\n\t\topacity: 0;\n\t\ttransform: translateY(8px) scale(0.98);\n\t}\n\tto {\n\t\topacity: 1;\n\t\ttransform: translateY(0) scale(1);\n\t}\n}\n","/**\n * Spend Rules List Block - Styles\n * Applied to both editor and frontend\n *\n * Layout (per Figma):\n *   ┌───────────────────────────┐\n *   │   image (rounded, tall)   │\n *   │                           │\n *   │ TITLE (bold, uppercase)   │\n *   │ 200 points                │\n *   │                           │\n *   │ ┌─ Redeem reward ──────┐  │  <- enough points\n *   │ └──────────────────────┘  │\n *   │     OR                    │\n *   │ Earn 182 more …      9%   │  <- not enough points\n *   │ ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔   │\n *   └───────────────────────────┘\n */\n\n.leat-spend-rules-list {\n\twidth: 100%;\n}\n\n.leat-spend-rules-list__grid {\n\tdisplay: grid;\n\tgap: 1.5rem;\n\tmargin: 0;\n\tpadding: 0;\n\n\t// Snap to two columns once cards get too narrow for the\n\t// progress-row label + 30px percentage to share a line.\n\t@media (max-width: 1100px) {\n\t\tgrid-template-columns: repeat(2, 1fr) !important;\n\t}\n\n\t@media (max-width: 600px) {\n\t\tgrid-template-columns: 1fr !important;\n\t}\n}\n\n// ----------------------------------------------------------------------------\n// Card — overrides the shared .leat-item primitive for this block's design\n// ----------------------------------------------------------------------------\n.leat-spend-rules-list__grid {\n\t.leat-item {\n\t\t--leat-image-aspect-ratio: 1 / 1;\n\n\t\tbackground: #ffffff;\n\t\tborder: none;\n\t\tborder-radius: 8px;\n\t\tpadding: 24px;\n\t\tgap: 24px;\n\t\tmin-height: 0;\n\t\tbox-shadow: none;\n\t\ttransition: transform 0.15s ease-out, box-shadow 0.15s ease-out;\n\n\t\t&:not(.leat-item--disabled):hover {\n\t\t\tborder-color: transparent;\n\t\t\tbox-shadow: 0 4px 12px rgba(0, 0, 0, 0.08);\n\t\t\ttransform: translateY(-2px);\n\t\t}\n\n\t\t// Image — fills card width, height derived from the configurable\n\t\t// aspect ratio (`1:1` by default). Sources are always `object-fit:\n\t\t// cover` cropped so cards in a grid stay visually consistent\n\t\t// regardless of the source image dimensions.\n\t\t//\n\t\t// `height: auto` is required: the shared `.leat-item__media`\n\t\t// primitive sets `height: 48px`, and an explicit height suppresses\n\t\t// `aspect-ratio` regardless of which selector wins specificity.\n\t\t[data-slot=\"item-media\"] {\n\t\t\twidth: 100%;\n\t\t\theight: auto;\n\t\t\taspect-ratio: var(--leat-image-aspect-ratio, 1 / 1);\n\t\t\tmargin: 0;\n\t\t\tborder-radius: 4px;\n\t\t\toverflow: hidden;\n\t\t\tdisplay: block;\n\n\t\t\timg {\n\t\t\t\twidth: 100%;\n\t\t\t\theight: 100%;\n\t\t\t\tobject-fit: cover;\n\t\t\t\tborder-radius: 4px;\n\t\t\t\tbox-shadow: none;\n\t\t\t}\n\n\t\t\tsvg {\n\t\t\t\twidth: 100%;\n\t\t\t\theight: 100%;\n\t\t\t}\n\t\t}\n\n\t\t// Title + cost block\n\t\t[data-slot=\"item-content\"] {\n\t\t\tflex: 0 0 auto;\n\t\t\tpadding: 0;\n\t\t\talign-items: flex-start;\n\t\t\ttext-align: left;\n\t\t\tgap: 4px;\n\t\t}\n\n\t\t.leat-item__label {\n\t\t\tmargin: 0;\n\t\t\tmin-height: 0;\n\t\t\tdisplay: block;\n\t\t\ttext-align: left;\n\t\t\tfont-weight: 700;\n\t\t\ttext-transform: uppercase;\n\t\t\tfont-size: 19px;\n\t\t\tline-height: 1.1;\n\t\t\tcolor: #000;\n\t\t}\n\n\t\t.leat-item__description {\n\t\t\tmargin: 0;\n\t\t\ttext-align: left;\n\t\t\tfont-size: 14px;\n\t\t\tline-height: 1.4;\n\t\t\tcolor: var(--leat-text-secondary, #666);\n\t\t}\n\n\t\t// Cost subtitle (\"200 points\")\n\t\t.leat-spend-rule-card__cost {\n\t\t\tmargin: 0;\n\t\t\tfont-size: 18px;\n\t\t\tline-height: 1.2;\n\t\t\tcolor: #000;\n\t\t}\n\n\t\t// Action zone — borderless, no separator\n\t\t[data-slot=\"item-actions\"] {\n\t\t\tborder-top: none;\n\t\t\tbackground: transparent;\n\t\t\tpadding: 0;\n\t\t\tmin-height: 0;\n\t\t\twidth: 100%;\n\t\t\talign-items: stretch;\n\t\t}\n\t}\n}\n\n// ----------------------------------------------------------------------------\n// Primary action button — pill design comes from .leat-button--pill (shared).\n// Only layout overrides here (full-width inside the card).\n// ----------------------------------------------------------------------------\n.leat-spend-rule-card__redeem-button.leat-block-components-button {\n\twidth: 100%;\n}\n\n// ----------------------------------------------------------------------------\n// Insufficient-points state: progress section\n// ----------------------------------------------------------------------------\n.leat-spend-rule-card__progress {\n\tdisplay: flex;\n\tflex-direction: column;\n\tgap: 8px;\n\twidth: 100%;\n}\n\n.leat-spend-rule-card__progress-meta {\n\tdisplay: flex;\n\talign-items: center;\n\tjustify-content: space-between;\n\tgap: 12px;\n}\n\n.leat-spend-rule-card__progress-label {\n\tfont-size: 12px;\n\tline-height: 1.4;\n\tcolor: #000;\n}\n\n.leat-spend-rule-card__progress-percentage {\n\tflex: 0 0 auto;\n\tfont-weight: 700;\n\tfont-size: 30px;\n\tline-height: 1;\n\tcolor: #000;\n\tfont-variant-numeric: tabular-nums;\n\twhite-space: nowrap;\n}\n\n.leat-spend-rule-card__progress-bar {\n\tposition: relative;\n\twidth: 100%;\n\theight: 4px;\n\tbackground-color: #ededed;\n\tborder-radius: 10px;\n\toverflow: hidden;\n}\n\n.leat-spend-rule-card__progress-fill {\n\tposition: absolute;\n\ttop: 0;\n\tleft: 0;\n\theight: 100%;\n\tbackground-color: #000;\n\tborder-radius: 10px;\n\ttransition: width 0.3s ease-out;\n}\n\n// ----------------------------------------------------------------------------\n// Loading, error, and empty states\n// ----------------------------------------------------------------------------\n.leat-spend-rules-list__loading,\n.leat-spend-rules-list__error,\n.leat-spend-rules-list__empty {\n\tpadding: 2rem;\n\ttext-align: center;\n\tcolor: #6b7280;\n}\n\n.leat-spend-rules-list__error {\n\tcolor: #dc2626;\n}\n\n.leat-spend-rules-list__empty-state {\n\tdisplay: flex;\n\tflex-direction: column;\n\talign-items: center;\n\tjustify-content: center;\n\tgap: 1.5rem;\n\tpadding: 3rem 2rem;\n\tmin-height: 300px;\n\ttext-align: center;\n\n\tp {\n\t\tmargin: 0;\n\t\tfont-size: 1.125rem;\n\t\tfont-weight: 500;\n\t\tcolor: #374151;\n\t\tmax-width: 500px;\n\t\tline-height: 1.6;\n\t}\n\n\t.leat-block-components-button {\n\t\tmin-width: 160px;\n\t}\n}\n\n// ----------------------------------------------------------------------------\n// Redeem reward modal (per Figma)\n// ----------------------------------------------------------------------------\n.leat-redeem-modal {\n\t&__preview {\n\t\tdisplay: flex;\n\t\talign-items: center;\n\t\tgap: 8px;\n\t\tpadding: 16px;\n\t\tbackground: rgba(0, 0, 0, 0.05);\n\t\tborder-radius: 8px;\n\t}\n\n\t&__preview-media {\n\t\tflex: 0 0 80px;\n\t\twidth: 80px;\n\t\theight: 80px;\n\t\tborder-radius: 7.273px;\n\t\toverflow: hidden;\n\t\tbackground: #fff;\n\t\tdisplay: flex;\n\t\talign-items: center;\n\t\tjustify-content: center;\n\n\t\timg,\n\t\tsvg {\n\t\t\twidth: 100%;\n\t\t\theight: 100%;\n\t\t\tobject-fit: cover;\n\t\t\tdisplay: block;\n\t\t}\n\t}\n\n\t&__preview-info {\n\t\tdisplay: flex;\n\t\tflex-direction: column;\n\t\tgap: 8px;\n\t\tmin-width: 0;\n\t}\n\n\t&__preview-title {\n\t\tmargin: 0;\n\t\tfont-weight: 600;\n\t\tfont-size: 18px;\n\t\tline-height: 16.8px;\n\t\tcolor: #000;\n\t\tword-break: break-word;\n\t}\n\n\t&__preview-cost {\n\t\tmargin: 0;\n\t\tfont-weight: 400;\n\t\tfont-size: 18px;\n\t\tline-height: 18px;\n\t\tcolor: #000;\n\t}\n\n\t&__terms {\n\t\tdisplay: flex;\n\t\tflex-direction: column;\n\t\tgap: 4px;\n\t}\n\n\t&__terms-label {\n\t\tmargin: 0;\n\t\tfont-weight: 600;\n\t\tfont-size: 12px;\n\t\tline-height: 18px;\n\t\tcolor: #000;\n\t}\n\n\t&__terms-body {\n\t\tmargin: 0;\n\t\tfont-weight: 400;\n\t\tfont-size: 12px;\n\t\tline-height: 18px;\n\t\tcolor: #000;\n\t}\n\n\t// ----- Post-redemption state -----\n\t&__reward-row {\n\t\tdisplay: flex;\n\t\talign-items: center;\n\t\tgap: 16px;\n\t}\n\n\t&__reward-media {\n\t\tflex: 0 0 40px;\n\t\twidth: 40px;\n\t\theight: 40px;\n\t\tborder-radius: 4px;\n\t\toverflow: hidden;\n\t\tbackground: rgba(0, 0, 0, 0.04);\n\t\tdisplay: flex;\n\t\talign-items: center;\n\t\tjustify-content: center;\n\n\t\timg,\n\t\tsvg {\n\t\t\twidth: 100%;\n\t\t\theight: 100%;\n\t\t\tobject-fit: cover;\n\t\t\tdisplay: block;\n\t\t}\n\t}\n\n\t&__reward-title {\n\t\tmargin: 0;\n\t\tfont-weight: 600;\n\t\tfont-size: 18px;\n\t\tline-height: 1.2;\n\t\tcolor: #000;\n\t\tword-break: break-word;\n\t}\n\n\t&__code {\n\t\tdisplay: flex;\n\t\talign-items: center;\n\t\tjustify-content: space-between;\n\t\tgap: 16px;\n\t\tpadding: 16px 16px 16px 24px;\n\t\tbackground: #f5f5f5;\n\t\tborder-radius: 8px;\n\t}\n\n\t&__code-info {\n\t\tdisplay: flex;\n\t\tflex-direction: column;\n\t\tgap: 4px;\n\t\tmin-width: 0;\n\t}\n\n\t&__code-label {\n\t\tfont-weight: 400;\n\t\tfont-size: 14px;\n\t\tline-height: 18px;\n\t\tcolor: #000;\n\t}\n\n\t&__code-value {\n\t\tfont-family: inherit;\n\t\tfont-weight: 700;\n\t\tfont-size: 16px;\n\t\tline-height: 18px;\n\t\tcolor: #000;\n\t\tbackground: transparent;\n\t\tpadding: 0;\n\t\tletter-spacing: 0;\n\t\ttext-transform: none;\n\t\tuser-select: all;\n\t\twhite-space: nowrap;\n\t\toverflow: hidden;\n\t\ttext-overflow: ellipsis;\n\t}\n\n\t&__copy-button.leat-block-components-button {\n\t\tflex: 0 0 auto;\n\t\tmin-width: 0;\n\t\twidth: auto;\n\t\theight: auto;\n\t\tpadding: 14px 24px;\n\t\tborder-radius: 8px;\n\t\tbackground: #000;\n\t\tcolor: #fff;\n\t\tborder-color: transparent;\n\t\tfont-weight: 600;\n\t\tfont-size: 16px;\n\t\tline-height: 1;\n\t\ttext-transform: none;\n\t\tletter-spacing: 0;\n\t\twhite-space: nowrap;\n\t\tbox-shadow: none;\n\n\t\t&:hover:not([disabled]) {\n\t\t\tbackground: #000;\n\t\t\tcolor: #fff;\n\t\t\topacity: 0.9;\n\t\t}\n\t}\n\n\t&__success {\n\t\tmargin: 0;\n\t\tfont-size: 14px;\n\t\tline-height: 1.4;\n\t\tcolor: #000;\n\t}\n\n\t&__error {\n\t\tmargin: 0;\n\t\tfont-size: 13px;\n\t\tline-height: 1.4;\n\t\tcolor: #dc2626;\n\t}\n\n\t&__cta.leat-block-components-button {\n\t\twidth: 100%;\n\t}\n}\n","/**\n * Spend Rules List Block - Editor Styles\n *\n * Additional styles specific to the block editor.\n */\n\n.editor-styles-wrapper {\n\t.leat-spend-rules-list {\n\t\tmargin: 1rem 0;\n\n\t\t&__grid {\n\t\t\tmax-width: 100%;\n\t\t}\n\t}\n\n\t// Disabled-button cursor inside editor previews\n\t.leat-spend-rules-list__grid .leat-item__actions button[disabled] {\n\t\tcursor: not-allowed;\n\t}\n\n\t// Empty state styling in editor\n\t.leat-spend-rules-list__empty-state {\n\t\tborder: 1px dashed #cbd5e0;\n\t\tborder-radius: 8px;\n\t\tbackground: #f9fafb;\n\n\t\t.components-notice {\n\t\t\tmargin: 0 !important;\n\t\t\tbox-shadow: none !important;\n\t\t}\n\t}\n}\n"],"names":[],"sourceRoot":""}