:root{--bg:#fbf7f0;--card:#fff;--ink:#1f2a1f;--muted:#6b756b;--accent:#2f7d4f;--accent2:#e9f3ec;--line:#e6e0d3}@media(prefers-color-scheme:dark){:root{--bg:#141a15;--card:#1c241d;--ink:#eef3ee;--muted:#9aa89b;--accent:#6fcf97;--accent2:#223426;--line:#2c382d}}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--ink);font:16px/1.5 ui-sans-serif,system-ui,sans-serif}main{max-width:760px;margin:0 auto;padding:24px 16px 64px}h1{font-size:28px;margin:0 0 4px}h2{font-size:18px;margin:28px 0 10px}.sub{color:var(--muted);margin:0 0 20px}.card{background:var(--card);border:1px solid var(--line);border-radius:14px;padding:16px;margin-bottom:12px}.grid{display:grid;grid-template-columns:1fr 1fr;grid-gap:12px;gap:12px}@media(max-width:520px){.grid{grid-template-columns:1fr}}label{display:block;font-size:13px;color:var(--muted);margin-bottom:4px}input,select{width:100%;padding:10px;border-radius:10px;border:1px solid var(--line);background:var(--bg);color:var(--ink);font:inherit}button{background:var(--accent);color:#fff;border:0;border-radius:10px;padding:11px 16px;font:inherit;font-weight:600;cursor:pointer}button.ghost{background:var(--accent2);color:var(--accent)}.row{display:flex;gap:8px;flex-wrap:wrap;margin-top:12px}.pill{display:inline-block;background:var(--accent2);color:var(--accent);border-radius:99px;padding:2px 10px;font-size:13px}ul{padding-left:18px;margin:6px 0}a{color:var(--accent)}.note{white-space:pre-wrap;font-size:14px;color:var(--muted)}.aisle{font-weight:600;margin-top:8px;text-transform:capitalize}.lot{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap}.bad{color:#b3261e}.bad,.warn{font-weight:700}.warn{color:#9a6200}@media(prefers-color-scheme:dark){.bad{color:#ff8a80}.warn{color:#fc6}}button:disabled{opacity:.5;cursor:not-allowed}.nav{display:flex;gap:4px;flex-wrap:wrap;max-width:760px;margin:0 auto;padding:10px 16px 0}.nav a{padding:6px 12px;border-radius:99px;text-decoration:none;color:var(--ink);font-size:14px;font-weight:600}.nav a:hover{background:var(--accent2)}.nav-account{margin-left:auto;display:flex;align-items:center;gap:4px;font-size:13px}.pill.sale{background:#fff1d6;color:#8a5a00;margin:2px 4px 2px 0}@media(prefers-color-scheme:dark){.pill.sale{background:#3a2f12;color:#ffd27a}}.tl{list-style:none;padding:0;margin:8px 0}.tl li{padding:4px 0 4px 14px;border-left:2px solid var(--line);font-size:14px}.tl li.done{opacity:.5;text-decoration:line-through}.ring{outline:2px solid var(--accent)}textarea{width:100%;min-height:120px;padding:10px;border-radius:10px;border:1px solid var(--line);background:var(--bg);color:var(--ink);font:inherit}.chips{display:flex;gap:6px;flex-wrap:wrap}.chips button{padding:8px 12px}.stack>*{margin-bottom:8px}.muted{color:var(--muted)}.big{font-size:20px;font-weight:700}.week-day{display:grid;grid-template-columns:5.5em 1fr auto;grid-gap:10px;gap:10px;align-items:center;padding:8px 0;border-top:1px solid var(--line)}.big+.week-day{border-top:0}.week-day button{padding:6px 14px}.item{display:flex;gap:12px;align-items:flex-start}.item-main{flex:1 1;min-width:0}.thumb{width:52px;height:52px;flex:none;border-radius:12px;object-fit:cover;background:var(--accent2);justify-content:center;font-size:26px}.photo-row,.thumb{display:flex;align-items:center}.photo-row{gap:12px;margin-top:12px}label.button{display:inline-block;border-radius:10px;padding:8px 12px;font-weight:600;cursor:pointer}.modal-back{position:fixed;inset:0;background:rgba(0,0,0,.45);display:flex;align-items:flex-end;justify-content:center;z-index:50}.modal{background:var(--bg);width:100%;max-width:640px;max-height:92vh;overflow:auto;border-radius:18px 18px 0 0;padding:16px 16px 24px;box-sizing:border-box}@media (min-width:700px){.modal-back{align-items:center}.modal{border-radius:18px}}.season-banner,.season-fx{display:none}[data-season] .season-banner{display:block;text-align:center;font-size:15px;font-weight:600;padding:8px 16px;letter-spacing:.02em}[data-season] .season-fx{display:block;position:fixed;inset:0;pointer-events:none;overflow:hidden;z-index:0}[data-season] .nav,[data-season] main{position:relative;z-index:1}.season-fx i{position:absolute;top:-40px;font-style:normal;font-size:22px;opacity:.55;animation:season-fall 14s linear infinite}.season-fx i:first-child{left:4%;animation-delay:0s}.season-fx i:nth-child(2){left:16%;animation-delay:-6s;font-size:16px}.season-fx i:nth-child(3){left:29%;animation-delay:-11s}.season-fx i:nth-child(4){left:43%;animation-delay:-3s;font-size:18px}.season-fx i:nth-child(5){left:58%;animation-delay:-9s}.season-fx i:nth-child(6){left:71%;animation-delay:-1s;font-size:15px}.season-fx i:nth-child(7){left:84%;animation-delay:-7s}.season-fx i:nth-child(8){left:94%;animation-delay:-12s;font-size:17px}@keyframes season-fall{0%{transform:translate(0) rotate(0)}50%{transform:translate(30px,55vh) rotate(160deg)}to{transform:translate(-10px,110vh) rotate(320deg)}}@media(prefers-reduced-motion:reduce){.season-fx{display:none!important}}[data-season=thanksgiving]{--bg:#fbf1e3;--card:#fffaf2;--ink:#3a2414;--muted:#7a6352;--accent:#b4501a;--accent2:#f8e2cc;--line:#ecd6bb}@media(prefers-color-scheme:dark){[data-season=thanksgiving]{--bg:#1d1510;--card:#281d16;--ink:#f6ebe0;--muted:#bba692;--accent:#f0934f;--accent2:#3d2819;--line:#45311f}}[data-season=thanksgiving] .season-banner{background:linear-gradient(90deg,#8e2b1d,#b4501a,#d08a1e,#b4501a,#8e2b1d);color:#fff8ee}[data-season=thanksgiving] .season-banner:before{content:"🍂  Happy Thanksgiving from OurDinnerMenu  🦃🥧🌽"}[data-season=thanksgiving] .season-fx i:before{content:"🍂"}[data-season=thanksgiving] .season-fx i:nth-child(3n):before{content:"🍁"}[data-season=thanksgiving] .season-fx i:nth-child(4n):before{content:"🍃"}[data-season=thanksgiving] .card{border-top:3px solid #d08a1e}[data-season=thanksgiving] h1{color:#8e2b1d}@media(prefers-color-scheme:dark){[data-season=thanksgiving] h1{color:#f6b27a}}[data-season=winter]{--bg:#f1f6fb;--card:#fff;--ink:#16263a;--muted:#5d6f84;--accent:#2a6fb0;--accent2:#e1edf8;--line:#d4e2ef}@media(prefers-color-scheme:dark){[data-season=winter]{--bg:#0f1722;--card:#17222f;--ink:#eaf2fb;--muted:#9fb2c6;--accent:#7cb8f0;--accent2:#1f3247;--line:#273a50}}[data-season=winter] .season-banner{background:linear-gradient(90deg,#1f4f82,#2a6fb0,#6aa6dc,#2a6fb0,#1f4f82);color:#fff}[data-season=winter] .season-banner:before{content:"❄️  Warm winter dinners from OurDinnerMenu  ☃️🍲"}[data-season=winter] .season-fx i:before{content:"❄"}[data-season=winter] .season-fx i{color:#9cc6ec;opacity:.7}@media(prefers-color-scheme:dark){[data-season=winter] .season-fx i{color:#cfe5fa}}[data-season=winter] .card{border-top:3px solid #9cc6ec}[data-season=winter] h1{color:#1f4f82}@media(prefers-color-scheme:dark){[data-season=winter] h1{color:#a8d0f5}}