:root{--bg:#fff;--surface:#f7f7f5;--hover:#f1f1ef;--text:#1f1f1e;--muted:#787774;--faint:#b4b3af;--line:#ebebe9;--line-strong:#d9d8d5;--ink:#111;--ink-text:#fff;--accent:#2383e2;--danger:#e03e3e;--radius:12px;--shadow-pop:0 8px 30px #0f0f0f1f, 0 0 0 1px #0f0f0f0d;--ink-hover:#2b2b2b;--focus-ring:#2383e226;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light dark}@media (prefers-color-scheme:dark){:root{--lightningcss-light: ;--lightningcss-dark:initial;--bg:#191919;--surface:#202020;--hover:#2a2a2a;--text:#ececea;--muted:#9b9a97;--faint:#5f5e5b;--line:#2d2d2d;--line-strong:#3d3d3d;--ink:#ececea;--ink-text:#191919;--accent:#4a9eff;--danger:#ff6b6b;--ink-hover:#d4d4d2;--focus-ring:#4a9eff40;--shadow-pop:0 8px 30px #00000080, 0 0 0 1px #ffffff14}.backdrop{background:#0000008c}}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}html,body{background:var(--bg);color:var(--text);margin:0}body{-webkit-font-smoothing:antialiased;-webkit-text-size-adjust:100%;overscroll-behavior-y:none;font-family:Inter,-apple-system,BlinkMacSystemFont,SF Pro Text,Segoe UI,Roboto,sans-serif;font-size:16px;line-height:1.45}button{font:inherit;color:inherit;cursor:pointer;background:0 0;border:0;padding:0}button:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.input:focus-visible{outline:none}h1{letter-spacing:-.03em;margin:0;font-size:2rem;font-weight:700;line-height:1.15}h2{letter-spacing:-.01em;margin:0 0 .25rem;font-size:1.15rem;font-weight:600}.screen{max-width:560px;min-height:100dvh;padding:calc(env(safe-area-inset-top) + 2rem) calc(env(safe-area-inset-right) + 1.25rem) calc(env(safe-area-inset-bottom) + 3rem) calc(env(safe-area-inset-left) + 1.25rem);margin:0 auto}.screen.center{text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:.25rem;display:flex}.hero-emoji{background:var(--surface);border:1px solid var(--line);border-radius:20px;place-items:center;width:72px;height:72px;margin-bottom:1rem;font-size:2.2rem;line-height:1;display:grid}.empty-note{text-align:center;color:var(--faint);margin:1.5rem 0 .5rem;font-size:.9rem}.muted{color:var(--muted);margin:.25rem 0 1.5rem;font-size:.95rem}.stack{flex-direction:column;gap:.5rem;width:100%;max-width:320px;display:flex}.sheet .stack{max-width:none}.btn{background:var(--bg);border:1px solid var(--line-strong);border-radius:10px;min-height:44px;padding:0 1.1rem;font-size:.95rem;font-weight:500;transition:background .15s,transform .1s}.btn:hover{background:var(--hover)}.btn:active{transform:scale(.98)}.btn.primary{background:var(--ink);border-color:var(--ink);color:var(--ink-text)}.btn.primary:hover{background:var(--ink-hover)}.btn.primary:disabled{opacity:.35;cursor:default}.btn.ghost{color:var(--muted);border-color:#0000}.btn.danger{color:var(--danger)}.input{border:1px solid var(--line-strong);background:var(--bg);width:100%;min-height:44px;color:var(--text);border-radius:10px;outline:none;padding:0 .9rem;font-family:inherit;font-size:16px;transition:border-color .15s,box-shadow .15s}.input:focus{border-color:var(--muted);box-shadow:0 0 0 3px var(--line)}.code-input{text-align:center;letter-spacing:.3em;text-transform:uppercase;font-size:18px;font-weight:600}.topbar{justify-content:space-between;align-items:flex-start;margin-bottom:1.5rem;display:flex}.subtitle{color:var(--muted);align-items:center;gap:.5rem;margin:.35rem 0 0;font-size:.9rem;display:flex}.icon-btn{width:40px;height:40px;color:var(--muted);border-radius:10px;place-items:center;transition:background .15s,color .15s;display:grid}.icon-btn:hover{background:var(--hover);color:var(--text)}.add-row{align-items:flex-start;gap:.5rem;margin-bottom:.5rem;display:flex}.add-row .add-bar{flex:1;min-width:0;margin-bottom:0}.add-bar{border:1px solid var(--line-strong);border-radius:var(--radius);background:var(--bg);align-items:center;gap:.5rem;min-height:48px;margin-bottom:.5rem;padding:0 .4rem 0 .75rem;transition:border-color .15s,box-shadow .15s;display:flex;position:relative}.suggestions{z-index:10;background:var(--bg);border:1px solid var(--line-strong);border-radius:var(--radius);box-shadow:var(--shadow-pop);margin:0;padding:.25rem;list-style:none;position:absolute;top:calc(100% + 6px);left:0;right:0}.suggestion{text-align:left;border-radius:8px;align-items:center;gap:.65rem;width:100%;min-height:44px;padding:0 .6rem;font-size:.95rem;display:flex}@media (hover:hover){.suggestion:hover{background:var(--hover)}}.suggestion-emoji{flex:none;font-size:1.15rem}.suggestion-name{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;overflow:hidden}.suggestion-state{color:var(--faint);flex:none;font-size:.78rem}.add-bar:focus-within{border-color:var(--muted);box-shadow:0 0 0 3px var(--line)}.add-plus{color:var(--faint);place-items:center;display:grid}.add-input{min-width:0;color:var(--text);font:inherit;background:0 0;border:0;outline:none;flex:1;padding:.7rem 0;font-size:16px}.add-input::placeholder{color:var(--faint)}.add-btn{background:var(--line-strong);height:34px;color:var(--text);border-radius:8px;flex:none;padding:0 .9rem;font-size:.875rem;font-weight:500;transition:opacity .2s,transform .1s}.add-btn:active{transform:scale(.96)}.add-btn:disabled{opacity:0;pointer-events:none}.mic-btn{border-radius:var(--radius);border:1px solid var(--line-strong);background:var(--bg);width:48px;height:48px;color:var(--text);flex:none;place-items:center;transition:background .15s,color .15s;display:grid}.mic-btn:hover{background:var(--hover)}.mic-btn.listening{background:var(--accent);border-color:var(--accent);color:#fff;animation:1.2s ease-in-out infinite mic-pulse}.mic-btn.thinking{opacity:.5}.voice-status{left:50%;bottom:calc(env(safe-area-inset-bottom) + 1.25rem);background:var(--hover);max-width:calc(100% - 2.5rem);color:var(--text);box-shadow:var(--shadow-pop);z-index:30;border-radius:10px;padding:.65rem 1rem;font-size:.95rem;font-weight:500;position:fixed;transform:translate(-50%)}@keyframes mic-pulse{50%{box-shadow:0 0 0 6px var(--focus-ring)}}.tabs{gap:.4rem;margin:1rem 0 .25rem;display:flex}.tab{height:32px;color:var(--muted);background:0 0;border:0;border-radius:999px;padding:0 .9rem;font-size:.85rem;font-weight:500;transition:background .15s,color .15s}.tab:hover{background:var(--surface);color:var(--text)}.tab.active{background:var(--hover);color:var(--text)}.filters{justify-content:space-between;align-items:center;gap:1rem;margin:1rem 0 .25rem;display:flex}.filter-group{gap:.4rem;display:flex}.filter{height:32px;color:var(--muted);background:0 0;border:0;border-radius:999px;padding:0 .9rem;font-size:.85rem;font-weight:500;transition:background .15s,color .15s}.filter:hover{background:var(--surface);color:var(--text)}.filter.active{background:var(--hover);color:var(--text)}.sort-btn{color:var(--muted);background:0 0;border:0;align-items:center;gap:.3rem;margin-left:auto;padding:.4rem 0;font-size:.85rem;font-weight:500;transition:color .15s;display:inline-flex}.sort-btn:hover{color:var(--text)}.list{margin:0;padding:0;list-style:none}.item{border-radius:8px;align-items:center;gap:.75rem;min-height:46px;padding:0 .5rem;transition:background .15s;animation:.25s slide-in;display:flex;position:relative}@media (hover:hover){.item:hover{background:var(--surface)}}.check{border:1.5px solid var(--line-strong);color:#fff;background:var(--bg);border-radius:50%;flex:none;place-items:center;width:22px;height:22px;transition:all .18s;display:grid}.check:hover{border-color:var(--accent)}.item-main{text-align:left;flex:1;align-items:center;min-width:0;min-height:46px;font-size:1rem;font-weight:450;display:flex}.item-name{text-overflow:ellipsis;overflow-wrap:anywhere;transition:color .2s;overflow:hidden}.item-emoji{flex:none;place-items:center;width:34px;height:34px;font-size:1.25rem;line-height:1;display:grid}.item-delete{width:30px;height:30px;color:var(--faint);opacity:0;border-radius:8px;flex:none;place-items:center;transition:opacity .15s,background .15s,color .15s;display:grid}.item:hover .item-delete,.item-delete:focus-visible{opacity:1}.item-delete:hover{background:var(--hover);color:var(--danger)}@media (hover:none){.item-delete{opacity:1}}.item.done .item-name{text-decoration:line-through;-webkit-text-decoration-color:var(--faint);text-decoration-color:var(--faint);color:var(--faint)}.item.done .item-emoji{opacity:.45;filter:grayscale()}.item.done .check{background:var(--faint);border-color:var(--faint);animation:.25s pop}.section{color:var(--muted);letter-spacing:.01em;margin:2rem 0 .25rem;padding:0 .5rem;font-size:.8rem;font-weight:500}.section-toggle{color:inherit;font:inherit;letter-spacing:inherit;border-radius:6px;align-items:center;gap:.4rem;padding:.25rem .4rem .25rem 0;font-size:.95rem;font-weight:600;display:flex}.section-done{margin-top:2rem}@media (hover:hover){.section-toggle:hover{color:var(--text)}}.done-cats .section{color:var(--faint)}.done-cats>section:first-child .section.first{margin-top:.5rem}.chevron{place-items:center;width:1rem;transition:transform .15s;display:grid}.chevron.open{transform:rotate(90deg)}section+section .section.first{margin-top:1.25rem}.section.first{margin-top:1.5rem}.section{align-items:center;gap:.4rem;display:flex}.item-store{color:var(--faint);flex:none;font-size:.78rem}.item-tag{width:30px;height:30px;color:var(--faint);opacity:0;border-radius:8px;flex:none;place-items:center;transition:opacity .15s,background .15s,color .15s;display:grid}.item:hover .item-tag,.item-tag:focus-visible{opacity:1}.item-tag:hover{background:var(--hover);color:var(--text)}@media (hover:none){.item-tag{opacity:1}}.sheet h2{margin-bottom:.9rem}.sheet-label{color:var(--muted);margin:1.25rem 0 .5rem;font-size:.8rem;font-weight:500}.sheet-save{width:100%;margin-top:1rem}.cat-list{flex-direction:column;gap:.1rem;display:flex}.cat-choice{text-align:left;border-radius:10px;align-items:center;gap:.75rem;min-height:42px;padding:0 .75rem;font-size:1rem;transition:background .12s;display:flex}.cat-choice:hover{background:var(--hover)}.cat-choice.active{background:var(--surface);font-weight:600}.cat-emoji{text-align:center;width:1.6rem;font-size:1.3rem}.empty{text-align:center;padding:4rem 0}.empty-emoji{margin-bottom:.75rem;font-size:2.5rem}.empty-title{margin:0;font-weight:600}.empty .muted{margin-bottom:0}.toast{left:50%;bottom:calc(env(safe-area-inset-bottom) + 1.25rem);background:var(--hover);color:var(--text);box-shadow:var(--shadow-pop);z-index:30;border-radius:10px;padding:.65rem 1rem;font-size:.9rem;font-weight:500;animation:.25s cubic-bezier(.2,.8,.2,1) toast-in;position:fixed;transform:translate(-50%)}.toast.leaving{pointer-events:none;animation:.22s forwards toast-out}.backdrop{-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);z-index:20;background:#0f0f0f4d;justify-content:center;align-items:flex-end;animation:.2s fade;display:flex;position:fixed;inset:0}.sheet{background:var(--bg);width:100%;max-width:560px;max-height:85dvh;box-shadow:var(--shadow-pop);padding:.75rem 1.25rem calc(env(safe-area-inset-bottom) + 1.5rem);border-radius:20px 20px 0 0;animation:.28s cubic-bezier(.2,.8,.2,1) sheet-up;overflow-y:auto}.sheet-handle{background:var(--line-strong);border-radius:2px;width:36px;height:4px;margin:0 auto 1.25rem}.sheet .muted{margin-bottom:1rem}.code-box{letter-spacing:.25em;text-align:center;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);-webkit-user-select:all;user-select:all;margin-bottom:1rem;padding:1rem 0 1rem .25em;font-size:2rem;font-weight:600}.emoji-grid{grid-template-columns:repeat(6,1fr);gap:.25rem;display:grid}.emoji-choice{border-radius:10px;height:48px;font-size:1.6rem;transition:background .12s}.emoji-choice:hover{background:var(--hover)}.emoji-choice:active{transform:scale(1.1)}@media (width>=600px){.backdrop{align-items:center}.sheet{border-radius:16px;max-width:440px}.sheet-handle{display:none}}@keyframes pop{0%{transform:scale(.8)}60%{transform:scale(1.1)}to{transform:scale(1)}}@keyframes slide-in{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:none}}@keyframes toast-in{0%{opacity:0;transform:translate(-50%,8px)}to{opacity:1;transform:translate(-50%)}}@keyframes toast-out{0%{opacity:1;transform:translate(-50%)}to{opacity:0;transform:translate(-50%,8px)}}@keyframes fade{0%{opacity:0}to{opacity:1}}@keyframes sheet-up{0%{transform:translateY(100%)}to{transform:none}}.chips{scrollbar-width:none;gap:.4rem;margin:0 -1.25rem .25rem;padding:.15rem 1.25rem;display:flex;overflow-x:auto}.chips::-webkit-scrollbar{display:none}.chip{border:1px solid var(--line-strong);background:var(--bg);border-radius:999px;flex:none;align-items:center;gap:.35rem;height:34px;padding:0 .8rem;font-size:.875rem;transition:background .15s,transform .1s;display:inline-flex}@media (hover:hover){.chip:hover{background:var(--hover)}}.chip:active{transform:scale(.96)}.item-qty{background:var(--hover);color:var(--muted);border-radius:999px;flex:none;margin-left:.5rem;padding:.05rem .5rem;font-size:.8rem;font-weight:600}.item-main{gap:0}.stepper{align-items:center;gap:.75rem;display:flex}.stepper-btn{border:1px solid var(--line-strong);border-radius:10px;place-items:center;width:40px;height:40px;font-size:1.25rem;display:grid}.stepper-btn:disabled{opacity:.35;cursor:default}.stepper-value{text-align:center;min-width:3rem;font-weight:600}.toast{align-items:center;gap:.9rem;max-width:calc(100% - 2.5rem);display:flex}.toast-undo{color:inherit;flex:none;padding:.2rem .1rem;font-weight:700;text-decoration:underline}.voice-status{bottom:calc(env(safe-area-inset-bottom) + 1.25rem)}@media (prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}}.select-wrap{position:relative}.select{appearance:none;cursor:pointer;padding-right:2.5rem}.select-chevron{color:var(--muted);pointer-events:none;place-items:center;display:grid;position:absolute;top:50%;right:.9rem;transform:translateY(-50%)rotate(90deg)}.segmented{background:var(--hover);border-radius:12px;gap:.25rem;padding:.2rem;display:flex}.segment{height:36px;color:var(--muted);background:0 0;border:0;border-radius:9px;flex:1;font-size:.9rem;font-weight:500;transition:background .15s,color .15s}.segment.active{background:var(--bg);color:var(--text);box-shadow:0 1px 3px #0f0f0f26}.name-row{align-items:center;gap:.5rem;display:flex}.emoji-btn{border:1px solid var(--line-strong);border-radius:10px;flex:none;place-items:center;width:44px;height:44px;font-size:1.4rem;line-height:1;transition:background .15s;display:grid}@media (hover:hover){.emoji-btn:hover{background:var(--hover)}}.restock-card{border-radius:var(--radius);background:var(--surface);border:1px solid var(--line);text-align:left;width:100%;color:var(--muted);align-items:center;gap:.75rem;margin:.25rem 0 0;padding:.6rem .9rem;transition:background .15s,transform .1s;display:flex}@media (hover:hover){.restock-card:hover{background:var(--hover)}}.restock-card:active{transform:scale(.99)}.restock-stack{flex:none;display:flex}.restock-stack span{background:var(--bg);border:1px solid var(--line-strong);border-radius:50%;place-items:center;width:30px;height:30px;margin-left:-8px;font-size:1rem;display:grid}.restock-stack span:first-child{margin-left:0}.restock-text{flex-direction:column;flex:1;min-width:0;line-height:1.3;display:flex}.restock-text strong{color:var(--text);font-size:.9rem;font-weight:600}.restock-text .muted{margin:0;font-size:.8rem}.restock{text-align:left}.empty .restock{margin-top:1.5rem}.tiles{grid-template-columns:repeat(auto-fill,minmax(96px,1fr));gap:.5rem;display:grid}.tile{border:1px solid var(--line-strong);border-radius:var(--radius);background:var(--bg);text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:.15rem;min-height:84px;padding:.5rem .35rem;transition:background .15s,border-color .15s,transform .1s;display:flex}.tile:active{transform:scale(.96)}.tile.on{border-color:var(--accent);background:var(--surface);box-shadow:inset 0 0 0 1px var(--accent)}.tile-emoji{font-size:1.5rem;line-height:1.2}.tile-name{overflow-wrap:anywhere;font-size:.85rem;font-weight:500}.tile-note{color:var(--muted);font-size:.7rem}.restock .sheet-save:disabled{opacity:.45}.topbar-actions{align-items:center;gap:.25rem;display:flex}.banner{border-radius:var(--radius);height:180px;margin-bottom:1.25rem;position:relative;overflow:hidden}.banner img{object-fit:cover;width:100%;height:100%;display:block}.title-btn{cursor:text}.title-input{font:inherit;letter-spacing:-.03em;width:100%;color:var(--text);background:0 0;border:0;outline:0;padding:0;font-size:2rem;font-weight:700;line-height:1.15}.menu-wrap{position:relative}.menu-scrim{z-index:20;position:fixed;inset:0}.menu{z-index:21;background:var(--bg);border:1px solid var(--line-strong);min-width:230px;box-shadow:var(--shadow-pop);border-radius:12px;padding:.3rem;position:absolute;top:calc(100% + 4px);right:0}.menu button,.menu-switch{width:100%;color:var(--text);text-align:left;border-radius:8px;align-items:center;gap:.6rem;padding:.6rem .7rem;font-size:.95rem;display:flex}.menu button:hover,.menu-switch:hover{background:var(--hover)}.menu-switch{cursor:pointer;justify-content:space-between}.menu-switch input{appearance:none;background:var(--line-strong);cursor:pointer;border-radius:11px;flex:none;width:36px;height:22px;transition:background .15s;position:relative}.menu-switch input:after{content:"";background:#fff;border-radius:50%;width:18px;height:18px;transition:transform .15s;position:absolute;top:2px;left:2px}.menu-switch input:checked{background:var(--accent)}.menu-switch input:checked:after{transform:translate(14px)}.banner-actions{opacity:0;gap:.4rem;transition:opacity .15s;display:flex;position:absolute;bottom:.75rem;right:1rem}.banner:hover .banner-actions,.banner:focus-within .banner-actions{opacity:1}.banner-actions{pointer-events:none}.banner:hover .banner-actions,.banner:focus-within .banner-actions,.banner.tapped .banner-actions{pointer-events:auto}.banner.tapped .banner-actions{opacity:1}@media (hover:none){.banner:hover .banner-actions{opacity:0;pointer-events:none}.banner.tapped .banner-actions{opacity:1;pointer-events:auto}}.banner-actions button{color:#222;background:#ffffffd9;border-radius:8px;padding:.3rem .65rem;font-size:.8rem}.stats-facts{grid-template-columns:1fr 1fr;gap:.5rem;margin-bottom:1rem;display:grid}.stats-facts>div{background:var(--surface);border-radius:10px;flex-direction:column;gap:.1rem;min-width:0;padding:.6rem .75rem;display:flex}.stats-facts .muted{margin:0;font-size:.75rem}.stats-facts strong{text-overflow:ellipsis;white-space:nowrap;font-size:.95rem;font-weight:600;overflow:hidden}.stats-scroll{max-height:40vh;overflow-y:auto}.stats-table{border-collapse:collapse;width:100%;font-size:.88rem}.stats-table th{background:var(--bg);text-align:left;color:var(--muted);padding:.4rem;font-size:.75rem;font-weight:500;position:sticky;top:0}.stats-table td{border-top:1px solid var(--line);padding:.5rem .4rem}.stats-table th:not(:first-child),.stats-table td:not(:first-child){text-align:right;white-space:nowrap;color:var(--muted)}.btn.stats-reset{color:var(--danger)}
