:root{--ink:#202d38;--teal:#259b8b;--muted:#73808b;--line:#e5e8e8;--paper:#f8f7f4;--white:#fff;--soft:#e9f5f1}*{box-sizing:border-box}body{margin:0;background:var(--paper);font:15px/1.45 -apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;color:var(--ink)}button,input,select,textarea{font:inherit}button{cursor:pointer}button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid #8cd8cb;outline-offset:2px}.shell{max-width:620px;margin:0 auto;min-height:100dvh;background:#fff;box-shadow:0 0 45px #202d380e;padding-bottom:calc(90px + env(safe-area-inset-bottom))}.top{display:flex;align-items:center;justify-content:space-between;padding:16px 20px;border-bottom:1px solid var(--line)}.brand{display:flex;align-items:center;gap:10px}.brand img{width:39px;height:39px}.brand b{display:block;font-size:17px;letter-spacing:-.5px}.brand small{display:block;color:var(--muted);font-size:9px;letter-spacing:1.1px}.iconbtn{border:0;background:#f3f5f4;border-radius:12px;width:38px;height:38px;color:var(--ink)}main{padding:23px 18px}.eyebrow{color:var(--teal);font-weight:800;letter-spacing:1.7px;font-size:10px;text-transform:uppercase}.heading{display:flex;justify-content:space-between;align-items:center;gap:10px}.heading h1{margin:3px 0 6px;font-size:30px;letter-spacing:-1.2px;line-height:1.15}.sub{color:var(--muted);margin:0 0 20px}.progress{height:7px;background:#edf0ee;border-radius:30px;overflow:hidden;margin:12px 0 8px}.progress>div{background:var(--teal);height:100%;transition:width .2s}.stats{display:flex;justify-content:space-between;color:var(--muted);font-size:12px;margin-bottom:23px}.sectionhead{display:flex;justify-content:space-between;align-items:center;margin:23px 0 12px}.sectionhead h2{margin:0;font-size:16px}.hint{font-size:12px;color:var(--muted)}.task,.store,.project,.inboxitem{border:1px solid var(--line);border-radius:15px;padding:12px;margin:8px 0;background:#fff}.task{display:flex;align-items:center;gap:11px;min-height:66px}.task.dragging{opacity:.4}.task .details{flex:1;min-width:0}.task .details strong{font-size:14px;font-weight:650;display:block;overflow-wrap:anywhere}.task.done strong{text-decoration:line-through;color:#96a0a6}.task .details small{display:block;color:var(--muted);margin-top:3px}.check{appearance:none;width:23px;height:23px;min-width:23px;border:2px solid #b8c3c4;border-radius:8px;cursor:pointer;position:relative;margin:0}.check:checked{background:var(--teal);border-color:var(--teal)}.check:checked:after{content:'✓';position:absolute;top:-4px;left:3px;color:#fff;font-size:19px}.reorder{display:flex;flex-direction:column;gap:1px}.reorder button{border:0;background:transparent;color:#869198;padding:0 6px;font-size:16px;line-height:19px}.handle{color:#a4b0b5;font-size:20px;touch-action:none;cursor:grab}.row{display:flex;align-items:center;gap:9px}.between{justify-content:space-between}.btn{border:0;border-radius:12px;background:var(--ink);color:white;font-weight:700;padding:12px 16px}.btn.secondary{background:#edf3f1;color:var(--ink)}.btn.teal{background:var(--teal)}.btn.small{padding:7px 11px;font-size:12px}.full{width:100%}.field{width:100%;padding:13px;border:1px solid #d9dfdf;border-radius:12px;background:#fff;color:var(--ink);min-width:0}.entry{display:flex;gap:8px;margin:15px 0}.entry .field{flex:1}.chip{display:inline-block;background:var(--soft);color:#18796d;border-radius:30px;padding:4px 10px;font-size:11px;font-weight:750}.card{background:var(--paper);border-radius:16px;padding:16px;margin:14px 0}.empty{padding:28px 16px;text-align:center;color:var(--muted);border:1px dashed #cfd8d7;border-radius:15px}.nav{position:fixed;bottom:0;width:min(620px,100%);background:#fff;border-top:1px solid var(--line);display:grid;grid-template-columns:repeat(4,1fr);padding:9px 6px calc(9px + env(safe-area-inset-bottom));z-index:3}.nav button{background:transparent;border:0;color:#89939a;font-size:11px;display:flex;flex-direction:column;align-items:center;gap:2px;padding:3px}.nav button span{font-size:23px;line-height:26px}.nav button.active{color:var(--teal);font-weight:800}.store summary{list-style:none;cursor:pointer;display:flex;justify-content:space-between;align-items:center;font-weight:750}.store summary::-webkit-details-marker{display:none}.store .category{margin-top:15px;padding:7px 9px;border-radius:8px;background:#f2f5f4;color:#607078;font-size:12px;font-weight:800}.groceryitem{display:flex;align-items:center;gap:10px;padding:10px 3px;border-bottom:1px solid #f0f1f1}.groceryitem span{flex:1}.groceryitem.purchased span{text-decoration:line-through;color:#9aa5a8}.plain{border:0;background:transparent;color:var(--muted);padding:4px 6px}.tabs{display:flex;gap:6px;overflow-x:auto;padding-bottom:4px}.tabs button{white-space:nowrap;border:1px solid var(--line);border-radius:20px;padding:8px 12px;background:#fff;color:var(--muted)}.tabs button.selected{background:var(--ink);color:#fff}.project{display:flex;justify-content:space-between;align-items:center}.project strong{display:block}.project small{color:var(--muted)}.project button{border:0;background:#f1f4f2;border-radius:10px;padding:8px 10px}dialog{border:0;border-radius:20px;padding:22px;width:min(450px,calc(100% - 30px));box-shadow:0 25px 80px #0004;max-height:85dvh;overflow:auto}dialog::backdrop{background:#18252c90}dialog h2{margin:0 0 12px}dialog p{color:var(--muted)}dialog .field{margin:6px 0 12px}#toast{position:fixed;left:50%;bottom:95px;transform:translateX(-50%);background:var(--ink);color:#fff;border-radius:14px;padding:10px 16px;display:none;z-index:10;max-width:90%;text-align:center;font-size:13px}.reviewitem{display:flex;align-items:center;gap:9px;border-bottom:1px solid var(--line);padding:11px 0}.reviewitem span{flex:1}.note{font-size:12px;color:var(--muted)}.pill{padding:5px 9px;background:#f0f4f2;border-radius:20px;color:#61716d;font-size:11px}.upload{display:block;text-align:center;padding:20px;border:1px dashed #a9c8c2;border-radius:15px;background:#f7fbf9;margin:14px 0;cursor:pointer}#preview{max-width:100%;max-height:200px;object-fit:contain;border-radius:10px}.storecount{color:var(--teal);font-size:12px}.warning{background:#fff7e8;padding:12px;border-radius:12px;font-size:12px;color:#886027;margin:12px 0}@media(min-width:700px){body{padding:25px 0}.shell{border-radius:20px;overflow:hidden;min-height:calc(100dvh - 50px)}.nav{bottom:0}}@media(prefers-reduced-motion:reduce){*{transition:none!important}}
