:root{--bg: #f6f5f1;--fg: #1d2420;--muted: #6b756f;--card: #fff;--line: #e2e0d8;--brand: #2f7d4f;--danger: #b3382c}@media(prefers-color-scheme:dark){:root{--bg: #151a17;--fg: #e8ece9;--muted: #98a39c;--card: #1f2622;--line: #2d3631;--brand: #4fb27a;--danger: #e5675a}}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--fg);font:16px/1.4 system-ui,sans-serif}.app{max-width:640px;margin:0 auto;padding:0 16px 48px}.top{display:flex;align-items:center;gap:12px;padding:14px 0}.brand{font-weight:700;font-size:1.3rem;color:var(--brand);text-decoration:none}.grow{flex:1;min-width:0}.muted{color:var(--muted)}.small{font-size:.85rem}.center{text-align:center;padding:48px 16px}.login{display:flex;flex-direction:column;align-items:center;gap:8px}.error{color:var(--danger)}h2{margin:8px 0}.row{display:flex;gap:8px;align-items:center;margin:8px 0}.between{justify-content:space-between;flex-wrap:wrap}input,select,button{font:inherit;color:inherit;background:var(--card);border:1px solid var(--line);border-radius:8px;padding:8px 10px}input{min-width:0;flex:1}input.qty{flex:0 0 76px;width:76px;text-align:right}input[type=checkbox]{flex:0 0 auto;width:22px;height:22px;accent-color:var(--brand)}button{cursor:pointer}button.primary{background:var(--brand);border-color:var(--brand);color:#fff}button.link{border:0;background:none;padding:4px 6px;color:var(--muted)}button.danger,.danger{color:var(--danger)}.cards,.items{list-style:none;margin:0;padding:0}.card{display:flex;flex-direction:column;gap:2px;padding:14px;margin:8px 0;background:var(--card);border:1px solid var(--line);border-radius:12px;color:inherit;text-decoration:none}.items li{display:flex;align-items:center;gap:10px;padding:10px 4px;border-bottom:1px solid var(--line)}.items li.off{opacity:.5}.items.done li span:not(.muted){text-decoration:line-through;color:var(--muted)}.panel{background:var(--card);border:1px solid var(--line);border-radius:12px;padding:12px;margin:8px 0}.footer{display:flex;gap:8px;margin-top:32px;justify-content:space-between}
