:root{--background:#f7f4ee;--surface:#fffdf8;--surface-soft:#eee7d9;--ink:#1d2520;--muted:#667066;--line:#ddd4c4;--accent:#176f5a;--accent-strong:#0f4f41;--hot:#c44821;--gold:#c89a35;--shadow:0 18px 50px rgba(34,38,32,0.1)}*{box-sizing:border-box}body{margin:0;background:var(--background);color:var(--ink);font-family:Arial,Helvetica,sans-serif}a{color:inherit;text-decoration:none}button,input{font:inherit}main{min-height:100vh}.planner-shell{max-width:1440px;margin:0 auto;padding:28px clamp(16px,4vw,48px) 148px}.topbar{align-items:center;display:flex;gap:24px;justify-content:space-between;margin-bottom:22px}.eyebrow{color:var(--accent);font-size:.78rem;font-weight:800;letter-spacing:0;margin:0 0 6px;text-transform:uppercase}h1,h2,h3,p{margin-top:0}h1{font-family:Georgia,Times New Roman,serif;font-size:clamp(2rem,4vw,4.1rem);line-height:.95;margin-bottom:0;max-width:760px}.brand-logo{display:block;height:auto;max-height:92px;max-width:min(360px,72vw);object-fit:contain;width:100%}.summary-pill{align-items:center;background:var(--surface);border:1px solid var(--line);border-radius:999px;display:flex;flex:0 0 auto;gap:8px;padding:11px 15px}.tag-row,.week-tabs{display:flex;gap:10px;overflow-x:auto;padding-bottom:4px;scrollbar-width:thin}.week-tabs{border-bottom:1px solid var(--line);margin-bottom:20px}.week-tab{border-bottom:3px solid transparent;display:grid;grid-gap:2px;gap:2px;min-width:138px;padding:14px 6px 13px}.week-tab span{font-weight:800}.week-tab small{color:var(--muted)}.week-tab.active{border-color:var(--accent);color:var(--accent-strong)}.controls{align-items:flex-start;display:grid;grid-gap:14px;gap:14px;grid-template-columns:minmax(260px,390px) 1fr;margin-bottom:28px}.search-form{align-items:center;background:var(--surface);border:1px solid var(--line);display:flex;gap:10px;min-height:48px;padding:0 14px}.search-form input{background:transparent;border:0;color:var(--ink);min-width:0;outline:0;width:100%}.tag{align-items:center;background:var(--surface);border:1px solid var(--line);display:inline-flex;font-size:.9rem;font-weight:700;min-height:40px;padding:0 13px;white-space:nowrap}.tag.active{background:var(--accent-strong);border-color:var(--accent-strong);color:white}.content-grid{display:block}.empty-state{background:var(--surface);border:1px solid var(--line);padding:28px}.empty-state h2{font-size:1.2rem;margin-bottom:0}.section-heading{align-items:flex-end;display:flex;justify-content:space-between;margin-bottom:18px}.section-heading h2{font-size:clamp(1.45rem,2vw,2rem);margin-bottom:0}.section-heading>span{color:var(--muted);font-weight:700}.cards-grid{display:grid;grid-gap:28px 22px;gap:28px 22px;grid-template-columns:repeat(auto-fill,minmax(230px,1fr))}.recipe-card{display:grid;grid-template-rows:auto 1fr;min-width:0;position:relative}.recipe-card.selected .image-wrap{outline:4px solid rgba(23,111,90,.32);outline-offset:3px}.recipe-card.chosen .image-wrap{outline:4px solid rgba(200,154,53,.5);outline-offset:3px}.recipe-card-link{display:grid;grid-template-rows:auto 1fr}.image-wrap{aspect-ratio:4/5;background:var(--surface-soft);overflow:hidden;position:relative}.image-wrap img,.modal-image img{object-fit:cover}.badges{display:flex;flex-wrap:wrap;gap:8px;left:0;padding:12px;position:absolute;top:0}.badges span{background:rgba(255,253,248,.94);color:var(--ink);font-size:.79rem;font-weight:800;padding:7px 10px}.info-dot{align-items:center;background:var(--surface);border:2px solid rgba(29,37,32,.4);border-radius:50%;bottom:12px;color:rgba(29,37,32,.65);display:flex;font-size:.84rem;font-weight:900;height:24px;justify-content:center;position:absolute;right:12px;width:24px}.card-body{padding:15px 2px 0}.title-row{align-items:flex-start;display:flex;gap:8px;min-height:54px}.title-row h3{display:-webkit-box;flex:1 1;font-size:1rem;font-weight:500;line-height:1.35;margin-bottom:0;overflow:hidden;-webkit-box-orient:vertical;-webkit-line-clamp:2}.spice{color:var(--hot);display:flex;flex:0 0 auto;margin-top:2px}.card-body p{color:var(--muted);font-size:.9rem;font-weight:700;margin-bottom:6px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.portion-toolbar{align-items:center;display:flex;flex-wrap:wrap;font-size:1.1rem;font-weight:800;gap:10px;margin-bottom:22px}.portion-control{background:#efe3cf;display:inline-grid;grid-template-columns:repeat(2,minmax(112px,1fr));padding:4px}.portion-control button{background:transparent;border:0;color:var(--ink);cursor:pointer;font-weight:900;min-height:42px;padding:0 14px}.portion-control button.active{box-shadow:0 1px 0 rgba(29,37,32,.08)}.portion-control button.active,.select-recipe{background:var(--surface);color:var(--accent-strong)}.select-recipe{align-items:center;border:1px solid var(--line);cursor:pointer;display:inline-flex;font-weight:800;gap:8px;justify-content:center;margin-top:10px;min-height:42px;padding:0 14px;width:100%}.select-recipe.active{background:var(--accent-strong);border-color:var(--accent-strong);color:white}.ingredients-bar{background:#1b241f;bottom:0;color:white;left:0;padding:14px clamp(16px,4vw,48px);position:fixed;width:100%;z-index:40}.ingredients-bar-inner{align-items:center;display:flex;gap:18px;justify-content:space-between;margin:0 auto;max-width:1440px}.selected-preview{display:flex;flex:0 0 auto}.selected-thumb{background:#334039;border:2px solid #1b241f;border-radius:50%;height:44px;margin-left:-8px;overflow:hidden;position:relative;width:44px}.selected-thumb:first-child{margin-left:0}.selected-thumb img{object-fit:cover}.selection-status{display:grid;flex:1 1;grid-gap:3px;gap:3px;min-width:0}.selection-status strong{font-size:1rem}.selection-status span{color:rgba(255,255,255,.74);font-size:.9rem}.ingredients-action{align-items:center;background:#f5e6bd;border:0;color:#1b241f;cursor:pointer;display:inline-flex;flex:0 0 auto;font-weight:900;gap:12px;justify-content:center;min-height:48px;padding:0 22px}.ingredients-action:disabled{background:#334039;color:rgba(255,255,255,.64);cursor:not-allowed}.shopping-layer{align-items:center;display:flex;inset:0;justify-content:center;padding:clamp(16px,4vw,48px);position:fixed;z-index:60}.shopping-backdrop{background:rgba(20,26,22,.68);border:0;inset:0;position:fixed}.shopping-modal{background:var(--surface);box-shadow:0 28px 90px rgba(10,14,12,.38);max-height:min(760px,calc(100vh - 48px));max-width:760px;overflow-y:auto;padding:28px;position:relative;width:100%;z-index:1}.shopping-header{align-items:flex-start;border-bottom:1px solid var(--line);display:flex;gap:20px;justify-content:space-between;padding-bottom:18px}.shopping-header h2{font-size:clamp(1.5rem,3vw,2.2rem);margin-bottom:0}.shopping-serving{color:var(--muted);font-weight:800;margin:8px 0 0}.shopping-close{align-items:center;background:var(--surface);border:1px solid var(--line);border-radius:50%;cursor:pointer;display:flex;height:40px;justify-content:center;width:40px}.shopping-recipes{display:flex;flex-wrap:wrap;gap:8px;margin:18px 0}.shopping-recipes span{background:#edf4e9;color:#315137;font-size:.82rem;font-weight:800;padding:7px 9px}.combine-toggle{align-items:center;background:#f1eadf;cursor:pointer;display:flex;font-weight:900;gap:10px;margin-bottom:18px;padding:12px}.combine-toggle input{accent-color:var(--accent-strong);height:18px;width:18px}.shopping-actions{align-items:center;display:flex;gap:12px;margin-bottom:18px}.copy-ingredients{align-items:center;background:var(--accent-strong);border:0;color:white;cursor:pointer;display:inline-flex;font-weight:900;gap:8px;min-height:42px;padding:0 14px}.shopping-actions>span{color:var(--muted);font-size:.9rem;font-weight:800}.shopping-list{display:grid;grid-gap:10px;gap:10px;list-style:none;margin:0;padding:0}.shopping-list li{background:#f1eadf;color:var(--ink);display:grid;grid-gap:4px;gap:4px;margin-bottom:0;padding:12px}.shopping-list small{color:var(--muted)}.modal-layer{align-items:center;display:flex;inset:0;justify-content:center;overflow:hidden;padding:clamp(16px,4vw,48px);position:fixed;z-index:50}.modal-backdrop{background:rgba(20,26,22,.68);inset:0;position:fixed}.recipe-modal{background:var(--surface);box-shadow:0 28px 90px rgba(10,14,12,.38);display:grid;grid-template-columns:minmax(280px,.95fr) minmax(320px,1.05fr);height:min(860px,calc(100vh - 48px));max-width:1040px;overflow:hidden;width:100%;z-index:1}.modal-image,.recipe-modal{min-height:0;position:relative}.modal-image{background:var(--surface-soft)}.modal-copy{min-height:0;overflow-y:auto;padding:30px;position:relative}.modal-copy h2{font-size:clamp(1.45rem,2.5vw,2.15rem);line-height:1.18;margin-bottom:10px;padding-right:42px}.modal-close{align-items:center;background:var(--surface);border:1px solid var(--line);border-radius:50%;display:flex;float:right;height:40px;justify-content:center;position:-webkit-sticky;position:sticky;top:0;width:40px;z-index:2}.modal-close:hover{background:var(--accent-strong);border-color:var(--accent-strong);color:white}.description{color:var(--muted);line-height:1.5}.metric-grid{display:grid;grid-gap:8px;gap:8px;grid-template-columns:repeat(3,1fr);margin:18px 0}.metric-grid div{align-items:center;background:#f1eadf;display:grid;grid-gap:7px;gap:7px;justify-items:center;min-height:76px;padding:10px 6px;text-align:center}.metric-grid span{font-size:.82rem;font-weight:800}.detail-block{border-top:1px solid var(--line);padding-top:18px}.detail-block+.detail-block{margin-top:18px}.detail-block h3{font-size:1rem;margin-bottom:12px}.ingredient-cloud{display:flex;flex-wrap:wrap;gap:8px}.ingredient-cloud span{background:#edf4e9;color:#315137;font-size:.83rem;font-weight:700;padding:7px 9px}.ingredient-cloud.warning span{background:#fff1df;color:#8a3d18}ol{margin:0;padding-left:20px}li{color:var(--muted);line-height:1.45;margin-bottom:8px}@media (max-width:860px){.modal-layer{align-items:center;padding:14px}.recipe-modal{grid-template-columns:1fr;grid-template-rows:minmax(150px,32vh) minmax(0,1fr);height:calc(100vh - 28px)}.modal-image{aspect-ratio:16/10;min-height:0}}@media (max-width:760px){.planner-shell{padding-bottom:190px;padding-top:20px}.topbar{align-items:flex-start;flex-direction:column}.controls{grid-template-columns:1fr}.cards-grid{grid-template-columns:repeat(auto-fill,minmax(175px,1fr))}.title-row{min-height:74px}.metric-grid{grid-template-columns:1fr}.modal-copy{padding:22px}.modal-copy h2{padding-right:36px}.ingredients-bar-inner{align-items:stretch;display:grid;grid-gap:12px;gap:12px}.ingredients-action{width:100%}.portion-toolbar{align-items:stretch;display:grid}.portion-control{width:100%}.shopping-layer{align-items:flex-end;padding:12px}.shopping-modal{max-height:calc(100vh - 24px);padding:22px}}