@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes fadeOut{0%{opacity:1}to{opacity:0}}@keyframes slideUp{0%{transform:translateY(100%)}to{transform:translateY(0)}}@keyframes slideDown{0%{transform:translateY(0)}to{transform:translateY(100%)}}@keyframes slideInRight{0%{transform:translate(6%) opacity: 0}to{transform:translate(0) opacity: 1}}@keyframes scaleIn{0%{opacity:0;transform:scale(.96) translateY(6px)}to{opacity:1;transform:scale(1) translateY(0)}}@keyframes scaleOut{0%{opacity:1;transform:scale(1) translateY(0)}to{opacity:0;transform:scale(.96) translateY(6px)}}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;background:#f3f4f6;color:#111;min-height:100dvh}#root{max-width:480px;margin:0 auto;min-height:100dvh;background:#fff}.app-header{display:flex;align-items:center;gap:.5rem;padding:1rem 1.25rem;background:#fff;border-bottom:1px solid #e5e7eb}.app-header h1{font-size:1.4rem;font-weight:700;color:#0af}.page-slide-in{animation:slideInRight .28s cubic-bezier(.22,1,.36,1) both}.page-fade-in{animation:fadeIn .2s ease-out both}.store-list{display:flex;flex-direction:column;gap:1rem;padding:1rem}.store-card{border-radius:12px;padding:1.25rem;color:#fff;cursor:pointer;position:relative;transition:opacity .15s,transform .15s;-webkit-user-select:none;user-select:none}.store-card:active{transform:scale(.98)}.store-card.coming-soon{cursor:default;opacity:.65}.store-card-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1rem}.store-card-header h2{font-size:1.3rem;font-weight:700}.store-card-chevron{font-size:1.2rem;opacity:.8}.coming-soon-badge{font-size:.65rem;font-weight:600;background:#ffffff40;padding:.15rem .5rem;border-radius:999px;text-transform:uppercase;letter-spacing:.05em}.store-card-stats{display:flex;gap:2rem}.store-stat{display:flex;flex-direction:column;gap:.2rem}.store-stat-label{font-size:.75rem;opacity:.75;display:flex;align-items:center;gap:.3rem}.store-stat-value{font-size:.95rem;font-weight:600}.store-lists{margin-top:.5rem;display:flex;flex-direction:column;gap:.4rem}.list-row{display:flex;justify-content:space-between;align-items:center;background:#ffffff26;border-radius:8px;padding:.5rem .75rem;cursor:pointer}.list-row:hover{background:#ffffff40}.list-row-name{font-size:.9rem;font-weight:500}.list-row-actions{display:flex;gap:.5rem;align-items:center}.btn-icon{background:none;border:none;cursor:pointer;color:#fff;opacity:.8;font-size:1rem;padding:.25rem;line-height:1}.btn-icon:hover{opacity:1}.add-list-btn{margin-top:.4rem;background:#ffffff26;border:1.5px dashed rgba(255,255,255,.5);border-radius:8px;padding:.4rem .75rem;color:#fff;font-size:.85rem;cursor:pointer;width:100%;text-align:left}.add-list-btn:hover{background:#ffffff40}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000080;display:flex;align-items:flex-end;justify-content:center;z-index:100;padding:1rem;animation:fadeIn .2s ease-out both}.modal-backdrop--closing{animation:fadeOut .25s ease-in both}.modal{background:#fff;border-radius:16px 16px 0 0;padding:1.5rem;width:100%;max-width:480px;animation:scaleIn .25s cubic-bezier(.34,1.56,.64,1) both}.modal-backdrop--closing .modal{animation:scaleOut .22s ease-in both}.modal h3{font-size:1.1rem;font-weight:700;margin-bottom:1rem}.modal-input{width:100%;border:1.5px solid #d1d5db;border-radius:8px;padding:.65rem .85rem;font-size:1rem;outline:none;margin-bottom:1rem}.modal-input:focus{border-color:#0af}.modal-actions{display:flex;gap:.75rem;justify-content:flex-end}.btn{border:none;border-radius:8px;padding:.6rem 1.25rem;font-size:.95rem;font-weight:600;cursor:pointer}.btn-ghost{background:#f3f4f6;color:#374151}.btn-primary{background:#0af;color:#fff}.btn-danger{background:#ef4444;color:#fff}.btn:disabled{opacity:.5;cursor:default}.list-header{display:flex;align-items:center;justify-content:space-between;padding:.75rem 1rem;background:#fff;border-bottom:1px solid #e5e7eb;position:sticky;top:0;z-index:10}.btn-back{background:none;border:none;font-size:1.8rem;cursor:pointer;color:#374151;line-height:1;padding:0 .25rem}.list-title{font-size:1.1rem;font-weight:700}.summary-bar{display:flex;background:#fff;border-bottom:1px solid #e5e7eb;padding:.75rem 1rem;gap:0}.summary-cell{flex:1;display:flex;flex-direction:column;align-items:center;gap:.15rem;border-right:1px solid #e5e7eb;padding:0 .5rem}.summary-cell:last-child{border-right:none}.summary-cell--highlight .summary-value{color:#2563eb;font-weight:700}.summary-label{font-size:.65rem;color:#9ca3af;text-transform:uppercase;letter-spacing:.04em}.summary-value{font-size:.95rem;font-weight:600;font-variant-numeric:tabular-nums}.item-list{list-style:none;padding:0 0 6rem}.item-empty{padding:2rem 1.25rem;color:#9ca3af;font-size:.9rem;text-align:center}.item-row{display:flex;align-items:center;gap:.75rem;padding:.75rem 1rem;border-bottom:1px solid #f3f4f6;background:#fff;transition:background .15s;position:relative}.item-row--checked{background:#f9fafb;opacity:.6}.item-row--swiping{background:#fff5f5}.item-delete-reveal{position:absolute;right:0;top:0;bottom:0;width:64px;background:#ef4444;color:#fff;border:none;font-size:1.2rem;cursor:pointer;display:flex;align-items:center;justify-content:center}.item-img{width:52px;height:52px;object-fit:cover;border-radius:8px;flex-shrink:0;background:#f3f4f6}.item-info{flex:1;display:flex;flex-direction:column;gap:.2rem;cursor:pointer;min-width:0}.item-name{font-size:.85rem;font-weight:500;line-height:1.3;overflow:hidden;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}.item-price{font-size:.8rem;color:#374151}.item-loyalty-price{color:#7c3aed;font-weight:600}.item-qty{display:flex;align-items:center;gap:.25rem;flex-shrink:0}.qty-btn{width:28px;height:28px;border-radius:50%;border:1.5px solid #d1d5db;background:#fff;font-size:1rem;cursor:pointer;display:flex;align-items:center;justify-content:center;color:#374151}.qty-btn:hover{background:#f3f4f6}.qty-value{font-size:.9rem;font-weight:600;min-width:18px;text-align:center}.item-swipe-btn{color:#9ca3af;font-size:1.1rem}.fab{position:fixed;bottom:1.5rem;right:1.5rem;width:56px;height:56px;border-radius:50%;background:#2563eb;color:#fff;border:none;font-size:1.8rem;cursor:pointer;box-shadow:0 4px 12px #2563eb66;display:flex;align-items:center;justify-content:center;z-index:50}.fab:active{transform:scale(.93)}.search-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0000;display:flex;align-items:flex-end;justify-content:center;z-index:100;pointer-events:none;transition:background .22s ease-out}.search-overlay--open{background:#00000080;pointer-events:auto}.search-sheet{background:#fff;border-radius:16px 16px 0 0;padding:1.25rem;width:100%;max-width:480px;max-height:80dvh;display:flex;flex-direction:column;gap:.75rem;transform:translateY(100%);transition:transform .32s cubic-bezier(.22,1,.36,1)}.search-overlay--open .search-sheet{transform:translateY(0)}.search-results{list-style:none;overflow-y:auto;flex:1}.search-result-row{display:flex;align-items:center;gap:.75rem;padding:.65rem 0;border-bottom:1px solid #f3f4f6;cursor:pointer}.search-result-row:hover{background:#f9fafb}.btn-icon--dark{color:#374151}.settings-section{padding:1.25rem 1rem 0}.settings-section-title{font-size:.7rem;font-weight:600;text-transform:uppercase;letter-spacing:.06em;color:#9ca3af;margin-bottom:.75rem}.settings-row{display:flex;align-items:center;justify-content:space-between;padding:.9rem 0;border-bottom:1px solid #f3f4f6}.settings-row:last-child{border-bottom:none}.settings-row-info{display:flex;flex-direction:column;gap:.2rem}.settings-row-label{font-size:.95rem;font-weight:500;color:#111}.settings-row-sub{font-size:.78rem;color:#6b7280}.toggle{width:48px;height:26px;border-radius:999px;border:none;background:#d1d5db;position:relative;cursor:pointer;transition:background .2s;flex-shrink:0}.toggle:after{content:"";position:absolute;width:20px;height:20px;border-radius:50%;background:#fff;top:3px;left:3px;transition:transform .2s;box-shadow:0 1px 3px #0003}.toggle--on{background:#2563eb}.toggle--on:after{transform:translate(22px)}
