:root{--bg: #0f172a;--panel: #1e293b;--panel2: #273449;--line: #334155;--text: #e2e8f0;--muted: #94a3b8;--accent: #16a34a;--accent2: #22c55e;--danger: #ef4444}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text);font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif;-webkit-tap-highlight-color:transparent}.app{max-width:640px;margin:0 auto;padding:14px}.top{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap}.top h1{font-size:20px;margin:0}.auth{display:flex;align-items:center;gap:8px}.muted{color:var(--muted)}.small{font-size:12px}.error{color:#fca5a5;background:#3f1d1d;padding:8px 12px;border-radius:8px}button{background:var(--panel2);color:var(--text);border:1px solid var(--line);padding:8px 12px;border-radius:9px;cursor:pointer;font-size:14px}button:hover{border-color:var(--accent2)}button.primary{background:var(--accent);border-color:var(--accent);color:#fff}button.danger{background:transparent;border-color:var(--danger);color:#fca5a5}button.small-btn{padding:2px 9px}button.link{background:none;border:none;color:var(--accent2);padding:4px}select,input{background:var(--panel);color:var(--text);border:1px solid var(--line);padding:8px 10px;border-radius:9px;font-size:15px}.pill{font-size:12px;padding:4px 9px;border-radius:999px;border:1px solid var(--line)}.pill.on{color:var(--accent2)}.pill.off{color:#fbbf24;border-color:#7c5e12}.listbar{display:flex;gap:8px;flex-wrap:wrap;align-items:center;margin:14px 0 8px}.listbar select{flex:1 1 auto;min-width:140px}.presence{font-size:13px;color:var(--muted);margin-bottom:8px;display:flex;gap:6px;align-items:center;flex-wrap:wrap}.who-chip{background:var(--panel2);border:1px solid var(--line);border-radius:999px;padding:2px 10px;color:var(--text);font-size:12px}.addbar{display:flex;gap:6px;margin:8px 0 14px;position:relative;align-items:stretch}.ab-name{position:relative;flex:1 1 auto}.ab-name input{width:100%}.ab-amt{width:72px}.ab-unit{width:78px}.ab-add{white-space:nowrap}.ab-sug{position:absolute;z-index:20;top:100%;left:0;right:0;margin-top:4px;background:var(--panel);border:1px solid var(--line);border-radius:10px;overflow:hidden;box-shadow:0 8px 24px #00000080}.ab-sug button{display:block;width:100%;text-align:left;border:none;border-radius:0;background:none;padding:10px 12px}.ab-sug button:hover{background:var(--panel2)}.ab-sug-u{color:var(--muted);font-size:13px}.listview{margin-top:4px}.items{list-style:none;margin:0;padding:0;position:relative}.item{display:flex;align-items:center;gap:10px;padding:11px 6px;border-bottom:1px solid var(--line);transition:opacity .25s ease;will-change:transform}.item .chk{flex:0 0 26px;width:26px;height:26px;border-radius:7px;padding:0;display:flex;align-items:center;justify-content:center;color:#fff;font-size:15px;background:var(--panel2)}.item.done .chk{background:var(--accent);border-color:var(--accent)}.item .nm{flex:1 1 auto;cursor:pointer}.item .qty{color:var(--muted);font-size:14px;white-space:nowrap}.item .del{flex:0 0 auto;background:none;border:none;color:var(--muted);font-size:20px;padding:0 4px}.item.done{opacity:.55}.item .nm{transition:color .25s ease}.item.done .nm{text-decoration:line-through;color:var(--muted)}.done-head{list-style:none;display:flex;align-items:center;justify-content:space-between;margin:16px 0 4px;color:var(--muted);font-size:13px}.modal{position:fixed;top:0;right:0;bottom:0;left:0;background:#0000008c;display:flex;align-items:flex-start;justify-content:center;padding:20px;overflow-y:auto;z-index:50}.sheet{background:var(--panel);border:1px solid var(--line);border-radius:14px;padding:20px;width:100%;max-width:440px;position:relative}.sheet.wide{max-width:560px}.sheet h2{margin:0 0 12px;font-size:18px}.sheet .x{position:absolute;top:8px;right:12px;background:none;border:none;font-size:22px;color:var(--muted)}.sheet label{display:block;margin-bottom:10px;font-size:13px;color:var(--muted)}.sheet label input,.sheet label select{display:block;width:100%;margin-top:4px}.row{display:flex;gap:8px;align-items:center}.row.end{justify-content:flex-end;margin-top:10px}.row.wrap{flex-wrap:wrap;margin-top:8px}.row.wrap input{flex:1 1 120px}.tabs{display:flex;gap:6px;margin-bottom:12px}.mrow{display:flex;gap:8px;align-items:center;margin-bottom:6px}.mrow .em{flex:1;font-size:13px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.catlist{max-height:46vh;overflow-y:auto;margin:6px 0}.crow{display:flex;gap:6px;align-items:center;margin-bottom:6px}.crow .cnm{flex:1 1 auto}.crow .cu{width:74px}.crow .ca{width:64px}.addcat input{flex:1 1 80px}.saved{color:var(--accent2);font-size:12px;white-space:nowrap}.item{border-left:4px solid transparent;padding-left:10px}.crow{flex-wrap:wrap}.crow .cg{width:120px}.crow .cnm{min-width:120px}input[type=color]{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:44px;height:34px;padding:3px;border:1px solid var(--line);border-radius:8px;background:var(--panel2);cursor:pointer}input[type=color]::-webkit-color-swatch-wrapper{padding:0}input[type=color]::-webkit-color-swatch{border:none;border-radius:5px}input[type=color]::-moz-color-swatch{border:none;border-radius:5px}.item .burger{flex:0 0 auto;background:none;border:none;color:var(--muted);font-size:15px;padding:0 2px;cursor:pointer}.item .burger:hover{color:var(--text)}.item .burger:disabled{opacity:.3;cursor:default}
