*{box-sizing:border-box}body{margin:0;font-family:system-ui,sans-serif;background:#f6f7f6;color:#1c2420}.container{max-width:480px;margin:0 auto;padding:0 1rem 1rem}.topbar{max-width:480px;margin:0 auto;padding:.6rem 1rem 0;display:flex;justify-content:space-between;align-items:center}.topbar a{color:#2f6f4f;text-decoration:none;font-size:.9rem}.lang-toggle,.menu-button{background:transparent;color:#2f6f4f;border:1px solid #c5cec9;padding:.2rem .6rem;border-radius:6px;font-size:.85rem}.menu-button{font-size:1.1rem;line-height:1}.menu-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:19}.menu-panel{position:absolute;top:3rem;left:max(1rem,calc(50% - 240px + 1rem));z-index:20;background:#fff;border-radius:10px;box-shadow:0 4px 16px #0000002e;padding:.4rem;display:flex;flex-direction:column;min-width:220px}.menu-panel a,.menu-panel button{display:block;padding:.7rem .9rem;color:#1c2420;text-decoration:none;font-size:1rem;text-align:left;background:transparent;border-radius:6px}.menu-panel a:active,.menu-panel button:active{background:#eef2ef}.menu-panel hr{border:none;border-top:1px solid #e3e8e5;margin:.3rem 0}.menu-panel .menu-logout{color:#a33}h1{font-size:1.4rem;color:#2f6f4f}form{display:flex;flex-wrap:wrap;gap:.5rem}input,select{flex:1;padding:.6rem;border:1px solid #c5cec9;border-radius:8px;font-size:1rem;min-width:0;background:#fff}input.grow{flex:1 1 100%}input.quantity{flex:0 1 4.5rem}input.unit{flex:1 1 7rem}button{padding:.6rem 1rem;border:none;border-radius:8px;background:#2f6f4f;color:#fff;font-size:1rem;cursor:pointer}.items{list-style:none;padding:0;margin-top:1rem}.items li{display:flex;justify-content:space-between;align-items:center;gap:.5rem;padding:.7rem .9rem;margin-bottom:.4rem;background:#fff;border-radius:8px;box-shadow:0 1px 2px #0000000f}.items li em{color:#5b6862;font-style:normal}.filters{display:flex;gap:.4rem;margin-top:1rem}.chip{background:#fff;color:#2f6f4f;border:1px solid #c5cec9;padding:.35rem .8rem;border-radius:999px;font-size:.9rem}.chip.active{background:#2f6f4f;color:#fff;border-color:#2f6f4f}.item-name{background:transparent;color:inherit;padding:0;text-align:left;flex:1;display:flex;align-items:center;gap:.5rem;flex-wrap:wrap}.badge{font-size:.75rem;padding:.1rem .5rem;border-radius:999px;background:#e7efea;color:#2f6f4f}.badge.fridge{background:#e3edf6;color:#2b5d8a}.badge.freezer{background:#e9e7f6;color:#4d3f8f}.badge.pantry{background:#f3ecdd;color:#7a5c1e}.row-actions{display:flex;gap:.3rem;align-items:center}.row-actions button{background:#eef2ef;color:#2f6f4f;padding:.25rem .7rem;font-size:1rem}.row-actions button:disabled{opacity:.35}.row-actions button.delete{background:transparent;color:#a33}.row-actions button.secondary{background:transparent;color:#5b6862}.items li.editing{display:block}.edit-form{width:100%}.date-field{display:flex;align-items:center;gap:.5rem;font-size:.9rem;color:#5b6862;flex:1 1 100%}.date-field input{flex:1}.hint{flex:1 1 100%;margin:0;font-size:.85rem;color:#5b6862}.chip.suggestion{border-style:dashed;flex:1 1 100%}.expiry{font-size:.8rem;color:#5b6862}.expiry.expiring{color:#9a6b00;font-weight:600}.expiry.expired{color:#a33;font-weight:600}.items li.expiring{border-left:3px solid #d99a00}.items li.expired{border-left:3px solid #a33}.entry-title{display:flex;align-items:center;gap:.5rem}.entry-days{font-size:.8rem;color:#5b6862;flex:1 1 100%}.items .empty{color:#5b6862;justify-content:center}.error{color:#a33}.scanner{width:100%;border-radius:8px;background:#000;aspect-ratio:3 / 4;object-fit:cover}.scanner-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:10;background:#000000e0;display:flex;flex-direction:column;justify-content:center;gap:1rem;padding:1rem}.scanner-overlay .scanner{max-height:65vh}.scanner-hint{color:#dfe6e2;text-align:center;margin:0}.tap-area{position:relative}.tap-marker{position:absolute;width:44px;height:44px;margin:-22px 0 0 -22px;border:3px solid #8fc3a8;border-radius:50%;pointer-events:none;animation:tap-pulse .8s ease-out infinite}@keyframes tap-pulse{0%{transform:scale(.8);opacity:1}to{transform:scale(1.2);opacity:.4}}.dialog-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:10;background:#00000080;display:flex;align-items:center;justify-content:center;padding:1rem}.dialog{background:#fff;border-radius:12px;padding:1.2rem;max-width:380px;width:100%}.dialog p{margin:0 0 .8rem}.dialog-actions{display:flex;flex-direction:column;gap:.5rem}.name-with-scan{display:flex;gap:.5rem;flex:1 1 100%}.scan-button{background:#eef2ef;padding:.4rem .7rem;font-size:1.1rem}.barcode-hint button{padding:0 .4rem;margin-left:.3rem;font-size:.85rem}
