:root{--border:#ddd;--muted:#666}*{box-sizing:border-box}body{color:#222;margin:0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,sans-serif}.container{max-width:960px;margin:0 auto;padding:1rem}.container.narrow{max-width:400px;padding-top:4rem}.muted{color:var(--muted);font-size:.875rem}.error{color:#b00}.filters{flex-wrap:wrap;gap:.5rem;margin:1rem 0;display:flex}.filters input,.filters select,.filters button{border:1px solid var(--border);border-radius:6px;padding:.5rem .75rem;font-size:1rem}.filters input[type=search]{flex:1;min-width:200px}.filters button{color:#fff;cursor:pointer;background:#222;border-color:#222}.grid{grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:1rem;margin:1rem 0;display:grid}.card{border:1px solid var(--border);color:inherit;border-radius:8px;flex-direction:column;text-decoration:none;transition:box-shadow .15s;display:flex;overflow:hidden}.card:hover{box-shadow:0 2px 10px #00000026}.card-img{position:relative}.card-rating-badge{position:absolute;top:.5rem;right:.5rem}.card-wrap{flex-direction:column;display:flex;position:relative}.card-wrap>.card{flex:1}.card-overlay{pointer-events:none;position:absolute;inset:0}.card-overlay button{pointer-events:auto;cursor:pointer}.card-badge{background:#fff;border-radius:50%;justify-content:center;align-items:center;width:1.75rem;height:1.75rem;font-size:.9rem;display:flex;box-shadow:0 1px 3px #0000004d}.card img,.card-img-placeholder{aspect-ratio:4/3;object-fit:cover;background:#f2f2f2;width:100%;display:block}.card-body{padding:.5rem .75rem .75rem}.card-title{margin-bottom:.25rem;font-size:.95rem;font-weight:600}.pagination{justify-content:center;align-items:center;gap:1rem;margin:1.5rem 0;display:flex}.pagination button{cursor:pointer;background:#fff;border:1px solid #222;border-radius:6px;padding:.4rem 1rem;font-size:.95rem}.pagination button:disabled{border-color:var(--border);color:var(--muted);cursor:default}.hero{object-fit:cover;border-radius:8px;width:100%;max-height:420px}.steps>li{margin-bottom:1rem}.steps>li>p{margin:0 0 .25rem}.amounts{color:var(--muted);margin:0;font-size:.875rem}.navbar{border-bottom:1px solid var(--border);align-items:center;gap:1rem;padding:.5rem 1rem;display:flex}.nav-right{align-items:center;gap:1rem;margin-left:auto;display:flex}.week-menu{display:inline-flex;position:relative}.week-button{color:var(--muted);cursor:pointer;white-space:nowrap;background:0 0;border:none;padding:.25rem;font-size:.85rem}.week-menu .dropdown{border:1px solid var(--border);z-index:10;background:#fff;border-radius:8px;flex-direction:column;width:200px;max-height:20rem;padding:.25rem;display:flex;position:absolute;top:calc(100% + .25rem);right:0;overflow-y:auto;box-shadow:0 4px 16px #0000001f}.week-option{text-align:left;cursor:pointer;background:0 0;border:none;border-radius:6px;padding:.4rem .5rem;font-size:.9rem}.week-option:hover{background:#f4f4f4}.week-option.active{font-weight:700}.week-count{float:right;color:var(--muted);font-size:.8rem;font-weight:400}.week-option.new-plan{color:var(--muted);border-bottom:1px solid var(--border);border-radius:6px 6px 0 0;margin-bottom:.15rem}.stage-nav{border:1px solid var(--border);border-radius:8px;gap:2px;padding:2px;display:inline-flex}.stage-nav a{color:var(--muted);border-radius:6px;padding:.3rem .8rem;font-size:.95rem;text-decoration:none}.stage-nav a.active{color:#fff;background:#222;font-weight:600}.settings-link{color:inherit;border-bottom:1px solid var(--border);margin-bottom:.5rem;padding-bottom:.5rem;text-decoration:none;display:block}.settings-menu{display:inline-flex;position:relative}.icon-button{cursor:pointer;color:var(--muted);background:0 0;border:none;align-items:center;padding:.25rem;display:inline-flex}.icon-button:hover{color:#222}.settings-menu .dropdown{border:1px solid var(--border);z-index:10;background:#fff;border-radius:8px;width:240px;padding:.75rem 1rem;position:absolute;top:calc(100% + .25rem);right:0;box-shadow:0 4px 16px #0000001f}.settings-menu .dropdown label{margin-bottom:.25rem;display:block}.settings-menu .dropdown input[type=range]{width:100%}.container.wide{max-width:1240px}.plan-layout{padding-bottom:5rem}.plan-main{min-width:0}.picks-bar{z-index:10;height:4.25rem;padding:0 .75rem calc(env(safe-area-inset-bottom) / 2);border-top:1px solid var(--border);background:#fff;align-items:center;gap:.75rem;display:flex;position:fixed;bottom:0;left:0;right:0;box-shadow:0 -4px 12px #00000014}.picks-open{cursor:pointer;background:0 0;border:0;flex:1;align-items:center;height:100%;padding:0;display:flex}.picks-empty{flex:1}.picks-stack{display:flex}.picks-stack img,.picks-stack .picks-thumb-placeholder,.picks-more{object-fit:cover;background:#eee;border:2px solid #fff;border-radius:50%;width:2.4rem;height:2.4rem;margin-left:-.75rem}.picks-stack>:first-child{margin-left:0}.picks-more{justify-content:center;align-items:center;font-size:.75rem;font-weight:600;display:flex}.picks-shop{color:#fff;white-space:nowrap;background:#222;border-radius:999px;padding:.5rem .9rem;font-size:.9rem;text-decoration:none}.picks-backdrop{z-index:20;background:#00000059;display:none;position:fixed;inset:0}.picks-panel.open .picks-backdrop{display:block}.picks-sheet{z-index:21;max-height:65vh;padding:0 1rem env(safe-area-inset-bottom);background:#fff;border-radius:16px 16px 0 0;flex-direction:column;transition:transform .25s;display:flex;position:fixed;bottom:0;left:0;right:0;transform:translateY(100%)}.picks-panel.open .picks-sheet{transform:translateY(0)}.picks-grab{cursor:pointer;background:#ccc;border-radius:2px;width:2.5rem;height:4px;margin:.5rem auto .75rem}.picks-head{justify-content:space-between;align-items:baseline;gap:.75rem;margin-bottom:.25rem;display:flex}.picks-head h2{margin:0;font-size:1.05rem}.picks-proteins{flex-wrap:wrap;gap:.5rem;font-size:.85rem;display:flex}.picks-list{margin:0;padding:0 0 1rem;list-style:none;overflow-y:auto}.picks-list li{border-bottom:1px solid #eee;align-items:center;gap:.6rem;padding:.5rem 0;font-size:.9rem;display:flex}.picks-list img,.picks-list .picks-thumb-placeholder{object-fit:cover;background:#eee;border-radius:6px;flex:none;width:3rem;height:3rem}.picks-name{flex:1}.picks-remove{color:var(--muted);cursor:pointer;background:0 0;border:0;padding:.25rem .5rem;font-size:1.1rem}@media (min-width:900px){.plan-layout{grid-template-columns:1fr 280px;align-items:start;gap:1.5rem;padding-bottom:0;display:grid}.picks-bar,.picks-backdrop,.picks-panel.open .picks-backdrop,.picks-grab{display:none}.picks-sheet{border:1px solid var(--border);border-radius:8px;max-height:calc(100vh - 2rem);margin-top:1rem;padding:.75rem 1rem 0;transition:none;position:sticky;top:1rem;transform:none}}.card-button{border:1px solid var(--border);font:inherit;text-align:left;cursor:pointer;background:0 0;padding:0}.card-button.selected{border-color:#222;outline:2px solid #222}.card-button.selected img{opacity:.75}.card-button.selected .card-img:after{content:"✓";color:#fff;background:#222;border-radius:50%;justify-content:center;align-items:center;width:1.75rem;height:1.75rem;font-size:.95rem;display:flex;position:absolute;top:.5rem;left:.5rem}.shop-sections{columns:2;column-gap:1.5rem}@media (max-width:700px){.shop-sections{columns:1}}.shop-sections section{border-radius:8px;margin:0 0 .35rem;padding:.5rem 1rem}.shop-sections section:nth-child(2n){background:#f6f5f2}.shop-sections h2{color:var(--muted);margin:0 0 .5rem;font-size:.8rem;font-weight:600}.shop-sections section>.muted{margin:-.25rem 0 .5rem;font-size:.85rem}.grocery{margin:0;padding:0;list-style:none}.grocery li{break-inside:avoid;border-bottom:1px solid #e8e6e1;padding:.4rem 0}.grocery label{cursor:pointer;align-items:center;gap:.6rem;display:flex}.grocery input[type=checkbox]{flex-shrink:0;width:1.3rem;height:1.3rem}.grocery a{color:inherit;text-decoration:none}.grocery li.checked a{color:var(--muted);text-decoration:line-through}.grocery-recipes{flex-shrink:0;gap:.2rem;margin-left:auto;display:flex}.grocery-recipes button{font:inherit;color:var(--muted);cursor:pointer;background:0 0;border:1px solid #e8e6e1;border-radius:999px;min-width:1.3rem;padding:.2rem .3rem;font-size:.7rem;line-height:1;position:relative}.grocery-recipes .tip{z-index:10;text-align:left;white-space:normal;color:#fff;pointer-events:none;background:#333;border-radius:.35rem;width:max-content;max-width:14rem;padding:.35rem .55rem;font-size:.8rem;line-height:1.3;display:none;position:absolute;bottom:calc(100% + .35rem);right:0;box-shadow:0 2px 6px #0003}.grocery-recipes button.open .tip{display:block}@media (hover:hover){.grocery-recipes button:hover .tip{display:block}}.card.cooked{opacity:.55}.card.cooked img{filter:grayscale(.6)}.card-badge{color:inherit;border:0;padding:0}.cook-check{position:absolute;top:.5rem;left:.5rem;box-shadow:inset 0 0 0 2px #bbb,0 1px 3px #0000004d}.cook-check.checked{color:#fff;background:#222;font-weight:700;box-shadow:0 1px 3px #0000004d}.cook-rate{gap:.25rem;display:flex;position:absolute;top:.5rem;right:.5rem}.cook-count{margin:.5rem 0 0}.cook-previous h2{margin:2rem 0 0;font-size:1.05rem}.container.cook{max-width:640px}html.cook-snap{scroll-snap-type:y mandatory}.cook-header{z-index:10;border-bottom:1px solid var(--border);background:#fff;position:sticky;top:0}.cook-section{scroll-snap-align:start;opacity:.35;cursor:pointer;border-bottom:1px solid #eee;padding:1.25rem 0;transition:opacity .2s}.cook-section.next{opacity:.7}.cook-section.current{opacity:1;cursor:auto}.cook-section>:first-child{margin-top:0}.cook-section-finish{border-bottom:none;min-height:100svh}.cook-finish-button{color:#fff;cursor:pointer;background:#222;border:1px solid #222;border-radius:8px;width:100%;margin-bottom:1rem;padding:1.1rem 1rem;font-size:1.15rem}.cook-finish-button:disabled{background:var(--border);border-color:var(--border)}.cook-toolbar{justify-content:space-between}.cook-steps{flex-wrap:nowrap;margin:.25rem 0 .5rem;display:flex}.cook-steps button{cursor:pointer;background:0 0;border:none;flex:1 1 0;justify-content:center;align-items:center;min-width:0;max-width:1.6rem;height:1.75rem;padding:0;display:flex}.cook-steps button:before{content:"";background:var(--dot);opacity:.25;border-radius:50%;flex-shrink:0;width:.65rem;height:.65rem;transition:opacity .2s}.cook-steps button.done:before{opacity:1}.cook-steps button{--dot:#333}.cook-steps button.ingredients{--dot:#d08a1a}.cook-steps button.finish{--dot:#2e8b57}.cook-ingredient-groups{columns:2;column-gap:1.25rem}@media (max-width:380px){.cook-ingredient-groups{columns:1}}.cook-ingredients{margin:0 0 .75rem;padding:0;font-size:1.1rem;line-height:1.35;list-style:none}.cook-ingredients li{margin-bottom:.3rem}h3.cook-location{text-transform:uppercase;letter-spacing:.05em;color:#444;break-after:avoid;background:#faf3e8;border-left:3px solid #d08a1a;margin:0 0 .4rem;padding:.2rem .5rem;font-size:.85rem}.cook-amounts{flex-wrap:wrap;gap:.5rem;margin:0 0 1rem;padding:0;list-style:none;display:flex}.cook-amounts li{border:1px solid var(--border);background:#f6f6f6;border-radius:999px;padding:.35rem .9rem;font-size:1rem}.cook-step{font-size:1.4rem;line-height:1.5}.cook-rating{gap:.5rem;margin:.5rem 0 1rem;display:flex}.cook-rating button{cursor:pointer;background:#fff;border:1px solid #222;border-radius:999px;padding:.6rem 1.25rem;font-size:1rem}.cook-rating button.selected{color:#fff;background:#222}
