:root{--bg:#f2f1f7;--card:#fff;--ink:#1c1b22;--muted:#5e5b6b;--line:#ddd9e8;--accent:#5b3df5;--accent-ink:#fff;--t-b:#cbeeda;--t-b-ink:#1f5a3a;--t-l:#dad4ff;--t-l-ink:#3b2e8f;--t-d:#ffd6c2;--t-d-ink:#6b3a22;--t-y:#ffe9a8;--t-y-ink:#6a5200;--plate:#fff;--rim:#e4e0ec;--dock:#1c1b22;--dock-ink:#fff;--dock-muted:#bdb9cb;--f-display:"Unbounded", "Onest", system-ui, sans-serif;--f-body:"Onest", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--bg:#131217;--card:#1f1d27;--ink:#eeeaf6;--muted:#aba7ba;--line:#33303e;--accent:#a596ff;--accent-ink:#17132b;--t-b:#1d3a2c;--t-b-ink:#a3e2bf;--t-l:#2b2656;--t-l-ink:#c6beff;--t-d:#46291c;--t-d-ink:#ffc4a8;--t-y:#3e3516;--t-y-ink:#f3db8e;--plate:#f7f5fb;--rim:#d9d5e3;--dock:#2b2935;--dock-ink:#fff;--dock-muted:#aba7ba;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}}:root[data-theme=dark]{--bg:#131217;--card:#1f1d27;--ink:#eeeaf6;--muted:#aba7ba;--line:#33303e;--accent:#a596ff;--accent-ink:#17132b;--t-b:#1d3a2c;--t-b-ink:#a3e2bf;--t-l:#2b2656;--t-l-ink:#c6beff;--t-d:#46291c;--t-d-ink:#ffc4a8;--t-y:#3e3516;--t-y-ink:#f3db8e;--plate:#f7f5fb;--rim:#d9d5e3;--dock:#2b2935;--dock-ink:#fff;--dock-muted:#aba7ba;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}*{box-sizing:border-box}body{background:var(--bg);color:var(--ink);font-family:var(--f-body);font-size:15px;line-height:1.4}button{font:inherit;color:inherit;cursor:pointer}:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.wrap{flex-direction:column;gap:16px;max-width:1040px;margin-inline:auto;padding-block:22px 120px;padding-inline:16px;display:flex}h1,h2,h3,p{margin:0}.head{flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:12px;display:flex}.head h1{font-family:var(--f-display);text-transform:capitalize;font-size:28px;font-weight:600;line-height:1.1}.head .sub{color:var(--muted);font-size:14px}.pill{background:var(--card);white-space:nowrap;border-radius:999px;padding:9px 13px;font-size:13px;font-weight:600}.strip{scrollbar-width:none;gap:8px;padding-block:2px;display:flex;overflow-x:auto}.strip::-webkit-scrollbar{display:none}.strip button{background:var(--card);border:0;border-radius:18px;flex-direction:column;flex:1 0 52px;justify-content:center;align-items:center;gap:1px;height:54px;display:flex}.strip button span{color:var(--muted);font-size:11px}.strip button b{font-size:16px;font-weight:700}.strip button[aria-pressed=true]{background:var(--ink);color:var(--bg)}.strip button[aria-pressed=true] span{color:var(--bg);opacity:.8}.plate{--sz:72px;width:var(--sz);height:var(--sz);background:var(--plate);font-size:calc(var(--sz) * .5);box-shadow:inset 0 0 0 calc(var(--sz) * .09) var(--plate), inset 0 0 0 calc(var(--sz) * .09 + 2px) var(--rim);border-radius:50%;flex:none;place-items:center;line-height:1;display:grid}.bento{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;display:grid}.tile{border-radius:26px;flex-direction:column;gap:8px;min-width:0;padding:16px;display:flex;position:relative}.tile.s-breakfast{background:var(--t-b);--tone:var(--t-b-ink)}.tile.s-lunch{background:var(--t-l);--tone:var(--t-l-ink)}.tile.s-dinner{background:var(--t-d);--tone:var(--t-d-ink)}.tile .lbl{letter-spacing:.08em;text-transform:uppercase;color:var(--tone);font-size:11px;font-weight:700}.tile h3{overflow-wrap:anywhere;text-wrap:balance;font-size:15.5px;font-weight:700;line-height:1.25}.tile .ing,.tile .note{color:var(--tone);overflow-wrap:anywhere;font-size:13px}.tile .top{justify-content:space-between;align-items:flex-start;gap:8px;display:flex}.tile.hero{flex-direction:row;grid-column:span 2;align-items:center;gap:14px;padding:18px}.tile.hero .txt{flex-direction:column;flex:1;gap:8px;min-width:0;display:flex}.tile.hero h3{font-size:20px}.tile.hero .plate{--sz:118px}.tile.empty{border:1.5px dashed var(--line);color:var(--muted);background:0 0;justify-content:center;min-height:96px}.done-btn{background:var(--ink);min-height:44px;color:var(--bg);border:0;border-radius:999px;align-self:flex-start;margin-top:auto;padding:0 16px;font-size:14px;font-weight:600}.tile.done{box-shadow:inset 0 0 0 1.5px var(--line);background:0 0}.tile.done h3{text-decoration:line-through;-webkit-text-decoration-color:var(--muted);text-decoration-color:var(--muted);color:var(--muted)}.tile.done .ing,.tile.done .note{display:none}.tile.done .lbl{color:var(--muted)}.tile.done .plate{opacity:.45}.tile.done .done-btn{color:var(--ink);box-shadow:inset 0 0 0 1.5px var(--line);background:0 0}@media (width>=820px){.bento{grid-template-columns:repeat(4,minmax(0,1fr))}}.sec-h{font-family:var(--f-display);align-items:baseline;gap:10px;margin-top:10px;font-size:16px;font-weight:500;display:flex}.sec-h .n{font-family:var(--f-body);color:var(--muted);font-size:13px;font-weight:500}.week{flex-direction:column;gap:10px;display:flex}.wk-row{grid-template-columns:52px minmax(0,1fr);align-items:stretch;gap:10px;display:grid}.wk-day{background:var(--card);border:0;border-radius:16px;flex-direction:column;justify-content:center;align-items:center;gap:2px;padding:8px 0;display:flex}.wk-day b{font-family:var(--f-display);font-size:18px;font-weight:500}.wk-day span{color:var(--muted);font-size:11px}.wk-row.sel .wk-day{background:var(--ink);color:var(--bg)}.wk-row.sel .wk-day span{color:var(--bg);opacity:.8}.wk-meals{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;display:grid}.wk-m{border-radius:16px;align-items:center;gap:8px;min-width:0;padding:8px 10px;font-size:13px;font-weight:600;line-height:1.25;display:flex}.wk-m .plate{--sz:36px}.wk-m span.t{overflow-wrap:anywhere}.wk-m.s-breakfast{background:var(--t-b)}.wk-m.s-lunch{background:var(--t-l)}.wk-m.s-dinner{background:var(--t-d)}.wk-m.none{border:1.5px dashed var(--line);color:var(--muted);background:0 0;font-weight:500}.wk-m.done{box-shadow:inset 0 0 0 1.5px var(--line);color:var(--muted);background:0 0;text-decoration:line-through}.wk-m.done .plate{opacity:.45}@media (width<=640px){.wk-meals{grid-template-columns:minmax(0,1fr)}}.wish{gap:10px;padding-bottom:4px;display:flex;overflow-x:auto}.wish-card{background:var(--t-y);border-radius:22px;flex-direction:column;flex:0 0 160px;gap:8px;padding:12px;font-size:13.5px;font-weight:600;line-height:1.25;display:flex}.wish-card .plate{--sz:56px}.wish-card small{color:var(--t-y-ink);overflow-wrap:anywhere;font-size:12.5px;font-weight:400}.wish-card a{color:var(--t-y-ink);font-size:12.5px;font-weight:600}.group{border-radius:26px;flex-direction:column;gap:12px;min-width:0;padding:16px;display:flex}.group.g-l{background:var(--t-l);--tone:var(--t-l-ink)}.group.g-d{background:var(--t-d);--tone:var(--t-d-ink)}.group.g-b{background:var(--t-b);--tone:var(--t-b-ink)}.group.g-y{background:var(--t-y);--tone:var(--t-y-ink)}.group.g-c{background:var(--card);--tone:var(--muted)}.group-h{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px;display:flex}.group-h h2{align-items:baseline;gap:8px;font-size:16px;font-weight:700;display:flex}.group-h h2 .n{font-family:var(--f-display);color:var(--tone);font-size:20px;font-weight:500}.group-h button{background:var(--ink);min-height:44px;color:var(--bg);border:0;border-radius:999px;padding:0 16px;font-size:13.5px;font-weight:600}.chips{grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:8px;display:grid}.chip{text-align:left;background:var(--card);border:0;border-radius:16px;align-items:center;gap:9px;min-width:0;min-height:52px;padding:8px 10px;display:flex}.chip .em{background:var(--bg);border-radius:11px;flex:none;place-items:center;width:34px;height:34px;font-size:19px;line-height:1;display:grid}.chip .nm{overflow-wrap:anywhere;flex-direction:column;min-width:0;font-size:13.5px;font-weight:600;line-height:1.2;display:flex}.chip .nm small{color:var(--muted);font-size:12px;font-weight:400}div.chip{cursor:default}.group.g-c .chip{background:var(--bg)}.group.g-c .chip .em{background:var(--card)}.pantry{grid-template-columns:repeat(auto-fill,minmax(280px,1fr));align-items:start;gap:12px;display:grid}.pantry .chips{grid-template-columns:repeat(auto-fill,minmax(128px,1fr))}.stack{flex-direction:column;gap:12px;display:flex}[data-meal],[data-idea]{cursor:pointer}.more{color:var(--tone);text-underline-offset:3px;margin-top:auto;padding-top:4px;font-size:12.5px;font-weight:600;text-decoration:underline}.tile.done .more{color:var(--muted)}#recipe{background:var(--card);color:var(--ink);border:0;border-radius:28px;width:min(560px,100vw - 16px);max-height:min(86vh,760px);padding:0;overflow:hidden}#recipe::backdrop{background:#0c0a168c}.r-wrap{flex-direction:column;max-height:min(86vh,760px);display:flex}.r-head{border-bottom:1px solid var(--line);align-items:center;gap:14px;padding:18px 18px 14px;display:flex}.r-head .plate{--sz:64px;background:var(--bg);box-shadow:none}.r-ttl{flex-direction:column;flex:1;gap:4px;min-width:0;display:flex}.r-ttl h2{overflow-wrap:anywhere;text-wrap:balance;font-size:18px;font-weight:700;line-height:1.25}.r-ttl .sub{color:var(--muted);font-size:13px}#r-close{background:var(--bg);border:0;border-radius:50%;flex:none;width:44px;height:44px;font-size:22px;line-height:1}.r-body{flex-direction:column;gap:10px;padding:16px 18px 22px;font-size:15px;line-height:1.5;display:flex;overflow-y:auto}.r-body h3{font-family:var(--f-display);margin-top:6px;font-size:14px;font-weight:500}.r-body ul,.r-body ol{flex-direction:column;gap:6px;margin:0;padding-left:22px;display:flex}.r-body li{overflow-wrap:anywhere}.r-body .r-note{background:var(--t-y);color:var(--t-y-ink);border-radius:14px;padding:10px 12px;font-size:14px}.r-body .r-none{color:var(--muted)}.r-body a{color:var(--accent);font-weight:600}.empty-state{border:1.5px dashed var(--line);color:var(--muted);text-align:center;border-radius:22px;padding:24px 16px}.empty-state strong{color:var(--ink);margin-bottom:4px;display:block}.dock{left:50%;bottom:calc(14px + env(safe-area-inset-bottom,0px));z-index:10;background:var(--dock);border-radius:999px;gap:4px;max-width:calc(100vw - 24px);padding:6px;display:flex;position:fixed;transform:translate(-50%);box-shadow:0 8px 24px #0a081447}.dock button{color:var(--dock-muted);white-space:nowrap;background:0 0;border:0;border-radius:999px;align-items:center;gap:7px;min-height:46px;padding:0 16px;font-size:14px;font-weight:600;display:flex}.dock button .n{opacity:.85;font-size:12px}.dock button[aria-selected=true]{background:var(--dock-ink);color:var(--dock)}#toast{left:50%;bottom:calc(86px + env(safe-area-inset-bottom,0px));z-index:20;background:var(--ink);color:var(--bg);border-radius:999px;align-items:center;gap:10px;max-width:calc(100vw - 32px);padding:6px 6px 6px 16px;font-size:13.5px;display:flex;position:fixed;transform:translate(-50%)}#toast button{background:var(--bg);color:var(--ink);border:0;border-radius:999px;min-height:36px;padding:0 14px;font-size:13px;font-weight:600}html,body{margin:0}body{min-height:100vh;padding-top:env(safe-area-inset-top,0px);-webkit-tap-highlight-color:transparent}input,select{font:inherit;color:inherit}.head-actions{align-items:center;gap:8px;display:flex}.me{background:var(--card);min-height:40px;color:var(--muted);border:0;border-radius:999px;padding:0 14px;font-size:13px;font-weight:600}.dock button.icon{padding:0 14px;font-size:18px}.r-actions{flex-wrap:wrap;gap:8px;padding-top:6px;display:flex}.r-actions .done-btn{margin-top:0}.done-btn.on{color:var(--ink);box-shadow:inset 0 0 0 1.5px var(--line);background:0 0}.pantry .chip{cursor:pointer}.pantry-hint{color:var(--muted);font-size:13px}.history{flex-direction:column;gap:8px;display:flex}.h-day{font-family:var(--f-display);color:var(--muted);margin-top:8px;font-size:14px;font-weight:500}.h-row{background:var(--card);border-radius:18px;flex-direction:column;gap:3px;padding:10px 14px;display:flex}.h-row .who{color:var(--muted);flex-wrap:wrap;align-items:center;gap:6px;font-size:12.5px;display:flex}.h-row .tag{letter-spacing:.04em;text-transform:uppercase;background:var(--t-l);color:var(--t-l-ink);border-radius:999px;padding:2px 8px;font-size:11px;font-weight:700}.h-row .tag.web{background:var(--t-b);color:var(--t-b-ink)}.h-row .what{overflow-wrap:anywhere;font-size:14px}.login{place-items:center;min-height:calc(100vh - 40px);padding:16px;display:grid}.login form{background:var(--card);border-radius:28px;flex-direction:column;gap:14px;width:min(400px,100%);padding:24px;display:flex}.login h1{font-family:var(--f-display);font-size:24px;font-weight:600}.login label{flex-direction:column;gap:6px;font-size:13px;font-weight:600;display:flex}.login input{background:var(--bg);border:1.5px solid var(--line);border-radius:14px;padding:12px 14px}.login button{background:var(--ink);min-height:48px;color:var(--bg);border:0;border-radius:999px;font-weight:600}.login .err{background:var(--t-d);color:var(--t-d-ink);border-radius:14px;padding:10px 12px;font-size:14px}.login .sub{color:var(--muted);font-size:14px}
