:root{--bg:#f5f2ea;--card:#fff;--ink:#1d2321;--muted:#6b726f;--line:#e4e0d6;--head:#1f3d35;--sub:#2f5d50;--gold:#f0c46c;--accent:#2f5d50;--accent-soft:#e3ede8;--need:#c4581b;--need-soft:#fcebdf;--some:#8a6400;--some-soft:#fff2cc;--have:#2f6b4f;--have-soft:#e2f0e8;--none:#a3a8a5;--radius:12px;--shadow:0 1px 2px #0000000f,0 3px 10px #0000000d;--serif:Georgia,"Iowan Old Style","Times New Roman",serif}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}html,body{background:var(--bg);color:var(--ink);margin:0;font:15px/1.45 -apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,sans-serif}button,input,select,textarea{font:inherit;color:inherit}button{cursor:pointer}header.top{z-index:20;background:var(--head);color:#fff;padding-top:max(8px,env(safe-area-inset-top));position:sticky;top:0}.mainnav{justify-content:center;align-items:flex-end;gap:2px;padding:4px 48px 0;display:flex;position:relative}.mainnav button{color:#ffffff8c;font-family:var(--serif);letter-spacing:.3px;background:0 0;border:0;border-radius:14px 14px 0 0;flex-direction:column;align-items:center;gap:3px;padding:8px 14px 10px;font-size:23px;transition:color .2s,background .2s;display:flex}.mainnav button svg{opacity:.8;width:20px;height:20px}.mainnav button.on{background:var(--sub);color:#fff;font-weight:700}.mainnav button.on svg{opacity:1;color:var(--gold)}.mainnav .sep{color:#ffffff4d;font-family:var(--serif);padding-bottom:12px;font-size:22px}@media (min-width:700px){.mainnav button{flex-direction:row;gap:10px;padding:8px 26px 10px;font-size:28px}.mainnav button svg{width:22px;height:22px}}#gear{color:#ffffffbf;background:0 0;border:0;padding:8px;position:absolute;top:6px;right:8px}.subnav{background:var(--sub);color:#fff;justify-content:center;align-items:center;gap:6px;min-height:46px;padding:8px 12px 10px;display:flex}.subtabs{background:#0000002e;border-radius:999px;padding:3px;display:flex}.subtabs button{color:#ffffffbf;background:0 0;border:0;border-radius:999px;align-items:center;gap:6px;padding:6px 18px;font-weight:600;display:flex}.subtabs button.on{color:var(--sub);background:#fff}.subtabs svg{width:16px;height:16px}.subinfo{align-items:center;gap:8px;font-size:14px;display:flex}.subinfo button{color:#fff;background:#ffffff24;border:0;border-radius:999px;align-items:center;gap:6px;padding:5px 12px;display:flex}.subinfo .m{opacity:.75}main{max-width:1100px;margin:0 auto;padding:14px 14px 40px}.row{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.spacer{flex:1}.muted{color:var(--muted)}.small{font-size:13px}h2{margin:0;font-size:20px}.iconbtn{color:inherit;background:0 0;border:0;border-radius:8px;justify-content:center;align-items:center;padding:6px;display:inline-flex}.btn{background:var(--card);border:1px solid var(--line);border-radius:10px;padding:8px 13px}.btn.primary{background:var(--accent);border-color:var(--accent);color:#fff}.btn.warn{color:var(--need);border-color:#ecc9b1}.btn.small{padding:4px 10px;font-size:13px}.seg{background:#e9e5db;border-radius:10px;padding:3px;display:inline-flex}.seg button{color:var(--muted);background:0 0;border:0;border-radius:8px;padding:6px 14px;font-weight:600}.seg button.on{color:var(--ink);background:#fff;box-shadow:0 1px 2px #0000001a}.chips{flex-wrap:wrap;gap:6px;display:flex}.chip{border:1px solid var(--line);white-space:nowrap;background:#fff;border-radius:999px;padding:5px 12px;font-size:13px}.chip.on{background:var(--ink);color:#fff;border-color:var(--ink)}.tag{color:#555;white-space:nowrap;background:#efece5;border-radius:999px;padding:1px 7px;font-size:11px;display:inline-block}.tag.Meat{color:#94392a;background:#f6e3df}.tag.Fish{color:#2b5b84;background:#e1ecf5}.tag.Vegetarian{color:#3f6b2a;background:#e6f0df}.tag.Vegan{color:#1f6a48;background:#dff2e8}.searchrow{align-items:center;gap:8px;display:flex}.search{border:1px solid var(--line);background:#fff;border-radius:12px;flex:1;min-width:0;padding:10px 12px}.roundbtn{border:1px solid var(--line);background:#fff;border-radius:12px;flex:none;justify-content:center;align-items:center;width:44px;height:44px;display:flex;position:relative}.roundbtn.on{background:var(--ink);color:#fff;border-color:var(--ink)}.roundbtn .badge{background:var(--gold);color:var(--ink);border-radius:999px;padding:0 5px;font-size:11px;font-weight:700;position:absolute;top:-4px;right:-4px}.roundbtn.plus{background:var(--accent);color:#fff;border-color:var(--accent);font-size:26px}.dietbar{grid-template-columns:repeat(4,1fr);gap:8px;margin-top:12px;display:grid}.diet{box-shadow:var(--shadow);background:#fff;border:2px solid #0000;border-radius:14px;flex-direction:column;align-items:center;gap:4px;padding:10px 4px 9px;font-size:14px;font-weight:700;display:flex}.diet svg{width:26px;height:26px}.diet.Meat{color:#94392a}.diet.Fish{color:#2b5b84}.diet.Vegetarian{color:#3f6b2a}.diet.Vegan{color:#1f6a48}.diet.on.Meat{color:#fff;background:#94392a}.diet.on.Fish{color:#fff;background:#2b5b84}.diet.on.Vegetarian{color:#fff;background:#3f6b2a}.diet.on.Vegan{color:#fff;background:#1f6a48}.diet .c{opacity:.75;font-size:11px;font-weight:500}.coursepanel{box-shadow:var(--shadow);background:#fff;border-radius:12px;margin-top:10px;padding:10px 12px}.coursepanel .lbl{color:var(--muted);margin-bottom:6px;font-size:12px}.shelf h3{letter-spacing:.7px;text-transform:uppercase;color:var(--muted);margin:20px 2px 10px;font-size:12px}.covers{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;display:grid}@media (min-width:600px){.covers{grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}}@media (min-width:900px){.covers{grid-template-columns:repeat(4,minmax(0,1fr));gap:22px}}.cover{aspect-ratio:3/4;text-align:left;border:0;border-radius:5px 10px 10px 5px;width:100%;padding:0;transition:transform .15s;position:relative;overflow:hidden;box-shadow:0 2px 4px #00000026,0 10px 22px #0000001f}.cover:active{transform:scale(.97)}.coverart{color:#fff;background-position:50%;background-size:cover;flex-direction:column;padding:14px 12px 12px 18px;display:flex;position:absolute;inset:0}.coverart:before{content:"";background:linear-gradient(90deg,#00000047,#0000);width:9px;position:absolute;top:0;bottom:0;left:0}.coverart .ct{font-family:var(--serif);font-size:clamp(15px,4.2vw,21px);font-weight:700;line-height:1.15}.coverart .ca{opacity:.85;letter-spacing:.5px;text-transform:uppercase;margin-top:6px;font-size:11px}.coverart .cn{background:#00000038;border-radius:999px;align-self:flex-start;margin-top:auto;padding:2px 8px;font-size:12px}.coverart.img{justify-content:flex-end}.coverart.img:after{content:"";background:linear-gradient(#0000 50%,#00000080);position:absolute;inset:0}.coverart.img>*{z-index:1;position:relative}.coverart.web{color:var(--ink);background:#fff;padding:0}.coverart.web:before{display:none}.coverart.web .band{color:#fff;flex-direction:column;flex:0 0 60%;justify-content:flex-end;padding:14px 12px;display:flex;position:relative}.coverart.web .band svg{opacity:.85;width:26px;height:26px;position:absolute;top:12px;right:12px}.coverart.web .kind{letter-spacing:.8px;text-transform:uppercase;opacity:.8;margin-bottom:4px;font-size:10px}.coverart.web .lower{flex-direction:column;flex:1;padding:10px 12px 12px;display:flex}.coverart.web .dom{color:var(--muted);font-size:12px}.coverart.web .cn{color:var(--ink);background:#f0ede6}.flipscrim{opacity:0;z-index:59;background:#0f141273;transition:opacity .45s;position:fixed;inset:0}.flipscrim.on{opacity:1}.flip{z-index:60;perspective:1800px;transition:top .55s cubic-bezier(.3,.7,.2,1),left .55s cubic-bezier(.3,.7,.2,1),width .55s cubic-bezier(.3,.7,.2,1),height .55s cubic-bezier(.3,.7,.2,1);position:fixed}.flip-inner{width:100%;height:100%;transform-style:preserve-3d;-webkit-transform-style:preserve-3d;transition:transform .55s cubic-bezier(.3,.7,.2,1);position:relative}.flip.open .flip-inner{transform:rotateY(180deg)}.face{backface-visibility:hidden;border-radius:10px;position:absolute;inset:0;overflow:hidden}.face.back{background:var(--bg);flex-direction:column;display:flex;transform:rotateY(180deg)}.bookhead{color:#fff;padding:14px 16px;padding-top:max(14px,env(safe-area-inset-top))}.bookhead .t{font-family:var(--serif);font-size:24px;font-weight:700;line-height:1.2}.bookhead .a{opacity:.85;margin-top:2px;font-size:13px}.bookbody{flex:1;padding:12px 14px 30px;overflow:auto}.grp{text-transform:uppercase;letter-spacing:.6px;align-items:center;gap:8px;margin:16px 2px 6px;font-size:12px;font-weight:700;display:flex}.rrow{box-shadow:var(--shadow);text-align:left;background:#fff;border:0;border-radius:10px;align-items:center;gap:10px;width:100%;margin-bottom:6px;padding:10px 12px;display:flex}.rrow .pg{color:var(--muted);font-variant-numeric:tabular-nums;min-width:38px;font-size:12px}.rrow .nm{flex:1;font-weight:600}.rrow .ico{width:22px;height:22px;color:var(--muted);flex:none}.hint{color:var(--muted);margin:10px 2px;font-size:12px}.srcbar{color:#fff;font-weight:700;font-family:var(--serif);border-radius:10px;align-items:center;gap:8px;margin:16px 0 6px;padding:9px 12px;font-size:16px;display:flex}.srcbar .n{background:#0003;border-radius:999px;margin-left:auto;padding:1px 8px;font-family:inherit;font-size:12px}.calhead{align-items:center;gap:8px;margin-bottom:12px;display:flex}.strip{border-radius:var(--radius);background:#fff;border:1px dashed #cdc9be;margin-bottom:10px;padding:10px}.strip .lbl{text-transform:uppercase;letter-spacing:.5px;color:var(--muted);margin-bottom:6px;font-size:12px;font-weight:700}.strip .cards{gap:8px;display:flex;overflow-x:auto}.days{flex-direction:column;gap:8px;display:flex}@media (min-width:900px){.days{grid-template-columns:repeat(7,minmax(0,1fr));display:grid}}.day{border-radius:var(--radius);box-shadow:var(--shadow);background:#fff;border:2px solid #0000;align-items:flex-start;gap:10px;padding:10px;display:flex}@media (min-width:900px){.day{flex-direction:column;min-height:170px}}.day.today{border-color:#b9d4c8}.day .dl{flex:none;width:54px}.day .dl .w{text-transform:uppercase;color:var(--muted);letter-spacing:.5px;font-size:12px;font-weight:700}.day .dl .n{font-size:22px;font-weight:700;line-height:1;font-family:var(--serif)}@media (min-width:900px){.day .dl{align-items:baseline;gap:6px;width:auto;display:flex}}.day .ml{flex-direction:column;flex:1;gap:6px;width:100%;min-width:0;display:flex}.meal{border:1px solid var(--line);border-left:5px solid var(--none);text-align:left;cursor:grab;background:#fff;border-radius:9px;align-items:flex-start;gap:8px;width:100%;padding:7px 9px;display:flex}.meal .ico{width:22px;height:22px;color:var(--muted);flex:none;margin-top:1px}.meal .t{font-weight:600;line-height:1.25}.meal .m{color:var(--muted);margin-top:2px;font-size:12px}.meal.free{background:#faf9f5}.meal.cooked{opacity:.55}.meal.cooked .t:after{content:" ✓";color:var(--accent)}.addmeal{border:1px dashed var(--line);color:var(--muted);background:0 0;border-radius:9px;width:100%;padding:5px;font-size:13px}.drop.over{outline:2px dashed var(--accent);outline-offset:2px;background:var(--accent-soft)}.legend{color:var(--muted);gap:10px;font-size:12px;display:flex}.dot{vertical-align:middle;border-radius:50%;width:9px;height:9px;margin-right:4px;display:inline-block}@media (max-width:699px){.legend{display:none}}.suggest{border-radius:var(--radius);background:#fff8ec;border:1px solid #f0dcb6;align-items:center;gap:10px;margin-bottom:12px;padding:10px 12px;display:flex}.shophead{align-items:center;margin:2px 2px 8px;display:flex}.aisle{border-radius:var(--radius);box-shadow:var(--shadow);background:#fff;margin-top:8px;overflow:hidden}.aisle>button{text-align:left;background:0 0;border:0;align-items:center;gap:10px;width:100%;padding:13px 14px;display:flex}.aisle>button .an{flex:1;font-weight:700}.aisle>button .ac{color:var(--muted);font-size:13px}.aisle>button .ac.done{color:var(--have)}.chev{color:var(--muted);flex:none;transition:transform .2s}.aisle.open .chev{transform:rotate(90deg)}.aisle .items{border-top:1px solid var(--line);padding:2px 0 4px;display:none}.aisle.open .items{display:block}.it{border-bottom:1px solid #f1efe9;grid-template-columns:18px 1fr auto;align-items:center;gap:10px;min-height:52px;padding:6px 14px 6px 40px;display:grid}.it:last-child{border-bottom:0}.tick{color:#fff;background:#fff;border:1.5px solid #c3bfb4;border-radius:50%;justify-content:center;align-items:center;width:18px;height:18px;padding:0;display:flex}.tick.on{background:var(--accent);border-color:var(--accent)}.tick.hide{visibility:hidden}.it .body{text-align:left;background:0 0;border:0;min-width:0;padding:0}.it .nm{white-space:nowrap;text-overflow:ellipsis;font-weight:600;display:block;overflow:hidden}.it .amt{color:var(--muted);white-space:nowrap;text-overflow:ellipsis;font-size:13px;display:block;overflow:hidden}.it.inbasket .nm{color:var(--muted);text-decoration:line-through}.it.have .nm,.it.have .amt{color:#9aa09c}.pill{text-align:center;border:0;border-radius:999px;min-width:62px;padding:5px 11px;font-size:12px;font-weight:700}.pill.need{background:var(--need-soft);color:var(--need)}.pill.some{background:var(--some-soft);color:var(--some)}.pill.have{background:var(--have-soft);color:var(--have)}.it .ctrls,.it .link,.it .amtcol{display:none}@media (min-width:700px){.it{grid-template-columns:18px minmax(0,1fr) 190px 190px 28px;gap:14px;padding-left:44px}.it .amt{display:none}.it .amtcol{font-variant-numeric:tabular-nums;align-items:center;gap:6px;font-size:14px;display:flex}.it .pill{display:none}.it .ctrls{display:flex}.it .link{color:#1f5fa8;display:inline-flex}}.nsh{border:1px solid var(--line);border-radius:9px;width:100%;display:inline-flex;overflow:hidden}.nsh button{color:var(--muted);background:#fff;border:0;flex:1;padding:6px 0;font-size:13px;font-weight:600}.nsh button+button{border-left:1px solid var(--line)}.nsh button:disabled{color:#d3d0c8;cursor:default}.nsh button.on.need{background:var(--need-soft);color:var(--need)}.nsh button.on.some{background:var(--some-soft);color:var(--some)}.nsh button.on.have{background:var(--have-soft);color:var(--have)}.step{border:1px solid var(--line);background:#fff;border-radius:9px;align-items:center;display:inline-flex;overflow:hidden}.step button{background:#fff;border:0;width:30px;height:30px;padding:0;font-size:16px}.step span{text-align:center;min-width:90px;padding:0 4px;font-size:13px;font-weight:700}.itemsheet .big{border:1px solid var(--line);border-radius:12px;margin-top:12px;display:flex;overflow:hidden}.itemsheet .big button{color:var(--muted);background:#fff;border:0;flex:1;padding:12px 0;font-weight:700}.itemsheet .big button+button{border-left:1px solid var(--line)}.itemsheet .big button:disabled{color:#d3d0c8}.itemsheet .big button.on.need{background:var(--need-soft);color:var(--need)}.itemsheet .big button.on.some{background:var(--some-soft);color:var(--some)}.itemsheet .big button.on.have{background:var(--have-soft);color:var(--have)}.stepslot{justify-content:center;align-items:center;height:52px;margin-top:10px;display:flex}.stepslot.off{opacity:.35;pointer-events:none}.kv{border-bottom:1px solid #f1efe9;justify-content:space-between;padding:7px 0;font-size:14px;display:flex}.kv:last-child{border-bottom:0}.hero{color:#fff;border-radius:22px;flex-direction:column;min-height:min(62vh,520px);padding:22px 20px 20px;display:flex;position:relative;overflow:hidden;box-shadow:0 10px 30px #00000026}.hero .pattern{opacity:.12;width:260px;height:260px;position:absolute;bottom:-40px;right:-40px}.hero .k{text-transform:uppercase;letter-spacing:.8px;opacity:.85;font-size:12px;font-weight:700}.hero .art{background:#ffffff24;border-radius:50%;justify-content:center;align-items:center;width:132px;height:132px;margin:22px auto 18px;display:flex}.hero .art svg{width:76px;height:76px}.hero .t{font-family:var(--serif);text-align:center;font-size:clamp(26px,7vw,38px);font-weight:700;line-height:1.1}.hero .s{text-align:center;opacity:.9;margin-top:8px}.hero .facts{flex-wrap:wrap;justify-content:center;gap:18px;margin-top:16px;display:flex}.hero .facts div{text-align:center}.hero .facts b{font-size:18px;display:block}.hero .facts span{text-transform:uppercase;letter-spacing:.5px;opacity:.8;font-size:11px}.hero .acts{gap:10px;margin-top:auto;padding-top:20px;display:flex}.hero .acts button{border:0;border-radius:12px;flex:1;padding:12px;font-weight:700}.hero .acts .w{color:var(--ink);background:#fff}.hero .acts .o{color:#fff;background:#ffffff29}.clist{margin-top:18px}.crow{border-radius:var(--radius);box-shadow:var(--shadow);text-align:left;background:#fff;border:0;align-items:center;gap:12px;width:100%;margin-bottom:8px;padding:10px 12px;display:flex}.crow .d{text-align:center;flex:none;width:40px}.crow .d .w{text-transform:uppercase;color:var(--muted);font-size:11px;font-weight:700}.crow .d .n{font-size:20px;font-weight:700;line-height:1;font-family:var(--serif)}.crow .ic{color:#fff;border-radius:50%;flex:none;justify-content:center;align-items:center;width:40px;height:40px;display:flex}.crow .ic svg{width:22px;height:22px}.scrim{z-index:80;background:#0f141266;justify-content:center;align-items:flex-end;display:none;position:fixed;inset:0}.scrim.on{display:flex}.sheet{background:var(--bg);border-radius:18px 18px 0 0;width:100%;max-width:680px;max-height:92vh;animation:.25s ease-out up;overflow:auto;box-shadow:0 -10px 40px #0003}@media (min-width:700px){.scrim{align-items:center}.sheet{border-radius:18px}}@keyframes up{0%{opacity:.4;transform:translateY(40px)}to{opacity:1;transform:none}}.sheet .sh{color:#fff;z-index:2;padding:16px 18px 12px;position:sticky;top:0}.sheet .sh.plain{color:var(--ink);background:var(--bg)}.sheet .sh .x{position:absolute;top:10px;right:10px}.sheet .sb{padding:12px 18px 24px}.sheet h2{font-size:22px;font-family:var(--serif);padding-right:34px}.form{grid-template-columns:110px 1fr;align-items:center;gap:10px 12px;display:grid}.form label{color:var(--muted);font-size:13px}.form input,.form select,textarea{border:1px solid var(--line);background:#fff;border-radius:8px;width:100%;padding:7px 9px}textarea{min-height:120px}.card{border-radius:var(--radius);box-shadow:var(--shadow);background:#fff;margin-top:10px;padding:12px 14px}.ing{margin:0;padding:0;list-style:none}.ing li{border-bottom:1px solid #f1efe9;gap:10px;padding:7px 0;display:flex}.ing li:last-child{border-bottom:0}.ing .q{font-variant-numeric:tabular-nums;min-width:70px;font-weight:700}.ing .g{color:var(--accent);border:0;padding-top:12px;font-size:13px;font-weight:700}.stepper{border:1px solid var(--line);background:#fff;border-radius:9px;align-items:center;display:inline-flex;overflow:hidden}.stepper button{background:0 0;border:0;padding:4px 11px}.stepper span{padding:0 6px;font-weight:700}.daypick{gap:6px;padding-bottom:4px;display:flex;overflow-x:auto}.daypick button{border:1px solid var(--line);text-align:center;background:#fff;border-radius:10px;flex:none;min-width:56px;padding:6px 10px}.daypick button.on{background:var(--ink);color:#fff;border-color:var(--ink)}.daypick .w{text-transform:uppercase;font-size:11px}.daypick .n{font-weight:700}.daypick .busy{opacity:.7;text-overflow:ellipsis;white-space:nowrap;max-width:64px;font-size:10px;overflow:hidden}.bigopt{gap:12px;display:flex}.bigopt button{border:1px solid var(--line);background:#fff;border-radius:14px;flex-direction:column;flex:1;align-items:center;gap:6px;padding:18px 12px;font-weight:700;display:flex}.bigopt svg{width:30px;height:30px;color:var(--accent)}.swatches{flex-wrap:wrap;gap:6px;display:flex}.swatches button{width:26px;height:26px;box-shadow:0 0 0 1px var(--line);border:2px solid #fff;border-radius:50%}.swatches button.on{box-shadow:0 0 0 2px var(--ink)}table{border-collapse:collapse;width:100%;font-size:13px}td,th{border-bottom:1px solid var(--line);text-align:left;vertical-align:middle;padding:5px 4px}td select,td input{border:1px solid var(--line);background:#fff;border-radius:6px;width:100%;padding:3px 4px}.toast{color:#fff;opacity:0;z-index:99;pointer-events:none;text-align:center;background:#1d2321;border-radius:999px;max-width:90vw;padding:9px 16px;font-size:14px;transition:opacity .2s;position:fixed;bottom:20px;left:50%;transform:translate(-50%)}.toast.on{opacity:1}.empty{color:var(--muted);text-align:center;padding:30px 10px}
