: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:last-child: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}}.nav-ic{position:relative;display:grid}.nav .badge{position:absolute;top:-5px;right:-11px;min-width:18px;height:18px;padding:0 5px;border-radius:9px;display:grid;place-items:center;background:var(--tomato);color:var(--on-tomato);font-size:11px;font-weight:800;border:1.5px solid var(--card);font-variant-numeric:tabular-nums}.fridge-note{position:relative;align-self:flex-start;max-width:100%;margin:6px 0 2px 4px;padding:10px 14px;font:600 21px/1.25 var(--f-hand);background:var(--note);color:var(--on-note);border-radius:3px;transform:rotate(-1.2deg);box-shadow:2px 3px 0 var(--hair)}.fridge-note b{font-weight:700}.fridge-note:before{content:"";position:absolute;top:-9px;left:50%;width:18px;height:18px;margin-left:-9px;border-radius:50%;background:var(--tomato);border:2px solid var(--edge);box-shadow:1px 2px 0 var(--drop)}.slip{flex:none;display:inline-flex;align-items:center;gap:4px;font-weight:800;font-size:12.5px;padding:3px 8px;border-radius:4px;border:1.5px solid var(--edge);background:var(--card);color:var(--ink);white-space:nowrap;transform:rotate(2deg);font-variant-numeric:tabular-nums}.slip .ic{width:14px;height:14px}.slip.late{background:var(--tomato);color:var(--on-tomato)}.slip.soon{background:var(--butter);color:var(--on-butter)}.slip.head{background:var(--leaf-soft);color:var(--leaf-ink)}.slip.plain{background:var(--soft);color:var(--ink-2);border-color:transparent;transform:none}.banner.who{flex-wrap:wrap}.banner.who .grow{flex-basis:100%}.ava.sm{width:32px;height:32px;border-radius:10px;font-size:18px}.every{display:grid;grid-template-columns:58px minmax(0,1fr);gap:6px}.item.starter{flex-wrap:wrap}.item.starter .item-main:disabled,.item.starter .tick:disabled{opacity:.5;cursor:default}.item.starter.on .tick{background:var(--leaf);color:var(--card)}.item.starter .date-in{flex:0 0 calc(100% - 42px);width:auto;margin-left:42px;padding:6px 10px;font-size:15px}.add .iconbtn.cam{width:40px;height:40px;border-width:1.5px;cursor:pointer}.add .iconbtn.cam.busy{opacity:.5}.notice-photo{display:block;border:2px solid var(--edge);border-radius:14px;overflow:hidden;background:var(--card);max-height:220px}.notice-photo img{display:block;width:100%;height:100%;max-height:220px;object-fit:cover;object-position:top}.notice-photo.sm{width:96px;height:96px;flex:none}.notice-row{display:flex;align-items:center;gap:12px}.card.notice-todo .title-row{gap:10px}.card.notice-todo .name-in{font-size:19px}.card.notice-todo.off{opacity:.55}.card.notice-todo .tick[aria-pressed=true]{background:var(--leaf);color:var(--card)}.notice-note{margin:0;font:600 19px/1.25 var(--f-hand);background:var(--note);color:var(--on-note);padding:8px 12px;border-radius:3px;transform:rotate(-.6deg)}.banner.for-todo{width:100%;text-align:left;font:inherit;color:var(--ink);cursor:pointer}.banner.for-todo .ic{width:18px;height:18px;color:var(--ink-2)}.seg.many{overflow-x:auto;scrollbar-width:none;-webkit-overflow-scrolling:touch}.seg.many::-webkit-scrollbar{display:none}.seg.many button{flex:0 0 auto;padding:8px 12px;overflow:visible}.cam-btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;cursor:pointer}.cam-btn .ic{width:18px;height:18px}.cam-btn:has(input:focus-visible){outline:3px solid var(--focus);outline-offset:2px}.banner.receipt-cta{flex-wrap:nowrap}.banner.receipt-cta .big{font-size:26px;line-height:1}.banner.warn{background:var(--note);color:var(--on-note)}.sec-row{display:flex;align-items:center;justify-content:space-between;gap:10px}.sec-row .sec-h{flex:1}.rcpt{font-size:13px}.receipt-photos{display:flex;gap:10px;overflow-x:auto;padding:2px 2px 6px;scrollbar-width:none}.receipt-photos::-webkit-scrollbar{display:none}.receipt-photos figure{position:relative;margin:0;flex:none}.receipt-photos img{display:block;width:104px;height:150px;object-fit:cover;object-position:top;border:2px solid var(--edge);border-radius:12px;background:var(--card)}.receipt-photos figure .iconbtn{position:absolute;top:-8px;right:-8px;width:30px;height:30px}.receipt-photos.small-strip img{width:56px;height:76px;border-radius:9px;border-width:1.5px}.receipt-kept{display:flex;align-items:center;gap:10px}.receipt-kept .receipt-photos{flex:none;max-width:40%;padding:0}.receipt-kept .grow{flex:1;min-width:0}.rline{display:grid;grid-template-columns:32px minmax(0,1fr) 84px;gap:10px;align-items:start;padding:10px 12px;border-top:1.5px dashed var(--hair)}.rline:first-child{border-top:0}.rline .tick{margin-top:2px}.rline .tick[aria-pressed=true]{background:var(--leaf);color:var(--card)}.rline.off .txt,.rline.off .price-in{opacity:.5}.rline .txt{display:flex;flex-direction:column;gap:3px;min-width:0}.rline .nm{font-weight:700;overflow-wrap:anywhere}.rline .name-in{font-size:16px;font-weight:700;padding:2px 0}.rline .meta{display:flex;flex-wrap:wrap;gap:4px 8px;white-space:normal}.rline .printed{font-family:ui-monospace,Menlo,Consolas,monospace;font-size:11.5px;letter-spacing:.02em}.rline .did{font-weight:700;color:var(--leaf-ink)}.rline .did-same{color:var(--ink-2);font-weight:600}.rline .did-fix{color:var(--saffron)}.rline .did-new{color:var(--plum)}.rline select.input{margin-top:4px;padding:8px 10px;font-size:15px}.rline .price-in{padding:8px 10px;font-size:15px;text-align:right}.rline .price-in[aria-invalid=true]{border-color:var(--danger)}.linkish{background:none;border:0;padding:0;font:inherit;font-size:12.5px;color:var(--ink-2);text-decoration:underline;text-underline-offset:2px;cursor:pointer}.receipt-sum{display:flex;flex-wrap:wrap;justify-content:space-between;gap:4px 12px;margin:0 4px;font-size:14px}.has-butler .screen{padding-bottom:calc(env(safe-area-inset-bottom,0px) + 190px)}.butler-dock{position:fixed;z-index:9;bottom:calc(env(safe-area-inset-bottom,0px) + 70px);right:max(6px,calc((100vw - var(--col)) / 2 + 6px));width:72px;height:81px}.butler-dock>button{width:100%;height:100%;border:0;background:none;padding:0;display:block;border-radius:16px}.butler-say{position:fixed;z-index:9;margin:0;bottom:calc(env(safe-area-inset-bottom,0px) + 158px);right:max(14px,calc((100vw - var(--col)) / 2 + 14px));max-width:min(260px,calc(100vw - 28px));background:var(--card);border:2px solid var(--edge);border-radius:16px;box-shadow:3px 3px 0 var(--drop);padding:9px 13px;font-weight:700;font-size:14.5px;line-height:1.35;pointer-events:none;animation:say-in .2s ease-out}.butler-say:after{content:"";position:absolute;right:26px;bottom:-9px;width:14px;height:14px;background:var(--card);border-right:2px solid var(--edge);border-bottom:2px solid var(--edge);transform:rotate(45deg)}@keyframes say-in{0%{opacity:0;transform:translateY(6px) scale(.96)}}.ask-head{justify-content:flex-start}.ask-head h2{flex:1;margin:0}.ask-art{width:72px;height:81px;flex:none}.ask-turns{display:flex;flex-direction:column;gap:8px}.ask-q,.ask-a{margin:0;border:2px solid var(--edge);padding:9px 12px;line-height:1.45}.ask-q{align-self:flex-end;max-width:85%;background:var(--note);color:var(--on-note);font-weight:700;border-radius:14px 14px 4px}.ask-a{align-self:flex-start;max-width:92%;background:var(--card);border-radius:14px 14px 14px 4px}.ask-a.err{color:var(--danger)}.ask-wait{margin:0 4px;font:600 22px/1.1 var(--f-hand);color:var(--ink-2)}.ask-chips{display:flex;flex-direction:column;gap:6px}.ask-chip{text-align:left;border:2px solid var(--edge);border-radius:12px;background:var(--card);padding:9px 12px;font-weight:700;font-size:14px}.ask-form{display:flex;gap:8px;align-items:center;background:var(--card);border:2px solid var(--edge);border-radius:14px;padding:4px 4px 4px 12px}.ask-form input{flex:1;min-width:0;border:0;background:transparent;padding:8px 0;font-size:16px;outline:none}.butler-row .meta{white-space:normal}.butler-mini{width:46px;height:52px;flex:none}.switch{position:relative;width:50px;height:30px;flex:none;padding:0;border-radius:999px;border:2px solid var(--edge);background:var(--soft)}.switch:after{content:"";position:absolute;top:3px;left:3px;width:20px;height:20px;border-radius:50%;background:var(--card);border:2px solid var(--edge);transition:left .15s}.switch[aria-checked=true]{background:var(--leaf)}.switch[aria-checked=true]:after{left:23px}@media(prefers-color-scheme:dark){.bt .handle{stroke:var(--edge)}.bt .zzz path{stroke:var(--ink)}}.bt{display:block;width:100%;height:100%;overflow:visible}.bt *{stroke-linecap:round;stroke-linejoin:round}.bt .k2{stroke:#173327;stroke-width:2.5}.bt .k3{stroke:#173327;stroke-width:3}.bt .k4{stroke:#173327;stroke-width:4}.bt .k5{stroke:#173327;stroke-width:5}.bt .k7{stroke:#173327;stroke-width:7}.bt .k10{stroke:#173327;stroke-width:10}.bt .w25{stroke-width:2.5}.bt .w3{stroke-width:3}.bt .w4{stroke-width:4}.bt .w5{stroke-width:5}.bt .who,.bt .front,.bt .hat,.bt .hands,.bt .handL,.bt .handR,.bt .tray,.bt .egg,.bt .goods>g,.bt .eyes,.bt .brows,.bt .nose,.bt .spark,.bt .dust,.bt .spines,.bt .drop,.bt .zzz path,.bt .bits rect{transform-box:fill-box}.bt .who{transform-origin:50% 100%;animation:breathe 3.6s ease-in-out infinite}.bt .front,.bt .hat,.bt .handL,.bt .handR,.bt .tray,.bt .egg,.bt .goods>g{transform-origin:50% 100%}.bt .eyes,.bt .nose,.bt .spark,.bt .dust,.bt .zzz path,.bt .bits rect{transform-origin:50% 50%}.bt .eyes{transition:transform .08s}.bt .spines{transform-origin:50% 85%}.bt .balls .b{transform-box:view-box;transform-origin:120px -14px}.bt .m-o,.bt .m-sleep,.bt .zzz,.bt .balls,.bt .spark,.bt .dots,.bt .drop,.bt .bits,.bt .dust{opacity:0}.blink .eyes{transform:scaleY(.1)}@keyframes breathe{0%,to{transform:none}50%{transform:scale(.99,1.02)}}.act-wave .handR{animation:wave 2.2s ease-in-out}.percy.act-wave .handR{animation:none}.percy.act-wave .handL{animation:waveL 2.2s ease-in-out}@keyframes wave{0%,to{transform:none}15%,45%{transform:translate(6px,-44px) rotate(-16deg)}30%,60%{transform:translate(6px,-44px) rotate(16deg)}78%{transform:translate(6px,-40px)}}@keyframes waveL{0%,to{transform:none}15%,45%{transform:translate(-6px,-44px) rotate(16deg)}30%,60%{transform:translate(-6px,-44px) rotate(-16deg)}78%{transform:translate(-6px,-40px)}}.act-bow .who{animation:bow 2.2s ease-in-out}.act-bow .hat{animation:hatbow 2.2s ease-in-out}.act-bow .eyes{animation:shut 2.2s}@keyframes bow{0%,to{transform:none}28%,58%{transform:translateY(16px) scale(1.03,.9)}72%{transform:translateY(-5px)}86%{transform:none}}@keyframes hatbow{0%,to{transform:none}28%,58%{transform:translate(-8px,-6px) rotate(-24deg)}86%{transform:none}}@keyframes shut{0%,15%,70%,to{transform:none}22%,62%{transform:scaleY(.1)}}.act-tiphat .hat{animation:tiphat 2.4s ease-in-out}.act-tiphat .handR{animation:reach 2.4s ease-in-out}@keyframes tiphat{0%,22%,to{transform:none}34%,62%{transform:translate(6px,-24px) rotate(16deg)}78%{transform:translateY(2px)}88%{transform:none}}@keyframes reach{0%,to{transform:none}20%{transform:translate(-24px,-90px)}34%,62%{transform:translate(-18px,-114px)}78%{transform:translate(-24px,-90px)}92%{transform:none}}.act-juggle .balls{opacity:1}.act-juggle .balls .b{animation:orbit 1.2s linear infinite}.act-juggle .balls .b2{animation-delay:-.4s}.act-juggle .balls .b3{animation-delay:-.8s}.act-juggle .handL{animation:bob .6s ease-in-out infinite}.act-juggle .handR{animation:bob .6s ease-in-out -.3s infinite}.act-juggle .eyes{animation:lookup 3s ease-in-out}@keyframes orbit{to{transform:rotate(360deg)}}@keyframes bob{50%{transform:translateY(-14px)}}@keyframes lookup{10%,90%{transform:translateY(-4px)}}.act-polish .handR{animation:polish 2.6s ease-in-out}.act-polish .spark{animation:spark 2.6s ease-in-out}@keyframes polish{0%,to{transform:none}14%,34%,54%{transform:translate(-22px,-42px)}24%,44%,64%{transform:translate(-32px,-50px)}84%{transform:none}}@keyframes spark{0%,58%{opacity:0;transform:scale(.2)}72%{opacity:1;transform:scale(1.15) rotate(25deg)}to{opacity:0;transform:scale(.6) rotate(45deg)}}.act-peek .who{animation:peek 3s ease-in-out}.act-peek .hands{animation:hide 3s ease-in-out}.act-peek .eyes{animation:dart 3s ease-in-out}@keyframes peek{0%,to{transform:none}18%,60%{transform:translateY(58px)}74%{transform:translateY(-8px)}86%{transform:none}}@keyframes hide{0%,to{transform:none;opacity:1}14%,64%{transform:translateY(16px);opacity:0}80%{transform:none;opacity:1}}@keyframes dart{0%,62%{transform:none}70%{transform:translate(-6px)}80%{transform:translate(6px)}90%,to{transform:none}}.act-look .eyes{animation:look 2.4s ease-in-out}.act-look .brows{animation:brow 2.4s ease-in-out}.act-look .who{animation:tilt 2.4s ease-in-out}@keyframes look{0%,to{transform:none}18%,40%{transform:translate(-6px)}58%,80%{transform:translate(6px)}}@keyframes brow{0%,to{transform:none}18%,80%{transform:translateY(-4px)}}@keyframes tilt{0%,to{transform:none}18%,40%{transform:rotate(-3deg)}58%,80%{transform:rotate(3deg)}}.act-doze .eyes{transform:scaleY(.1)}.act-doze .who{animation:snore 2.6s ease-in-out infinite}.act-doze .hat{transform:translate(-4px,4px) rotate(-10deg)}.act-doze .zzz{opacity:1}.act-doze .zzz path{animation:z 2.4s ease-in infinite;opacity:0}.act-doze .zzz path:nth-child(2){animation-delay:.8s}.act-doze .zzz path:nth-child(3){animation-delay:1.6s}.act-doze .m-smile{opacity:0}.act-doze .m-sleep{opacity:1}@keyframes snore{0%,to{transform:none}50%{transform:scale(1.02,.96)}}@keyframes z{0%{opacity:0;transform:translate(-6px,10px) scale(.6)}25%{opacity:1}to{opacity:0;transform:translate(8px,-14px) scale(1.1)}}.act-think .eyes{transform:translate(4px,-5px)}.act-think .brows{transform:translateY(-3px)}.act-think .m-smile{opacity:0}.act-think .m-o{opacity:1}.act-think .handR{animation:chin 1.6s ease-in-out infinite}.act-think .dots{opacity:1}.act-think .dots circle{animation:dot 1.2s ease-in-out infinite}.act-think .dots circle:nth-child(2){animation-delay:.2s}.act-think .dots circle:nth-child(3){animation-delay:.4s}@keyframes chin{0%,to{transform:translate(-30px,-6px)}50%{transform:translate(-30px,-10px)}}@keyframes dot{0%,to{opacity:.25}50%{opacity:1}}.act-talk .m-smile{animation:talkS .4s steps(1) infinite}.act-talk .m-o{animation:talkO .4s steps(1) infinite}.act-talk .who{animation:nod 1.2s ease-in-out infinite}.act-talk .handR{animation:gesture 1.6s ease-in-out infinite}@keyframes talkS{0%{opacity:1}50%{opacity:0}}@keyframes talkO{0%{opacity:0}50%{opacity:1}}@keyframes nod{0%,to{transform:none}50%{transform:translateY(3px) rotate(1.5deg)}}@keyframes gesture{0%,to{transform:none}40%{transform:translate(4px,-22px) rotate(-10deg)}}.act-catch .drop{animation:drop 1.7s cubic-bezier(.5,0,.9,.6)}.act-catch .who{animation:cheerhop 1.7s ease-out}.act-catch .front{animation:thud 1.7s ease-out}.act-catch .eyes{animation:follow 1.7s}@keyframes drop{0%{opacity:1;transform:translateY(-60px)}52%{opacity:1;transform:translateY(150px)}53%,to{opacity:0;transform:translateY(150px)}}@keyframes cheerhop{0%,52%{transform:none}62%{transform:translateY(-14px)}74%{transform:none}84%{transform:translateY(-5px)}94%,to{transform:none}}@keyframes thud{0%,52%,to{transform:none}58%{transform:scale(1.04,.94)}70%{transform:none}}@keyframes follow{0%{transform:translateY(-6px)}45%{transform:translateY(5px)}60%,to{transform:none}}.act-tada .who{animation:tada 2s ease-out}.act-tada .handL,.act-tada .handR{animation:cheer 2s ease-out}.act-tada .bits{opacity:1}.act-tada .bits rect{animation:burst 1.6s ease-out .2s both}@keyframes tada{0%,to{transform:none}18%{transform:translateY(-36px) scale(.96,1.06)}36%{transform:none}44%{transform:scale(1.05,.94)}54%{transform:none}}@keyframes cheer{0%,to{transform:none}14%,46%{transform:translateY(-56px)}70%{transform:none}}@keyframes burst{0%{opacity:1;transform:none}to{opacity:0;transform:translateY(-76px) rotate(260deg)}}.act-hop .who{animation:hop 1.8s ease-in-out}.act-goods .goods>g{animation:pop 2.4s ease-in-out both}.act-goods .goods .g2{animation-delay:.25s}.act-goods .goods .g3{animation-delay:.5s}.act-sway .who{animation:sway 2.4s ease-in-out}@keyframes hop{0%,to{transform:none}14%{transform:scale(1.08,.88)}30%{transform:translateY(-40px) scale(.94,1.08)}46%{transform:translateY(-44px)}62%{transform:none}70%{transform:scale(1.1,.86)}82%{transform:scale(.98,1.03)}92%{transform:none}}@keyframes pop{0%,to{transform:none}20%,40%{transform:translateY(-26px) rotate(-6deg)}30%{transform:translateY(-24px) rotate(6deg)}60%{transform:none}}@keyframes sway{0%,to{transform:none}20%{transform:rotate(-6deg)}40%{transform:rotate(5deg)}60%{transform:rotate(-4deg)}80%{transform:rotate(2deg)}}.act-tray .tray{animation:trayw 2.6s ease-in-out}.act-tray .egg{animation:eggw 2.6s ease-in-out}.act-tray .eyes{animation:startle 2.6s}.act-waddle .who{animation:waddle 2.4s ease-in-out}.act-flap .handL{animation:flapL .3s ease-in-out 6}.act-flap .handR{animation:flapR .3s ease-in-out 6}.act-flap .who{animation:hopsmall .6s ease-in-out 3}@keyframes trayw{0%,to{transform:none}15%{transform:rotate(-10deg)}30%{transform:rotate(9deg)}45%{transform:rotate(-7deg)}60%{transform:rotate(3deg)}75%{transform:none}}@keyframes eggw{0%,to{transform:none}15%{transform:translate(-10px) rotate(-18deg)}30%{transform:translate(9px) rotate(16deg)}45%{transform:translate(-6px) rotate(-10deg)}60%{transform:translate(2px)}75%{transform:none}}@keyframes startle{0%,70%,to{transform:none}10%,50%{transform:scale(1.18)}}@keyframes waddle{0%,75%,to{transform:none}12%,37%{transform:translate(-3px) rotate(-6deg)}25%,50%{transform:translate(3px) rotate(6deg)}62%{transform:rotate(-6deg)}}@keyframes flapL{50%{transform:translate(-6px,-20px) rotate(-25deg)}}@keyframes flapR{50%{transform:translate(6px,-20px) rotate(25deg)}}@keyframes hopsmall{50%{transform:translateY(-8px)}}.act-dust .handR{animation:dusting 2.4s ease-in-out}.act-dust .dust{animation:puff 2.4s ease-out}.act-dust .nose{animation:twitch .2s ease-in-out 1.4s 4}.act-sniff .nose{animation:twitch .22s ease-in-out 8}.act-sniff .brows{animation:brow 2s ease-in-out}.act-sniff .who{animation:lean 2s ease-in-out}.act-puff .spines{animation:puffs 1.8s ease-out}.act-puff .eyes{animation:startle 1.8s}.act-puff .m-smile{opacity:0}.act-puff .m-o{opacity:1}.act-shy .handL{animation:shyL 2.4s ease-in-out}.act-shy .handR{animation:shyR 2.4s ease-in-out}.act-shy .eyes{animation:shut 2.4s}.act-shy .who{animation:giggle .3s ease-in-out 6}@keyframes dusting{0%,90%,to{transform:none}15%,45%{transform:rotate(-26deg)}30%,60%{transform:rotate(8deg)}75%{transform:rotate(-20deg)}}@keyframes puff{0%,20%{opacity:0;transform:scale(.4)}45%{opacity:.9;transform:scale(1)}to{opacity:0;transform:translateY(-10px) scale(1.5)}}@keyframes twitch{50%{transform:scale(1.25,.8)}}@keyframes lean{0%,to{transform:none}20%,70%{transform:translateY(-6px) scale(1.02)}}@keyframes puffs{0%,to{transform:none}12%,45%{transform:scale(1.12)}60%{transform:scale(.97)}75%{transform:none}}@keyframes shyL{0%,to{transform:none}25%,70%{transform:translate(22px,-38px)}}@keyframes shyR{0%,to{transform:none}25%,70%{transform:translate(-22px,-38px)}}@keyframes giggle{50%{transform:translateY(2px) rotate(2deg)}}.act-spark .spark{animation:spark2 1.8s ease-out}.act-spark .who{animation:hopsmall .45s ease-in-out 2}.act-startle .eyes{animation:startle 1.6s}.act-startle .who{animation:jolt 1.6s ease-out}.act-startle .m-smile{opacity:0}.act-startle .m-o{opacity:1}@keyframes spark2{0%{opacity:0;transform:scale(.2)}25%{opacity:1;transform:scale(1.2) rotate(20deg)}70%{opacity:1;transform:scale(1) rotate(35deg)}to{opacity:0;transform:scale(.6) rotate(45deg)}}@keyframes jolt{0%,to{transform:none}10%{transform:translateY(-10px) scale(1.04,.97)}25%{transform:translateY(2px)}40%{transform:none}}@media(prefers-reduced-motion:reduce){.bt *,.bt{animation:none!important;transition:none!important}}
