:root{--bg: #fbfaf7;--surface: #ffffff;--border: #e6e1d8;--text: #241f1a;--muted: #6d6459;--accent: #a4552b;--accent-soft: #f6ece5;--danger: #a02c2c;--radius: 10px;--shadow: 0 1px 2px rgb(36 31 26 / 6%), 0 4px 12px rgb(36 31 26 / 4%);color-scheme:light dark}@media(prefers-color-scheme:dark){:root{--bg: #17150f;--surface: #201d16;--border: #362f24;--text: #f0ebe2;--muted: #a99e8e;--accent: #e08e5c;--accent-soft: #2c2117;--danger: #e0736b;--shadow: 0 1px 2px rgb(0 0 0 / 30%), 0 4px 14px rgb(0 0 0 / 24%)}}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text);font:16px/1.55 ui-sans-serif,system-ui,-apple-system,Segoe UI,sans-serif;-webkit-font-smoothing:antialiased}a{color:inherit}.shell{min-height:100dvh;display:flex;flex-direction:column}.topbar{display:flex;align-items:center;gap:.75rem;padding:.75rem 1rem;border-bottom:1px solid var(--border);background:var(--surface);position:sticky;top:0;z-index:10}.topbar__brand{font-weight:650;letter-spacing:-.01em;text-decoration:none;margin-right:auto}.topbar__brand span{color:var(--accent)}.nav{display:flex;gap:.25rem}.nav a{padding:.35rem .7rem;border-radius:999px;text-decoration:none;color:var(--muted);font-size:.9rem}.nav a[data-active=true]{background:var(--accent-soft);color:var(--accent);font-weight:600}main{flex:1;width:min(72rem,100%);margin:0 auto;padding:1.25rem 1rem 4rem}.btn{font:inherit;font-size:.92rem;padding:.45rem .9rem;border-radius:var(--radius);border:1px solid var(--border);background:var(--surface);color:var(--text);cursor:pointer;min-height:40px}.btn:hover{border-color:var(--accent)}.btn--primary{background:var(--accent);border-color:var(--accent);color:#fff;font-weight:600}.btn--danger{color:var(--danger);border-color:color-mix(in srgb,var(--danger) 40%,transparent)}.btn--ghost{border-color:transparent;background:transparent;color:var(--muted)}.btn:disabled{opacity:.5;cursor:not-allowed}input,textarea,select{font:inherit;padding:.5rem .65rem;border-radius:var(--radius);border:1px solid var(--border);background:var(--surface);color:var(--text);width:100%;min-height:40px}label{display:block;font-size:.82rem;font-weight:600;color:var(--muted);margin-bottom:.3rem}.field{margin-bottom:.9rem}.row{display:flex;gap:.6rem;align-items:flex-end;flex-wrap:wrap}.page-head{display:flex;align-items:center;gap:.75rem;margin-bottom:1.25rem;flex-wrap:wrap}.page-head h1{font-size:1.5rem;margin:0 auto 0 0;letter-spacing:-.02em}.muted{color:var(--muted);font-size:.88rem}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow)}.recipe-grid{display:grid;gap:.9rem;grid-template-columns:1fr}@media(min-width:40rem){.recipe-grid{grid-template-columns:repeat(auto-fill,minmax(15rem,1fr))}}.recipe-card{display:flex;flex-direction:column;overflow:hidden;text-decoration:none;color:inherit}.recipe-card__img{aspect-ratio:3 / 2;width:100%;object-fit:cover;background:var(--accent-soft);display:block}.recipe-card__body{padding:.7rem .85rem .85rem}.recipe-card__title{font-weight:600;margin:0 0 .15rem}.empty{text-align:center;padding:3rem 1rem;color:var(--muted)}.ingredient-row{display:grid;grid-template-columns:5rem 8rem 1fr auto;gap:.5rem;align-items:center;margin-bottom:.5rem}@media(max-width:40rem){.ingredient-row{grid-template-columns:4.5rem 1fr auto}.ingredient-row .ingredient-row__note{grid-column:1 / -1}}.stat-strip{display:flex;gap:1.5rem;flex-wrap:wrap;padding:.75rem 1rem;margin-bottom:1.25rem}.stat-strip dt{font-size:.75rem;text-transform:uppercase;letter-spacing:.04em;color:var(--muted)}.stat-strip dd{margin:.1rem 0 0;font-weight:600}.banner{padding:.7rem .9rem;border-radius:var(--radius);background:var(--accent-soft);border:1px solid color-mix(in srgb,var(--accent) 25%,transparent);font-size:.9rem;margin-bottom:1rem}.banner--danger{background:color-mix(in srgb,var(--danger) 8%,transparent);border-color:color-mix(in srgb,var(--danger) 30%,transparent)}.instructions :is(h1,h2,h3){letter-spacing:-.01em}.instructions ul,.instructions ol{padding-left:1.3rem}dialog{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);color:var(--text);padding:1.25rem;width:min(28rem,calc(100vw - 2rem));box-shadow:var(--shadow)}dialog::backdrop{background:#00000059}.pantry{display:flex;flex-direction:column;gap:1rem}.rail{display:flex;gap:.4rem;overflow-x:auto;padding-bottom:.35rem;scrollbar-width:thin}.rail__tab{font:inherit;font-size:.85rem;display:flex;align-items:center;gap:.4rem;white-space:nowrap;padding:.4rem .8rem;border:1px solid var(--border);border-radius:999px;background:var(--surface);color:var(--muted);cursor:pointer;min-height:40px}.rail__tab[data-active=true]{background:var(--accent-soft);border-color:var(--accent);color:var(--accent);font-weight:600}.rail__count{font-size:.75rem;opacity:.7}.rail__tab--add{border-style:dashed}@media(min-width:52rem){.pantry{flex-direction:row;align-items:flex-start}.rail{flex-direction:column;overflow-x:visible;flex:0 0 12rem;position:sticky;top:4.5rem;gap:.25rem}.rail__tab{border-radius:var(--radius) 0 0 var(--radius);border-right-width:0;justify-content:flex-start;margin-right:-1px}.rail__count{margin-left:auto}.pantry__body{flex:1;min-width:0}}.pantry-list{list-style:none;margin:0;padding:0;display:grid;gap:.5rem}.pantry-item{display:flex;align-items:center;gap:.75rem;padding:.6rem .8rem}.pantry-item__icon{font-size:1.4rem;line-height:1}.pantry-item__main{min-width:0;flex:1}.pantry-item__name{margin:0;font-weight:600}.pantry-item__main p{margin:0}.pantry-item__actions{display:flex;gap:.25rem;flex-wrap:wrap;justify-content:flex-end}.pantry-item__actions .btn{padding:.35rem .6rem;min-height:36px}.nutrition-grid{display:grid;gap:0 .6rem;grid-template-columns:repeat(auto-fill,minmax(8rem,1fr))}.calendar__week{margin-bottom:1.25rem}.calendar__grid{display:grid;gap:.5rem;grid-template-columns:1fr}@media(min-width:56rem){.calendar__grid{grid-template-columns:repeat(7,1fr)}}.calendar__day{padding:.5rem;min-width:0}.calendar__day[data-today=true]{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent)}.calendar__daylabel{font-size:.78rem;text-transform:uppercase;letter-spacing:.04em;color:var(--muted);margin:0 0 .4rem}.calendar__slot{margin-bottom:.5rem}.calendar__slotname{font-size:.7rem;color:var(--muted);margin:0 0 .2rem}.calendar__add{font:inherit;width:100%;border:1px dashed var(--border);background:transparent;color:var(--muted);border-radius:6px;padding:.15rem;cursor:pointer;min-height:28px}.calendar__add:hover{border-color:var(--accent);color:var(--accent)}.plan-card{display:flex;align-items:center;gap:.35rem;background:var(--accent-soft);border-radius:6px;margin-bottom:.25rem;padding:.15rem}.plan-card__link{display:flex;align-items:center;gap:.35rem;flex:1;min-width:0;text-decoration:none;color:inherit}.plan-card__img{width:1.75rem;height:1.75rem;border-radius:4px;object-fit:cover;background:var(--border);flex:0 0 auto}.plan-card__title{font-size:.78rem;line-height:1.2;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.plan-card__remove{font:inherit;border:0;background:transparent;color:var(--muted);cursor:pointer;padding:0 .3rem;min-height:28px;min-width:28px}.plan-card__remove:hover{color:var(--danger)}.picker{list-style:none;margin:0;padding:0;max-height:60vh;overflow-y:auto}.picker__item{font:inherit;display:flex;align-items:center;gap:.6rem;width:100%;text-align:left;padding:.4rem;border:0;background:transparent;color:inherit;border-radius:var(--radius);cursor:pointer;min-height:44px}.picker__item:hover{background:var(--accent-soft)}.picker__img{width:2.25rem;height:2.25rem;border-radius:6px;object-fit:cover;background:var(--border);flex:0 0 auto}.shopping{list-style:none;margin:0;padding:0;display:grid;gap:.4rem}.shopping__item{display:flex;align-items:center;gap:.5rem;padding:.3rem .6rem}.shopping__item[data-checked=true] .shopping__text{text-decoration:line-through;opacity:.55}.shopping__label{display:flex;align-items:center;gap:.7rem;flex:1;min-width:0;margin:0;padding:.55rem 0;font-weight:400;font-size:1rem;color:var(--text);cursor:pointer}.shopping__label input[type=checkbox]{width:1.35rem;height:1.35rem;min-height:0;flex:0 0 auto;accent-color:var(--accent)}.snackbar{position:fixed;left:50%;transform:translate(-50%);bottom:max(1rem,env(safe-area-inset-bottom));z-index:100;display:flex;align-items:center;gap:.75rem;width:min(30rem,calc(100vw - 2rem));padding:.7rem .9rem;border-radius:var(--radius);background:var(--text);color:var(--bg);box-shadow:0 6px 24px #00000040;font-size:.92rem}.snackbar__action{font:inherit;font-weight:700;border:0;background:transparent;color:var(--accent);cursor:pointer;margin-left:auto;padding:.35rem .5rem;min-height:40px;text-transform:uppercase;letter-spacing:.03em;font-size:.82rem}.snackbar__close{font:inherit;border:0;background:transparent;color:inherit;opacity:.6;cursor:pointer;padding:.25rem}.plan-card[data-cooked=true]{background:transparent;border:1px dashed var(--border)}.plan-card[data-cooked=true] .plan-card__title{text-decoration:line-through;color:var(--muted)}.plan-card[data-cooked=true] .plan-card__img{filter:grayscale(1);opacity:.6}.week-nutrition{padding:.7rem .9rem;margin-top:.5rem}.week-nutrition__title{margin:0 0 .15rem;font-size:.85rem}.week-nutrition__basis{margin:0 0 .5rem;font-size:.78rem}.week-nutrition__list{margin:0;display:grid;gap:.15rem .9rem;grid-template-columns:repeat(auto-fill,minmax(8rem,1fr))}.week-nutrition__row{display:flex;justify-content:space-between;gap:.5rem;font-size:.84rem;border-bottom:1px solid var(--border);padding:.15rem 0}.week-nutrition__row dt{color:var(--muted)}.week-nutrition__row dd{margin:0;font-weight:600;white-space:nowrap}.week-nutrition__coverage{margin:.5rem 0 0;font-size:.78rem}@media(min-width:56rem){.calendar__week{display:flex;align-items:flex-start;gap:.75rem}.calendar__week .calendar__grid{flex:1;min-width:0}.week-nutrition{flex:0 0 13rem;margin-top:0;position:sticky;top:4.5rem}.week-nutrition__list{grid-template-columns:1fr}}.servings-control{display:flex;align-items:center;gap:.35rem}.servings-control input{width:4rem;text-align:center}.servings-control .btn{padding:.35rem .7rem}.ingredient-view{padding-left:1.2rem}.ingredient-view li{margin-bottom:.2rem}.unit-toggle{padding:0 .35rem;min-height:24px;font-size:.85rem;line-height:1}
