:root{--ink:#1a3329;--ink-muted:#5a6e63;--ink-light:#8a9d93;--bg:#fff;--surface:#f7faf8;--surface-hover:#eef5f0;--rule:#d8e6dc;--rule-strong:#b8cfc0;--accent:#2d7a4e;--accent-hover:#236039;--accent-light:#e8f4ed;--accent-ink:#fff;--destructive:#c84034;--destructive-hover:#a13329;--destructive-light:#fdecea;--checked:#7a9886;--checked-bg:#f2f6f4;--cat-produce:#4a7c59;--cat-dairy:#6b8bb3;--cat-meat:#a65a52;--cat-bakery:#b8935c;--cat-pantry:#8b7355;--cat-frozen:#5a8fa3;--cat-other:#6d7a73;--measure:60ch;scrollbar-color:var(--rule) transparent;caret-color:var(--accent);--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light dark}@media (prefers-color-scheme:dark){:root{--lightningcss-light: ;--lightningcss-dark:initial;--ink:#e8f0ed;--ink-muted:#9fb3ab;--ink-light:#708079;--bg:#0f1814;--surface:#1a2920;--surface-hover:#243830;--rule:#2d4038;--rule-strong:#3d5448;--accent:#3d9a66;--accent-hover:#4db378;--accent-light:#1a3329;--accent-ink:#fff;--destructive:#e86b5f;--destructive-hover:#f0887e;--destructive-light:#2d1a18;--checked:#6a8876;--checked-bg:#1a2920;--cat-produce:#5a9d6d;--cat-dairy:#7ba3cf;--cat-meat:#c67a6e;--cat-bakery:#d4ad78;--cat-pantry:#a89371;--cat-frozen:#6aafcf;--cat-other:#8a998f}}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html{overflow-x:clip}body{color:var(--ink);background:var(--bg);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;margin:0;font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif;font-size:16px;line-height:1.6}h1{color:var(--ink);text-wrap:balance;font-size:1.75rem;font-weight:700;line-height:1.2}h2{color:var(--ink);text-wrap:balance;font-size:1.125rem;font-weight:600;line-height:1.3}p{text-wrap:pretty}.screen{flex-direction:column;min-height:100vh;padding-bottom:5rem;display:flex}.header{background:var(--bg);border-bottom:1px solid var(--rule);z-index:10;position:sticky;top:0}.header-content{align-items:center;gap:.75rem;max-width:48rem;margin:0 auto;padding:1rem 1.25rem;display:flex}.header h1{flex:1}.main{flex:1;width:100%;max-width:48rem;margin:0 auto;padding:1.5rem 1.25rem}.btn{cursor:pointer;border:none;border-radius:8px;justify-content:center;align-items:center;gap:.5rem;min-height:44px;padding:.75rem 1.25rem;font-family:inherit;font-size:1rem;font-weight:600;transition:all .18s cubic-bezier(.4,0,.2,1);display:inline-flex}.btn:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.btn-primary{background:var(--accent);color:var(--accent-ink);box-shadow:0 1px 2px #1a332914}.btn-primary:hover{background:var(--accent-hover);transform:translateY(-1px);box-shadow:0 2px 4px #1a33291f}.btn-primary:active{transform:translateY(0)}.btn-secondary{background:var(--bg);color:var(--ink);border:1px solid var(--rule)}.btn-secondary:hover{background:var(--surface);border-color:var(--rule-strong)}.btn-icon{background:var(--bg);border:1px solid var(--rule);justify-content:center;align-items:center;width:44px;height:44px;padding:0;display:flex}.btn-icon:hover{background:var(--surface);border-color:var(--rule-strong)}.btn-full{width:100%}.form{flex-direction:column;gap:1.5rem;display:flex}.form-group{flex-direction:column;gap:.5rem;display:flex}.form-label{color:var(--ink);font-size:.875rem;font-weight:600}.form-input,.form-select{color:var(--ink);background:var(--bg);border:1px solid var(--rule);border-radius:8px;min-height:44px;padding:.75rem 1rem;font-family:inherit;font-size:1rem;transition:all .18s cubic-bezier(.4,0,.2,1)}.form-input:focus,.form-select:focus{border-color:var(--accent);outline:none}.form-input::placeholder{color:var(--ink-light)}.form-select{cursor:pointer}.form-actions{gap:.75rem;margin-top:.5rem;display:flex}.list-header{justify-content:space-between;align-items:center;margin-bottom:1.5rem;display:flex}.list-stats{color:var(--ink-muted);font-size:.875rem}.items-grid{flex-direction:column;gap:.75rem;display:flex}.item-card{background:var(--bg);border:1px solid var(--rule);border-radius:12px;align-items:flex-start;gap:.75rem;padding:1rem;transition:all .18s cubic-bezier(.4,0,.2,1);display:flex}.item-card:hover{border-color:var(--rule-strong);box-shadow:0 2px 6px #1a33290f}.item-card.checked{background:var(--checked-bg);border-color:var(--checked)}.item-checkbox{border:2px solid var(--rule-strong);cursor:pointer;border-radius:6px;justify-content:center;align-items:center;width:24px;min-width:24px;height:24px;margin-top:.125rem;transition:all .18s cubic-bezier(.4,0,.2,1);display:flex}.item-checkbox:hover{border-color:var(--accent);background:var(--accent-light)}.item-checkbox.checked{background:var(--checked);border-color:var(--checked)}.item-content{flex:1;min-width:0}.item-name{color:var(--ink);margin-bottom:.25rem;font-size:1rem;font-weight:600}.item-card.checked .item-name{color:var(--checked);text-decoration:line-through}.item-meta{color:var(--ink-muted);flex-wrap:wrap;align-items:center;gap:.75rem;font-size:.875rem;display:flex}.item-quantity{font-weight:500}.item-category{align-items:center;gap:.375rem;display:inline-flex}.category-dot{border-radius:50%;width:8px;height:8px}.btn-delete{color:var(--destructive);cursor:pointer;background:0 0;border:none;border-radius:6px;justify-content:center;align-items:center;min-width:36px;min-height:36px;padding:.5rem;transition:all .18s cubic-bezier(.4,0,.2,1);display:flex}.btn-delete:hover{background:var(--destructive-light)}.btn-delete:focus-visible{outline:2px solid var(--destructive);outline-offset:2px}.empty-state{text-align:center;padding:4rem 1.5rem}.empty-icon{background:var(--surface);width:64px;height:64px;color:var(--ink-muted);border-radius:50%;justify-content:center;align-items:center;margin:0 auto 1.5rem;display:flex}.empty-state h2{margin-bottom:.5rem}.empty-state p{color:var(--ink-muted);margin-bottom:1.5rem}.fab{background:var(--accent);width:56px;height:56px;color:var(--accent-ink);cursor:pointer;z-index:20;border:none;border-radius:50%;justify-content:center;align-items:center;transition:all .18s cubic-bezier(.4,0,.2,1);display:flex;position:fixed;bottom:1.5rem;right:1.5rem;box-shadow:0 4px 12px #2d7a4e4d}.fab:hover{background:var(--accent-hover);transform:translateY(-2px);box-shadow:0 6px 16px #2d7a4e66}.fab:active{transform:translateY(0)}.fab:focus-visible{outline:2px solid var(--accent);outline-offset:3px}.icon{stroke:currentColor;stroke-width:2px;stroke-linecap:round;stroke-linejoin:round;fill:none;width:20px;height:20px}.icon-lg{width:24px;height:24px}.category-produce{color:var(--cat-produce)}.category-dairy{color:var(--cat-dairy)}.category-meat{color:var(--cat-meat)}.category-bakery{color:var(--cat-bakery)}.category-pantry{color:var(--cat-pantry)}.category-frozen{color:var(--cat-frozen)}.category-other{color:var(--cat-other)}.num{font-variant-numeric:tabular-nums}::selection{background:var(--accent-light);color:var(--ink)}:focus-visible{outline:2px solid var(--accent);outline-offset:2px}a{color:var(--accent);text-underline-offset:.18em}button,[role=button],summary,select,input[type=checkbox],input[type=radio]{min-height:44px}button{min-width:44px}input,select,textarea{font:inherit;font-size:max(1rem,16px)}img,video,canvas,svg{max-width:100%;height:auto}pre{overflow-x:auto}@media (width<=640px){h1{font-size:1.5rem}.header-content{padding:.875rem 1rem}.main{padding:1.25rem 1rem}.fab{bottom:1rem;right:1rem}}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}@media (prefers-reduced-motion:no-preference){html{scroll-behavior:smooth}}@media (width<=480px){body,.container,[class*=container],section,header,footer,nav,main,article{padding-inline:max(1rem,16px)}}
