.searchbox{margin:4px 0 12px}.searchbox input{width:100%;background:var(--card);border:1px solid var(--line);border-radius:16px;padding:12px 14px;color:var(--text);font:inherit;font-size:15px;outline:none}.searchbox input:focus{border-color:var(--c-main)}.chiprow{display:flex;gap:8px;overflow-x:auto;padding-bottom:6px;margin-bottom:6px}.catchip{flex:none;font-size:12.5px;color:var(--mut);background:transparent;border:1px solid var(--line);border-radius:20px;padding:5px 14px;cursor:pointer;font-family:inherit}.catchip.active{background:var(--card2);color:var(--text);border-color:var(--c-main)}.crowlist{display:grid;gap:10px;margin-top:10px}.crow{display:flex;gap:12px;align-items:center;background:var(--card);border:1px solid var(--line);border-radius:18px;padding:14px 16px;border-left:4px solid var(--cat);text-decoration:none;color:var(--text)}.crow-name{flex:1;min-width:0;font-size:15.5px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.crow .chev{color:var(--mut);font-size:22px;flex:none;line-height:1}.appbar-t{flex:1;min-width:0}.appbar-t h1{margin:0;font-size:20px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.appbar-t .sub{color:var(--mut);font-size:12.5px}.note{display:flex;gap:10px;background:color-mix(in srgb,var(--c-soup) 10%,transparent);border:1px solid color-mix(in srgb,var(--c-soup) 30%,transparent);border-radius:14px;padding:12px 14px;font-size:13.5px;color:var(--text);margin:12px 0 16px;line-height:1.5}.note b{color:var(--c-soup)}.tbody{flex:1;min-width:0;display:flex;flex-direction:column;gap:3px;text-decoration:none;color:inherit}.tname{font-size:15px;font-weight:600;line-height:1.35}.tmeta{font-size:12px;color:var(--mut)}.tmeta.carry{color:var(--c-hearty);font-weight:700}.tile input:checked~.tbody .tname{color:var(--ok)}.tiles.onecol{grid-template-columns:1fr}.cta{margin-top:26px;display:grid;gap:10px}.cta .go{display:flex;align-items:center;justify-content:center;gap:10px;background:var(--ok);color:#10240f;font-weight:800;border-radius:20px;padding:16px;border:none;cursor:pointer;font-family:inherit;font-size:15.5px;width:100%}.cta .skip{display:flex;align-items:center;justify-content:center;border:1px solid var(--line);border-radius:20px;color:var(--mut);padding:14px;cursor:pointer;font-family:inherit;font-size:14px;background:transparent;width:100%}.cathead .del{border:none;background:none;color:var(--mut);font-size:12px;cursor:pointer;padding:4px 0 4px 8px;text-decoration:underline;text-underline-offset:3px;font-family:inherit}.cathead .del:hover{color:var(--c-main)}.acts{display:flex;gap:4px;flex:none}.acts button{width:36px;height:36px;border-radius:11px;border:1px solid var(--line);background:var(--card2);color:var(--text);font-size:14px;cursor:pointer;display:grid;place-items:center;padding:0;font-family:inherit}.acts button:hover{border-color:var(--c-main);color:var(--c-main)}.acts button.mut{color:var(--mut)}.acts button:disabled{opacity:.4;pointer-events:none}.tile.add{border:1.5px dashed var(--line);border-left:1.5px dashed var(--line);background:transparent;color:var(--mut);cursor:pointer;min-height:70px;justify-content:center;gap:10px;font-family:inherit}.tile.add:hover{border-color:var(--c-main);color:var(--c-main)}.tile.add .plus{font-size:20px;line-height:1}.tile.add .lbl{font-size:13.5px;font-weight:700}.addcat{display:flex;align-items:center;justify-content:center;gap:8px;margin:18px 0 4px;border:1.5px dashed var(--line);border-radius:18px;padding:15px;color:var(--mut);font-size:14px;font-weight:700;text-decoration:none;width:100%;background:transparent;cursor:pointer;font-family:inherit}.addcat:hover{border-color:var(--c-main);color:var(--c-main)}.addform{margin:18px 0 4px;background:var(--card);border:1px solid var(--line);border-radius:18px;padding:14px;display:grid;gap:12px}.addform .chiprow{flex-wrap:wrap;overflow:visible;margin-bottom:0;padding-bottom:0}.addform .chiprow .catchip{font-size:14.5px;font-weight:600;padding:12px 18px;background:var(--card2);color:var(--text)}.addform .chiprow .catchip.active{border-color:var(--c-main);color:var(--c-main)}.addform .formrow{display:flex;gap:8px}.addform .formrow button{font-family:inherit;cursor:pointer;border-radius:14px;padding:10px 16px;font-size:13.5px;font-weight:700}.addform .formrow .cancel{background:transparent;border:1px solid var(--line);color:var(--mut)}.addform .formrow button:disabled{opacity:.5;pointer-events:none}.addform .formrow .go{background:var(--ok);border:none;color:#10240f}.spinner{flex:none;width:15px;height:15px;border-radius:50%;border:2px solid currentColor;border-right-color:transparent;animation:spin .9s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.busyrow{display:flex;align-items:center;justify-content:center;gap:10px;color:var(--mut);font-size:14px}.busyhint{flex-basis:100%;display:flex;align-items:center;justify-content:center;gap:8px;margin:0 0 8px;color:var(--mut);font-size:12.5px}.retry{font-family:inherit;cursor:pointer;background:var(--card);border:1px solid var(--line);border-radius:14px;color:var(--text);padding:11px 18px;font-size:14px;font-weight:700}.retry:hover{border-color:var(--c-main);color:var(--c-main)}.replaceform{grid-column:1 / -1;margin:0}.replaceform input{width:100%;background:var(--card2);border:1px solid var(--line);border-radius:14px;padding:10px 14px;color:var(--text);font:inherit;font-size:14px;outline:none}.replaceform input:focus{border-color:var(--c-main)}.actionbar{position:fixed;bottom:0;left:0;right:0;background:linear-gradient(transparent,var(--bg) 30%);padding:26px 14px calc(14px + env(safe-area-inset-bottom));display:flex;gap:10px}.actionbar .inner{max-width:760px;margin:0 auto;display:flex;flex-wrap:wrap;gap:10px;width:100%}.actionbar .again{flex:1;display:flex;justify-content:center;align-items:center;gap:8px;border:1px solid var(--line);border-radius:18px;color:var(--text);padding:15px;font-size:14.5px;background:var(--card);cursor:pointer;font-family:inherit}.actionbar .approve{flex:2;display:flex;justify-content:center;align-items:center;gap:8px;background:var(--ok);color:#10240f;font-weight:800;border:none;border-radius:18px;padding:15px;font-size:14.5px;cursor:pointer;font-family:inherit}.actionbar .approve:disabled,.actionbar .again:disabled{opacity:.5;cursor:default}button.crow{font:inherit;width:100%;text-align:left;cursor:pointer}.crow.disabled{opacity:.45;pointer-events:none}.crow-meta{color:var(--mut);font-size:12px;flex:none}.buy.draft{padding-left:14px}.tiles{display:grid;gap:10px}@media(min-width:640px){.tiles{grid-template-columns:1fr 1fr}}.tile{display:flex;gap:12px;align-items:center;background:var(--card);border:1px solid var(--line);border-radius:18px;padding:12px 14px;border-left:4px solid var(--cat)}.tile>label{display:flex;align-items:center;cursor:pointer;flex:none;padding:2px}.tile input{display:none}.tile .chk{width:32px;height:32px;border-radius:50%;border:2px solid var(--line);display:grid;place-items:center;color:transparent;font-size:15px}.tile:has(input:checked) .chk{background:var(--ok);border-color:var(--ok);color:#10240f}.tlink{flex:1;min-width:0;display:flex;align-items:center;gap:10px;text-decoration:none}.tile-body{flex:1;min-width:0;display:flex;flex-direction:column}.tile-name{font-size:15.5px;font-weight:600;line-height:1.35;color:var(--text)}.tile-meta{font-size:12.5px;color:var(--mut);margin-top:3px}.tile:has(input:checked) .tile-name{text-decoration:line-through;opacity:.65}.tile:has(input:checked) .tile-meta{color:var(--ok)}.chev{color:var(--mut);font-size:22px;flex:none;line-height:1}.empty{margin:64px 20px 0;text-align:center}.empty .glyph{font-size:40px;color:var(--mut);line-height:1;margin-bottom:18px;font-weight:200}.empty h2{font-size:19px;margin:0 0 8px}.empty p{color:var(--mut);font-size:14px;margin:0 auto 26px;max-width:300px;line-height:1.55}.empty a.cta{display:flex;align-items:center;justify-content:center;gap:10px;background:var(--ok);color:#10240f;font-weight:800;border-radius:20px;padding:16px;text-decoration:none;font-size:15.5px;max-width:340px;margin:0 auto}.empty .sub{margin-top:12px;color:var(--mut);font-size:12.5px}.cathead .badge{font-size:11.5px;color:var(--mut);border:1px solid var(--line);border-radius:20px;padding:2px 11px}.card{background:var(--card);border:1px solid var(--line);border-radius:18px;overflow:hidden}.buy{display:flex;align-items:center;border-bottom:1px solid var(--line)}.buy:last-child{border-bottom:none}.buy label{display:flex;align-items:center;flex:1;cursor:pointer;min-width:0;padding:4px 4px 4px 12px}.buy input{display:none}.buy .chk{width:24px;height:24px;border-radius:50%;border:2px solid var(--line);flex:none;display:grid;place-items:center;color:transparent;font-size:12px;margin-right:12px}.buy input:checked~.chk{background:var(--ok);border-color:var(--ok);color:#10240f}.bbody{flex:1;min-width:0;display:flex;flex-direction:column;gap:1px;padding:8px 0}.bname{font-size:14.5px;font-weight:600}.buy input:checked~.bbody .bname{text-decoration:line-through;opacity:.6}.bmeta{font-size:11.5px;color:var(--mut)}.buy .amt{flex:none;padding:8px 14px 8px 8px;font-size:13.5px;color:var(--mut);white-space:nowrap}.hint{text-align:center;color:var(--mut);font-size:12.5px;margin:20px 4px 0}.recipe .hero{display:flex;gap:14px;align-items:center;margin:12px 0 16px}.recipe .chips{display:flex;gap:6px;flex-wrap:wrap}.recipe .chip{font-size:11.5px;color:var(--mut);border:1px solid var(--line);border-radius:20px;padding:3px 11px}.recipe .chip.c{color:var(--rc, var(--c-soup));border-color:color-mix(in srgb,var(--rc, var(--c-soup)) 40%,transparent)}.recipe .cooked{display:flex;align-items:center;gap:12px;background:var(--card);border:1px solid color-mix(in srgb,var(--ok) 45%,transparent);border-radius:18px;padding:13px 16px;margin-bottom:20px;cursor:pointer}.recipe .cooked input{display:none}.recipe .cooked .big{width:28px;height:28px;border-radius:50%;border:2px solid var(--ok);display:grid;place-items:center;color:transparent;font-size:14px;flex:none}.recipe .cooked input:checked+.big{background:var(--ok);color:#10240f}.recipe .cooked .t{font-weight:700;font-size:15px}.recipe .cooked input:checked~.t{text-decoration:line-through;opacity:.75}.recipe .cooked .when{margin-left:auto;color:var(--ok);font-size:12.5px}.recipe h2{font-size:13px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:var(--mut);margin:22px 4px 10px}.recipe .card{background:var(--card);border:1px solid var(--line);border-radius:18px;padding:6px 16px}.recipe ul.ing{list-style:none;margin:0;padding:8px 0}.recipe ul.ing li{display:flex;justify-content:space-between;gap:16px;padding:9px 0;font-size:14.5px;border-bottom:1px solid var(--line)}.recipe ul.ing li:last-child{border-bottom:none}.recipe ul.ing .amt{color:var(--mut);white-space:nowrap}.recipe ul.ing .struck{text-decoration:line-through;opacity:.6}.recipe ul.ing .opt{color:var(--mut)}.recipe ol.steps{list-style:none;counter-reset:st;margin:8px 0;padding:0;display:grid;gap:8px}.recipe ol.steps li{counter-increment:st;display:flex;gap:13px;background:var(--card);border:1px solid var(--line);border-radius:16px;padding:13px 15px;font-size:14.5px}.recipe ol.steps li:before{content:counter(st,decimal-leading-zero);font-size:12px;font-weight:800;color:var(--rc, var(--c-soup));background:color-mix(in srgb,var(--rc, var(--c-soup)) 15%,transparent);border-radius:8px;min-width:30px;height:26px;display:grid;place-items:center;flex:none}:root{--bg: #131519;--card: #1c212a;--card2: #232a35;--text: #edf0f4;--mut: #96a0ae;--line: #2c3440;--c-main: #f6a15c;--c-soup: #6fb4e8;--c-veg: #8cc98f;--c-hearty: #c08ae0;--c-x1: #e8c46b;--c-x2: #e8a0b4;--c-x3: #7fc8c8;--ok: #8cc98f;--g-meat: #f6a15c;--g-veg: #8cc98f;--g-milk: #6fb4e8;--g-grocery: #c08ae0;--g-spice: #e8c46b;--pill: #1a1f27;--pill-shadow: 0 12px 32px rgba(0, 0, 0, .45)}[data-theme=light]{--bg: #f6f6f4;--card: #ffffff;--card2: #e9ebe6;--text: #1c1e23;--mut: #71787f;--line: #e3e4e0;--pill: #ffffff;--c-main: #d97b26;--c-soup: #3e8bc8;--c-veg: #3e9b47;--c-hearty: #9a5bb8;--c-x1: #b98a00;--c-x2: #c25e7e;--c-x3: #3e8fa0;--ok: #3e9b47;--g-meat: #d97b26;--g-veg: #3e9b47;--g-milk: #3e8bc8;--g-grocery: #9a5bb8;--g-spice: #b98a00;--pill-shadow: 0 10px 26px rgba(25, 35, 25, .14)}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}html,body{margin:0}body{background:var(--bg);color:var(--text);font-family:Segoe UI,Roboto,system-ui,sans-serif;font-size:15px;line-height:1.5}main{max-width:760px;margin:0 auto;padding:0 14px 160px}.statemsg{color:var(--mut);margin:48px 20px 0;text-align:center}header.top{display:flex;align-items:center;gap:10px;padding:22px 0 14px}.weekswitch{flex:1;display:flex;align-items:center;gap:8px;min-width:0}.weeknav{width:48px;height:48px;border-radius:14px;background:var(--card);border:1px solid var(--line);color:var(--text);text-decoration:none;display:grid;place-items:center;font-size:26px;line-height:1;flex:none}.weeknav:hover{border-color:var(--c-main);color:var(--c-main)}.weeknav.disabled{opacity:.3;pointer-events:none}.h-left{flex:1;min-width:0;text-align:center}.h-left .kicker{color:var(--mut);font-size:11.5px;letter-spacing:.14em;text-transform:uppercase}.h-left h1{margin:3px 0 0;font-size:24px;line-height:1.1}.h-right{display:flex;gap:10px;align-items:center;flex:none}.ring{position:relative;width:58px;height:58px;flex:none}.ring svg{transform:rotate(-90deg);display:block}.ring .val{position:absolute;inset:0;display:grid;place-items:center;font-size:12.5px;font-weight:800;color:var(--ok)}.ring .track{stroke:var(--line)}.ring .fill{stroke:var(--ok)}.wtabs{display:flex;background:var(--card);border:1px solid var(--line);border-radius:16px;padding:4px;margin:2px 0 8px}.wtabs a{flex:1;text-align:center;padding:11px 0;border-radius:12px;color:var(--mut);font-weight:700;font-size:14px;text-decoration:none}.wtabs a.active{background:var(--card2);color:var(--text)}.themebtn{width:42px;height:42px;border-radius:14px;background:var(--card);border:1px solid var(--line);color:var(--text);font-size:17px;cursor:pointer;display:grid;place-items:center;flex:none}.themebtn:hover{border-color:var(--c-main)}.appbar{display:flex;align-items:center;gap:10px;padding:16px 2px 10px}.appbar .close{width:42px;height:42px;border-radius:14px;background:var(--card);border:1px solid var(--line);color:var(--text);text-decoration:none;font-size:16px;display:grid;place-items:center;flex:none;cursor:pointer}.appbar h1{margin:0;font-size:21px;flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.catblock{margin-top:14px}.cathead{display:flex;align-items:center;gap:10px;margin:16px 4px 10px}.cathead .dot{width:10px;height:10px;border-radius:50%;flex:none}.cathead h2{font-size:15.5px;margin:0;flex:1;letter-spacing:.02em}nav.pill{position:fixed;bottom:calc(12px + env(safe-area-inset-bottom));left:50%;transform:translate(-50%);width:min(60%,240px);background:var(--pill);border:1px solid var(--line);border-radius:26px;display:flex;padding:8px;box-shadow:var(--pill-shadow)}.pill a{flex:1;text-align:center;text-decoration:none;color:var(--mut);font-size:13px;font-weight:700;padding:12px 0;border-radius:19px}.pill a.active{background:var(--card2);color:var(--text)}
