:root{--bg:#f6f8f4;--card:#fff;--ink:#1e2a20;--muted:#67736a;--line:#dfe7dc;--green:#3e7350;--green2:#e6f1e3;--shadow:0 12px 36px #1e372414}*{box-sizing:border-box}html{background:var(--bg)}body{color:var(--ink);margin:0;font:15px/1.5 Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}a{color:inherit;text-decoration:none}button,input,select,textarea{font:inherit}.topbar{border-bottom:1px solid var(--line);z-index:20;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:#ffffffeb;justify-content:space-between;align-items:center;height:72px;padding:0 max(20px,50vw - 620px);display:flex;position:sticky;top:0}.brand{align-items:center;gap:10px;display:flex}.brandmark,.logo{background:var(--green);color:#fff;border-radius:14px;place-items:center;font-weight:800;display:grid}.brandmark{width:40px;height:40px}.brand span:last-child{flex-direction:column;display:flex}.brand small{color:var(--muted);font-size:11px}.desktopNav{align-items:center;gap:6px;display:flex}.desktopNav>a,.desktopNav button,.mobileMenu nav a,.mobileMenu nav button{color:#425046;cursor:pointer;background:0 0;border:0;border-radius:10px;padding:10px 12px}.desktopNav>a:hover,.desktopNav button:hover{background:var(--green2)}.mobileMenu{display:none}.shell{max-width:1240px;min-height:calc(100vh - 125px);margin:0 auto;padding:34px 20px 60px}footer{text-align:center;color:var(--muted);padding:20px}.hero{box-shadow:var(--shadow);background:linear-gradient(120deg,#fff,#eef7eb);border:1px solid #d8e8d3;border-radius:26px;justify-content:space-between;align-items:center;padding:48px;display:flex}.hero h1,.pagehead h1{margin:.15em 0;font-size:clamp(2rem,4vw,3.4rem);line-height:1.03}.hero p,.pagehead p{color:var(--muted);max-width:680px}.heroicon{padding:24px;font-size:80px}.eyebrow{text-transform:uppercase;letter-spacing:.13em;color:var(--green);font-size:12px;font-weight:800}.actions{flex-wrap:wrap;gap:10px;margin-top:22px;display:flex}.btn{border:1px solid var(--line);cursor:pointer;border-radius:12px;justify-content:center;align-items:center;padding:10px 15px;font-weight:700;display:inline-flex}.btn.primary{background:var(--green);border-color:var(--green);color:#fff}.btn.soft{background:#fff}.btn:disabled{opacity:.45;cursor:not-allowed}.stats{grid-template-columns:repeat(3,1fr);gap:16px;margin:20px 0 34px;display:grid}.stats article,.cards>a,.panel,.recipecard,.daycard{background:var(--card);border:1px solid var(--line);box-shadow:var(--shadow);border-radius:18px}.stats article{flex-direction:column;padding:20px;display:flex}.stats b{font-size:28px}.stats span,.stats small,.muted{color:var(--muted)}.cards{grid-template-columns:repeat(3,1fr);gap:16px;display:grid}.cards>a{flex-direction:column;gap:7px;padding:22px;display:flex}.cards>a:hover{transform:translateY(-2px)}.pagehead{justify-content:space-between;align-items:end;gap:20px;margin-bottom:24px;display:flex}.panel{margin-bottom:20px;padding:24px}.formgrid{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;display:grid}.formgrid h2,.full{grid-column:1/-1}label{flex-direction:column;gap:6px;font-weight:650;display:flex}input,select,textarea{width:100%;color:var(--ink);background:#fff;border:1px solid #cfd9cc;border-radius:11px;padding:11px 12px}textarea{resize:vertical}.check{flex-direction:row;align-items:center}.check input{width:auto}.stack{flex-direction:column;gap:14px;display:flex}.authcard{border:1px solid var(--line);max-width:460px;box-shadow:var(--shadow);background:#fff;border-radius:24px;margin:6vh auto;padding:32px}.authcard.wide{max-width:820px}.logo{width:54px;height:54px;font-size:24px}.flash{border-radius:12px;margin:15px 0;padding:12px 14px}.flash.success{color:#275732;background:#e5f5e4}.flash.danger{color:#8d3035;background:#fde8e9}.recipegrid{grid-template-columns:repeat(3,1fr);gap:18px;display:grid}.recipecard{overflow:hidden}.recipecard>div:last-child{padding:18px}.foodpic{background:#eef5eb;place-items:center;height:130px;font-size:52px;display:grid}.pill{background:var(--green2);color:#365e40;border-radius:999px;padding:4px 9px;font-size:12px;font-weight:750;display:inline-block}.subhead{justify-content:space-between;align-items:center;display:flex}.ingredients{flex-direction:column;gap:8px;display:flex}.ingredient{grid-template-columns:120px 120px 1fr 40px;gap:8px;display:grid}.ingredient button{background:#f1f3f0;border:0;border-radius:10px}.weekgrid{grid-template-columns:repeat(7,minmax(170px,1fr));gap:12px;padding-bottom:10px;display:grid;overflow-x:auto}.daycard{flex-direction:column;gap:4px;padding:16px;display:flex}.daycard>small{color:var(--muted);margin-bottom:10px}.shopping{max-width:700px}.shopping>label{border-bottom:1px solid var(--line);flex-direction:row;align-items:center;padding:12px;display:flex}.shopping input{width:22px;height:22px}.shopping span{flex-direction:column;margin-left:10px;display:flex}.empty{text-align:center;padding:40px;font-size:18px}.membergrid{grid-template-columns:repeat(2,1fr);gap:10px;display:grid}.member,.invitecodes>div{background:#f7faf6;border-radius:12px;flex-direction:column;padding:12px;display:flex}.inlineform{align-items:center;gap:8px;display:flex}.tablewrap{overflow:auto}table{border-collapse:collapse;width:100%}th,td{text-align:left;border-bottom:1px solid var(--line);vertical-align:middle;padding:12px}.checks{flex-direction:column;gap:6px;margin:15px 0;display:flex}.checks .ok{color:#2d6639}.checks .bad{color:#a52e35}.log{white-space:pre-wrap;color:#e7f2e8;background:#172019;border-radius:12px;max-height:360px;padding:14px;overflow:auto}.history>div{border-bottom:1px solid var(--line);justify-content:space-between;padding:10px 0;display:flex}code{font-family:ui-monospace,monospace}@media (max-width:900px){.desktopNav{display:none}.mobileMenu{display:block;position:relative}.mobileMenu summary{cursor:pointer;font-size:25px;list-style:none}.mobileMenu nav{border:1px solid var(--line);width:230px;box-shadow:var(--shadow);background:#fff;border-radius:16px;flex-direction:column;padding:8px;display:flex;position:absolute;top:44px;right:0}.mobileMenu nav a,.mobileMenu nav button{text-align:left;width:100%;display:block}.hero{padding:28px}.heroicon{display:none}.stats,.cards,.recipegrid{grid-template-columns:1fr 1fr}.weekgrid{grid-template-columns:repeat(7,80vw)}}@media (max-width:620px){.shell{padding:22px 14px 50px}.topbar{height:64px;padding:0 14px}.hero{border-radius:20px;padding:24px}.stats,.cards,.recipegrid,.formgrid,.membergrid{grid-template-columns:1fr}.formgrid h2,.full{grid-column:auto}.pagehead{flex-direction:column;align-items:flex-start}.pagehead .actions{margin-top:0}.ingredient{grid-template-columns:82px 82px 1fr 36px}.authcard{margin:12px;padding:22px}.inlineform{flex-direction:column;align-items:stretch}.history>div{flex-direction:column}.weekgrid{grid-template-columns:repeat(7,88vw)}}.recipeimage{object-fit:cover;width:100%;height:180px;display:block}.iconbtn{cursor:pointer;color:#b58a22;background:0 0;border:0;padding:0;font-size:24px}.source{color:var(--green);font-size:12px;text-decoration:underline}.recipehero{max-height:420px;padding:0;overflow:hidden}.recipehero img{object-fit:cover;width:100%;height:100%;max-height:420px;display:block}.photogrid{grid-template-columns:repeat(3,1fr);gap:12px;margin-top:18px;display:grid}.photogrid figure{background:#f7faf6;border-radius:14px;margin:0;overflow:hidden}.photogrid img{object-fit:cover;width:100%;height:180px;display:block}.photogrid figcaption{color:var(--muted);padding:8px 10px;font-size:13px}.importcards{grid-template-columns:repeat(2,1fr)}.importcards .panel{margin:0}.recipegrid h3{margin-bottom:6px}@media (max-width:700px){.photogrid,.importcards{grid-template-columns:1fr}}
