:root{color:#283c31;font-synthesis:none;--paper:#f7f2e6;--ink:#283c31;--green:#547258;--wood:#b98252;background:#e9e6dc;font-family:Avenir Next,Segoe UI,system-ui,sans-serif}*{box-sizing:border-box}body{margin:0}button,input,select{font:inherit;color:inherit}button{cursor:pointer;touch-action:manipulation}button:disabled{cursor:default;opacity:.55}button,a,input,select,summary{-webkit-tap-highlight-color:transparent}:focus-visible{outline-offset:3px;outline:3px solid #456849}button{border:0}svg{flex-shrink:0}h1,h2,h3,p{margin-top:0}h1,h2,h3{font-family:Georgia,Times New Roman,serif;font-weight:500}.app-shell{background:var(--paper);flex-direction:column;max-width:480px;min-height:100dvh;margin:0 auto;display:flex;position:relative}.app-header{padding:max(14px, env(safe-area-inset-top)) 23px 14px}.brand-row{justify-content:space-between;align-items:center;display:flex}.brand{letter-spacing:3px;text-transform:uppercase;color:#626e5b;font-size:11px}.icon-button{background:0 0;border-radius:50%;place-items:center;min-width:44px;min-height:44px;display:grid}.title-row{align-items:center;gap:10px;margin-bottom:19px;display:flex}h1{flex:1;margin:0;font-size:34px;line-height:1.15}.round{background:#fffaf0;border:1px solid #d6d5c5;border-radius:50%;flex-shrink:0;place-items:center;width:44px;height:44px;padding:0;display:inline-grid}.round svg{width:20px;height:20px}.add-button{background:var(--green);color:#fffdf4;border-color:var(--green)}.search-field{background:#fffaf0;border:1px solid #d7d5c7;border-radius:14px;align-items:center;gap:10px;padding:0 13px;display:flex}.search-field input{background:0 0;border:0;width:100%;min-width:0;padding:14px 0;font-size:16px}main{flex:1}.bottom-nav{padding:10px 22px max(12px, env(safe-area-inset-bottom));z-index:4;background:#fcf8ed;border-top:1px solid #d8d5c5;gap:12px;display:flex;position:sticky;bottom:0}.bottom-nav button{background:0 0;border-radius:13px;flex:1;justify-content:center;align-items:center;gap:9px;min-height:49px;font-size:14px;display:flex}.bottom-nav button[aria-current]{color:#38563e;background:#e5ebd9}.sync-indicator{color:#5f6c58;background:0 0;align-self:center;align-items:center;gap:6px;min-height:44px;padding:10px;font-size:11px;display:flex}.muted{color:#606b59;font-size:14px;line-height:1.6}.error{color:#a1322f;font-size:14px;line-height:1.5}.sr-only{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;padding:0;position:absolute;overflow:hidden}.empty-state{text-align:center;color:#64715b;padding:55px 12px}.empty-state h2{color:var(--ink);margin:17px 0 10px;font-size:28px}.empty-state p{font-size:14px;line-height:1.6}.loading,.startup-error{max-width:480px;margin:auto;padding:50px 24px}.startup-error h1{margin-bottom:24px}.update-notice{z-index:5;background:#e5ebd9;flex-wrap:wrap;align-items:center;gap:10px;padding:12px 20px;font-size:13px;display:flex;position:sticky;bottom:80px}.update-notice button{background:#fffaf0;border-radius:8px;min-height:44px;padding:8px}@media (width>=600px){.app-shell{border:1px solid #d8d0bf;border-radius:26px;min-height:calc(100dvh - 60px);margin:30px auto;overflow:clip;box-shadow:0 12px 50px #46503c0c}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition:none!important;animation-duration:1ms!important;animation-delay:0s!important}}.kitchen-scene{aspect-ratio:400/450;background:#efe6d2;width:100%;position:relative;overflow:hidden}.scene-art{width:100%;height:100%;display:block}.appliance{filter:drop-shadow(0 5px 3px #725c3020);background:0 0;height:62%;padding:0;transition:transform .15s;position:absolute;top:24%}.appliance:hover{transform:translateY(-3px)}.appliance:active{transform:scale(.98)}.appliance img{width:100%;height:100%;display:block}.fridge-button{width:37%;left:9%}.pantry-button{width:38%;left:53%}.appliance-label{background:#fff9eaf5;border:1px solid #fffcef;border-radius:10px;padding:10px 3px;font-size:15px;line-height:1.3;position:absolute;top:50%;left:7%;right:7%}.appliance-label small{color:#586252;margin-top:4px;font-size:11px;display:block}.interior{perspective:900px;background:#e3e6d9;border:9px solid #faf9ed;border-radius:20px;outline:1px solid #c9cebe;margin:6px 20px 20px;animation:.23s ease-out approach;position:relative;overflow:clip;box-shadow:inset 0 5px 14px #64705c26}.interior.pantry{background:#eedbb7;border-color:#bf8d5b;outline-color:#966b45}.freezer-tab{background:#d9dfd2;border-bottom:5px solid #c4cebd;border-radius:10px 10px 0 0;justify-content:center;align-items:center;gap:8px;width:100%;min-height:48px;padding:13px;font-size:12px;display:flex}.freezer-tab[aria-pressed=true]{background:#cddedc}.shelf{border-bottom:8px solid #bdc8b8;grid-template-columns:repeat(2,minmax(0,1fr));gap:13px 9px;min-height:137px;padding:16px 9px 8px;display:grid;box-shadow:0 4px 4px #52664713}.pantry .shelf{border-color:#ba895c}.shelf:nth-last-of-type(2){box-shadow:none}.food-tile{background:0 0;border:0;border-radius:9px;flex-direction:column;align-items:center;min-width:0;padding:0 3px 6px;display:flex}.food-tile:hover{background:#fff5}.food-tile img{filter:drop-shadow(0 3px 1px #43533918);width:72px;height:66px}.food-label{overflow-wrap:anywhere;background:#fffaf0;border-radius:8px;min-width:92px;max-width:100%;padding:6px 9px;font-size:14px}.food-label small{color:#5f695c;margin-top:3px;font-size:11px;display:block}.expiration{color:#79501f;margin-top:5px;font-size:11px}.empty-shelf{text-align:center;color:#636e58;grid-column:1/-1;align-self:center;padding:24px 8px;font:italic 15px Georgia,serif}.swing-door{transform-origin:0;backface-visibility:hidden;z-index:3;pointer-events:none;background:linear-gradient(110deg,#9cae8e,#78936f);border:3px solid #637c5a;border-radius:13px;animation:.38s cubic-bezier(.2,.7,.2,1) 80ms forwards door-open;position:absolute;inset:-3px}.swing-door:after{content:"";background:#f1deab;border-radius:5px;width:7px;height:68px;position:absolute;top:35%;right:17px}.fridge .swing-door{transform-origin:100%;animation-name:door-open-right}.fridge .swing-door:after{left:17px;right:auto}.pantry .swing-door{background:#cda16b;border-color:#a77545;border-radius:3px}.pantry .door-left{right:50%}.pantry .door-right{transform-origin:100%;animation-name:door-open-right;left:50%}.pantry .swing-door:before{content:"";background:#d8b17c;border:2px solid #bb8b55;position:absolute;inset:13px 12px;box-shadow:inset 3px 2px #c99d65}.pantry .swing-door:after{background:#614c35;border-radius:50%;width:10px;height:10px;top:47%;right:9px}.pantry .door-right:after{left:9px;right:auto}.search-results{padding:4px 22px 24px}.search-result{text-align:left;background:0 0;border-bottom:1px solid #dcd6c6;align-items:center;gap:16px;width:100%;padding:16px 0;display:flex}.search-result img{width:54px;height:54px}.search-result small{color:#606c58;margin-top:5px;font-size:12px;display:block}.empty-message{color:#606c58;padding:30px 0;line-height:1.6}@keyframes approach{0%{opacity:.5;transform:scale(.88)}to{opacity:1;transform:scale(1)}}@keyframes door-open{to{opacity:0;transform:rotateY(-112deg)}}@keyframes door-open-right{to{opacity:0;transform:rotateY(112deg)}}.sheet{width:min(100%,480px);max-width:100%;max-height:90dvh;padding:24px 24px max(24px, env(safe-area-inset-bottom));color:var(--ink);overscroll-behavior:contain;background:#fffaf0;border:1px solid #d8d1bf;border-radius:24px 24px 0 0;margin:auto auto 0;position:fixed;box-shadow:0 -14px 70px #263a3233}.sheet::backdrop{-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);background:#283c3145}.sheet-heading{justify-content:space-between;align-items:center;gap:14px;margin-bottom:24px;display:flex}.sheet-heading h2{overflow-wrap:anywhere;margin:0;font-size:27px}.sheet label{margin-bottom:18px;font-size:13px;display:block}.sheet label>input,.sheet select{background:#f9f3e5;border:1px solid #cecdbd;border-radius:10px;width:100%;min-width:0;min-height:46px;margin-top:8px;padding:11px 12px;font-size:16px;display:block}.form-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;display:grid}.primary,.secondary,.text-button{border-radius:12px;justify-content:center;align-items:center;gap:9px;min-height:46px;padding:13px 17px;font-size:15px;display:inline-flex}.primary{background:var(--green);color:#fffdf4}.secondary{color:#38533d;background:#e7ebdc}.text-button{color:#4b684d;background:0 0}.full{width:100%;margin-top:12px}.danger{color:#9b3c32}.quantity-control{justify-content:space-between;align-items:center;margin:18px 0 24px;display:flex}.quantity-control input{text-align:center;background:0 0;border:1px solid #d8d4c5;border-radius:9px;width:85px;padding:10px 4px;font-size:20px}.optional{color:#687460;margin-left:6px;font-size:11px}.sheet .check-label{align-items:center;gap:9px;min-height:44px;display:flex}.sheet .check-label input{width:22px;min-height:22px;accent-color:var(--green);margin:0}details{margin:8px 0 20px}summary{cursor:pointer;color:#5c7057;padding:12px 0;font-size:14px}.food-overview{align-items:center;gap:20px;margin-bottom:22px;display:flex}.food-overview img{width:80px;height:80px}.food-overview span{font-size:21px}.food-overview small{color:#66715d;margin-top:6px;font-size:12px;display:block}.lot{border-top:1px solid #ded8c9;padding:18px 0 6px}.lot-quantity{justify-content:space-between;align-items:center;margin-bottom:18px;display:flex}.lot-quantity span{font-size:18px}.settings-section{margin-bottom:24px}.settings-section h3{margin-bottom:10px;font-size:22px}.file-label{margin-top:20px}.file-label input{font-size:12px!important}@media (width>=600px){.sheet{border-radius:24px;margin:auto}}.shopping-list{min-height:420px;padding:4px 23px 25px}.shop-row{border-bottom:1px solid #ddd8c9;grid-template-columns:23px minmax(0,1fr) auto;align-items:center;gap:13px;padding:17px 0;display:grid}.shop-row>input{width:23px;height:23px;accent-color:var(--green);cursor:pointer;margin:0}.shop-info{text-align:left;background:0 0;min-width:0;min-height:56px;padding:5px 0}.shop-name{overflow-wrap:anywhere;font-size:17px;line-height:1.3;display:block}.home-stock{color:#66715f;align-items:center;gap:6px;margin-top:9px;font-size:12px;line-height:1.2;display:flex}.buy-quantity{color:#365638;font-variant-numeric:tabular-nums;background:#e1e9d7;border-radius:12px;justify-content:center;align-self:start;align-items:center;gap:3px;min-width:44px;min-height:44px;margin-top:5px;padding:8px 10px;font-size:23px;font-weight:500;display:flex}.buy-quantity svg{align-self:flex-end;margin-bottom:3px}.purchased .shop-name{color:#6e7767;text-decoration:line-through}.purchased .buy-quantity{color:#6e7767;background:#eeece1}.put-away{margin-top:27px}.count-pill{background:#ffffff26;border-radius:7px;place-items:center;min-width:25px;min-height:25px;font-size:13px;display:grid}.suggestions{flex-wrap:wrap;gap:8px;margin:-2px 0 20px;display:flex}.suggestions button{background:#f7f1e1;border:1px solid #dcd7c4;border-radius:10px;align-items:center;gap:5px;min-height:44px;padding:5px 9px;font-size:12px;display:flex}.suggestions img{width:26px;height:26px}.linked-note{color:#527349;margin-bottom:20px;font-size:12px}
