:root{--ink:#252821;--muted:#77796f;--paper:#f7f5ef;--white:#fffefa;--orange:#dc754d;--green:#52664d;--line:#e8e4da}*{box-sizing:border-box}body{margin:0;background:var(--paper);color:var(--ink);font-family:'DM Sans',sans-serif}.topbar{height:76px;padding:0 clamp(22px,7vw,112px);display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line);background:#fbf9f4}.brand{display:flex;align-items:center;gap:10px;color:var(--ink);text-decoration:none;font-size:15px;letter-spacing:-.2px}.brand b{font-weight:700}.brand-mark{display:grid;place-items:center;color:var(--orange);font-size:24px}.add-button{border:0;border-radius:8px;background:var(--ink);color:white;padding:12px 17px;font:600 13px 'DM Sans';cursor:pointer}.add-button span{font-size:17px;margin-right:7px}main{max-width:1250px;margin:0 auto;padding:0 clamp(22px,7vw,112px)}.hero{display:grid;grid-template-columns:1fr .8fr;gap:45px;align-items:center;padding:67px 0 76px;border-bottom:1px solid var(--line)}.eyebrow{font-size:10px;letter-spacing:2px;color:var(--orange);font-weight:700;margin:0 0 13px}.hero h1{font:700 clamp(42px,5.8vw,69px)/1.02 'Playfair Display',serif;letter-spacing:-1.5px;margin:0}.hero h1 em{font-weight:600;color:var(--green)}.hero-sub{color:var(--muted);font-size:14px;line-height:1.7;max-width:390px;margin:19px 0 25px}.search{height:49px;max-width:460px;border:1px solid #dedbd1;background:var(--white);border-radius:8px;display:flex;align-items:center;padding:0 13px;gap:10px;color:#9b9b91}.search>span{font-size:25px;transform:rotate(-20deg)}.search input{border:0;outline:0;background:transparent;flex:1;min-width:0;font:13px 'DM Sans';color:var(--ink)}.search kbd{font:10px 'DM Sans';border:1px solid var(--line);border-radius:4px;padding:3px 5px;color:#999}.hero-art{height:250px;max-width:380px;width:100%;justify-self:end;background:#eee6d7;border-radius:11px;position:relative;overflow:hidden}.art-sun{position:absolute;width:280px;height:280px;background:#e6c98e;opacity:.38;border-radius:50%;top:-100px;right:-20px}.plate{position:absolute;width:200px;height:200px;border-radius:50%;background:#faf7ed;border:10px solid #ded7c6;box-shadow:0 10px 18px #74634c24;top:25px;left:50%;transform:translateX(-50%);display:grid;place-items:center}.plate:before{content:'';position:absolute;width:144px;height:144px;border-radius:50%;background:#d08e55}.pasta{position:absolute;z-index:1;color:#f6d484;font-size:37px;line-height:.55;text-align:center;font-weight:bold;transform:rotate(-20deg);text-shadow:1px 2px #9d623b}.tomato{z-index:2;position:absolute;color:#b9563f;font-size:22px;left:64px;top:62px}.herb{z-index:2;position:absolute;color:#52664d;font-size:28px;right:57px;bottom:59px}.art-leaf{position:absolute;color:#52664d;font-size:40px;z-index:2}.leaf-one{left:29px;top:44px;transform:rotate(20deg)}.leaf-two{right:31px;bottom:34px;transform:rotate(35deg);color:#b96f4d}.art-caption{position:absolute;right:19px;top:22px;font:italic 12px 'Playfair Display';line-height:1.5;color:#665b45}.art-caption span{color:var(--orange)}.toolbar{display:flex;justify-content:space-between;align-items:end;padding:39px 0 23px;gap:25px}.toolbar .eyebrow{margin-bottom:7px}.toolbar h2{font:600 25px 'Playfair Display';margin:0}.toolbar h2 span{font:500 12px 'DM Sans';color:#aaa;margin-left:7px}.filters{display:flex;gap:6px;flex-wrap:wrap;justify-content:flex-end}.filter{background:transparent;color:#77796f;border:1px solid transparent;border-radius:20px;padding:8px 12px;font:500 11px 'DM Sans';cursor:pointer}.filter:hover{border-color:var(--line)}.filter.active{background:#e8ebe3;color:#43583e}.recipe-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:22px 18px}.card{background:var(--white);border:1px solid #ebe7df;border-radius:9px;overflow:hidden;cursor:pointer;transition:transform .18s,box-shadow .18s}.card:hover{transform:translateY(-3px);box-shadow:0 12px 28px #302b1b10}.card-art{height:172px;position:relative;display:grid;place-items:center;overflow:hidden}.card-art:before{content:'';position:absolute;width:155px;height:155px;border:1px solid #ffffff70;border-radius:50%;box-shadow:0 0 0 17px #ffffff25,0 0 0 36px #ffffff17}.card-art .food{z-index:1;font-size:77px;filter:drop-shadow(0 7px 5px #483b2830)}.card-art .tag{position:absolute;top:13px;left:13px;background:#fffefaed;color:#55594f;padding:6px 9px;border-radius:20px;font-size:9px;font-weight:700;letter-spacing:.4px}.heart{position:absolute;right:12px;top:11px;border:0;width:30px;height:30px;border-radius:50%;background:#fffefaed;color:#888;cursor:pointer;font-size:17px;z-index:2}.heart.saved{color:#d45e4e}.card-body{padding:16px 16px 14px}.card-body h3{font:600 18px 'Playfair Display';margin:0 0 7px}.card-body p{font-size:11px;color:#818278;line-height:1.55;margin:0;min-height:35px}.meta{border-top:1px solid #f0ede6;margin-top:13px;padding-top:11px;display:flex;justify-content:space-between;font-size:10px;color:#8a8b82}.meta .time:before{content:'◷';font-size:14px;margin-right:5px;vertical-align:-1px}.meta .details{color:var(--green);font-weight:600}.empty{text-align:center;padding:70px 10px;color:var(--muted)}.empty div{font-size:40px}.empty h3{font:600 22px 'Playfair Display';color:var(--ink);margin:12px 0}.empty p{font-size:13px}.hidden{display:none}footer{border-top:1px solid var(--line);margin-top:60px;padding:23px 0 30px;display:flex;justify-content:space-between;color:#929287;font-size:10px}footer span:first-child{color:var(--green);font-weight:700}dialog{padding:0;border:0;border-radius:12px;width:min(530px,calc(100% - 28px));max-height:90vh;box-shadow:0 25px 90px #17181250;color:var(--ink)}dialog::backdrop{background:#20231ed1;backdrop-filter:blur(3px)}#recipeForm{padding:30px 32px;display:flex;flex-direction:column;gap:14px;position:relative}#recipeForm h2{font:600 29px 'Playfair Display';margin:0 0 3px}.close{position:absolute;right:20px;top:17px;border:0;background:none;font-size:26px;color:#777;cursor:pointer}#recipeForm label{display:flex;flex-direction:column;gap:6px;font-size:11px;font-weight:600;color:#606258}#recipeForm small{display:inline;color:#999;font-weight:400}#recipeForm input,#recipeForm select,#recipeForm textarea{width:100%;border:1px solid #e3e0d8;border-radius:6px;padding:10px;font:12px 'DM Sans';outline-color:#829176;background:#fffefa;color:var(--ink)}#recipeForm textarea{resize:vertical}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:12px}.submit-button{border:0;border-radius:7px;padding:13px;background:var(--green);color:white;font:600 12px 'DM Sans';cursor:pointer;margin-top:3px}.submit-button span{float:right}.detail-view{padding:0 28px 28px}.detail-art{height:175px;margin:0 -28px 23px;display:grid;place-items:center;font-size:78px}.detail-view h2{font:600 29px 'Playfair Display';margin:0 0 8px}.detail-view p{color:var(--muted);font-size:13px;line-height:1.6}.detail-cols{display:grid;grid-template-columns:.8fr 1.2fr;gap:25px;margin-top:20px}.detail-cols h3{font:600 17px 'Playfair Display';margin:0 0 10px}.detail-cols ul,.detail-cols ol{padding-left:18px;margin:0;color:#676a60;font-size:11px;line-height:1.9}.detail-close{float:right;border:0;background:none;font-size:25px;cursor:pointer;color:#777;margin:12px -12px 0 0}.detail-time{font-size:11px;color:var(--green);font-weight:600}@media(max-width:800px){.hero{grid-template-columns:1fr .72fr;gap:20px}.hero-art{height:220px}.toolbar{align-items:flex-start;flex-direction:column}.filters{justify-content:flex-start}.recipe-grid{grid-template-columns:repeat(2,1fr)}}@media(max-width:560px){.topbar{height:66px}.brand{font-size:13px}.add-button{padding:10px 12px;font-size:11px}.hero{display:block;padding:48px 0 35px}.hero-art{display:none}.hero h1{font-size:52px}.toolbar{padding-top:30px}.recipe-grid{grid-template-columns:1fr;gap:14px}.card{display:grid;grid-template-columns:120px 1fr;min-height:142px}.card-art{height:100%;min-height:142px}.card-art .food{font-size:48px}.card-art:before{width:95px;height:95px}.card-body{padding:14px 12px}.card-body h3{font-size:16px}.card-body p{min-height:0}.meta{margin-top:10px}.filters{gap:2px}.filter{padding:7px 9px;font-size:10px}footer{gap:15px;line-height:1.5}footer span:last-child{text-align:right}.detail-cols{grid-template-columns:1fr;gap:18px}#recipeForm{padding:25px 22px}}
.top-actions{display:flex;align-items:center;gap:10px}.account-button,.account-switch{border:1px solid var(--line);background:transparent;color:var(--green);border-radius:7px;padding:10px 12px;font:600 11px 'DM Sans';cursor:pointer}.account-message{font-size:12px;color:var(--muted);line-height:1.6;margin:0 0 4px}.account-error{font-size:11px;line-height:1.5;color:#a63d32;margin:0}.account-switch{border:0;text-decoration:underline;padding:8px}.account-switch.hidden{display:none}#accountForm{padding:30px 32px;display:flex;flex-direction:column;gap:14px;position:relative}#accountForm h2{font:600 29px 'Playfair Display';margin:0 0 3px}#accountForm label{display:flex;flex-direction:column;gap:6px;font-size:11px;font-weight:600;color:#606258}#accountForm input{width:100%;border:1px solid #e3e0d8;border-radius:6px;padding:10px;font:12px 'DM Sans';outline-color:#829176;background:#fffefa;color:var(--ink)}@media(max-width:560px){.top-actions{gap:5px}.account-button{padding:9px 8px;font-size:10px}.add-button{padding:9px 9px;font-size:10px}#accountForm{padding:25px 22px}}
.sync-status{display:flex;align-items:center;gap:7px;color:#68715f;font:500 10px 'DM Sans';white-space:nowrap}.sync-dot{width:8px;height:8px;border-radius:50%;background:#a5a69c}.sync-status.synced .sync-dot{background:#5c8c50}.sync-status.syncing .sync-dot,.sync-status.checking .sync-dot{background:#d29b45;animation:syncPulse 1.1s infinite}.sync-status.error .sync-dot,.sync-status.offline .sync-dot{background:#bd6558}.sync-status.error,.sync-status.offline{color:#9b4c42}@keyframes syncPulse{50%{opacity:.35}}
.search-tools{display:flex;gap:9px;align-items:center;max-width:570px}.search-tools .search{flex:1;min-width:0}.search-tools select{height:49px;max-width:155px;border:1px solid #dedbd1;border-radius:8px;background:var(--white);padding:0 10px;color:#62665c;font:11px 'DM Sans'}.search-summary{font-size:11px;color:#818278;margin:9px 0 0;min-height:17px}.ingredient-match{color:#52664d!important;background:#eef0e8;border-radius:5px;padding:6px 8px;margin-top:8px!important;font-size:10px!important;min-height:0!important}.card-body .ingredient-match b{font-weight:700}
#detailDialog{width:min(900px,calc(100% - 28px));overflow:auto}#detailDialog .detail-view{padding:0 32px 30px}.detail-controls{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-top:17px}.serving-control{display:flex;align-items:center;gap:9px;color:#65685e;font-size:11px}.serving-control button{border:1px solid var(--line);background:#fffefa;border-radius:6px;width:30px;height:30px;font-size:18px;color:var(--green);cursor:pointer}.serving-control b{min-width:18px;text-align:center}.cook-mode-button{border:0;border-radius:7px;background:var(--green);color:white;padding:10px 13px;font:600 11px 'DM Sans';cursor:pointer}.cook-hint{font-size:10px!important;margin:0 0 8px!important;color:#929287!important}.ingredient-list,.step-list{list-style:none;padding:0!important;margin:0!important}.detail-cols .check-item{display:flex;align-items:flex-start;gap:10px;padding:9px 10px;border-radius:7px;line-height:1.5;cursor:pointer}.check-item:hover{background:#f6f4ee}.check-item input{width:18px;height:18px;flex:0 0 18px;margin:1px 0 0;accent-color:var(--green);cursor:pointer}.check-item span{font-size:12px}.check-item.checked span{text-decoration:line-through;color:#999}.step-list li{margin-bottom:5px}.recipe-tip{padding:12px 14px;background:#f4f0e6;border-radius:7px}.detail-view.cook-mode{padding-bottom:40px}.detail-view.cook-mode .detail-art{height:100px;font-size:53px}.detail-view.cook-mode .detail-cols{grid-template-columns:1fr 1fr;gap:32px}.detail-view.cook-mode .check-item{padding:13px 12px}.detail-view.cook-mode .check-item span{font-size:15px;line-height:1.6}.detail-view.cook-mode .detail-cols h3{font-size:21px}
@media(max-width:800px){.search-tools{align-items:stretch;flex-direction:column}.search-tools select{max-width:none;width:100%;height:42px}.detail-view.cook-mode .detail-cols{grid-template-columns:1fr}}
@media(max-width:560px){.topbar{height:auto;min-height:66px;padding:8px 12px;gap:6px}.brand{gap:5px;font-size:12px}.top-actions{gap:4px;flex:1;flex-wrap:wrap;justify-content:flex-end}.sync-status{display:flex;order:1;flex-basis:100%;justify-content:flex-end;font-size:9px}.account-button{font-size:9px;padding:8px 6px}.add-button{font-size:9px;padding:8px 7px}.search-tools .search{height:46px}.search-tools select{height:42px}.detail-view{padding:0 17px 24px!important}.detail-art{margin-left:-17px!important;margin-right:-17px!important}.detail-controls{align-items:flex-start}.detail-cols{gap:14px}.detail-cols .check-item span{font-size:13px}.detail-view.cook-mode .detail-cols{grid-template-columns:1fr}#detailDialog{max-height:94vh}}
.pantry-finder{display:block;position:relative;overflow:hidden;padding:clamp(24px,4vw,38px);background:linear-gradient(135deg,#f1eee4 0%,#f8f5ee 55%,#eee9dc 100%);border:1px solid #e2dccd;border-radius:16px;box-shadow:0 12px 32px #302b1b0a;margin:30px 0 12px}.pantry-finder:before{content:'';position:absolute;left:0;top:0;bottom:0;width:5px;background:var(--orange)}.pantry-heading h2{font:600 clamp(25px,3vw,31px) 'Playfair Display';letter-spacing:-.4px;margin:0 0 8px}.pantry-heading p:last-child{font-size:13px;line-height:1.65;color:var(--muted);margin:0 0 23px;max-width:760px}.pantry-controls label{display:block;color:#55594f;font-size:12px;font-weight:700;margin-bottom:9px}.pantry-controls textarea{display:block;width:100%;resize:vertical;min-height:128px;border:1px solid #d8d3c8;border-radius:11px;background:#fffefa;padding:16px;font:14px/1.6 'DM Sans',sans-serif;color:var(--ink);outline:none;box-shadow:inset 0 1px 3px #332d2010;transition:border-color .18s,box-shadow .18s}.pantry-controls textarea::placeholder{color:#a09d92}.pantry-controls textarea:focus{border-color:#829176;box-shadow:0 0 0 3px #52664d1c,inset 0 1px 3px #332d2010}.pantry-actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-top:13px}.pantry-button,.pantry-web-button{border:0;border-radius:8px;padding:12px 17px;background:var(--green);color:white;font:600 12px 'DM Sans',sans-serif;cursor:pointer;box-shadow:0 2px 4px #25282115;transition:transform .15s,background .15s}.pantry-button:hover{background:#40543b;transform:translateY(-1px)}.pantry-web-button{background:#fffefa;color:var(--green);border:1px solid #d9d9cc;box-shadow:none}.pantry-web-button:hover{background:#f2f2e9;transform:translateY(-1px)}.pantry-clear{border:0;background:transparent;color:#77796f;font:600 12px 'DM Sans';padding:10px 12px;cursor:pointer}.pantry-clear:hover{color:var(--ink);text-decoration:underline}.pantry-note{font-size:11px;line-height:1.55;color:#838579;margin:13px 0 0}.pantry-results{margin-top:22px;border-top:1px solid #dcdace;padding-top:20px}.pantry-result-heading{display:flex;justify-content:space-between;align-items:baseline;gap:12px;margin-bottom:11px}.pantry-result-heading h3{font:600 20px 'Playfair Display';margin:0}.pantry-result-heading span{font-size:11px;color:var(--muted)}.pantry-match-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}.pantry-match{display:flex;align-items:center;gap:11px;text-align:left;border:1px solid #e6e3d9;border-radius:10px;padding:12px;background:#fffefa;color:var(--ink);cursor:pointer;min-width:0;transition:transform .15s,border-color .15s,box-shadow .15s}.pantry-match.ready{border-color:#cbd6c2;background:#f8faf5}.pantry-match-icon{font-size:27px}.pantry-match-copy{display:flex;flex-direction:column;gap:5px;min-width:0;flex:1}.pantry-match-copy b{font-size:12px;line-height:1.4}.pantry-match-copy small{font-size:10px;color:#77796f;line-height:1.4}.pantry-match-score{font-size:11px;font-weight:700;color:var(--green);white-space:nowrap}.pantry-empty{font-size:13px;color:var(--muted);margin:13px 0}.pantry-match:hover{border-color:#aab99c;transform:translateY(-1px);box-shadow:0 5px 14px #302b1b0b}
@media(max-width:760px){.pantry-finder{padding:24px 20px}.pantry-match-list{grid-template-columns:1fr}}
@media(max-width:560px){.pantry-finder{margin:22px 0 5px;padding:22px 17px}.pantry-heading h2{font-size:24px}.pantry-heading p:last-child{font-size:12px;margin-bottom:18px}.pantry-controls textarea{min-height:118px;padding:13px;font-size:13px}.pantry-result-heading{align-items:flex-start;flex-direction:column;gap:4px}.pantry-actions{gap:6px}.pantry-button,.pantry-web-button{font-size:10px;padding:11px 12px}}
.pantry-entry-row{display:flex;gap:10px;align-items:stretch;max-width:620px}.pantry-entry-row input{flex:1;min-width:0;height:48px;border:1px solid #d8d3c8;border-radius:10px;background:#fffefa;padding:0 15px;font:14px 'DM Sans',sans-serif;color:var(--ink);outline:none;box-shadow:inset 0 1px 3px #332d2010;transition:border-color .18s,box-shadow .18s}.pantry-entry-row input::placeholder{color:#a09d92}.pantry-entry-row input:focus{border-color:#829176;box-shadow:0 0 0 3px #52664d1c}.pantry-add{border:0;border-radius:9px;background:#252821;color:white;padding:0 17px;font:600 12px 'DM Sans',sans-serif;cursor:pointer;white-space:nowrap;transition:background .15s,transform .15s}.pantry-add:hover{background:#3b4035;transform:translateY(-1px)}.pantry-list{display:flex;flex-wrap:wrap;align-items:center;gap:8px;min-height:46px;padding:11px 0 2px}.pantry-list-empty{font-size:11px;color:#99968b}.pantry-chip{display:inline-flex;align-items:center;gap:8px;padding:7px 10px 7px 12px;border:1px solid #d6ddcf;border-radius:30px;background:#f8faf5;color:#43583e;font-size:11px;font-weight:600;box-shadow:0 1px 2px #2528210a}.pantry-chip button{display:grid;place-items:center;width:19px;height:19px;border:0;border-radius:50%;background:#e7ecdf;color:#52664d;font:17px/1 'DM Sans',sans-serif;cursor:pointer;padding:0}.pantry-chip button:hover{background:#d9e1d0;color:#283325}
@media(max-width:560px){.pantry-entry-row{gap:7px}.pantry-entry-row input{height:45px;padding:0 11px;font-size:12px}.pantry-add{padding:0 11px;font-size:10px}.pantry-list{gap:6px}.pantry-chip{font-size:10px}}

.serving-prompt{position:relative;padding:32px;display:flex;flex-direction:column;align-items:center;text-align:center;gap:12px}.serving-prompt .detail-close{position:absolute;right:22px;top:14px}.serving-prompt-art{width:96px;height:96px;border-radius:50%;display:grid;place-items:center;font-size:48px;box-shadow:inset 0 0 0 9px #ffffff75}.serving-prompt h2{font:600 27px 'Playfair Display';margin:2px 20px 0}.serving-prompt>p:not(.eyebrow){margin:0;color:var(--muted);font-size:14px}.serving-prompt label{font-size:11px;font-weight:700;color:#606258}.people-input-row{display:flex;align-items:center;gap:12px;margin:0 0 5px}.people-input-row button{width:38px;height:38px;border:1px solid var(--line);border-radius:50%;background:#fffefa;color:var(--green);font-size:21px;cursor:pointer}.people-input-row input{width:82px;height:46px;border:1px solid #dedbd1;border-radius:8px;background:#fffefa;text-align:center;font:600 19px 'DM Sans';color:var(--ink)}.serving-prompt .submit-button{width:100%;max-width:340px}
@media(max-width:560px){.serving-prompt{padding:28px 20px}.serving-prompt h2{font-size:23px}.serving-prompt .detail-close{right:15px;top:9px}}

.meal-planner{margin:28px 0 14px;padding:clamp(22px,3.2vw,34px);border:1px solid #e5dfd1;border-radius:15px;background:linear-gradient(140deg,#f0eee6,#faf8f2 58%,#f1eee4);box-shadow:0 10px 28px #302b1b08}.planner-heading{display:flex;justify-content:space-between;align-items:flex-start;gap:18px;margin-bottom:20px}.planner-heading h2{font:600 clamp(24px,3vw,30px) 'Playfair Display';margin:0 0 7px}.planner-heading p:not(.eyebrow){font-size:12px;line-height:1.6;color:var(--muted);margin:0;max-width:650px}.planner-sync{border:1px solid #d9ddcf;background:#f8faf5;color:var(--green);border-radius:30px;padding:7px 11px;font-size:10px;white-space:nowrap}.planner-week{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:8px}.planner-day{min-width:0;min-height:112px;padding:11px 9px;border:1px solid #e4e1d8;border-radius:9px;background:#fffefa}.planner-day h3{font:600 12px 'Playfair Display';margin:0 0 9px;color:#41483d}.planner-day-empty{font-size:10px;color:#aaa69a;margin:0;line-height:1.5}.planned-meal{display:flex;align-items:flex-start;gap:4px;padding:5px 0;border-top:1px solid #f0ede6}.planned-meal-name{border:0;padding:0;background:none;text-align:left;color:var(--ink);font:600 10px/1.4 'DM Sans';cursor:pointer;min-width:0;flex:1}.planned-meal-name small{display:block;color:var(--muted);font-size:9px;font-weight:400;margin-top:2px}.remove-planned-meal{border:0;background:transparent;color:#96958c;border-radius:50%;width:20px;height:20px;font:16px 'DM Sans';cursor:pointer;flex:0 0 20px}.remove-planned-meal:hover{background:#f2ece2;color:#a34f39}.shopping-list-panel{margin-top:20px;padding-top:18px;border-top:1px solid #ddd9ce}.shopping-list-heading{display:flex;justify-content:space-between;align-items:center;margin-bottom:10px}.shopping-list-heading .eyebrow{margin-bottom:4px}.shopping-list-heading h3{font:600 20px 'Playfair Display';margin:0}.shopping-list-heading h3 span{font:500 11px 'DM Sans';color:#96958c}.copy-list-button{border:1px solid #d9d9cc;border-radius:7px;background:#fffefa;color:var(--green);padding:9px 12px;font:600 10px 'DM Sans';cursor:pointer}.copy-list-button:hover:not(:disabled){background:#f6f7f0}.copy-list-button:disabled{opacity:.45;cursor:default}.shopping-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:4px 18px}.shopping-empty{font-size:11px;color:var(--muted);margin:3px 0}.shopping-item{display:flex;align-items:flex-start;gap:9px;padding:8px 9px;border:1px solid transparent;border-radius:7px;background:#fffefa;color:#53564e;font-size:11px;line-height:1.45;cursor:pointer}.shopping-item:hover{border-color:#e4e1d8}.shopping-item input{margin:1px 0 0;accent-color:var(--green);flex:0 0 15px}.shopping-item.checked span{text-decoration:line-through;color:#a4a399}.plan-add-row{display:flex;align-items:center;gap:9px;flex-wrap:wrap;margin:14px 0 6px;padding:12px;background:#f7f5ef;border:1px solid #eee9dd;border-radius:8px}.plan-add-row label{font-size:10px;font-weight:700;color:#66685f}.plan-add-row select{height:34px;border:1px solid #dedbd1;border-radius:6px;background:#fffefa;color:var(--ink);padding:0 8px;font:11px 'DM Sans'}.plan-add-button{border:0;border-radius:6px;background:var(--green);color:white;padding:9px 12px;font:600 10px 'DM Sans';cursor:pointer}.plan-add-button:hover{background:#40543b}.plan-add-row span{font-size:10px;color:var(--green)}
@media(max-width:900px){.planner-week{grid-template-columns:repeat(4,minmax(0,1fr))}}
@media(max-width:600px){.meal-planner{padding:21px 16px}.planner-heading{flex-direction:column;gap:10px}.planner-week{grid-template-columns:repeat(2,minmax(0,1fr))}.planner-day{min-height:92px}.shopping-list{grid-template-columns:1fr}.plan-add-row{gap:7px}.plan-add-row label{width:100%}}

/* Recipe photos supplied with the cookbook update */
.card-art.has-photo:before{width:80%;height:80%;max-width:155px;max-height:155px}
.card-photo{position:relative;z-index:1;width:88%;height:88%;object-fit:contain;filter:drop-shadow(0 8px 8px #483b2830)}
.detail-art.has-photo{font-size:0}
.detail-photo{width:100%;height:100%;object-fit:contain;filter:drop-shadow(0 10px 10px #483b2830)}
.serving-prompt-art.has-photo{font-size:0;overflow:hidden}
.prompt-photo{width:100%;height:100%;object-fit:contain;filter:drop-shadow(0 4px 4px #483b2830)}

/* Match the meal planner to the cookbook's ingredient finder panel. */
.meal-planner{position:relative;overflow:hidden;margin:30px 0 12px;padding:clamp(24px,4vw,38px);border:1px solid #e2dccd;border-radius:16px;background:linear-gradient(135deg,#f1eee4 0%,#f8f5ee 55%,#eee9dc 100%);box-shadow:0 12px 32px #302b1b0a}
.meal-planner:before{content:'';position:absolute;left:0;top:0;bottom:0;width:5px;background:var(--orange)}
.planner-heading{align-items:center;margin-bottom:20px}
.planner-heading h2{font:600 clamp(25px,3vw,31px) 'Playfair Display';letter-spacing:-.4px;margin:0 0 8px}
.planner-heading p:not(.eyebrow){font-size:13px;line-height:1.65;color:var(--muted);margin:0;max-width:760px}
.planner-sync{margin-top:3px}
.planner-week{gap:10px}
.planner-day{min-height:122px;padding:13px 11px;border-color:#e2dccd;box-shadow:0 2px 6px #302b1b06;transition:border-color .15s,transform .15s}
.planner-day:hover{border-color:#c9c5b8;transform:translateY(-1px)}
.planner-day h3{font-size:13px;padding-bottom:8px;border-bottom:1px solid #f0ede6}
.planner-day-empty{font-size:11px;color:#969287}
.shopping-list-panel{margin-top:22px;padding-top:20px;border-top:1px solid #ddd9ce}
.shopping-list-heading{align-items:end;margin-bottom:12px}
.shopping-list-heading h3{font:600 22px 'Playfair Display'}
.copy-list-button{border-radius:8px;padding:10px 15px;font:600 11px 'DM Sans';transition:background .15s,transform .15s}
.shopping-empty{font-size:12px;color:var(--muted);padding:8px 0}
@media(max-width:600px){.meal-planner{margin:22px 0 5px;padding:22px 17px}.planner-heading{align-items:flex-start}.planner-week{gap:7px}.planner-day{min-height:105px;padding:10px 8px}.planner-day h3{font-size:12px}.shopping-list-heading{align-items:flex-start;gap:10px}}
