:root{--ground:#f6f1e7;--card:#fffcf5;--ink:#33291f;--ink-soft:#8a7b67;--line:#eae0cf;--green:#2e7d5b;--green-strong:#256a4c;--green-soft:#e4efe5;--apricot:#e8985a;--apricot-soft:#fbefe2;--danger:#c25443;--warn:#c98a12;--on-accent:#fff;--toast-bg:#33291f;--toast-ink:#f6f1e7;--shadow:0 2px 10px #5a462814;--shadow-big:0 6px 24px #3c2d192e;--radius:18px;--radius-sm:12px;--gap:12px;--safe-top:env(safe-area-inset-top,0px);--safe-bottom:env(safe-area-inset-bottom,0px)}@media (prefers-color-scheme:dark){:root{--ground:#211d17;--card:#2b261e;--ink:#efe7d9;--ink-soft:#a59885;--line:#3a3328;--green:#63be95;--green-strong:#7fd0aa;--green-soft:#2a3a31;--apricot:#e8a56f;--apricot-soft:#3d3226;--danger:#e07b6a;--warn:#e0b45a;--on-accent:#1c2620;--toast-bg:#efe7d9;--toast-ink:#211d17;--shadow:0 2px 10px #00000059;--shadow-big:0 6px 24px #00000080}}*{box-sizing:border-box}html,body,#root{height:100%}body{background:var(--ground);color:var(--ink);-webkit-tap-highlight-color:transparent;margin:0;font-family:ui-rounded,SF Pro Rounded,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,sans-serif}button{font:inherit;cursor:pointer}input,button{color:inherit}button:focus-visible,input:focus-visible,[role=button]:focus-visible{outline:2.5px solid var(--green);outline-offset:2px}@media (prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}}.app-shell{flex-direction:column;min-height:100dvh;display:flex}.app-header{z-index:10;justify-content:space-between;align-items:center;gap:var(--gap);padding:calc(14px + var(--safe-top)) 18px 10px;background:var(--ground);display:flex;position:sticky;top:0}.app-header h1{letter-spacing:-.01em;overflow-wrap:anywhere;margin:0;font-size:1.35rem;font-weight:700}.header-side{flex:none;align-items:center;gap:10px;display:flex}.avatar{background:var(--green-soft);width:38px;height:38px;color:var(--green);border:1.5px solid var(--line);border-radius:50%;flex:none;justify-content:center;align-items:center;font-size:.88rem;font-weight:700;display:flex}.badge{background:var(--card);border:1.5px solid var(--line);color:var(--ink-soft);white-space:nowrap;border-radius:999px;align-items:center;gap:6px;padding:4px 10px;font-size:.75rem;display:inline-flex}.badge .dot{background:var(--green);border-radius:50%;width:8px;height:8px}.badge.offline .dot{background:var(--danger)}.badge.syncing .dot{background:var(--warn);animation:1s ease-in-out infinite pulse}@keyframes pulse{0%,to{opacity:1}50%{opacity:.35}}.app-main{padding:4px 18px calc(150px + var(--safe-bottom));flex:1;width:100%;max-width:640px;margin:0 auto}.bottom-nav{z-index:20;background:var(--card);border-top:1.5px solid var(--line);padding:6px 0 calc(8px + var(--safe-bottom));display:flex;position:fixed;bottom:0;left:0;right:0}.bottom-nav button{color:var(--ink-soft);background:0 0;border:none;flex-direction:column;flex:1;align-items:center;gap:3px;padding:4px;font-size:.72rem;display:flex}.bottom-nav button.active{color:var(--green);font-weight:700}.bottom-nav .icon{font-size:1.3rem;line-height:1}.auth-screen{max-width:420px;margin:0 auto;padding-top:16px}.auth-logo{text-align:center;margin-bottom:10px}.auth-logo .emoji{font-size:2.4rem}.tabs{gap:8px;margin-bottom:16px;display:flex}.tabs button{border:1.5px solid var(--line);background:var(--card);border-radius:999px;flex:1;padding:11px;font-weight:600}.tabs button.active{background:var(--green);color:var(--on-accent);border-color:var(--green)}.field{margin-bottom:12px}.field label{color:var(--ink-soft);margin-bottom:4px;font-size:.85rem;display:block}.field input{border-radius:var(--radius-sm);border:1.5px solid var(--line);background:var(--card);width:100%;padding:12px 16px;font-size:1rem}.field input:focus,.field select:focus{border-color:var(--green);outline:none}.field select{border-radius:var(--radius-sm);border:1.5px solid var(--line);background:var(--card);width:100%;color:var(--ink);padding:12px 16px;font-size:1rem}.field input[type=checkbox]{width:20px;height:20px;accent-color:var(--green)}.field input[disabled],.field select[disabled]{opacity:.6}.btn{border-radius:var(--radius-sm);background:var(--green);color:var(--on-accent);border:none;justify-content:center;align-items:center;gap:8px;min-height:46px;padding:12px 18px;font-size:1rem;font-weight:700;display:inline-flex}.btn:active{background:var(--green-strong)}.btn.block{width:100%}.btn.secondary{background:var(--card);color:var(--green);border:1.5px solid var(--green)}.btn.secondary:active{background:var(--green-soft)}.btn.danger{background:var(--danger);color:#fff}.btn.ghost{color:var(--ink-soft);background:0 0}.btn.ghost:active{background:var(--green-soft)}.btn[disabled]{opacity:.55;cursor:default}.error-text{color:var(--danger);margin:8px 0;font-size:.85rem}.success-text{color:var(--green);margin:8px 0;font-size:.85rem}.text-btn{min-height:auto;color:var(--ink-soft);background:0 0;padding:6px 0;font-size:.82rem;font-weight:600;text-decoration:underline}.text-btn:active{color:var(--danger)}.ai-settings-actions{flex-direction:column;gap:8px;margin-top:4px;display:flex}.divider{color:var(--ink-soft);align-items:center;gap:10px;margin:16px 0;font-size:.8rem;display:flex}.divider:before,.divider:after{content:"";background:var(--line);flex:1;height:1.5px}.google-btn-container{justify-content:center;min-height:44px;display:flex}.setup-card{background:var(--card);border-radius:var(--radius);border:1.5px solid var(--line);box-shadow:var(--shadow);margin-bottom:16px;padding:18px}.setup-card h2{margin-top:0;font-size:1.05rem}.add-bar-wrap{left:0;right:0;bottom:calc(62px + var(--safe-bottom));z-index:15;background:linear-gradient(to top, var(--ground) 70%, transparent);padding:8px 16px 6px;position:fixed}.frequent-chips{-webkit-overflow-scrolling:touch;scrollbar-width:none;gap:8px;padding:2px 0 10px;display:flex;overflow-x:auto}.frequent-chips::-webkit-scrollbar{display:none}.chip{border:1.5px solid var(--line);background:var(--card);white-space:nowrap;border-radius:999px;flex:none;padding:7px 14px;font-size:.88rem}.chip:active{background:var(--green-soft);border-color:var(--green)}.typeahead{background:var(--card);border:1.5px solid var(--line);border-radius:var(--radius-sm);max-width:640px;box-shadow:var(--shadow);flex-direction:column;gap:2px;max-height:220px;margin:0 auto 8px;padding:4px;display:flex;overflow-y:auto}.typeahead-option{text-align:start;border-radius:var(--radius-sm);width:100%;color:var(--ink);background:0 0;border:none;justify-content:space-between;align-items:center;gap:10px;padding:9px 10px;font-size:.92rem;display:flex}.typeahead-option:active{background:var(--green-soft)}.typeahead-option.on-list{color:var(--ink-soft)}.typeahead-tag{text-transform:uppercase;letter-spacing:.04em;color:var(--apricot);background:var(--apricot-soft);border-radius:999px;flex:none;padding:3px 8px;font-size:.7rem;font-weight:700}.add-bar{align-items:center;gap:8px;max-width:640px;margin:0 auto;display:flex}.add-bar input{border:1.5px solid var(--line);background:var(--card);border-radius:999px;outline:none;flex:1;min-width:0;padding:12px 18px;font-size:1rem}.add-bar input:focus{border-color:var(--green)}.add-bar .mic-btn,.add-bar .send-btn{border:none;border-radius:50%;flex:none;justify-content:center;align-items:center;width:46px;height:46px;font-size:1.15rem;display:flex}.add-bar .mic-btn{background:var(--card);border:1.5px solid var(--line);color:var(--green)}.add-bar .send-btn{background:var(--green);color:var(--on-accent);font-weight:800}.add-bar .mic-btn.listening{background:var(--danger);border-color:var(--danger);color:#fff}.add-bar .mic-btn.transcribing{opacity:.6;cursor:default;animation:1.2s ease-in-out infinite pulse}.mic-hint{color:var(--ink-soft);text-align:center;padding:6px 8px 2px;font-size:.78rem}.mic-hint.error{color:var(--danger);font-weight:600}.section-title{text-transform:uppercase;letter-spacing:.08em;color:var(--ink-soft);margin:18px 4px 8px;font-size:.8rem;font-weight:700}.section-title b{color:var(--green)}.section-title.cart b{color:var(--apricot)}.list-toolbar{justify-content:space-between;align-items:center;gap:8px;margin:4px 4px 0;display:flex}.grouped-toggle{padding:4px 2px}.category-section{margin-bottom:4px}.category-header{color:var(--ink-soft);align-items:baseline;gap:4px;margin:12px 4px 6px;font-size:.76rem;font-weight:700;display:flex}.category-header b{color:var(--green)}.item-list{flex-direction:column;gap:10px;margin:0;padding:0;list-style:none;display:flex}.item-row{background:var(--card);border-radius:var(--radius);box-shadow:var(--shadow);-webkit-user-select:none;user-select:none;border:1.5px solid #0000;align-items:center;gap:14px;min-height:62px;padding:14px 16px;transition:transform .12s;display:flex}.item-row:active{transform:scale(.985)}.item-row .check{border:2.5px solid var(--line);border-radius:50%;flex:none;justify-content:center;align-items:center;width:28px;height:28px;font-size:.9rem;font-weight:800;transition:all .15s;display:flex}.item-row.in-cart{border-color:var(--apricot);background:var(--apricot-soft)}.item-row.in-cart .check{background:var(--apricot);border-color:var(--apricot);color:#fff}.item-row .info{flex:1;min-width:0}.item-row .name{overflow-wrap:anywhere;font-size:1rem;font-weight:600}.item-row .attribution{color:var(--ink-soft);margin-top:2px;font-size:.78rem}.item-row.in-cart .attribution{color:var(--apricot);font-weight:600}.item-row .buy-again{flex:none}.item-row input[dir=auto]{border:1.5px solid var(--green);border-radius:var(--radius-sm);font:inherit;background:var(--card);outline:none;flex:1;min-width:0;padding:10px 12px}.empty-state{text-align:center;color:var(--ink-soft);border:2px dashed var(--line);border-radius:var(--radius);padding:22px 16px;font-size:.92rem}.checkout-bar{margin:16px 0}.checkout-bar .btn{background:var(--apricot);border-radius:var(--radius-sm);box-shadow:var(--shadow);color:#fff}.checkout-bar .btn:active{filter:brightness(.95)}.sheet-backdrop{z-index:30;background:#140f0873;align-items:flex-end;display:flex;position:fixed;inset:0}.sheet{background:var(--card);width:100%;max-width:640px;padding:18px 18px calc(18px + var(--safe-bottom));border-radius:22px 22px 0 0;margin:0 auto;animation:.18s sheet-rise}@keyframes sheet-rise{0%{opacity:.6;transform:translateY(30px)}}.sheet h3{color:var(--ink-soft);overflow-wrap:anywhere;margin:0 0 12px;font-size:.95rem;font-weight:600}.sheet-actions{flex-direction:column;gap:8px;display:flex}.sheet-action-check{font-weight:800}.toast{left:20px;right:20px;bottom:calc(76px + var(--safe-bottom));z-index:40;background:var(--toast-bg);max-width:500px;color:var(--toast-ink);box-shadow:var(--shadow-big);border-radius:14px;justify-content:space-between;align-items:center;gap:12px;margin:0 auto;padding:12px 16px;display:flex;position:fixed}.toast button{color:var(--apricot);background:0 0;border:none;font-weight:800}.toast.no-undo{justify-content:center}.visibility-toggle{white-space:nowrap;flex:none;padding:4px 2px}.todo-badge{color:var(--green);background:var(--green-soft);border-radius:999px;align-items:center;margin-inline-end:6px;padding:2px 8px;font-size:.72rem;font-weight:700;display:inline-flex}.history-item{background:var(--card);border-radius:var(--radius);box-shadow:var(--shadow);border:1.5px solid #0000;justify-content:space-between;align-items:center;gap:12px;margin-bottom:10px;padding:13px 16px;display:flex}.history-item .meta{color:var(--ink-soft);font-size:.75rem}.settings-nav-chips{top:calc(60px + var(--safe-top));z-index:9;background:var(--ground);scrollbar-width:none;gap:8px;margin-bottom:4px;padding:6px 0 12px;display:flex;position:sticky;overflow-x:auto}.settings-nav-chips::-webkit-scrollbar{display:none}.settings-nav-chip{flex:none}@media (width>=900px){.app-main:has(.settings-nav-chips){max-width:640px}.settings-nav-chips{top:calc(96px + var(--safe-top));width:168px;max-height:calc(100vh - 140px - var(--safe-top));background:0 0;flex-direction:column;align-items:stretch;margin:0;padding:0;position:fixed;inset-inline-start:max(12px,50% - 460px);overflow:hidden auto}.settings-nav-chip{text-align:start}}.settings-row{background:var(--card);border-radius:var(--radius);box-shadow:var(--shadow);border:1.5px solid #0000;margin-bottom:12px;padding:16px}.settings-row .label{text-transform:uppercase;letter-spacing:.06em;color:var(--ink-soft);margin-bottom:6px;font-size:.78rem;font-weight:700}.settings-radio{cursor:pointer;align-items:center;gap:10px;padding:8px 0;display:flex}.settings-radio input[type=radio]{width:20px;height:20px;accent-color:var(--green);flex:none}.settings-hint{color:var(--ink-soft);margin-top:4px;font-size:.78rem}.invite-link-box{align-items:center;gap:8px;margin-top:8px;display:flex}.invite-link-box input{border-radius:var(--radius-sm);border:1.5px solid var(--line);background:var(--ground);flex:1;min-width:0;padding:10px 12px;font-size:.85rem}.device-item{border:1.5px solid var(--line);border-radius:var(--radius-sm);margin-bottom:8px;padding:10px 12px}.device-item .settings-hint{margin:4px 0 8px}.device-reveal{border:1.5px solid var(--green);background:var(--green-soft);border-radius:var(--radius-sm);margin:8px 0;padding:10px 12px}.device-reveal .invite-link-box{margin-top:6px}.device-add-form{margin-top:8px}.category-item{border:1.5px solid var(--line);border-radius:var(--radius-sm);align-items:center;gap:10px;margin-bottom:8px;padding:8px 10px;display:flex}.category-item .category-name{overflow-wrap:anywhere;flex:1;min-width:0}.category-item input[type=text]{border:1.5px solid var(--green);border-radius:var(--radius-sm);min-width:0;font:inherit;background:var(--card);outline:none;flex:1;padding:8px 10px}.category-item-actions{flex:none;gap:2px;display:flex}.category-item-actions button{min-width:32px;min-height:32px;color:var(--ink-soft);background:0 0;border:none;padding:4px;font-size:.95rem}.category-item-actions button:disabled{opacity:.35}.category-add-form{gap:8px;margin-top:4px;display:flex}.category-add-form input{flex:1;min-width:0}.category-add-form button{flex:none}.category-checkbox{align-items:center;gap:10px;padding:8px 0;display:flex}.admin-totals{grid-template-columns:repeat(2,1fr);gap:10px;margin-bottom:12px;display:grid}.admin-stat{background:var(--card);border:1.5px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);text-align:center;padding:14px}.admin-stat-value{color:var(--green);font-size:1.6rem;font-weight:800;line-height:1.1}.admin-stat-label{text-transform:uppercase;letter-spacing:.06em;color:var(--ink-soft);margin-top:4px;font-size:.75rem;font-weight:700}.admin-user-row{background:var(--card);border:1.5px solid var(--line);border-radius:var(--radius-sm);margin-bottom:8px;padding:12px 14px}.admin-user-head{justify-content:space-between;align-items:baseline;gap:8px;display:flex}.admin-user-name{overflow-wrap:anywhere;font-weight:700}.admin-user-method{color:var(--green);background:var(--green-soft);border-radius:999px;flex:none;padding:2px 8px;font-size:.72rem;font-weight:700}.admin-user-email{overflow-wrap:anywhere;margin-top:2px}.center-loading{min-height:60vh;color:var(--ink-soft);justify-content:center;align-items:center;display:flex}.store-item{border:1.5px solid var(--line);border-radius:var(--radius-sm);justify-content:space-between;align-items:flex-start;gap:10px;margin-bottom:8px;padding:10px 12px;display:flex}.store-item-info{flex:1;min-width:0}.store-item-name{overflow-wrap:anywhere;font-weight:700}.store-status{margin-inline-end:4px;font-weight:800}.store-status.ok{color:var(--green)}.store-status.warn{color:var(--warn)}.store-remove-btn{min-width:32px;min-height:32px;color:var(--ink-soft);background:0 0;border:none;flex:none;font-size:1rem}.store-remove-btn:active{color:var(--danger)}.store-add-form{margin-top:8px}.store-add-form #branchFilterInput{border-radius:var(--radius-sm);border:1.5px solid var(--line);background:var(--card);width:100%;color:var(--ink);font:inherit;margin-top:6px;padding:10px 12px}.store-mode-toggle{gap:8px;margin-bottom:10px;display:flex}.store-mode-toggle .btn{flex:1}.city-search-summary{border:1.5px solid var(--line);border-radius:var(--radius-sm);background:var(--ground);margin-top:8px;padding:10px 12px}.city-search-summary .btn{margin-top:8px}.empty-state-action{margin-top:14px}.compare-toolbar{justify-content:flex-end;margin:4px 4px 10px;display:flex}.compare-stores-row{grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:10px;margin:4px 0 8px;display:grid}.compare-store-card{background:var(--card);border:1.5px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);text-align:center;padding:14px}.compare-store-card.cheapest{border-color:var(--green);background:var(--green-soft)}.compare-store-chain{overflow-wrap:anywhere;font-size:.92rem;font-weight:700}.compare-store-branch{color:var(--ink-soft);overflow-wrap:anywhere;margin-top:2px;font-size:.76rem}.compare-store-total{color:var(--green);margin-top:8px;font-size:1.5rem;font-weight:800}.compare-store-meta{color:var(--ink-soft);margin-top:4px;font-size:.74rem}.compare-store-missing{color:var(--warn);margin-top:2px;font-size:.74rem;font-weight:700}.compare-store-badge{text-transform:uppercase;letter-spacing:.05em;color:var(--on-accent);background:var(--green);border-radius:999px;margin-top:8px;padding:3px 9px;font-size:.66rem;font-weight:800;display:inline-block}.compare-store-list{flex-direction:column;gap:8px;margin:4px 0 8px;display:flex}.compare-store-row{background:var(--card);border:1.5px solid var(--line);border-radius:var(--radius-sm);box-shadow:var(--shadow);align-items:center;gap:12px;padding:12px 14px;display:flex}.compare-store-row.cheapest{border-color:var(--green);background:var(--green-soft)}.compare-store-rank{width:26px;color:var(--ink-soft);text-align:center;flex:none;font-weight:800}.compare-store-row-info{flex:1;min-width:0}.compare-store-row-total{text-align:end;flex:none}.compare-store-row-total .compare-store-total{margin-top:0;font-size:1.15rem}.compare-table-wrap{border:1.5px solid var(--line);border-radius:var(--radius-sm);-webkit-overflow-scrolling:touch;margin-bottom:16px;overflow-x:auto}.compare-table{border-collapse:collapse;background:var(--card);width:100%;font-size:.85rem}.compare-table th,.compare-table td{text-align:start;white-space:nowrap;border-bottom:1px solid var(--line);padding:9px 10px}.compare-table th{color:var(--ink-soft);text-transform:uppercase;letter-spacing:.04em;font-size:.7rem;font-weight:700}.compare-table td:first-child,.compare-table th:first-child{white-space:normal;background:var(--card);min-width:120px;position:sticky;inset-inline-start:0}.compare-table th:first-child{z-index:1}.compare-table tr:last-child td{border-bottom:none}.compare-row-edit-btn{color:var(--ink-soft);background:0 0;border:none;padding:2px 6px;font-size:.9rem}.compare-unmatched-list{flex-direction:column;gap:8px;margin-bottom:10px;display:flex}.compare-unmatched-row{background:var(--card);border:1.5px solid var(--line);border-radius:var(--radius-sm);justify-content:space-between;align-items:center;gap:10px;padding:10px 12px;display:flex}.compare-suggestions{flex-direction:column;gap:8px;margin:12px 0;display:flex}.compare-suggestion-row{background:var(--card);border:1.5px solid var(--line);border-radius:var(--radius-sm);padding:10px 12px}.compare-suggestion-actions{gap:8px;margin-top:8px;display:flex}.compare-match-panel{margin-top:12px}.compare-candidate-list{flex-direction:column;gap:6px;max-height:260px;margin:10px 0;display:flex;overflow-y:auto}.compare-candidate-row{text-align:start;border:1.5px solid var(--line);border-radius:var(--radius-sm);background:var(--card);flex-direction:column;align-items:flex-start;gap:2px;width:100%;padding:10px 12px;display:flex}.compare-candidate-row:active{background:var(--green-soft);border-color:var(--green)}.compare-match-actions{flex-wrap:wrap;gap:8px;margin-top:8px;display:flex}.catalog-toolbar{gap:var(--gap);flex-wrap:wrap;margin:4px 0 12px;display:flex}.catalog-toolbar .field{flex:1;min-width:160px;margin-bottom:0}.catalog-list{flex-direction:column;gap:8px;display:flex}.catalog-row{background:var(--card);border:1.5px solid var(--line);border-radius:var(--radius-sm);box-shadow:var(--shadow);padding:12px 14px}.catalog-row-name{overflow-wrap:anywhere;font-weight:700}.catalog-row-barcode{color:var(--ink-soft);margin-top:2px;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:.72rem}.catalog-row-prices{flex-wrap:wrap;gap:6px;margin-top:8px;display:flex}.catalog-price-chip{padding:5px 11px;font-size:.78rem}.catalog-paging{justify-content:space-between;align-items:center;gap:10px;margin:14px 0;display:flex}.catalog-paging-info{color:var(--ink-soft);text-align:center;font-size:.8rem}
