:root{color-scheme:light dark;font-family:system-ui,-apple-system,sans-serif}html,body,#root{height:100%}body{margin:0}.app{max-width:640px;margin:0 auto;padding:0 1rem;height:100vh;height:100dvh;display:flex;flex-direction:column;overflow:hidden}.app>main{flex:1;min-height:0;display:flex;flex-direction:column}.view{flex:1;min-height:0;display:flex;flex-direction:column}.view-scroll{flex:1;min-height:0;overflow-y:auto;padding-bottom:1rem;scrollbar-gutter:stable;padding-right:.5rem}.app-header{display:flex;align-items:center;gap:.5rem;padding-top:.5rem}.offline-banner{padding:.4rem .75rem;text-align:center;font-size:.85rem;background:Canvas;color:CanvasText;border-bottom:2px solid #b45309}.app-header button{min-width:44px;min-height:44px;background:transparent;border:1px solid #bbb;border-radius:4px;cursor:pointer;font-size:1.2rem;line-height:1}.app-header button:disabled{opacity:.4;cursor:default}.app-header button:hover:not(:disabled){border-color:#2f6fed}.context-switcher{flex:1;min-width:0;display:flex;position:relative}.context-switcher .inline-popover{min-width:0}.switcher-error{position:absolute;top:100%;left:0;right:0;z-index:30;margin:.15rem 0 0;padding:.3rem .5rem;font-size:.85rem;background:Canvas;color:#b91c1c;border:1px solid #b91c1c;border-radius:4px}.app-header .home-switcher-trigger{display:flex;align-items:center;justify-content:flex-start;gap:.4rem;max-width:100%;padding:0 .4rem;font-size:1rem}.home-switcher-trigger .home-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.home-badge{flex:none;display:inline-flex;align-items:center;justify-content:center;min-width:1.5rem;height:1.5rem;padding:0 .25rem;border-radius:4px;color:#fff;font-size:.75rem;font-weight:700;line-height:1}.home-option{display:inline-flex;align-items:center;gap:.4rem}.dialog-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1000;display:flex;align-items:center;justify-content:center;padding:1rem;background:#00000080}.dialog{background:Canvas;color:CanvasText;border:1px solid #888;border-radius:8px;width:min(28rem,100%);max-height:85vh;overflow-y:auto;padding:.75rem 1rem 1rem}.dialog-header{display:flex;align-items:center;justify-content:space-between}.dialog-header h2{font-size:1.1rem;margin:.25rem 0}.dialog-header button{min-width:44px;min-height:44px;background:transparent;border:1px solid #bbb;border-radius:4px;cursor:pointer}.manage-homes-list{list-style:none;margin:0;padding:0}.manage-home-row{padding:.6rem 0;border-top:1px solid #ccc}.manage-home-head{display:flex;align-items:center;gap:.5rem}.manage-home-head .home-name{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.manage-home-head button{min-height:44px;padding:0 .6rem;background:transparent;border:1px solid #bbb;border-radius:4px;cursor:pointer}.manage-home-head button:disabled{opacity:.4;cursor:default}.badge-editor{display:flex;align-items:center;gap:.5rem;margin-top:.4rem}.shop-integration{display:flex;flex-direction:column;gap:.5rem;margin-top:.4rem}.shop-integration label{display:flex;flex-direction:column;gap:.15rem;font-size:.85rem}.shop-integration select{min-height:44px;font:inherit;width:100%}.shop-integration-source{margin:-.15rem 0 0;font-size:.75rem;color:var(--muted, #6b7280)}.manage-shop-store{margin:.1rem 0 0;font-size:.8rem;color:var(--muted, #6b7280)}.shop-integration .shop-integration-toggle{flex-direction:row;align-items:center;min-height:44px}.badge-letters{width:3rem;padding:.35rem;font:inherit;text-transform:uppercase}.badge-swatches{display:inline-flex;flex-wrap:wrap;gap:.3rem}.swatch{width:28px;height:28px;border-radius:4px;border:2px solid transparent;cursor:pointer}.swatch.active{border-color:CanvasText;outline:1px solid Canvas}.undo-redo{display:inline-flex;gap:.25rem}.tab-bar{display:flex;border-top:1px solid #ccc;padding-bottom:env(safe-area-inset-bottom)}.tab-button{flex:1;min-height:50px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.1rem;padding:.3rem 0;background:transparent;border:none;cursor:pointer;color:inherit;font-size:.85rem}.tab-button.active{color:#2f6fed;font-weight:600}.tab-icon{font-size:1.3rem;line-height:1}.auth-view{max-width:20rem;margin:2rem auto;display:flex;flex-direction:column;gap:.75rem}.auth-form{display:flex;flex-direction:column;gap:.5rem}.auth-form input{padding:.5rem;font:inherit}.auth-switch{background:transparent;border:none;color:#2f6fed;cursor:pointer;text-decoration:underline}.filter-row{display:flex;flex-wrap:wrap;gap:.5rem;margin-bottom:.5rem}.quantity-filter,.hidden-filter{display:flex;gap:.25rem}.quantity-filter button,.hidden-filter button{min-height:44px;padding:0 .7rem;border:1px solid #ccc;background:transparent;border-radius:4px;cursor:pointer}.quantity-filter button.active,.hidden-filter button.active{background:#2f6fed;color:#fff;border-color:#2f6fed}.quantity-filter.muted,button.muted{opacity:.45}.empty-state{margin:2rem 0;text-align:center;opacity:.6}.category{margin-bottom:1.25rem}.category-header{display:flex;align-items:center;gap:.5rem;border-bottom:1px solid #ccc}.category-header h2{margin:.25rem 0;font-size:1.1rem;flex:1}.category-header button,.item-actions button,.quantity-stepper button{background:transparent;border:1px solid #bbb;border-radius:4px;cursor:pointer;font-size:1rem;line-height:1.4}.category-header button:hover,.item-actions button:hover,.quantity-stepper button:hover{border-color:#2f6fed}.item-list{list-style:none;margin:0;padding:0}.item-row{padding:.35rem 0}.row-main{display:flex;align-items:center;gap:.5rem;flex-wrap:nowrap}.item-row.editing>.row-main{flex-wrap:wrap}.sub-item-list{list-style:none;margin:.15rem 0 0;padding-left:1.75rem}.sub-item{padding:.2rem 0}.context-item>.row-main{opacity:.55}.item-row .item-name{flex:1 1 8rem;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;user-select:none;-webkit-user-select:none}.title-editor{flex:1 1 8rem;font:inherit}.step-button{width:2.2rem;min-height:2rem;margin-left:.9rem}.quantity-value{min-width:3rem;border:none!important;background:transparent;font:inherit;cursor:pointer;text-decoration:underline dotted;text-align:right;white-space:nowrap}.more-button{border:none!important;background:transparent;padding:0 .3rem;font-size:1.1rem;opacity:.6}.quantity-edit-cluster{display:inline-flex;gap:.25rem;align-items:center}.quantity-editor{width:3.5rem;font:inherit}.item-note{opacity:.7}.hidden-item>.row-main{opacity:.45}.drag-handle{border:none;background:transparent;cursor:grab;font-size:1rem;padding:0 .25rem;touch-action:none}.drag-handle:active{cursor:grabbing}.item-row.dragging,.category.dragging{opacity:.5}.checked-item>.row-main{opacity:.45}.checked-item>.row-main .item-name{text-decoration:line-through}.shop-check{display:inline-flex;align-items:center;gap:.5rem;flex:1 1 8rem;min-width:0}.shop-checkbox{display:inline-flex;align-items:center;padding:.35rem;margin:-.35rem;cursor:pointer}.item-row.group-first,.item-row.group-middle,.item-row.group-last{border-left:3px solid #888;padding-left:.45rem;margin-left:.1rem}.item-row.group-first{border-top-left-radius:6px}.item-row.group-last{border-bottom-left-radius:6px}.shop-quantity{white-space:nowrap;opacity:.8;padding:0}.shop-quantity .qty-total{opacity:.65;font-size:.82em}.quantity-stepper,.item-actions{display:inline-flex;gap:.25rem;align-items:center}.edit-actions{flex-basis:100%;justify-content:center;flex-wrap:wrap;margin-top:.35rem}.inline-popover{display:inline-flex}.popover-menu{z-index:1000;display:flex;flex-direction:column;gap:.1rem;min-width:8rem;margin:0;padding:.25rem;list-style:none;background:Canvas;color:CanvasText;border:1px solid #888;border-radius:6px;box-shadow:0 6px 16px #00000059}.popover-menu button{width:100%;min-height:44px;display:flex;align-items:center;text-align:left;white-space:nowrap;background:transparent;border:1px solid transparent;border-radius:4px;cursor:pointer;color:inherit;font-size:.9rem;padding:0 .6rem}.popover-menu button:hover{border-color:#2f6fed}.popover-menu button.active{border-color:#2f6fed;font-weight:600}.popover-separator{height:1px;margin:.2rem .3rem;background:#888}.add-toolbar{display:flex;gap:1rem;align-items:center;flex-wrap:wrap;margin:.75rem 0 .25rem;padding-bottom:.5rem;border-bottom:1px solid #ccc}.add-item-form,.add-category-form{display:flex;gap:.5rem}.add-item-form .clearable-input{flex:1;min-width:0}.add-item-form .clearable-input input{width:100%;min-width:0;box-sizing:border-box}.add-item-form select{max-width:6rem;text-overflow:ellipsis}.clearable-input{position:relative;display:inline-flex;align-items:center}.clearable-input input{padding-right:1.6rem}.clearable-input .clear-search{position:absolute;right:.15rem;border:none;background:transparent;color:#666;cursor:pointer;font-size:.8rem;line-height:1;padding:.2rem .35rem}.product-card{min-width:16rem;max-width:22rem}.product-card-body{display:flex;flex-direction:column;gap:.6rem}.product-card-note{opacity:.75;margin:.5rem 0}.lookup-added{margin:.5rem 0 .75rem;line-height:1.4}.product-card-shelf{display:flex;align-items:center;gap:.5rem;margin:.5rem 0}.product-card-shelf-label{opacity:.75}.shelf-trigger{min-height:44px;padding:.35rem .7rem;border:1px solid CanvasText;border-radius:8px;background:transparent;color:inherit;cursor:pointer;font-size:.95rem}.card-section{display:flex;flex-direction:column;gap:.5rem;align-items:flex-start;padding:.6rem;border:1px solid color-mix(in srgb,CanvasText 18%,transparent);border-radius:8px}.card-section-title{margin:0;font-size:.7rem;font-weight:600;text-transform:uppercase;letter-spacing:.05em;opacity:.6}.barcode-value{margin:0;font-variant-numeric:tabular-nums;overflow-wrap:anywhere}.barcode-value.store-code{font-weight:600}.barcode-label{margin:.6rem 0 .1rem;font-size:.8rem;opacity:.7}.barcode-label:first-child{margin-top:0}.barcode-value-row{display:flex;align-items:baseline;justify-content:space-between;gap:.5rem;max-width:100%;min-width:0}.barcode-value-row .barcode-value{min-width:0}.barcode-value-row .link-button{flex:none}.barcode-entry-buttons{display:flex;flex-wrap:wrap;gap:.4rem}.barcode-entry-buttons button{min-height:44px;padding:0 .7rem}.link-button{border:none;background:transparent;color:inherit;padding:.35rem 0;min-height:44px;text-align:left;text-decoration:underline;cursor:pointer;font:inherit;opacity:.85}.link-button:hover{opacity:1}.icon-button{border:none;background:transparent;color:inherit;cursor:pointer;min-width:44px;min-height:44px;font-size:1rem}.price-source{margin:0;opacity:.85}.manual-price-line{display:flex;flex-wrap:wrap;align-items:center;gap:.4rem;margin:0}.manual-price-label{opacity:.75}.manual-price-overrides{margin:0;font-size:.8rem;opacity:.7}.manual-price-cluster{display:inline-flex;align-items:center;gap:.25rem}.manual-price-input{width:4.5rem;min-height:44px;font:inherit;box-sizing:border-box}.manual-price-suffix{opacity:.75}.manual-price-hint{font-size:.8rem;opacity:.6}.product-card-actions{display:flex;flex-wrap:wrap;gap:.4rem}.product-card-actions button{min-height:44px;padding:0 .7rem}.linked-product{display:flex;flex-direction:column;gap:.4rem;align-items:flex-start}.product-image{max-width:8rem;max-height:8rem;border-radius:6px}.product-image-placeholder{display:flex;align-items:center;justify-content:center;border:1px solid CanvasText;border-radius:6px;background:Canvas;opacity:.55;flex:0 0 auto}.product-image-placeholder.card{width:8rem;height:8rem}.product-image-placeholder.thumb{width:40px;height:40px}.product-image-placeholder.card .product-image-placeholder-glyph{font-size:2.5rem}.product-image-placeholder.thumb .product-image-placeholder-glyph{font-size:1.2rem}.product-image-attribution{margin:0;font-size:.75rem;opacity:.7}.product-image-button{padding:0;border:0;background:none;display:block;cursor:pointer}.image-zoom-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1100;display:flex;align-items:center;justify-content:center;padding:1rem;border:0;background:#000c;cursor:zoom-out}.image-zoom{max-width:min(92vw,30rem);max-height:80vh;object-fit:contain;border-radius:8px}.product-provider-name{margin:0;font-weight:600;overflow-wrap:anywhere}.product-price{display:flex;flex-wrap:wrap;align-items:baseline;gap:.35rem;margin:0;font-size:1.1rem;max-width:100%;min-width:0}.price-strike{text-decoration:line-through;opacity:.6}.price-effective{font-weight:600}.product-unit-price{display:flex;flex-wrap:wrap;gap:.35rem;margin:0;font-size:.85rem;opacity:.75;max-width:100%;min-width:0}.product-unit-price span{white-space:nowrap}.offer-list{list-style:none;margin:.2rem 0 0;padding:0;font-size:.8rem;opacity:.85}.offer-list li{margin:.1rem 0;overflow-wrap:anywhere}.offer-end{opacity:.7}.product-price.manual,.product-card-footer.manual{opacity:.6}.product-price.none{opacity:.6;font-size:1rem}.product-card-footer{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem;margin:0;font-size:.8rem;opacity:.7;max-width:100%;min-width:0}.product-card-footer .link-button{font-size:inherit}.product-search{display:flex;flex-direction:column;gap:.5rem}.product-search-input{min-height:44px;font:inherit;box-sizing:border-box;width:100%}.product-search-status{margin:.25rem 0;opacity:.85}.product-search-count{margin:0;font-size:.8rem;opacity:.7}.product-search-results{list-style:none;margin:0;padding:0;max-height:18rem;overflow-y:auto;display:flex;flex-direction:column;gap:.25rem}.product-result{display:flex;align-items:center;gap:.5rem;width:100%;min-height:44px;text-align:left;background:transparent;border:1px solid #8888;border-radius:6px;padding:.3rem;cursor:pointer;color:inherit;font:inherit}.product-thumb{width:40px;height:40px;object-fit:contain;flex:0 0 auto}.product-result-name{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.product-result-price{flex:0 0 auto;opacity:.85}.product-search-actions{display:flex;gap:.4rem}.product-search-actions button{flex:1;min-height:44px}.product-search-cancel{min-height:44px}.price-line{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,auto) minmax(0,1fr);align-items:baseline;column-gap:.4rem;min-height:1.2rem;padding:.1rem 0 .2rem 2.6rem;font-size:.85rem}.price-line.manual{opacity:.6}.price-pending{opacity:.4}.price-regular{display:inline-flex;align-items:baseline;gap:.3rem;justify-self:start;min-width:0;max-width:100%}.price-regular>.price-strike,.price-regular>.price-effective,.price-regular>.price-unit{flex:0 0 auto}.price-sales{display:flex;flex-wrap:wrap;justify-content:center;align-items:baseline;gap:.3rem;justify-self:center;min-width:0;max-width:100%}.price-unit{font-weight:600}.price-none{font-weight:400;opacity:.6}.price-total{justify-self:end;text-align:right;opacity:.9}.price-strike,.price-effective,.price-unit,.price-none,.price-total,.product-price span{white-space:nowrap}.price-qualifier{opacity:.7;font-style:italic}.price-manual-mark{font-size:.7rem;text-transform:uppercase;letter-spacing:.03em;opacity:.75}.checked-item>.price-line{opacity:.5}.cart-total-strip{border-top:1px solid #ccc;padding:.35rem 1rem}.cart-total-line{display:flex;justify-content:space-between;margin:0;font-weight:600}.cart-total-unpriced{margin:.1rem 0 0;font-size:.8rem;opacity:.7}.price-chip{display:inline-flex;align-items:center;gap:.15rem;padding:0 .35rem;border:1px solid #8888;border-radius:10px;font-size:.75rem;white-space:nowrap;flex:0 1 auto;min-width:0;max-width:100%}.price-chip-glyph{flex:0 0 auto}.price-chip-label{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}.price-chip.club{border-color:#b45309;font-weight:600}.view-error{display:flex;flex-direction:column;gap:.25rem}.report-problem{font-size:.9rem;opacity:.9}.report-problem-form{display:flex;flex-direction:column;gap:.35rem;border:1px solid #ccc;border-radius:6px;padding:.5rem}.report-problem-form textarea{font:inherit;width:100%;box-sizing:border-box;resize:vertical}.report-problem-actions{display:flex;gap:.5rem;align-items:center}.report-problem-actions button:not(.link-button){min-height:44px}
