:root{--paper: #F3F7EC;--card: #FFFFFF;--ink: #173327;--ink-2: #4E6A5C;--edge: #173327;--drop: #173327;--hair: rgba(23, 51, 39, .16);--check: rgba(42, 154, 88, .08);--scrim: rgba(8, 20, 14, .45);--tomato: #DB4220;--on-tomato: #FFFFFF;--butter: #FFD647;--on-butter: #3A2A00;--leaf: #2A9A58;--leaf-ink: #17643A;--leaf-soft: #DDF3E3;--saffron: #F08A12;--sky: #2E9BE0;--berry: #D93D72;--plum: #7B4FD6;--soft: #E6EEDC;--note: #FFF0A3;--on-note: #4A3A00;--focus: #2E9BE0;--danger: #B3261E;--t-produce: #DDF3E3;--t-dairy: #DCEFFC;--t-pantry: #FFE7C2;--t-home: #FBDDE8;--t-want: #FFF2B8;--t-misc: #E6EEDC;--f-sign: "Shrikhand", "Cooper Black", Georgia, serif;--f-ui: "Figtree", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;--f-hand: "Caveat", "Bradley Hand", "Segoe Print", cursive;--col: 520px;color-scheme:light}@media(prefers-color-scheme:dark){:root{--paper: #0F1F18;--card: #162B22;--ink: #EAF4EC;--ink-2: #A3BDAE;--edge: #3E6B55;--drop: #27453A;--hair: rgba(234, 244, 236, .13);--check: rgba(76, 194, 125, .05);--scrim: rgba(0, 0, 0, .6);--tomato: #FF6B4A;--on-tomato: #210C05;--butter: #FFD95E;--on-butter: #3A2A00;--leaf: #4CC27D;--leaf-ink: #9BE5B8;--leaf-soft: #1E4632;--saffron: #FFAA3D;--sky: #5AB8F0;--berry: #F0628F;--plum: #A98BF0;--soft: #21392E;--note: #3D381A;--on-note: #FFF0B0;--focus: #5AB8F0;--danger: #FF8A80;--t-produce: #1E4632;--t-dairy: #18384C;--t-pantry: #4A3518;--t-home: #4A2232;--t-want: #45401A;--t-misc: #21392E;color-scheme:dark}}*{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{margin:0;min-height:100vh;min-height:100dvh;background-color:var(--paper);color:var(--ink);font-family:var(--f-ui);font-size:15px;line-height:1.4;background-image:linear-gradient(90deg,var(--check) 50%,transparent 50%),linear-gradient(var(--check) 50%,transparent 50%);background-size:32px 32px;-webkit-tap-highlight-color:transparent}button,input,select,textarea{font:inherit;color:inherit}button{cursor:pointer}:focus-visible{outline:3px solid var(--focus);outline-offset:2px}.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}.ic{width:22px;height:22px;flex:none}.body-lock{overflow:hidden}.app{position:relative;max-width:var(--col);margin:0 auto;min-height:100vh;min-height:100dvh;background:var(--paper)}@media(min-width:600px){.app{border-left:3px solid var(--edge);border-right:3px solid var(--edge);box-shadow:8px 0 0 var(--drop)}.nav{border-left:3px solid var(--edge);border-right:3px solid var(--edge)}}.screen{display:flex;flex-direction:column;gap:14px;padding:calc(env(safe-area-inset-top,0px) + 20px) max(18px,env(safe-area-inset-right,0px)) calc(env(safe-area-inset-bottom,0px) + 110px) max(18px,env(safe-area-inset-left,0px))}.nav{position:fixed;z-index:10;bottom:0;left:50%;transform:translate(-50%);width:100%;max-width:var(--col);display:flex;justify-content:space-around;align-items:center;padding:6px max(18px,env(safe-area-inset-right,0px)) calc(env(safe-area-inset-bottom,0px) + 8px) max(18px,env(safe-area-inset-left,0px));border-top:2px solid var(--edge);background:var(--card)}.nav button{display:flex;flex-direction:column;align-items:center;gap:2px;font-weight:700;font-size:12px;color:var(--ink-2);background:none;border:0;padding:6px 18px;border-radius:12px;min-width:72px}.nav button[aria-current=page]{color:var(--ink)}.nav button[aria-current=page] span:after{content:"";display:block;width:6px;height:6px;border-radius:50%;background:var(--tomato);margin:3px auto 0}.top{display:flex;align-items:center;justify-content:space-between;gap:12px}.top-right{display:flex;align-items:center;gap:10px}.wordmark{font:400 36px/1 var(--f-sign);color:var(--tomato);margin:2px 0 0;transform:rotate(-3deg);transform-origin:left center}.date{font-weight:800;font-size:12px;background:var(--butter);color:var(--on-butter);padding:4px 10px;border-radius:8px;border:1.5px solid var(--edge);transform:rotate(2deg);white-space:nowrap}.hello{font-size:15px;line-height:1.45;color:var(--ink-2);margin:0}.hello b{color:var(--ink);font-weight:800}.sign{font:400 30px/1.1 var(--f-sign);margin:0;text-wrap:balance}.sec-h{display:flex;align-items:baseline;justify-content:space-between;gap:8px;font-weight:800;font-size:12px;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-2);margin:6px 4px -6px}.sec-h .h-note{text-transform:none;letter-spacing:0;font-weight:600}.muted{color:var(--ink-2)}.small{font-size:13px}.btn{font-weight:800;font-size:15px;border:2px solid var(--edge);border-radius:14px;padding:10px 16px;background:var(--tomato);color:var(--on-tomato);box-shadow:3px 3px 0 var(--drop);display:inline-flex;align-items:center;justify-content:center;gap:8px;transition:transform .08s;text-decoration:none}.btn:active{transform:translate(2px,2px);box-shadow:1px 1px 0 var(--drop)}.btn:disabled{opacity:.6}.btn.ghost{background:var(--card);color:var(--ink)}.btn.quiet{background:transparent;box-shadow:none;border-color:transparent;color:var(--ink-2);padding:8px 6px}.btn.danger{background:var(--card);color:var(--danger)}.btn.wide{width:100%}.btn.big{padding:14px 16px;font-size:16px}.btn.icon{padding:9px}.btn.small{font-size:13px;padding:6px 10px;border-radius:10px;box-shadow:2px 2px 0 var(--drop)}.btn .ic{width:18px;height:18px}.linkbtn{background:none;border:0;padding:0;font:inherit;font-weight:800;color:var(--ink);text-decoration:underline;text-underline-offset:2px}.iconbtn{width:38px;height:38px;border-radius:50%;border:2px solid var(--edge);background:var(--card);display:grid;place-items:center;padding:0;flex:none}.iconbtn .ic{width:19px;height:19px}.iconbtn.small{width:30px;height:30px;border-width:1.5px}.iconbtn.small .ic{width:15px;height:15px}.banner.install{background:var(--note);color:var(--on-note);align-items:center}.banner.install b{color:var(--on-note)}.syncpill{display:inline-flex;align-items:center;gap:6px;font-weight:700;font-size:12px;padding:3px 10px;border-radius:999px;border:1.5px solid var(--edge);background:var(--card);color:var(--ink-2)}.syncpill i{width:8px;height:8px;border-radius:50%;background:var(--saffron)}.syncpill.off i{background:var(--ink-2)}.add{background:var(--card);border:2px solid var(--edge);border-radius:18px;box-shadow:4px 4px 0 var(--drop);padding:6px 6px 6px 12px;display:flex;gap:8px;align-items:center}.add .spark{color:var(--saffron);display:grid}.add input{flex:1;min-width:0;border:0;background:transparent;font:500 16px var(--f-ui);color:var(--ink);padding:10px 2px;outline:none}.add input::placeholder{color:var(--ink-2)}.add-hint{font-size:12.5px;color:var(--ink-2);margin:-6px 6px 0}.banner{display:flex;align-items:center;gap:10px;background:var(--card);border:2px solid var(--edge);border-radius:16px;padding:10px 12px;box-shadow:3px 3px 0 var(--drop)}.banner .grow{flex:1;min-width:0;font-size:14px}.banner b{font-weight:800}.live{display:inline-block;width:9px;height:9px;border-radius:50%;background:var(--leaf);margin-right:7px;vertical-align:1px;animation:pulse 1.6s infinite;flex:none}.stores{display:flex;flex-wrap:wrap;gap:10px}.store{display:inline-flex;align-items:center;gap:8px;padding:8px 10px;background:var(--card);border:2px solid var(--edge);border-radius:999px;box-shadow:3px 3px 0 var(--drop);font-weight:800;font-size:14px;color:var(--ink);transform:rotate(var(--r, 0deg));transition:transform .15s}.store:hover{transform:rotate(0) translateY(-2px)}.store:active{transform:translate(2px,2px);box-shadow:1px 1px 0 var(--drop)}.stores.big .store{font-size:16px;padding:12px 16px 12px 12px}.dot{width:12px;height:12px;border-radius:50%;background:var(--sc);border:1.5px solid var(--edge);flex:none;display:inline-block}.store .n{font-size:12px;background:var(--soft);border-radius:999px;padding:1px 8px;font-variant-numeric:tabular-nums}.store.else{border-style:dashed;box-shadow:none;color:var(--ink-2);gap:6px}.store.else .ic{width:16px;height:16px}.stores.big .store.else .ic{width:18px;height:18px}.mini{display:inline-flex;align-items:center;gap:6px;font-weight:800;font-size:12px;border:1.5px solid var(--edge);border-radius:999px;padding:3px 9px 3px 7px;background:var(--card);white-space:nowrap;flex:none}.mini .dot{width:9px;height:9px}.seg{display:flex;background:var(--soft);border-radius:999px;padding:4px;gap:4px;border:2px solid var(--edge)}.seg button{flex:1;border:0;background:none;border-radius:999px;padding:8px 6px;font-weight:800;font-size:14px;color:var(--ink-2);min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.seg button[aria-pressed=true],.seg button[aria-selected=true]{background:var(--ink);color:var(--paper)}.seg .c{font-weight:600;opacity:.8;margin-left:4px;font-variant-numeric:tabular-nums}.seg.sm button{font-size:13px;padding:6px 4px}.list{background:var(--card);border:2px solid var(--edge);border-radius:18px;overflow:hidden}.item{display:flex;align-items:center;gap:10px;padding:10px 12px;border-top:1.5px dashed var(--hair)}.item:first-child{border-top:0}.tick{flex:none;width:32px;height:32px;border-radius:50%;border:2.5px solid var(--edge);background:var(--card);color:transparent;display:grid;place-items:center;padding:0}.tick .ic{width:17px;height:17px}.item.done .tick{background:var(--tomato);color:var(--on-tomato)}.item.done.just .tick{animation:pop .35s}.item-main{flex:1;min-width:0;display:flex;align-items:center;gap:10px;background:none;border:0;padding:0;text-align:left}.ava{flex:none;width:42px;height:42px;border-radius:12px;display:grid;place-items:center;font-size:23px;overflow:hidden;border:1.5px solid var(--hair)}.ava img{width:100%;height:100%;object-fit:cover}.txt{flex:1;min-width:0;display:flex;flex-direction:column;gap:1px}.nm{font-weight:700;font-size:15.5px;line-height:1.25;width:fit-content;max-width:100%;overflow-wrap:anywhere;background-image:linear-gradient(var(--tomato),var(--tomato));background-repeat:no-repeat;background-position:0 60%;background-size:0% 3px;transition:background-size .45s ease,color .3s}.item.done .nm{background-size:100% 3px;color:var(--ink-2)}.meta{font-size:12.5px;color:var(--ink-2);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.meta .due{color:var(--tomato);font-weight:800}.pr{flex:none;font-weight:800;font-size:13.5px;font-variant-numeric:tabular-nums;background:var(--butter);color:var(--on-butter);padding:3px 8px;border-radius:6px;border:1.5px solid var(--edge)}.pr.est{background:transparent;border-style:dashed;color:var(--ink-2)}.item.away .nm{color:var(--ink-2)}.empty{text-align:center;padding:26px 16px;color:var(--ink-2)}.empty .big{font-size:44px;display:block;margin-bottom:6px}details.fold>summary{list-style:none;cursor:pointer}details.fold>summary::-webkit-details-marker{display:none}details.fold>summary .sec-h{margin-bottom:0}details.fold[open]>summary .chev{transform:rotate(90deg)}.chev{display:inline-block;transition:transform .15s}details.fold>.list{margin-top:12px}.back{align-self:flex-start;background:none;border:0;color:var(--ink-2);font-weight:800;font-size:14px;display:inline-flex;gap:2px;align-items:center;padding:2px 0}.back .ic{width:18px;height:18px}.progress{background:var(--card);border:2px solid var(--edge);border-radius:18px;box-shadow:4px 4px 0 var(--drop);padding:14px 14px 12px}.track{position:relative;height:36px;margin:0 24px 8px 0}.track:before{content:"";position:absolute;left:0;right:0;top:29px;border-top:3px dotted var(--ink-2);opacity:.5}.fill{position:absolute;left:0;top:28px;height:5px;width:calc(var(--p) * 100%);background:var(--leaf);border-radius:3px;transition:width .5s ease}.cart{position:absolute;top:0;left:calc(var(--p) * (100% - 28px));width:28px;height:28px;color:var(--ink);transition:left .55s cubic-bezier(.3,1.5,.5,1)}.cart .ic{width:28px;height:28px}.cart.hop{animation:hop .45s}.flag{position:absolute;right:-26px;top:8px;font-size:20px}.stats{display:flex;justify-content:space-between;align-items:baseline;gap:8px;font-size:13px;color:var(--ink-2);flex-wrap:wrap}.bignum{font-weight:800;font-size:19px;color:var(--ink);font-variant-numeric:tabular-nums}.sheet-wrap{position:fixed;inset:0;z-index:30;background:var(--scrim);display:flex;align-items:flex-end;justify-content:center}.sheet{position:relative;width:100%;max-width:var(--col);max-height:92vh;max-height:92dvh;overflow-y:auto;overscroll-behavior:contain;background:var(--paper);border:3px solid var(--edge);border-bottom:0;border-radius:26px 26px 0 0;padding:16px max(18px,env(safe-area-inset-right,0px)) calc(env(safe-area-inset-bottom,0px) + 26px) max(18px,env(safe-area-inset-left,0px));display:flex;flex-direction:column;gap:14px;animation:up .34s cubic-bezier(.2,.9,.3,1.15)}.sheet>*{flex-shrink:0}.sheet-top{display:flex;align-items:center;justify-content:space-between;gap:10px}.kind{font-weight:800;font-size:12px;letter-spacing:.06em;text-transform:uppercase;color:var(--ink-2)}.hero{position:relative;height:170px;border-radius:20px;border:2px solid var(--edge);display:grid;place-items:center;overflow:hidden;flex:none}.hero .emo{font-size:80px;line-height:1}.hero img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}.hero .photo-btns{position:absolute;right:10px;bottom:10px;display:flex;gap:8px}.title-row{display:flex;gap:8px;align-items:center}.emoji-in{width:52px;text-align:center;font-size:24px;padding:6px 0;border:2px solid var(--edge);border-radius:12px;background:var(--card)}.name-in{flex:1;min-width:0;font-weight:800;font-size:24px;line-height:1.15;border:0;border-bottom:2px dashed var(--hair);background:transparent;padding:4px 2px}.name-in:focus{outline:none;border-bottom-color:var(--focus)}.note-in{font:600 23px/1.2 var(--f-hand);background:var(--note);color:var(--on-note);padding:10px 14px 12px;transform:rotate(-1deg);border-radius:3px;box-shadow:2px 3px 0 var(--hair);border:0;width:calc(100% - 12px);margin:2px 0 2px 6px;resize:none;min-height:58px}.note-in::placeholder{color:var(--on-note);opacity:.6}.field{display:flex;flex-direction:column;gap:6px}.field>label,.label{font-weight:800;font-size:12px;letter-spacing:.06em;text-transform:uppercase;color:var(--ink-2)}.input,select.input{border:2px solid var(--edge);border-radius:12px;background:var(--card);padding:10px 12px;font-size:16px;min-width:0;width:100%}.row2{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:10px}.row3{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,.8fr) minmax(0,1fr);gap:8px}.chips{display:flex;flex-wrap:wrap;gap:8px}.chip{border:2px solid var(--edge);background:var(--card);color:var(--ink);border-radius:999px;padding:6px 12px;font-weight:700;font-size:13.5px;display:inline-flex;align-items:center;gap:6px}.chip[aria-pressed=true]{background:var(--ink);color:var(--paper)}.chip[aria-pressed=true] .dot{border-color:var(--paper)}.tags{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-top:4px}.tag{position:relative;background:var(--butter);color:var(--on-butter);border:2px solid var(--edge);border-radius:6px;padding:8px 10px 10px;min-width:0;text-align:left}.tag .up{font-weight:800;font-size:10px;letter-spacing:.08em;text-transform:uppercase;border-bottom:1.5px solid currentColor;padding-bottom:4px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.tag .bigp{font-weight:800;font-size:28px;line-height:1.1;margin-top:4px;font-variant-numeric:tabular-nums;letter-spacing:-.01em}.tag sup{font-size:.55em;vertical-align:.75em;margin-left:1px}.tag .sm{font-weight:700;font-size:12.5px}.tag .when{font-size:11.5px;margin-top:2px;opacity:.85}.tag.est{background:transparent;color:var(--ink-2);border-style:dashed}.chip.guess:not([aria-pressed=true]){border-style:dashed}.best{position:absolute;top:-14px;right:-8px;background:var(--tomato);color:var(--on-tomato);font-weight:800;font-size:10px;line-height:1.05;width:46px;height:46px;border-radius:50%;display:grid;place-items:center;text-align:center;border:2px solid var(--edge);transform:rotate(14deg);text-transform:uppercase}.trend{font-size:13.5px;color:var(--ink-2);margin:0 4px}.trend b{color:var(--ink)}.hist .item{padding:10px 12px;font-size:14px}.hist button.item{width:100%;background:none;border-left:0;border-right:0;border-bottom:0;text-align:left}.hist .item:first-child{border-top:0}.hist .r{margin-left:auto;font-weight:800;font-variant-numeric:tabular-nums;white-space:nowrap}.preview{font-size:14px;color:var(--ink-2);margin:0;min-height:20px}.preview b{color:var(--ink)}.confirm{border:2px dashed var(--danger);border-radius:14px;padding:12px;display:flex;flex-direction:column;gap:10px}.actions{display:flex;gap:10px;flex-wrap:wrap}.actions>*{flex:1}.celebrate{display:flex;flex-direction:column;align-items:center;text-align:center;gap:10px;padding:12px 4px 4px}.celebrate .sign{font-size:46px;color:var(--tomato);transform:rotate(-4deg)}.cel-sub{font-size:16px;line-height:1.45;margin:0;max-width:32ch}.cel-sub b{font-weight:800}.cel-note{font:600 22px/1.2 var(--f-hand);background:var(--note);color:var(--on-note);padding:8px 14px;transform:rotate(1.5deg);border-radius:3px;margin:4px 0}.priceRow{display:grid;grid-template-columns:42px minmax(0,1fr);gap:10px;align-items:center;padding:10px 12px;border-top:1.5px dashed var(--hair)}.priceRow:first-child{border-top:0}.priceRow .inputs{grid-column:1 / -1;display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,.8fr) minmax(0,1fr);gap:8px}.priceRow .input{padding:8px 10px;font-size:15px}.confetti{position:fixed;inset:0;width:100%;height:100%;pointer-events:none;z-index:40}.bars{display:grid;gap:7px}.bar{display:grid;grid-template-columns:104px minmax(0,1fr) auto;gap:10px;align-items:center;font-size:13.5px}.bar .lbl{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.bar .track2{height:14px;border-radius:7px;background:var(--soft);overflow:hidden}.bar i{display:block;height:100%;border-radius:7px;background:var(--sc)}.bar b{font-variant-numeric:tabular-nums;font-weight:800}.card{background:var(--card);border:2px solid var(--edge);border-radius:18px;padding:14px;box-shadow:4px 4px 0 var(--drop);display:flex;flex-direction:column;gap:10px}.search{display:flex;align-items:center;gap:8px;background:var(--card);border:2px solid var(--edge);border-radius:14px;padding:4px 12px}.search input{flex:1;min-width:0;border:0;background:transparent;padding:8px 0;font-size:16px;outline:none}.search .ic{color:var(--ink-2)}.item.store-row{flex-direction:column;align-items:stretch;gap:8px}.store-line{display:flex;align-items:center;gap:8px}.store-line .chip{flex:none}.kind-in{flex:1;padding:6px 10px;font-size:14px}.toast{position:fixed;z-index:50;left:50%;transform:translate(-50%);top:calc(env(safe-area-inset-top,0px) + 12px);width:calc(100% - 28px);max-width:calc(var(--col) - 28px);background:var(--ink);color:var(--paper);border-radius:14px;padding:10px 10px 10px 14px;font-weight:700;font-size:14px;line-height:1.4;border:2px solid var(--edge);box-shadow:3px 3px 0 var(--drop);display:flex;align-items:center;gap:10px;animation:drop .3s cubic-bezier(.2,.9,.3,1.3)}.toast span{flex:1}.toast button{background:var(--butter);color:var(--on-butter);border:0;border-radius:10px;padding:6px 10px;font-weight:800;font-size:13px;flex:none}.login{min-height:100vh;min-height:100dvh;display:flex;flex-direction:column;justify-content:center;gap:18px;padding:24px max(24px,env(safe-area-inset-right,0px)) 24px max(24px,env(safe-area-inset-left,0px));max-width:440px;margin:0 auto}.login .wordmark{font-size:72px;color:var(--tomato)}.login p{font-size:17px;color:var(--ink-2);margin:0}.error{color:var(--danger);font-weight:700;font-size:14px;margin:0}@keyframes pop{0%{transform:scale(.6)}60%{transform:scale(1.2)}to{transform:scale(1)}}@keyframes up{0%{transform:translateY(100%)}to{transform:translateY(0)}}@keyframes drop{0%{transform:translate(-50%,-140%)}to{transform:translate(-50%)}}@keyframes hop{0%,to{transform:translateY(0)}40%{transform:translateY(-9px) rotate(-8deg)}}@keyframes pulse{0%{box-shadow:0 0 0 0 var(--leaf)}to{box-shadow:0 0 0 8px transparent}}@keyframes fresh{0%{background:var(--butter)}to{background:transparent}}.item.fresh{animation:fresh 1.8s ease-out}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important}}
