@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Playfair+Display:wght@500;600&display=swap');
:root{--green:#234e3b;--ink:#263b30;--muted:#758078;--cream:#faf9f4;--line:#e2e7df}*{box-sizing:border-box}body{margin:0;background:var(--cream);color:var(--ink);font-family:'DM Sans',Arial,sans-serif}button,input,select{font:inherit}button{cursor:pointer}header{height:90px;border-bottom:1px solid var(--line);display:flex;align-items:center;gap:20px;padding:0 4%;background:#fffdf8}.brand{color:var(--green);text-decoration:none;font-size:30px;letter-spacing:-1px;display:flex;gap:10px;align-items:center;font-weight:600}.amp{font-family:Georgia;font-style:italic;color:#9ba77e;padding:0 3px}.tag{font-size:10px;letter-spacing:2px;margin-left:30px;color:var(--muted)}.avatar{margin-left:auto;background:#e8eddf;border-radius:50%;padding:12px 17px}.shell{display:grid;grid-template-columns:240px 1fr;max-width:1600px;margin:auto}aside{padding:40px 22px;border-right:1px solid var(--line);min-height:calc(100vh - 90px)}.eyebrow{font-size:10px;font-weight:700;letter-spacing:2px;color:var(--muted)}nav{display:grid;gap:10px;margin:25px -8px}nav button{background:none;border:0;text-align:left;color:#6c756e;padding:16px 12px;border-radius:10px;font-size:13px}nav button.active{background:#e7eddf;color:var(--green);font-weight:700}nav span{float:right}.aside-note{border:1px solid #dce4d6;border-radius:14px;background:#f0f2e9;padding:22px;margin-top:90px}.aside-note>span{font-size:30px;color:#98a36d}.aside-note h3{font:24px Georgia;line-height:1.3}.aside-note p,aside small{font-size:11px;line-height:1.8;color:var(--muted)}aside small{display:block;margin-top:35px}main{padding:32px 4% 60px;min-width:0}.topline{display:flex;justify-content:space-between;align-items:center;margin-bottom:28px}.textbutton{border:0;background:none;color:var(--muted);font-size:11px;text-decoration:underline}.hero{background:#eaf0e2;border-radius:20px;padding:40px;display:flex;gap:15px;justify-content:space-between;overflow:hidden;min-height:320px}h1{font-family:'Playfair Display',Georgia,serif;font-weight:500;font-size:40px;letter-spacing:-1.1px;line-height:1.2;margin:0 0 18px}p{color:var(--muted);font-size:14px;line-height:1.7}.primary{background:var(--green);color:white;border:0;padding:14px 20px;border-radius:8px;font-size:13px;font-weight:600}.hero .primary{margin-top:12px}.plate{position:relative;align-self:center;min-width:220px;width:260px;height:260px;border-radius:50%;background:#fdfdf6;box-shadow:0 15px 28px #37482d1c,inset 0 0 0 15px #f7f7eb,inset 0 0 0 17px #e5e7d7;transform:rotate(-8deg)}.dish{position:absolute;inset:40px;border-radius:50%;background:repeating-conic-gradient(#e6ba62 0 10deg,#efd29a 12deg 25deg);box-shadow:inset 0 0 20px #b6985c55}.dish i{position:absolute;width:50px;height:30px;background:#627948;border-radius:90% 10% 90% 10%;left:10px;top:30px;transform:rotate(30deg)}.dish i:nth-child(2){left:90px;top:100px;transform:rotate(100deg)}.dish i:nth-child(3){left:60px;top:60px}.dish b{position:absolute;width:40px;height:35px;background:#c45d3d;border-radius:50%;border:5px solid #d97851;left:100px;top:30px}.dish b:nth-of-type(2){left:25px;top:100px}.dish b:nth-of-type(3){left:60px;top:10px}.dish em{position:absolute;width:18px;height:18px;background:#f7f3da;top:70px;left:120px;transform:rotate(25deg)}.dish em:last-child{left:40px;top:80px}.float-label{position:absolute;bottom:-8px;left:10px;white-space:nowrap;background:white;padding:12px 17px;border-radius:6px;box-shadow:0 6px 20px #0001;font-size:11px;transform:rotate(8deg)}.sectionhead{display:flex;justify-content:space-between;align-items:center;gap:20px;margin-top:36px}h2{font:28px 'Playfair Display',Georgia;margin:0}.sectionhead p{margin:7px 0}.filter{font-size:12px;color:var(--muted)}select,input{border:1px solid #d9dfd4;border-radius:7px;padding:10px;background:#fff;color:var(--ink)}.filter select{margin-left:8px;font-size:12px}.chips{display:flex;gap:8px;margin:20px 0}.chips button{border:1px solid var(--line);background:transparent;border-radius:30px;padding:9px 17px;color:var(--muted);font-size:12px}.chips .selected{background:var(--green);color:white;border-color:var(--green)}.cards{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}.card{border:1px solid var(--line);border-radius:13px;overflow:hidden;background:white}.art{height:145px;display:flex;align-items:center;justify-content:center;font-size:72px;position:relative;background:var(--bg)}.art:before{content:'';position:absolute;width:110px;height:110px;border-radius:50%;background:#ffffff80;box-shadow:0 10px 15px #0001}.art span{z-index:1;filter:drop-shadow(2px 7px 3px #0002)}.cardbody{padding:18px}.badge{font-size:10px;color:#3c7150;font-weight:700}.card h3{font:21px 'Playfair Display',Georgia;margin:10px 0}.meta{font-size:11px;color:var(--muted)}.card button{width:100%;border:1px solid #dce3d5;border-radius:7px;background:#f7f9f2;padding:10px;color:var(--green);margin-top:18px;font-size:12px;font-weight:600}.footnote{margin-top:25px;font-size:11px;color:var(--muted);line-height:1.6}.addform{display:flex;align-items:end;gap:12px;background:#eaf0e2;padding:22px;border-radius:12px;margin-top:25px}.addform label{display:grid;gap:8px;font-size:12px;flex:1}.addform input{width:100%}.addform label:first-child{flex:2}.hint{font-size:12px}.row{display:flex;align-items:center;gap:14px;padding:17px 20px;border:1px solid var(--line);border-radius:9px;background:white;margin:10px 0}.row strong{flex:1;text-transform:capitalize}.row input{width:100px}.row button{border:0;background:#eaf0e2;border-radius:6px;padding:9px 12px;color:var(--green);font-size:12px}.row .remove{background:none;color:#98786e}.empty{padding:40px;text-align:center;border:1px dashed #b9c6af;border-radius:12px;color:var(--muted);grid-column:1/-1}dialog{border:0;border-radius:18px;padding:34px;max-width:600px;width:92%;color:var(--ink);box-shadow:0 20px 100px #0003}dialog::backdrop{background:#18352388;backdrop-filter:blur(4px)}.close{float:right;border:0;background:#eef1e7;border-radius:50%;width:32px;height:32px;font-size:24px}dialog h2{margin:12px 0}dialog ol{padding-left:22px;font-size:14px;line-height:1.8}dialog label{font-size:13px}dialog .row{padding:10px}.actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:20px}.secondary{border:1px solid #c9d6c1;background:white;border-radius:8px;padding:12px;color:var(--green)}#toast{position:fixed;bottom:25px;left:50%;transform:translateX(-50%);background:var(--green);color:white;padding:14px 25px;border-radius:9px;opacity:0;pointer-events:none;transition:.2s;z-index:5}#toast.show{opacity:1}button:focus-visible,a:focus-visible{outline:3px solid #bd8e42;outline-offset:3px}[hidden]{display:none!important}@media(min-width:1400px){h1{font-size:46px}.hero{padding:50px}}@media(max-width:1050px){.shell{grid-template-columns:190px 1fr}.hero{padding:25px}h1{font-size:33px}.plate{min-width:170px;width:170px;height:170px}.dish{inset:28px;transform:scale(.75);transform-origin:top left;width:155px;height:155px}.cards{grid-template-columns:repeat(2,1fr)}.addform{flex-wrap:wrap}}@media(max-width:700px){header{height:70px}.tag{display:none}.brand{font-size:25px}.shell{display:block}aside{padding:12px;min-height:0;border:0}.eyebrow{font-size:9px}aside>.eyebrow,.aside-note,aside small{display:none}nav{display:flex;margin:0;gap:4px}nav button{flex:1;text-align:center;font-size:11px;padding:12px 5px}nav span{float:none}main{padding:14px 18px 40px}.topline{margin-bottom:16px}.hero{padding:25px 23px;min-height:260px}.hero h1{font-size:31px}.plate{display:none}.sectionhead{align-items:start;flex-direction:column;gap:10px}.cards{gap:12px}.cardbody{padding:12px}.card h3{font-size:19px}.art{height:120px;font-size:60px}.addform{display:grid;grid-template-columns:1fr 1fr}.addform label:first-child{grid-column:1/-1}.row{padding:13px 10px;gap:7px;font-size:13px}.row input{width:65px}.float-label{font-size:9px}.textbutton{font-size:10px}}@media(prefers-reduced-motion:reduce){*{transition:none!important}}

.card .favourite{width:auto;display:block;margin:0 0 14px auto;padding:8px 12px;background:#fffaf3;min-height:40px}.favourite[aria-pressed="true"]{background:#e7eddf}.history-entry{display:flex;align-items:center;gap:20px;justify-content:space-between;padding:22px;border:1px solid var(--line);border-radius:12px;background:white;margin:14px 0}.history-entry h3{font:23px Georgia;margin:0}.history-entry p{margin:8px 0;font-size:12px}.history-entry button{flex-shrink:0}button:disabled{opacity:.55;cursor:default}.chips{flex-wrap:wrap}dialog{max-height:90dvh;overflow:auto}#toast{max-width:90vw;text-align:center}input:focus-visible,select:focus-visible{outline:3px solid #bd8e42;outline-offset:2px}@media(max-width:700px){nav{display:grid;grid-template-columns:1fr 1fr}nav button{min-height:44px}.history-entry{align-items:start;flex-direction:column}.row{flex-wrap:wrap}.row strong{min-width:90px}dialog{padding:22px}dialog .row small{flex-basis:100%;text-align:right}.addform .primary{min-height:44px}.chips button{min-height:44px}.row button{min-height:40px}}
.feedback{padding:14px 16px;border:1px solid #a9bd98;background:#eef4e6;color:#234e3b;border-radius:9px;margin:14px 0;font-size:14px;line-height:1.5;overflow-wrap:anywhere}#recipestatus{position:sticky;bottom:0;z-index:2;box-shadow:0 3px 18px #0002}#storagewarning{background:#fff1d8;border-color:#dcb367}.recipeform{max-width:760px;background:#f0f3e9;padding:24px;border:1px solid var(--line);border-radius:14px;margin:24px 0 36px}.recipeform label{display:grid;gap:8px;font-size:13px;margin-bottom:16px}.recipeform input,.recipeform textarea{width:100%;min-width:0}.recipeform textarea{font:inherit;line-height:1.6;border:1px solid #d9dfd4;border-radius:8px;padding:12px;resize:vertical}.formpair{display:grid;grid-template-columns:1fr 1fr;gap:16px}.recipeform .checklabel{display:flex;align-items:center}.checklabel input{width:auto}.ingredient-edit{display:grid;grid-template-columns:2fr 1fr 1fr auto;gap:10px;align-items:center}.ingredient-edit button{margin-bottom:0}.recipephoto{display:block;max-width:100%;width:100%;max-height:280px;object-fit:cover;border-radius:10px;margin:12px 0}.art img{height:100%;width:100%;object-fit:cover;z-index:1}#addingredient{margin:4px 0 20px}#ownrecipes{margin-top:20px}#servings{width:90px}@media(max-width:700px){.recipeform{padding:16px}.ingredient-edit{grid-template-columns:1fr 1fr 44px}.ingredient-edit label:first-child{grid-column:1/-1}.recipeform input[type=file]{font-size:12px}nav button:last-child{grid-column:1/-1}.formpair{gap:10px}}
.cloudpanel{background:white;border:1px solid var(--line);border-radius:14px;padding:24px;margin:24px 0}.cloudpanel a{color:var(--green);font-weight:bold}.cloudpanel .actions{margin-bottom:16px}

#plandays{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;margin:24px 0}.plan-day{border:1px solid #dedfce;border-radius:16px;padding:20px;background:#fffdf8}.plan-day h3{margin:0 0 12px}.planned-meal{display:flex;justify-content:space-between;gap:16px;align-items:center;padding:12px 0;border-bottom:1px solid #e8e8dc}.planned-meal .actions{flex-wrap:wrap}.planned-meal button{font-size:12px}#planner .addform{flex-wrap:wrap}#planner select{max-width:100%}@media(max-width:850px){#plandays{grid-template-columns:1fr}.planned-meal{flex-wrap:wrap}}

.recipe-tools{background:#edf1e7;padding:20px;border-radius:14px;margin:20px 0}.recipe-tools label{display:grid;gap:7px;font-size:12px}.recipe-tools>label{max-width:330px;margin-bottom:16px}#discoveryform{display:grid;grid-template-columns:1.3fr 1fr 1fr auto;gap:12px;align-items:end}.recipe-tools input,.recipe-tools select{width:100%;min-width:0}.source-credit{font-size:12px;line-height:1.7}.source-credit a,.hint a{color:var(--green)}.external-row{display:grid;grid-template-columns:2fr 1fr 1fr;gap:12px;margin:16px 0}.external-row label{display:grid;gap:6px;font-size:12px}.external-row small{font-size:11px;color:var(--muted)}.external-row input,.external-row select{width:100%;min-width:0}#externalservings{display:block;width:160px;margin:10px 0}.art{position:relative;overflow:hidden}.art img{position:absolute;inset:0}.card .art{height:220px}.card h3{overflow-wrap:anywhere}#discoverymore{margin:24px 0}#detail ol{white-space:pre-line}@media(max-width:850px){#discoveryform{grid-template-columns:1fr 1fr}}@media(max-width:600px){#discoveryform{grid-template-columns:1fr}.external-row{grid-template-columns:1fr 1fr}.external-row label:first-child{grid-column:1/-1}.card .art{height:220px}.cards{grid-template-columns:1fr}.recipe-tools{padding:16px}}

.smart-ingredient{display:grid;grid-template-columns:1fr 1fr;gap:8px;padding:12px 0;border-bottom:1px solid var(--line)}.smart-ingredient small{grid-column:1/-1;color:var(--muted)}#smartadjust{margin:20px 0}#smartadjust summary{cursor:pointer;color:var(--green);font-weight:600}.needs-answer{border:2px solid #aa652e}#smartdiscover{margin:8px 0}

#purchaseform{display:grid;gap:14px}
#purchaseform fieldset{min-width:0;margin:0;padding:14px;border:1px solid var(--line);border-radius:9px}
#purchaseform legend{padding:0 5px;font-weight:600}
#purchaseform label:not(.checklabel){display:grid;gap:5px;min-width:0}
#purchaseform input:not([type=checkbox]),#purchaseform select{width:100%;min-width:0}
#purchaseform details{margin-top:12px}
#purchaseform details summary{cursor:pointer;margin-bottom:10px}
#purchaseform .primary{justify-self:start;min-height:44px}
.unmeasured-use{flex-basis:100%;grid-column:1/-1}
.unmeasured-use input{width:auto}
.shopping-need{font-size:12px;color:var(--muted)}

#cooking-review .cooking-questions{display:grid;gap:12px;margin:12px 0}
.cooking-questions label{display:grid;gap:5px;min-width:0}
.cooking-questions select{width:100%;min-width:0;min-height:44px}
#confirm-cooking{min-height:44px}
#inventory select[data-stock]{max-width:100%;min-height:40px}

.account-form,.account-form label{display:grid;gap:8px}
.account-form{margin:14px 0}
.account-form input{width:100%;min-width:0}
.account-form .primary{justify-self:start}
.account-dialog .actions{margin:12px 0}
.account-import{display:block;margin:12px 0}
.account-import input{max-width:100%}
