.incentive-scanner-module{--color-brand: var(--color-brand, #FF0201);--color-brand-hover: var(--color-brand-hover, #E60201);--color-brand-light: var(--color-brand-light, #FFE5E5);--color-success: var(--color-success, #4ECCA3);--color-success-light: var(--color-success-light, #E8F8F3);--color-warning: var(--color-warning, #FFA500);--color-warning-light: var(--color-warning-light, #FFF8E5);--color-error: var(--color-error, #FF0201);--color-error-light: var(--color-error-light, #FFE5E5);--color-info: var(--color-info, #0099CC);--color-info-light: var(--color-info-light, #E5F5FF);--color-white: var(--color-white, #FFFFFF);--color-gray-50: var(--color-gray-50, #F8F9FA);--color-gray-100: var(--color-gray-100, #E9ECEF);--color-gray-200: var(--color-gray-200, #DEE2E6);--color-gray-300: var(--color-gray-300, #CED4DA);--color-gray-400: var(--color-gray-400, #ADB5BD);--color-gray-500: var(--color-gray-500, #6C757D);--color-gray-600: var(--color-gray-600, #495057);--color-gray-700: var(--color-gray-700, #343A40);--color-gray-800: var(--color-gray-800, #212529);--space-xs: var(--space-xs, .5rem);--space-sm: var(--space-sm, 1rem);--space-md: var(--space-md, 1.5rem);--space-lg: var(--space-lg, 2rem);--space-xl: var(--space-xl, 3rem);--text-xs: var(--text-xs, .75rem);--text-sm: var(--text-sm, .875rem);--text-base: var(--text-base, 1rem);--text-lg: var(--text-lg, 1.125rem);--text-xl: var(--text-xl, 1.25rem);--text-2xl: var(--text-2xl, 1.5rem);--text-3xl: var(--text-3xl, 1.875rem);--text-4xl: var(--text-4xl, 2.25rem);--module-border: 1px solid var(--color-gray-200);--module-border-radius: var(--border-radius, .5rem);--module-shadow: var(--shadow, 0 2px 8px rgba(0, 0, 0, .08));--module-shadow-hover: var(--shadow-hover, 0 4px 12px rgba(0, 0, 0, .12));--module-shadow-focus: var(--shadow-focus, 0 0 0 3px rgba(255, 2, 1, .2));--module-transition: var(--transition, all .2s ease)}.incentive-scanner-module *{box-sizing:border-box}.incentive-scanner-module{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,sans-serif;line-height:1.5;color:var(--color-gray-800);-webkit-font-smoothing:antialiased}.incentive-scanner-module input,.incentive-scanner-module select,.incentive-scanner-module textarea{width:100%}.incentive-scanner-module .scanner-container,.incentive-scanner-module .incentive-container{background:var(--color-white);border-radius:var(--module-border-radius);box-shadow:var(--module-shadow);padding:var(--spacing);margin:var(--space-sm) 0}.incentive-scanner-module .scanner-header,.incentive-scanner-module .incentive-header{text-align:center;margin-bottom:var(--space-lg);padding-bottom:var(--space-md);border-bottom:var(--module-border)}.scanner-title,.incentive-header__title{font-size:var(--text-2xl);font-weight:700;color:var(--color-gray-800);margin:0 0 var(--space-xs) 0}.scanner-subtitle,.incentive-header__subtitle{font-size:var(--text-base);color:var(--color-gray-500);margin:0}.scanner-explanation{margin-top:var(--space-md);padding:var(--space-md);background:var(--color-gray-50);border-radius:var(--module-border-radius);border:var(--module-border);font-size:var(--text-base);color:var(--color-gray-700);text-align:center}.scanner-explanation p{margin:0}.form-group{margin-bottom:var(--space-md)}.form-label{display:block;font-size:var(--text-sm);font-weight:600;color:var(--color-gray-700);margin-bottom:var(--space-xs)}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-md)}.checkbox-label{display:flex;align-items:flex-start;gap:var(--space-sm);cursor:pointer;margin-top:var(--space-sm)}.checkbox-label input[type=checkbox]{margin-top:1px;margin-right:8px}.checkbox-text{font-size:var(--text-sm);color:var(--color-gray-600);line-height:1.5;flex:1}.status-message{padding:var(--space-sm) var(--space-md);border-radius:var(--module-border-radius);margin-bottom:var(--space-md);display:flex;align-items:center;gap:var(--space-sm);box-shadow:var(--module-shadow)}.status-message.status-success{background:var(--color-success-light);color:var(--color-gray-700);border:1px solid var(--color-success)}.status-message.status-error{background:var(--color-error-light);color:var(--color-gray-700);border:1px solid var(--color-error)}.status-message.status-warning{background:var(--color-warning-light);color:var(--color-gray-700);border:1px solid var(--color-warning)}.status-message.status-info{background:var(--color-info-light);color:var(--color-gray-700);border:1px solid var(--color-info)}.camera-container{position:relative;width:100%;max-width:400px;margin:0 auto;border-radius:var(--module-border-radius);overflow:hidden;box-shadow:var(--module-shadow)}.camera-view{width:100%;height:300px;background:var(--color-gray-800);position:relative}.camera-view video{width:100%;height:100%;object-fit:cover}.scanner-overlay{position:absolute;top:0;left:0;right:0;bottom:0;pointer-events:none}.scanner-line{position:absolute;left:10%;right:10%;height:2px;background:linear-gradient(90deg,transparent,var(--color-success),transparent);animation:scan 2s linear infinite}@keyframes scan{0%{top:10%}50%{top:90%}to{top:10%}}.manual-entry-section{margin-top:var(--space-lg);padding-top:var(--space-lg);border-top:var(--module-border);text-align:center}.manual-entry-form{display:flex;gap:var(--space-sm);justify-content:center;align-items:center;flex-wrap:wrap}.manual-entry-input{max-width:300px;text-align:center;font-family:monospace;text-transform:uppercase;letter-spacing:2px}.incentive-type-badge{display:inline-block;padding:var(--space-xs) var(--space-md);border-radius:var(--module-border-radius);font-size:var(--text-sm);font-weight:600;text-transform:uppercase;letter-spacing:.5px;margin-bottom:var(--space-md)}.incentive-type-voucher{background:var(--color-brand-light);color:var(--color-brand)}.incentive-type-raffle{background:var(--color-info-light);color:var(--color-info)}.incentive-type-lottery{background:var(--color-success-light);color:var(--color-success)}.detail-row{display:flex;justify-content:space-between;padding:var(--space-xs) 0;border-bottom:var(--module-border)}.detail-row:last-child{border-bottom:none}.detail-label{font-weight:600;color:var(--color-gray-700)}.detail-value{color:var(--color-gray-600)}.store-selector-wrapper{display:flex;flex-direction:column;gap:var(--space-md);width:100%;max-width:100%}.scanner-container.store-selector-wrapper{max-width:100%;margin:0;padding:var(--space-md);box-shadow:none;background:transparent;border-radius:0}.store-selector-content{display:grid;grid-template-columns:400px 1fr;gap:var(--space-lg);min-height:500px}@media (max-width: 1024px){.store-selector-content{grid-template-columns:1fr}.store-selector-left{max-height:400px}.store-selector-right{min-height:400px}}.store-selector-left{display:flex;flex-direction:column;gap:var(--space-md)}.store-selector-right{display:flex;flex-direction:column}.store-search-section{margin-bottom:var(--space-md)}.store-search-input-group{position:relative;display:flex;align-items:center}.store-search-input{flex:1;padding:var(--space-sm) 40px var(--space-sm) var(--space-sm);border:1px solid var(--color-gray-300);border-radius:var(--module-border-radius);font-size:var(--text-base);transition:var(--module-transition);box-shadow:var(--module-shadow)}.store-search-input:focus{outline:none;border-color:var(--color-brand);box-shadow:var(--module-shadow-focus)}.store-search-clear{position:absolute;right:10px;background:none;border:none;color:var(--color-gray-400);cursor:pointer;padding:var(--space-xs);font-size:var(--text-lg);transition:color var(--module-transition)}.store-search-clear:hover{color:var(--color-gray-600)}.store-list{flex:1;overflow-y:auto;padding:var(--space-sm);border-radius:var(--module-border-radius);display:flex;flex-direction:column;gap:var(--space-sm);max-height:70vh}.store-item{background:var(--color-white);padding:var(--space-md);border-radius:var(--module-border-radius);cursor:pointer;transition:var(--module-transition);box-shadow:var(--module-shadow);border:1px solid var(--color-gray-200);position:relative;overflow:hidden;display:block}.store-item:hover{transform:translateY(-2px);box-shadow:var(--module-shadow-hover);border-color:var(--color-gray-300)}.store-item.selected{background:var(--color-success-light);border-color:var(--color-success);box-shadow:0 4px 6px #4ecca34d}.store-item-header{margin-bottom:var(--space-xs)}.store-name{font-size:var(--text-lg);font-weight:600;color:var(--color-gray-800);margin:0}.store-details{display:flex;flex-direction:column;gap:4px}.store-detail{font-size:var(--text-sm);color:var(--color-gray-600);display:flex;align-items:center;gap:var(--space-xs)}.store-no-results{text-align:center;padding:var(--space-xl);color:var(--color-gray-500)}.store-map-section{width:100%;display:flex;flex-direction:column}.store-map-section h3{margin:0 0 var(--space-md) 0;color:var(--color-gray-700);font-size:var(--text-lg)}.store-map-container{width:100%;position:relative;background:var(--color-gray-100);border-radius:var(--module-border-radius);overflow:hidden;box-shadow:var(--module-shadow);aspect-ratio:1 / 1}.leaflet-map-container{width:100%;height:100%}.leaflet-top,.leaflet-bottom{z-index:950!important}.map-legend{position:absolute;bottom:var(--space-md);left:var(--space-md);background:var(--color-white);padding:var(--space-sm) var(--space-md);border-radius:var(--module-border-radius);box-shadow:var(--module-shadow);display:flex;align-items:center;gap:var(--space-md);font-size:var(--text-sm)}.legend-item{display:flex;align-items:center;gap:var(--space-xs)}.legend-pin{width:12px;height:12px;border-radius:50%}.map-stats{padding-left:var(--space-md);border-left:1px solid var(--color-gray-200);color:var(--color-gray-600)}.store-selector-wrapper .custom-marker{background:transparent;border:none}.store-selector-wrapper .marker-pin{width:32px;height:42px;position:relative;cursor:pointer}.store-selector-wrapper .marker-pin-svg{width:100%;height:100%;filter:drop-shadow(0 3px 6px rgba(0,0,0,.3));transition:var(--module-transition)}.store-selector-wrapper .marker-pin.selected .marker-pin-svg{filter:drop-shadow(0 4px 12px rgba(255,2,1,.4));transform:scale(1.2)}.store-popup{font-family:inherit}.store-popup h4{margin:0 0 var(--space-xs) 0;font-size:var(--text-base);font-weight:600;color:var(--color-gray-800)}.store-popup p{margin:4px 0;font-size:var(--text-sm);color:var(--color-gray-600)}.store-popup a{color:var(--color-brand);text-decoration:none}.store-popup a:hover{text-decoration:underline}.product-display{background:var(--color-gray-100);border-radius:var(--module-border-radius);padding:var(--space-lg);margin:var(--space-md) 0}.product-image{text-align:center;margin-bottom:var(--space-md)}.product-image img{max-width:400px;width:100%;height:auto;border-radius:var(--module-border-radius);box-shadow:var(--module-shadow)}.product-name{font-size:var(--text-xl);font-weight:600;color:var(--color-gray-800);margin-bottom:var(--space-sm)}.product-description{color:var(--color-gray-600);margin-bottom:var(--space-md)}.product-price{font-size:var(--text-lg);color:var(--color-brand);font-weight:600}.store-status-card{background:var(--color-white);border:var(--module-border);border-radius:var(--module-border-radius);padding:var(--space-lg);margin-bottom:var(--space-lg);box-shadow:var(--module-shadow)}.status-header{display:flex;align-items:center;gap:var(--space-md);margin-bottom:var(--space-lg)}.status-indicator{width:48px;height:48px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:24px;font-weight:700;background:var(--color-gray-100);border:2px solid var(--color-gray-300)}.status-indicator.status-active{background:var(--color-success-light);border-color:var(--color-success);color:var(--color-success)}.status-indicator.status-winner{background:gold;border-color:#b8860b}.status-indicator.status-redeemed{background:var(--color-success-light);border-color:var(--color-success)}.status-indicator.status-expired{background:var(--color-warning-light);border-color:var(--color-warning)}.status-indicator.status-non-winner,.status-indicator.status-null{background:var(--color-gray-100);border-color:var(--color-gray-400)}.status-info h3{margin:0 0 4px;font-size:var(--text-xl);color:var(--color-gray-800)}.status-subtitle{margin:0;color:var(--color-gray-600);font-size:var(--text-base)}.incentive-value-section{margin:var(--space-lg) 0;padding:var(--space-md);background:var(--color-gray-100);border-radius:var(--module-border-radius)}.value-display{display:flex;justify-content:space-between;align-items:center;font-size:var(--text-lg)}.value-label{color:var(--color-gray-600)}.value-amount{font-weight:700;color:var(--color-brand);font-size:var(--text-2xl)}.product-section{margin-top:var(--space-md)}.product-info-card{display:flex;gap:var(--space-md);align-items:start}.product-image-store{width:120px;height:120px;object-fit:cover;border-radius:var(--module-border-radius);border:1px solid var(--color-gray-200);flex-shrink:0}.product-details h4{margin:0 0 var(--space-xs) 0;font-size:var(--text-lg);color:var(--color-gray-800)}.product-description{margin:var(--space-xs) 0;color:var(--color-gray-600);font-size:var(--text-sm);line-height:1.5}.product-value{font-weight:700;color:var(--color-success);margin:var(--space-xs) 0}.product-sku{font-size:var(--text-xs);color:var(--color-gray-500)}.product-fallback{padding:var(--space-sm);background:var(--color-gray-100);border-radius:var(--module-border-radius);display:flex;justify-content:space-between}.requirements-section{margin:var(--space-lg) 0;padding:var(--space-md);background:var(--color-warning-light);border-radius:var(--module-border-radius);border:1px solid var(--color-warning)}.requirements-section h4{margin:0 0 var(--space-sm) 0;color:var(--color-gray-800)}.requirements-list{list-style:none;padding:0;margin:0}.requirement-item{display:flex;align-items:center;gap:var(--space-xs);padding:var(--space-xs) 0}.requirement-icon{font-size:16px}.requirement-needed{color:var(--color-error)}.requirement-warning{color:var(--color-warning)}.association-info-grid{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-md);margin:var(--space-lg) 0}.info-block{padding:var(--space-md);background:var(--color-gray-50);border-radius:var(--module-border-radius);border:1px solid var(--color-gray-200)}.info-block h4{margin:0 0 var(--space-sm) 0;font-size:var(--text-sm);color:var(--color-gray-500);text-transform:uppercase;letter-spacing:.5px}.info-content{display:flex;align-items:center;gap:var(--space-sm)}.info-icon{font-size:20px;color:var(--color-success)}.info-empty .info-icon{color:var(--color-gray-400)}.info-primary{font-weight:500;color:var(--color-gray-800);margin-bottom:2px}.info-secondary{font-size:var(--text-xs);color:var(--color-gray-600)}.info-warning{color:var(--color-warning)}.store-actions{display:flex;flex-direction:column;gap:var(--space-sm);margin-top:var(--space-lg)}.voucher-redemption-section{display:flex;flex-direction:column;gap:var(--space-sm)}.redeem-input-group{display:flex;gap:var(--space-xs)}.redeem-input{flex:1;padding:var(--space-sm);border:var(--module-border);border-radius:var(--module-border-radius);font-size:var(--text-base)}.redeem-input:focus{outline:none;border-color:var(--color-brand)}.detail-card{background:var(--color-gray-50);border:1px solid var(--color-gray-200);border-radius:var(--module-border-radius);padding:var(--space-md);margin:var(--space-md) 0}.detail-row{display:flex;justify-content:space-between;padding:var(--space-xs) 0}.detail-row:not(:last-child){border-bottom:1px solid var(--color-gray-200)}.detail-label{color:var(--color-gray-600);font-size:var(--text-sm)}.detail-value{font-weight:500;color:var(--color-gray-800)}.action-buttons{display:flex;justify-content:center;margin-top:var(--space-lg)}.scanner-button-primary{background:var(--color-brand);color:var(--color-white);font-weight:600;padding:var(--space-sm) var(--space-lg)}.scanner-button-primary:hover:not(:disabled){background:#e60201}.scanner-button-primary:disabled{background:var(--color-gray-400)}.loading-container{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:var(--space-xl);min-height:300px}.loading-spinner{width:40px;height:40px;border:3px solid var(--color-gray-200);border-top:3px solid var(--color-brand);border-radius:50%;animation:spin 1s linear infinite}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.loading-message{margin-top:var(--space-md);color:var(--color-gray-500)}.error-message{background:var(--color-error-light);border:1px solid var(--color-error);color:var(--color-gray-700);padding:var(--space-sm) var(--space-md);border-radius:var(--module-border-radius);box-shadow:var(--module-shadow);position:fixed;top:var(--space-md);left:50%;transform:translate(-50%);z-index:1000;display:flex;align-items:center;gap:var(--space-sm)}.text-center{text-align:center}.mt-md{margin-top:var(--space-md)}.mb-md{margin-bottom:var(--space-md)}.action-group,.form-actions{display:flex;gap:var(--space-sm);justify-content:center;margin-top:var(--space-lg);flex-wrap:wrap}.back-navigation{display:inline-flex;align-items:center;gap:var(--space-xs);color:var(--color-brand);text-decoration:none;font-weight:500;margin-bottom:var(--space-md);transition:var(--module-transition)}.back-navigation:hover{color:var(--color-brand-hover)}.voucher-card{background:linear-gradient(135deg,var(--color-brand),var(--color-brand-hover));color:var(--color-white);padding:var(--space-lg);border-radius:var(--module-border-radius);box-shadow:var(--module-shadow);text-align:center}.voucher-card__value{font-size:var(--text-4xl);font-weight:700;margin:var(--space-md) 0}.voucher-card__code{font-family:monospace;font-size:var(--text-lg);background:#fff3;padding:var(--space-xs) var(--space-md);border-radius:var(--module-border-radius);display:inline-block}.status-card{background:var(--color-white);border-radius:var(--module-border-radius);padding:var(--space-lg);margin:var(--space-md) 0}.status-card__content{display:flex;align-items:center;gap:var(--space-lg);margin-bottom:var(--space-lg)}.status-card__icon{font-size:5rem;line-height:1;animation:bounce 2s ease-in-out infinite}.status-card__text{flex:1}.status-card__title{font-size:var(--text-2xl);font-weight:700;margin:0;line-height:1.2}.status-card__message{font-size:var(--text-xl);color:var(--color-gray-700);margin:0;line-height:1.2}.status-card--success .status-card__message{color:var(--color-success)}.status-card--error .status-card__message{color:var(--color-error)}.status-card--warning .status-card__message{color:var(--color-warning)}.winner-announcement{display:flex;align-items:center;gap:var(--space-lg);margin:var(--space-lg) 0}.winner-announcement-text{flex:1}.winner-icon{font-size:5rem;line-height:1;animation:bounce 2s ease-in-out infinite}@keyframes bounce{0%,to{transform:translateY(0)}50%{transform:translateY(-10px)}}.winner-title{font-size:var(--text-2xl);font-weight:700;margin:0;line-height:1.2}.winner-subtitle{font-size:var(--text-xl);color:var(--color-success);margin:0;line-height:1.2}.debug-pane{margin-top:var(--space-md);padding:var(--space-sm);background:var(--color-gray-50);border-radius:var(--module-border-radius);border:var(--module-border);font-family:monospace;font-size:var(--text-xs)}.debug-pane summary{cursor:pointer;font-weight:600;padding:var(--space-xs)}.debug-pane pre{margin:var(--space-sm) 0 0 0;overflow:auto}.entry-details{background:var(--color-gray-50);padding:var(--space-md);border-radius:var(--module-border-radius);margin:var(--space-md) 0}.next-steps{margin:var(--space-lg) 0;padding:var(--space-md);background:var(--color-gray-50);border-radius:var(--module-border-radius)}.next-steps h3{margin:0 0 var(--space-sm) 0;color:var(--color-gray-800)}.next-steps ol{margin:0;padding-left:var(--space-lg)}.status-badge{display:inline-block;padding:4px var(--space-sm);border-radius:var(--module-border-radius);font-size:var(--text-sm);font-weight:600}.status-active{background:var(--color-success-light);color:var(--color-success)}.status-pending{background:var(--color-warning-light);color:var(--color-warning)}.status-inactive{background:var(--color-gray-100);color:var(--color-gray-600)}@media (max-width: 640px){.form-row{grid-template-columns:1fr}.scanner-container{padding:var(--space-sm)}.store-selector-content{grid-template-columns:1fr}.product-image img{max-width:100%}}@media print{.scanner-button,.btn,.action-group,.back-navigation{display:none!important}}.modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background-color:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000;padding:20px}.modal-container{background:#fff;border-radius:8px;max-width:600px;width:100%;max-height:90vh;overflow:hidden;display:flex;flex-direction:column;box-shadow:0 4px 20px #00000026}.modal-header{padding:20px;border-bottom:1px solid #e0e0e0;display:flex;justify-content:space-between;align-items:center}.modal-header h2{margin:0;font-size:1.5rem;color:#333}.modal-close-button{background:none;border:none;font-size:2rem;cursor:pointer;color:#666;padding:0;width:32px;height:32px;display:flex;align-items:center;justify-content:center;border-radius:4px;transition:background-color .2s}.modal-close-button:hover{background-color:#f0f0f0}.modal-body{padding:20px;overflow-y:auto;flex:1}.modal-body .form-group{margin-bottom:20px}.modal-body .form-group label{display:block;margin-bottom:8px;font-weight:500;color:#333}.modal-body .form-input{width:100%;padding:10px 12px;border:1px solid #ddd;border-radius:4px;font-size:16px;transition:border-color .2s}.modal-body .form-input:focus{outline:none;border-color:#00a4bd}.modal-body .input-with-button{display:flex;gap:10px}.modal-body .input-with-button .form-input{flex:1}.modal-body .form-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:20px;margin-bottom:20px}.modal-body .form-row .form-group{margin-bottom:0}.modal-body .form-error{color:#d73502;font-size:14px;margin-top:5px}.modal-footer{padding:20px;border-top:1px solid #e0e0e0;display:flex;justify-content:flex-end;gap:10px}@media (max-width: 600px){.modal-container{margin:10px}.modal-body .form-row{grid-template-columns:1fr}}.tiebreaker-info{background:#fff3cd;border:1px solid #ffeaa7;border-radius:4px;padding:16px;margin-bottom:24px;display:flex;align-items:flex-start;gap:12px}.info-icon{font-size:24px;flex-shrink:0}.info-text{color:#856404;font-size:14px;line-height:1.5;margin:0}.question-label{font-size:18px;font-weight:600;color:#33475b;margin-bottom:12px}.character-count{text-align:right;font-size:12px;color:#5c7c99;margin-top:4px}.form-textarea{width:100%;padding:12px;font-size:16px;border:2px solid #cbd6e2;border-radius:4px;font-family:inherit;resize:vertical;min-height:100px}.form-textarea:focus{outline:none;border-color:#00a4bd}.user-email-display{background:#f5f8fa;padding:12px 16px;border-radius:4px;margin-bottom:20px;display:flex;align-items:center;gap:8px}.email-label{color:#5c7c99;font-weight:500}.email-value{color:#33475b;font-weight:600}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:16px}@media (max-width: 480px){.form-row{grid-template-columns:1fr}}.required{color:#ff5248}.optional{color:#5c7c99;font-weight:400;font-size:14px}
