:root{--bg:#f4f6f8;--card:#ffffff;--ink:#16202a;--muted:#6b7a89;--line:#dde3e9;--accent:#1f7ae0;--ok:#2e9e5b;--warn:#d68a00;--bad:#d7443e;--radius:14px}@media (prefers-color-scheme:dark){:root{--bg:#0f1720;--card:#172230;--ink:#e7edf4;--muted:#93a3b4;--line:#263444;--accent:#4d9bff;--ok:#46c07c;--warn:#e5a83a;--bad:#ff6b62}}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--ink);font:16px/1.5 system-ui,-apple-system,Segoe UI,Roboto,sans-serif;-webkit-text-size-adjust:100%}main{max-width:780px;margin:0 auto;padding:16px 16px 64px}a{color:var(--accent);text-decoration:none}h1,h2{line-height:1.25}.muted{color:var(--muted)}.page-title{margin:8px 0 4px;font-size:1.5rem}.back{margin:0 0 12px;font-size:.9rem}.empty{text-align:center;color:var(--muted);padding:32px 8px}.topbar{position:-webkit-sticky;position:sticky;top:0;z-index:5;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 16px;background:var(--card);border-bottom:1px solid var(--line)}.brand{font-weight:700;color:var(--ink);font-size:1.05rem}.topbar nav{display:flex;align-items:center;gap:14px;font-size:.9rem}.topbar form{margin:0}.linkish{background:none;border:0;color:var(--accent);font:inherit;cursor:pointer;padding:0}.summary{display:flex;gap:10px;align-items:stretch;margin:4px 0 16px}.stat{flex:1 1;background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:10px 14px;display:flex;flex-direction:column}.stat strong{font-size:1.4rem}.stat span{font-size:.78rem;color:var(--muted)}.stat.warn strong{color:var(--warn)}.add{display:flex;align-items:center;padding:0 18px;background:var(--accent);color:#fff;font-weight:600;border-radius:var(--radius);white-space:nowrap}.filters{margin-bottom:16px;display:grid;grid-gap:10px;gap:10px}.filters input[type=search]{width:100%}.chips{display:flex;flex-wrap:wrap;gap:8px}.chip{padding:5px 11px;border-radius:999px;font-size:.85rem;background:var(--card);border:1px solid var(--line);color:var(--ink)}.chip em{font-style:normal;color:var(--muted);font-size:.78em}.chip.on{background:var(--accent);border-color:var(--accent);color:#fff}.chip.on em{color:rgba(255,255,255,.75)}.filters .row{display:flex;align-items:center;gap:12px;flex-wrap:wrap;font-size:.88rem}.filters .row label{display:flex;align-items:center;gap:6px;color:var(--muted)}.check{cursor:pointer}button,input,select,textarea{font:inherit;color:var(--ink);background:var(--card);border:1px solid var(--line);border-radius:10px;padding:9px 11px}textarea{resize:vertical;width:100%}button{cursor:pointer}button.primary{background:var(--accent);border-color:var(--accent);color:#fff;font-weight:600}button.danger{color:var(--bad);border-color:color-mix(in srgb,var(--bad) 40%,var(--line));background:transparent}.ghost{display:inline-flex;align-items:center;padding:9px 14px;border:1px solid var(--line);border-radius:10px}.items{list-style:none;margin:0;padding:0;display:grid;grid-gap:10px;gap:10px}.item{display:flex;align-items:stretch;gap:8px;background:var(--card);border-left:1px solid var(--line);border:1px solid var(--line);border-left-width:4px;border-radius:var(--radius);overflow:hidden}.item.gut{border-left-color:var(--ok)}.item.bald{border-left-color:var(--warn)}.item.abgelaufen{border-left-color:var(--bad)}.item-main{flex:1 1;padding:12px 14px;color:var(--ink);min-width:0}.item-head{display:flex;justify-content:space-between;gap:10px;align-items:baseline}.item-head h2{margin:0;font-size:1.04rem}.qty{font-size:.85rem;white-space:nowrap}.meta,.qty{color:var(--muted)}.meta{display:flex;flex-wrap:wrap;gap:6px 10px;margin-top:4px;font-size:.8rem}.where:before{content:"📍 "}.tag{background:var(--bg);border:1px solid var(--line);border-radius:999px;padding:0 8px}.item.bald .mhd{color:var(--warn)}.item.abgelaufen .mhd{color:var(--bad);font-weight:600}.ingredients{margin:6px 0 0;font-size:.85rem;color:var(--muted);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.item-actions{display:flex;flex-direction:column;border-left:1px solid var(--line)}.item-actions form{display:flex;flex:1 1;margin:0}.item-actions button{flex:1 1;width:46px;border:0;border-radius:0;background:transparent;font-size:1.2rem;color:var(--muted)}.item-actions form+form button{border-top:1px solid var(--line)}.item-actions button:hover{background:var(--bg);color:var(--ink)}.card{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:16px}.form{display:grid;grid-gap:14px;gap:14px;margin-top:12px}.form label{display:grid;grid-gap:5px;gap:5px;font-size:.85rem;color:var(--muted)}.form input,.form select{width:100%}.grid{display:grid;grid-template-columns:1fr 1fr;grid-gap:14px;gap:14px}.actions{display:flex;gap:10px;justify-content:flex-end;align-items:center}.actions.wrap{flex-wrap:wrap;justify-content:flex-start;margin-top:16px}.actions form{margin:0}.detail header{display:flex;justify-content:space-between;align-items:baseline;gap:12px}.detail header h1{margin:0 0 4px;font-size:1.35rem}.detail h2{font-size:.8rem;text-transform:uppercase;letter-spacing:.04em;color:var(--muted);margin:18px 0 4px}.detail dl{display:grid;grid-gap:8px;gap:8px;margin:14px 0 0}.detail dl>div{display:flex;gap:10px;border-bottom:1px solid var(--line);padding-bottom:8px}.detail dt{width:110px;color:var(--muted);font-size:.85rem;flex:none}.detail dd{margin:0}.badge{border-radius:999px;padding:1px 9px;font-size:.78rem;background:var(--bg);border:1px solid var(--line)}.badge.bald{color:var(--warn)}.badge.abgelaufen{color:var(--bad)}.badge.gut{color:var(--ok)}.locations{list-style:none;padding:0;margin:0 0 16px;display:grid;grid-gap:10px;gap:10px}.row-card{display:flex;align-items:center;gap:10px;flex-wrap:wrap;padding:12px}.row-card form{display:flex;gap:8px;margin:0}.row-card>.muted{margin-left:auto;font-size:.85rem}.login{min-height:100vh;display:grid;place-items:center;padding:20px}.login-card{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:28px;width:min(380px,100%)}.login-card h1{margin:0 0 2px;font-size:1.4rem}.login-card form{display:grid;grid-gap:8px;gap:8px;margin-top:20px}.login-card label{font-size:.85rem;color:var(--muted)}.login-card input{width:100%}.login-card button{margin-top:6px;padding:11px}.alert{background:color-mix(in srgb,var(--bad) 12%,transparent);border:1px solid var(--bad);color:var(--bad);border-radius:10px;padding:9px 12px;font-size:.88rem}@media (max-width:520px){.grid{grid-template-columns:1fr}.summary{flex-wrap:wrap}.add{width:100%;justify-content:center;padding:12px}}