.search-bar{display:flex;align-items:center;gap:.5rem;background:var(--canvas);border:2px solid transparent;border-radius:99px;padding:.375rem .875rem;transition:border-color var(--transition),box-shadow var(--transition);box-shadow:0 1px 4px #0000000a}.search-bar:focus-within{border-color:var(--merca-yellow-dark);box-shadow:0 0 0 3px #ffc10726}.search-icon{flex-shrink:0;color:var(--text-tertiary)}.search-input{flex:1;border:none;outline:none;background:transparent;font-size:.9rem;padding:.25rem 0;min-width:0}.search-input::placeholder{color:var(--text-tertiary)}.search-spinner{width:16px;height:16px;border:2px solid var(--border);border-top-color:var(--merca-yellow);border-radius:50%;animation:spin .7s linear infinite;flex-shrink:0}.search-clear{font-size:1rem;color:var(--text-tertiary);padding:.25rem;line-height:1;border-radius:var(--radius-sm);width:28px;height:28px;display:flex;align-items:center;justify-content:center;flex-shrink:0;transition:color var(--transition),background var(--transition)}.search-clear:hover{background:var(--surface-alt);color:var(--text)}.product-card{display:flex;flex-direction:column;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);overflow:hidden;position:relative;opacity:0;transform:translateY(12px);transition:opacity .5s var(--ease-out),transform .5s var(--ease-out),box-shadow .2s var(--ease-out),border-color .2s var(--ease-out)}.product-card.reveal-visible{opacity:1;transform:translateY(0)}.product-card:hover{border-color:var(--merca-yellow);box-shadow:0 4px 16px #ffc1071f}.product-card.in-list{border-color:var(--merca-green);background:var(--merca-green-light)}.product-image-wrap{position:relative;width:100%;aspect-ratio:1;overflow:hidden;background:var(--surface-alt);display:flex;align-items:center;justify-content:center}.product-image{width:100%;height:100%;object-fit:contain;padding:.75rem;transition:transform .3s var(--ease-out)}.product-card:hover .product-image{transform:scale(1.06)}.product-image-placeholder{width:100%;height:100%;display:flex;align-items:center;justify-content:center;color:var(--text-tertiary)}.product-new-badge{position:absolute;top:.5rem;left:.5rem;background:var(--merca-green);color:#fff;font-size:.6rem;font-weight:800;padding:.15rem .45rem;border-radius:var(--radius-sm);z-index:2;letter-spacing:.04em}.product-discount-badge{position:absolute;top:.5rem;left:.5rem;background:var(--merca-yellow);color:var(--text);font-size:.7rem;font-weight:800;padding:.2rem .5rem;border-radius:var(--radius-sm);z-index:2}.product-new-badge+.product-discount-badge{top:2rem}.product-out-badge{position:absolute;top:.5rem;left:.5rem;background:var(--text);color:var(--canvas);font-size:.65rem;font-weight:700;padding:.2rem .5rem;border-radius:var(--radius-sm);z-index:2}.product-info{padding:.625rem .75rem .5rem;display:flex;flex-direction:column;gap:.125rem;flex:1}.product-name{font-size:.8rem;font-weight:500;color:var(--text);line-height:1.35;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.product-packaging{font-size:.65rem;color:var(--text-tertiary)}.product-price-row{display:flex;flex-direction:column;gap:.1rem;margin-top:auto;padding-top:.375rem}.product-prices{display:flex;align-items:center;gap:.375rem;flex-wrap:wrap}.product-price{font-size:1rem;font-weight:800;color:var(--merca-green);letter-spacing:-.02em;line-height:1.2}.product-old-price{font-size:.7rem;color:var(--text-tertiary);text-decoration:line-through}.product-ref-price{font-size:.65rem;color:var(--text-tertiary);font-weight:500}.product-card.out-of-stock{opacity:.5}.product-card.out-of-stock .product-add-btn{background:var(--border);color:var(--text-tertiary);cursor:not-allowed;border-color:transparent}.product-add-btn{position:absolute;top:.5rem;right:.5rem;width:32px;height:32px;border-radius:var(--radius-sm);display:flex;align-items:center;justify-content:center;background:var(--surface);border:1.5px solid var(--border);color:var(--text);transition:all var(--transition);z-index:2;box-shadow:0 1px 4px #0000000a}.product-add-btn:hover{background:var(--merca-yellow);border-color:var(--merca-yellow);color:var(--text);transform:scale(1.08)}.product-add-btn.in-list{background:var(--merca-green);border-color:var(--merca-green);color:#fff}.product-add-btn.in-list:hover{background:var(--merca-red);border-color:var(--merca-red);color:#fff;transform:scale(1.08)}.shopping-list{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);overflow:hidden}.list-empty{text-align:center;padding:2.5rem 1.5rem;color:var(--text-secondary);font-size:.9rem}.list-empty-hint{font-size:.8rem;margin-top:.5rem;color:var(--text-tertiary)}.list-header{display:flex;align-items:center;justify-content:space-between;padding:1rem 1.25rem;border-bottom:1px solid var(--border);gap:.5rem}.list-title{font-family:var(--font-sans);font-size:1rem;font-weight:700}.list-header-actions{display:flex;gap:.5rem;align-items:center}.list-buy-all-btn{display:flex;align-items:center;gap:.375rem;font-size:.75rem;font-weight:600;color:#fff;background:var(--merca-green);padding:.375rem .75rem;border-radius:var(--radius-sm);transition:opacity var(--transition)}.list-buy-all-btn:hover{opacity:.85}.list-buy-all-btn-full{width:100%;justify-content:center;padding:.625rem;font-size:.85rem;border-radius:var(--radius)}.list-buy-all-compact{padding:.75rem 1.25rem;border-top:1px solid var(--border);position:sticky;bottom:0;background:var(--surface)}.list-export-btn{display:flex;align-items:center;gap:.375rem;font-size:.75rem;font-weight:500;color:var(--text-secondary);padding:.375rem .625rem;border-radius:var(--radius-sm);border:1px solid var(--border);transition:background var(--transition),border-color var(--transition)}.list-export-btn:hover{background:var(--surface-alt);border-color:var(--text-tertiary)}.list-clear-btn{font-size:.75rem;color:var(--merca-red);padding:.375rem .625rem;border-radius:var(--radius-sm);border:1px solid var(--merca-red-light);transition:background var(--transition),color var(--transition)}.list-clear-btn:hover{background:var(--merca-red-light)}.list-items{list-style:none;max-height:400px;overflow-y:auto}.list-items-compact{max-height:none}.list-item{display:flex;align-items:flex-start;justify-content:space-between;padding:.75rem 1.25rem;border-bottom:1px solid var(--border-light);gap:.75rem}.list-item:last-child{border-bottom:none}.list-item-info{flex:1;min-width:0}.list-item-name{font-size:.875rem;font-weight:500;display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.list-item-price-detail{display:flex;align-items:center;gap:.3rem;margin-top:.25rem;font-size:.8rem;color:var(--text-secondary);flex-wrap:wrap}.list-item-old-price{text-decoration:line-through;color:var(--text-tertiary);font-size:.7rem}.list-item-sep{color:var(--text-tertiary);font-size:.7rem}.list-item-qty-label{font-weight:600;color:var(--text)}.list-item-subtotal{font-weight:600;color:var(--merca-green)}.list-item-savings{display:block;font-size:.75rem;color:var(--merca-red);font-weight:500;margin-top:.125rem}.list-item-actions{display:flex;align-items:center;gap:.25rem;flex-shrink:0;margin-top:.125rem}.list-item-actions-compact{display:flex;align-items:center;gap:.5rem;flex-shrink:0}.list-item-compact-qty{font-size:.875rem;font-weight:700;font-family:var(--font-mono);color:var(--merca-green);min-width:1.5rem;text-align:center}.qty-btn{width:30px;height:30px;border-radius:var(--radius-sm);display:flex;align-items:center;justify-content:center;font-size:1rem;font-weight:500;background:var(--surface-alt);color:var(--text);border:1px solid var(--border);transition:background var(--transition),border-color var(--transition)}.qty-btn:hover{background:var(--border);border-color:var(--text-tertiary)}.qty-value{font-size:.875rem;font-weight:600;min-width:1.5rem;text-align:center;font-family:var(--font-mono)}.buy-btn{width:30px;height:30px;display:flex;align-items:center;justify-content:center;border-radius:var(--radius-sm);color:var(--merca-green);background:var(--merca-green-light);border:1px solid transparent;transition:background var(--transition),color var(--transition)}.buy-btn:hover{border-color:var(--merca-green)}.remove-btn{color:var(--text-tertiary);padding:.25rem;display:flex;align-items:center;justify-content:center;border-radius:var(--radius-sm);transition:color var(--transition),background var(--transition);width:30px;height:30px}.remove-btn:hover{color:var(--merca-red);background:var(--merca-red-light)}.list-footer{border-top:1px solid var(--border);padding:.875rem 1.25rem}.list-total-row{display:flex;justify-content:space-between;font-weight:700;font-size:1rem;color:var(--text)}.list-savings-row{display:flex;justify-content:space-between;font-size:.8rem;color:var(--merca-red);font-weight:500;margin-top:.25rem}.list-items-count{font-size:.7rem;color:var(--text-tertiary);margin-top:.375rem;text-align:right;font-family:var(--font-mono)}.pantry{display:flex;flex-direction:column;gap:.75rem}.pantry-header{display:flex;align-items:center;gap:.5rem}.pantry-title{font-family:var(--font-sans);font-size:1rem;font-weight:700;margin:0}.pantry-count{font-size:.75rem;color:var(--text-tertiary);font-family:var(--font-mono)}.pantry-low-info{font-size:.8rem;color:var(--text-secondary);padding-bottom:.5rem;border-bottom:1px solid var(--border)}.pantry-low-text strong{color:var(--merca-red)}.pantry-empty{text-align:center;color:var(--text-secondary);padding:2.5rem 1.5rem;font-size:.9rem;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius)}.pantry-empty-hint{font-size:.8rem;margin-top:.5rem;color:var(--text-tertiary)}.pantry-items{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:.5rem}.pantry-item{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:.75rem 1rem;transition:border-color var(--transition)}.pantry-item.low-stock{border-color:var(--merca-yellow);background:var(--merca-yellow-light)}.pantry-item-main{display:flex;align-items:flex-start;justify-content:space-between;gap:.5rem}.pantry-item-info{display:flex;flex-direction:column;gap:.125rem;min-width:0;flex:1}.pantry-item-name{font-size:.85rem;font-weight:500;color:var(--text);line-height:1.3}.pantry-item-stock{display:flex;align-items:center;gap:.375rem;font-size:.8rem}.stock-count{font-weight:600;font-size:.9rem;color:var(--text);font-family:var(--font-mono)}.stock-label{color:var(--text-secondary)}.pantry-low-badge{font-size:.65rem;font-weight:700;color:var(--text);background:var(--merca-yellow);padding:.125rem .375rem;border-radius:99px;text-transform:uppercase;letter-spacing:.03em}.pantry-item-date{font-size:.7rem;color:var(--text-tertiary)}.pantry-item-actions{display:flex;align-items:center;gap:.375rem;flex-shrink:0}.pantry-consume-btn{width:28px;height:28px;display:flex;align-items:center;justify-content:center;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface);color:var(--text-secondary);font-size:.9rem;font-weight:500;cursor:pointer;transition:border-color var(--transition),color var(--transition),background var(--transition)}.pantry-consume-btn:hover{border-color:var(--text-tertiary);color:var(--text);background:var(--surface-alt)}.pantry-threshold-group{display:flex;align-items:center;gap:.25rem}.pantry-threshold-label{font-size:.65rem;color:var(--text-tertiary);white-space:nowrap}.pantry-threshold-select{font-size:.7rem;padding:.125rem .25rem;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface);color:var(--text);cursor:pointer;font-family:var(--font-mono)}.pantry-remove-btn{width:28px;height:28px;display:flex;align-items:center;justify-content:center;border:none;background:transparent;color:var(--text-tertiary);cursor:pointer;border-radius:var(--radius-sm);transition:color var(--transition),background var(--transition)}.pantry-remove-btn:hover{color:var(--merca-red);background:var(--merca-red-light)}.toast{position:fixed;bottom:1.5rem;left:50%;transform:translate(-50%);z-index:1000;display:flex;align-items:center;gap:.5rem;padding:.75rem 1rem;border-radius:var(--radius);background:var(--text);color:var(--canvas);font-size:.85rem;font-weight:500;max-width:90vw;box-shadow:0 4px 24px #0000001f;animation:toast-in .35s var(--ease-out)}.toast-success{border-left:3px solid var(--merca-yellow)}.toast-error{border-left:3px solid var(--merca-red)}.toast-info{border-left:3px solid var(--text-tertiary)}.toast-icon{font-size:1rem;flex-shrink:0;width:1.25rem;text-align:center;display:flex;align-items:center;justify-content:center}.toast-success .toast-icon{color:var(--merca-yellow)}.toast-error .toast-icon{color:var(--merca-red)}.toast-info .toast-icon{color:var(--text-tertiary)}.toast-message{flex:1}.toast-close{font-size:.75rem;color:var(--text-tertiary);padding:.25rem;flex-shrink:0;border-radius:var(--radius-sm);width:24px;height:24px;display:flex;align-items:center;justify-content:center;transition:background var(--transition)}.toast-close:hover{background:#ffffff1a;color:var(--canvas)}@keyframes toast-in{0%{opacity:0;transform:translate(-50%) translateY(.75rem)}to{opacity:1;transform:translate(-50%) translateY(0)}}@media (prefers-reduced-motion: reduce){.toast{animation:none}}.cat-bar{position:sticky;top:4rem;z-index:15;background:var(--surface);border-bottom:1px solid var(--border);box-shadow:0 1px 4px #0000000a}.cat-bar-scroll{display:flex;gap:.375rem;padding:.5rem 1.5rem;overflow-x:auto;scrollbar-width:none;-ms-overflow-style:none;max-width:1400px;margin:0 auto}.cat-bar-scroll::-webkit-scrollbar{display:none}.cat-bar-skeleton{flex-shrink:0;height:32px;width:80px;border-radius:99px;background:var(--surface-alt);animation:skeleton-pulse 1.5s ease-in-out infinite}.cat-bar-skeleton:nth-child(2){width:100px}.cat-bar-skeleton:nth-child(3){width:70px}.cat-bar-skeleton:nth-child(4){width:110px}.cat-bar-skeleton:nth-child(5){width:60px}.cat-bar-skeleton:nth-child(6){width:90px}.cat-bar-skeleton:nth-child(7){width:75px}.cat-bar-skeleton:nth-child(8){width:95px}@keyframes skeleton-pulse{0%,to{opacity:.5}50%{opacity:1}}.cat-bar-btn{flex-shrink:0;display:flex;align-items:center;gap:.35rem;padding:.375rem .75rem;border-radius:99px;font-size:.78rem;font-weight:500;color:var(--text-secondary);background:transparent;border:1.5px solid transparent;transition:all var(--transition);white-space:nowrap}.cat-bar-btn:hover{color:var(--text);background:var(--merca-yellow-light);border-color:var(--merca-yellow)}.cat-bar-btn.active{color:var(--text);background:var(--merca-yellow);border-color:var(--merca-yellow);font-weight:600}.cat-bar-icon{font-size:1rem;line-height:1}.cat-bar-label{overflow:hidden;text-overflow:ellipsis;max-width:100px}.cat-bar-dropdown{border-top:1px solid var(--border);background:var(--surface-alt);animation:fadeSlideIn .2s var(--ease-out);overflow-x:auto}.cat-bar-dropdown-inner{display:flex;flex-wrap:wrap;gap:.5rem;padding:.625rem 1.5rem;max-width:1400px;margin:0 auto}.cat-bar-sub{flex-shrink:0;padding:.35rem .875rem;border-radius:99px;font-size:.78rem;font-weight:500;color:var(--text-secondary);background:var(--surface);border:1px solid var(--border);transition:all var(--transition)}.cat-bar-sub:hover{color:var(--text);border-color:var(--merca-yellow);background:var(--merca-yellow-light)}.cat-bar-more{font-size:.75rem;color:var(--text-tertiary);padding:.35rem .375rem;font-style:italic;align-self:center}@keyframes fadeSlideIn{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}@media (max-width: 768px){.cat-bar{top:3.5rem}.cat-bar-scroll{padding:.5rem 1rem;gap:.3rem}.cat-bar-btn{font-size:.75rem;padding:.3rem .625rem}.cat-bar-label{max-width:70px}.cat-bar-dropdown-inner{padding:.5rem 1rem;gap:.375rem}}@media (max-width: 640px){.cat-bar{top:5rem}.cat-bar-btn{font-size:.72rem;padding:.3rem .5rem;gap:.25rem}.cat-bar-icon{font-size:.85rem}.cat-bar-label{max-width:55px}.cat-bar-scroll{padding:.375rem .75rem;gap:.25rem}.cat-bar-dropdown-inner{padding:.375rem .75rem;gap:.3rem}.cat-bar-sub{font-size:.72rem;padding:.25rem .625rem}}.cp-section{display:flex;align-items:center;gap:.375rem;flex-shrink:0}.cp-input-wrap{display:flex;align-items:center;gap:.25rem;background:#0000001a;border-radius:var(--radius-sm);padding:.3rem .5rem;border:1px solid rgba(0,0,0,.12);transition:background var(--transition),border-color var(--transition)}.cp-input-wrap:focus-within{background:#00000026;border-color:#00000040}.cp-input-wrap.valid{background:var(--merca-green-light)}.cp-label{display:flex;align-items:center;color:var(--text-secondary);cursor:pointer}.cp-input{width:56px;border:none;background:transparent;color:var(--text);font-size:.85rem;font-weight:700;padding:.15rem 0;outline:none;letter-spacing:.08em;font-family:var(--font-mono)}.cp-input::placeholder{color:var(--text-tertiary);font-weight:400;font-size:.75rem}.cp-valid-icon{color:var(--merca-green);display:flex}.cp-wh-city{font-size:.75rem;font-weight:600;color:var(--text);white-space:nowrap}@media (max-width: 640px){.cp-section{order:4}.cp-input{width:44px;font-size:.8rem}.cp-input-wrap{padding:.2rem .375rem}.cp-wh-city{display:none}}.cp-gate{position:fixed;top:0;right:0;bottom:0;left:0;z-index:100;display:flex;align-items:center;justify-content:center;background:var(--merca-yellow);padding:1rem}.cp-gate-card{display:flex;flex-direction:column;align-items:center;gap:1rem;padding:2.5rem;background:#fff;border-radius:var(--radius-lg);box-shadow:0 8px 32px #0000001f;max-width:360px;width:100%;text-align:center;animation:gate-in .35s ease-out}@keyframes gate-in{0%{opacity:0;transform:translateY(12px) scale(.97)}to{opacity:1;transform:translateY(0) scale(1)}}.cp-gate-icon{display:flex;align-items:center;justify-content:center;width:56px;height:56px;border-radius:50%;background:var(--merca-yellow-light);color:var(--merca-yellow-dark);flex-shrink:0}.cp-gate-title{font-family:var(--font-sans);font-size:1.5rem;font-weight:900;letter-spacing:-.04em;text-transform:uppercase;margin:0;color:var(--text)}.cp-gate-subtitle{font-size:.9rem;color:var(--text-secondary);margin:0 0 .25rem;line-height:1.4}.cp-gate-input-wrap{display:flex;align-items:center;width:100%}.cp-gate-input{flex:1;border:2px solid #ddd;background:#fff;font-size:1.35rem;font-weight:700;font-family:var(--font-mono);color:var(--text);outline:none;text-align:center;letter-spacing:.08em;min-width:0;padding:.7rem 1rem;border-radius:10px;transition:border-color .15s}.cp-gate-input:focus{border-color:var(--merca-yellow-dark)}.cp-gate-input.valid{border-color:var(--merca-green);background:var(--merca-green-light)}.cp-gate-input.error{border-color:var(--merca-red);background:var(--merca-red-light)}.cp-gate-input::placeholder{color:#bbb;font-weight:400;font-size:1rem;letter-spacing:.02em}.cp-gate-check{color:var(--merca-green);display:flex;flex-shrink:0;margin-left:-2.5rem;position:relative;z-index:1;animation:check-pop .2s ease-out}@keyframes check-pop{0%{transform:scale(0);opacity:0}60%{transform:scale(1.2)}to{transform:scale(1);opacity:1}}.cp-gate-error{color:var(--merca-red);font-size:.8rem;margin:0;font-weight:500;animation:error-in .2s ease-out}@keyframes error-in{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}.cp-gate-wh{font-size:.85rem;font-weight:600;color:var(--text);margin:0}.cp-gate-btn{width:100%;padding:.75rem 1.5rem;border:none;border-radius:var(--radius);background:var(--text);color:#fff;font-size:.95rem;font-weight:700;font-family:var(--font-sans);cursor:pointer;transition:opacity .2s,transform .15s;margin-top:.25rem}.cp-gate-btn:disabled{opacity:.25;cursor:not-allowed}.cp-gate-btn:not(:disabled):hover{opacity:.85}.cp-gate-btn:not(:disabled):active{transform:scale(.98)}@media (max-width: 480px){.cp-gate-card{padding:2rem 1.5rem;border-radius:var(--radius)}.cp-gate-title{font-size:1.25rem}.cp-gate-input{font-size:1.2rem;padding:.6rem .5rem .6rem .75rem}}.voice-assistant{display:flex;align-items:center;gap:.375rem;flex-shrink:0;position:relative}.voice-btn{width:38px;height:38px;display:flex;align-items:center;justify-content:center;border-radius:var(--radius);background:#0000000f;color:var(--text);transition:all var(--transition)}.voice-btn:hover{background:#0000001f}.voice-btn:disabled{opacity:.7}.voice-assistant.listening .voice-btn{background:var(--merca-red);color:#fff;animation:mic-pulse 1.2s ease-in-out infinite}@keyframes mic-pulse{0%,to{box-shadow:0 0 #d32f2f66}50%{box-shadow:0 0 0 8px #d32f2f00}}.voice-pulse{display:flex;align-items:center;gap:3px}.voice-pulse-dot{width:5px;height:5px;border-radius:50%;background:var(--merca-red);animation:voice-dot 1s ease-in-out infinite}.voice-pulse-dot:nth-child(2){animation-delay:.2s}.voice-pulse-dot:nth-child(3){animation-delay:.4s}@keyframes voice-dot{0%,to{opacity:.3;transform:scale(.8)}50%{opacity:1;transform:scale(1.2)}}.voice-status{position:absolute;top:calc(100% + 8px);left:50%;transform:translate(-50%);white-space:nowrap;z-index:30}.voice-listening-text{font-size:.75rem;color:var(--merca-red);font-weight:600;animation:blink 1s step-end infinite}@keyframes blink{50%{opacity:0}}.voice-response-text{font-size:.75rem;color:var(--merca-green);font-weight:500;background:var(--merca-green-light);padding:.25rem .75rem;border-radius:99px;max-width:280px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}@media (max-width: 768px){.voice-status{left:auto;right:0;transform:none}}.frequent-section{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:1rem 1.125rem}.frequent-title{font-size:.9rem;font-weight:700}.frequent-sub{font-size:.75rem;color:var(--text-tertiary);margin-top:.125rem;margin-bottom:.75rem}.frequent-grid{display:flex;flex-wrap:wrap;gap:.5rem}.frequent-chip{display:flex;align-items:center;gap:.375rem;padding:.375rem .75rem .375rem .375rem;border-radius:99px;background:var(--surface-alt);border:1px solid var(--border);font-size:.78rem;transition:all var(--transition);max-width:100%}.frequent-chip:hover{border-color:var(--merca-yellow);background:var(--merca-yellow-light)}.frequent-chip-img{width:26px;height:26px;border-radius:50%;object-fit:contain;background:var(--surface);flex-shrink:0}.frequent-chip-name{font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:120px}.frequent-chip-price{color:var(--merca-green);font-weight:700;font-size:.75rem;white-space:nowrap}.frequent-chip-count{font-size:.65rem;color:var(--text-tertiary);font-family:var(--font-mono);font-weight:600;background:var(--border);padding:.125rem .375rem;border-radius:99px;flex-shrink:0}.discounted-carousel{background:linear-gradient(135deg,var(--merca-yellow-light),var(--surface));border:1px solid var(--merca-yellow);border-radius:var(--radius);padding:.875rem 1rem}.carousel-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:.75rem;gap:.5rem}.carousel-title{font-size:.95rem;font-weight:700;display:flex;align-items:center;gap:.375rem}.carousel-title-icon{display:flex;align-items:center;justify-content:center;width:26px;height:26px;border-radius:var(--radius-sm);background:var(--merca-yellow);color:var(--text);font-size:.75rem;font-weight:800}.carousel-arrow{width:30px;height:30px;display:flex;align-items:center;justify-content:center;border-radius:50%;background:var(--surface);border:1px solid var(--border);color:var(--text-secondary);transition:all var(--transition);flex-shrink:0}.carousel-arrow:hover{background:var(--merca-yellow);border-color:var(--merca-yellow);color:var(--text)}.carousel-track-wrap{overflow:hidden;margin:0 -.25rem}.carousel-track{display:flex;gap:.75rem;overflow-x:auto;scrollbar-width:none;-ms-overflow-style:none;scroll-snap-type:x mandatory;padding:.25rem}.carousel-track::-webkit-scrollbar{display:none}.carousel-card{flex-shrink:0;width:160px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);overflow:hidden;position:relative;scroll-snap-align:start;transition:border-color var(--transition),box-shadow var(--transition)}.carousel-card:hover{border-color:var(--merca-yellow);box-shadow:0 4px 12px #ffc1071f}.carousel-card-img-wrap{position:relative;aspect-ratio:1;background:var(--surface-alt);display:flex;align-items:center;justify-content:center;overflow:hidden}.carousel-card-img{width:100%;height:100%;object-fit:contain;padding:.5rem;transition:transform .3s ease}.carousel-card:hover .carousel-card-img{transform:scale(1.06)}.carousel-card-placeholder{color:var(--text-tertiary)}.carousel-discount-badge{position:absolute;top:.375rem;left:.375rem;background:var(--merca-yellow);color:var(--text);font-size:.65rem;font-weight:800;padding:.15rem .4rem;border-radius:var(--radius-sm);z-index:2}.carousel-card-info{padding:.5rem .625rem .375rem}.carousel-card-name{font-size:.75rem;font-weight:500;line-height:1.3;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;min-height:1.95rem}.carousel-card-price-row{display:flex;align-items:center;gap:.25rem;margin-top:.25rem;flex-wrap:wrap}.carousel-card-price{font-size:.9rem;font-weight:800;color:var(--merca-green)}.carousel-card-old-price{font-size:.65rem;color:var(--text-tertiary);text-decoration:line-through}.carousel-card-btn{position:absolute;top:.375rem;right:.375rem;width:28px;height:28px;display:flex;align-items:center;justify-content:center;border-radius:var(--radius-sm);background:var(--surface);border:1.5px solid var(--border);color:var(--text);transition:all var(--transition);z-index:2}.carousel-card-btn:hover{background:var(--merca-yellow);border-color:var(--merca-yellow);transform:scale(1.08)}.carousel-card-btn.in-list{background:var(--merca-green);border-color:var(--merca-green);color:#fff}.app{display:flex;flex-direction:column;min-height:100vh}.app-header{position:sticky;top:0;z-index:30;background:var(--merca-yellow);color:var(--text);box-shadow:0 2px 8px #00000014}.header-content{max-width:1400px;margin:0 auto;padding:.75rem 1.5rem;display:flex;align-items:center;gap:1rem}.header-left{display:flex;align-items:center;gap:.75rem;flex-shrink:0}.app-title{font-family:var(--font-sans);font-size:1.35rem;font-weight:900;letter-spacing:-.04em;text-transform:uppercase;display:flex;align-items:center;gap:.5rem;color:var(--text)}.app-title-icon{display:flex;align-items:center;justify-content:center;width:34px;height:34px;color:var(--merca-yellow);flex-shrink:0}.header-controls{display:flex;align-items:center;gap:.75rem;flex:1;min-width:0}.header-controls>.search-bar{flex:1;max-width:480px}.cart-toggle{display:flex;align-items:center;gap:.375rem;padding:.5rem 1rem;border-radius:var(--radius);background:#00000014;font-size:.85rem;font-weight:600;transition:background var(--transition);flex-shrink:0}.cart-toggle:hover{background:#00000024}.cart-toggle-badge{display:flex;align-items:center;justify-content:center;min-width:22px;height:22px;padding:0 .35rem;border-radius:99px;background:var(--text);color:var(--merca-yellow);font-size:.7rem;font-weight:700}.app-content{position:relative;z-index:1;flex:1;max-width:1400px;width:100%;margin:0 auto;padding:1.5rem 1.5rem 2rem;outline:none}.app-main{display:grid;grid-template-columns:1fr 360px;gap:1.5rem;align-items:start}.main-column{display:flex;flex-direction:column;gap:1.25rem;min-width:0}.hint-text{text-align:center;color:var(--text-tertiary);font-size:.85rem;padding:2rem 1rem}.nav-context{display:flex;align-items:center;gap:.75rem;flex-wrap:wrap}.nav-back-btn{display:inline-flex;align-items:center;gap:.375rem;padding:.375rem .75rem;border-radius:99px;font-size:.8rem;font-weight:500;color:var(--text-secondary);background:var(--surface-alt);border:1px solid var(--border);transition:all var(--transition);flex-shrink:0}.nav-back-btn:hover{color:var(--text);border-color:var(--merca-yellow);background:var(--merca-yellow-light)}.nav-context-label{font-size:.85rem;font-weight:600;color:var(--text-secondary)}.list-column,.list-section-sticky{position:sticky;top:8rem}.error-msg{font-size:.875rem;color:var(--merca-red);padding:.625rem 1rem;background:var(--merca-red-light);border-radius:var(--radius)}.no-results{text-align:center;color:var(--text-secondary);padding:3rem 2rem;font-size:.9rem}.results-count{font-size:.8rem;color:var(--text-tertiary);font-family:var(--font-mono)}.results-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:.875rem}.results-loading{display:flex;justify-content:center;padding:4rem 1rem}.results-spinner{width:28px;height:28px;border:3px solid var(--border);border-top-color:var(--merca-yellow);border-radius:50%;animation:spin .7s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.results-top{display:flex;align-items:center;justify-content:space-between;gap:.5rem}.quick-access{display:flex;gap:.75rem;flex-wrap:wrap}.quick-btn{display:flex;align-items:center;gap:.5rem;padding:.5rem 1.125rem;border-radius:99px;font-size:.8rem;font-weight:600;border:1.5px solid var(--border);background:var(--surface);color:var(--text);transition:all var(--transition)}.quick-btn:hover{border-color:var(--merca-yellow);background:var(--merca-yellow-light)}.discounted-btn{border-color:var(--merca-yellow);background:var(--merca-yellow-light);color:var(--text)}.discounted-btn:hover{background:var(--merca-yellow)}.quick-btn-icon{font-family:var(--font-mono);font-size:.85rem;font-weight:700}.sidebar-tabs{display:flex;gap:.25rem;margin-bottom:.75rem;background:var(--surface-alt);border-radius:var(--radius);padding:.25rem}.sidebar-tab{flex:1;display:flex;align-items:center;justify-content:center;gap:.375rem;padding:.5rem .75rem;font-size:.8rem;font-weight:600;color:var(--text-secondary);border-radius:var(--radius-sm);transition:all var(--transition)}.sidebar-tab:hover{color:var(--text)}.sidebar-tab.active{color:var(--text);background:var(--surface);box-shadow:0 1px 3px #0000000f}.tab-badge{font-size:.65rem;font-weight:600;background:var(--border);color:var(--text-secondary);min-width:18px;height:18px;padding:0 .3rem;border-radius:99px;display:flex;align-items:center;justify-content:center}.tab-badge.alert{background:var(--merca-red-light);color:var(--merca-red)}.cart-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:40;background:#00000059;opacity:0;visibility:hidden;transition:opacity .3s ease,visibility .3s ease}.cart-overlay.open{opacity:1;visibility:visible}.cart-drawer{position:fixed;top:0;right:0;bottom:0;width:420px;max-width:90vw;z-index:50;background:var(--surface);box-shadow:-8px 0 32px #0000001a;display:flex;flex-direction:column;transform:translate(100%);transition:transform .35s var(--ease-out)}.cart-drawer.open{transform:translate(0)}.cart-drawer-header{display:flex;align-items:center;justify-content:space-between;padding:1rem 1.25rem;border-bottom:1px solid var(--border)}.cart-drawer-title{font-size:1.1rem;font-weight:700}.cart-drawer-close{width:36px;height:36px;display:flex;align-items:center;justify-content:center;border-radius:var(--radius-sm);color:var(--text-secondary);transition:background var(--transition)}.cart-drawer-close:hover{background:var(--surface-alt)}.cart-drawer-body{flex:1;overflow-y:auto;padding:.75rem 1.25rem}.app-footer{position:relative;z-index:1;text-align:center;padding:1.5rem;font-size:.7rem;color:var(--text-tertiary);border-top:1px solid var(--border);margin-top:auto}.frequent-sidebar{margin-top:1.25rem;padding-top:1rem;border-top:1px solid var(--border)}.catalog-building-banner{display:flex;align-items:center;gap:.75rem;padding:.75rem 1rem;border-radius:var(--radius);background:var(--merca-yellow-light);border:1px solid var(--merca-yellow);font-size:.85rem;font-weight:500;color:var(--text)}.catalog-building-spinner{width:18px;height:18px;border:2.5px solid var(--merca-yellow);border-top-color:var(--text);border-radius:50%;animation:spin .7s linear infinite;flex-shrink:0}.reveal{opacity:1;transform:translateY(0);transition:opacity .5s var(--ease-out),transform .5s var(--ease-out)}.reveal-visible{opacity:1;transform:translateY(0)}@media (max-width: 1000px){.app-main{grid-template-columns:1fr}.app-content{padding:1rem}.list-column,.list-section-sticky{position:static}}@media (max-width: 640px){.header-content{padding:.5rem .75rem;flex-wrap:wrap;gap:.375rem}.header-left{flex-shrink:1;min-width:0}.app-title{font-size:1rem}.app-title-icon{width:30px;height:30px;font-size:.85rem}.header-controls{order:3;flex-basis:100%}.header-controls>.search-bar{max-width:none}.cart-toggle{padding:.375rem .625rem}.cart-toggle-badge{min-width:20px;height:20px;font-size:.65rem}.cart-drawer{width:100vw;max-width:100vw}.app-content{padding:.75rem}.results-grid{grid-template-columns:repeat(2,1fr);gap:.5rem}}:root{--merca-yellow: #FFC107;--merca-yellow-dark: #E5A700;--merca-yellow-light: #FFF8E1;--merca-green: #2E7D32;--merca-green-light: #E8F5E9;--merca-red: #D32F2F;--merca-red-light: #FFEBEE;--canvas: #FFFFFF;--surface: #FFFFFF;--surface-alt: #F8F8F8;--border: #E8E8E8;--border-light: rgba(0,0,0,.05);--text: #1A1A1A;--text-secondary: #666666;--text-tertiary: #999999;--font-sans: "Geist", "SF Pro Display", "Helvetica Neue", Arial, sans-serif;--font-serif: "Newsreader", "Playfair Display", "Instrument Serif", serif;--font-mono: "Geist Mono", "SF Mono", "JetBrains Mono", monospace;--radius-sm: 6px;--radius: 10px;--radius-lg: 16px;--ease-out: cubic-bezier(.16, 1, .3, 1);--transition: .2s var(--ease-out)}@media (prefers-color-scheme: dark){:root{--canvas: #121212;--surface: #1E1E1E;--surface-alt: #252525;--border: #333333;--border-light: rgba(255,255,255,.06);--text: #E8E8E8;--text-secondary: #9B9B9B;--text-tertiary: #6B6B6B;--merca-yellow: #FFD54F;--merca-yellow-dark: #FFC107;--merca-yellow-light: #3D3520;--merca-green-light: #1B2E1B;--merca-red-light: #3D2020}}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html{font-size:16px;-webkit-text-size-adjust:100%}@media (prefers-reduced-motion: reduce){html{scroll-behavior:auto}}body{font-family:var(--font-sans);background:var(--canvas);color:var(--text);line-height:1.5;min-height:100vh;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}#root{min-height:100vh;display:flex;flex-direction:column}button{cursor:pointer;font:inherit;border:none;background:none;color:inherit}input{font:inherit;color:inherit}a{color:var(--text);text-decoration:none}a:hover{text-decoration:underline}:focus-visible{outline:2px solid var(--merca-yellow);outline-offset:2px;border-radius:var(--radius-sm)}::selection{background:var(--merca-yellow);color:var(--text)}.skip-link{position:absolute;top:-100%;left:.5rem;z-index:100;background:var(--text);color:var(--canvas);padding:.5rem 1rem;border-radius:var(--radius-sm);font-weight:600;font-size:.875rem;transition:top .15s ease}.skip-link:focus{top:.5rem}@media (prefers-reduced-motion: reduce){*,*:before,*:after{transition-duration:.01ms!important;animation-duration:.01ms!important}}
