:root{--bg: #f6f4f1;--surface: #ffffff;--text: #1d1b18;--muted: #6e6760;--border: #e7e2da;--accent: #2b2824;--accent-hover: #000000;--accent-soft: #ece8e2;--danger: #b3261e;--ok: #2f7d4f;--radius: 10px;--shadow: 0 1px 2px rgba(30, 22, 14, .05), 0 8px 24px rgba(30, 22, 14, .06);--font-sans: system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;--font-serif: "Iowan Old Style", "Palatino Linotype", Palatino, Georgia, serif}*{box-sizing:border-box}body{margin:0;font-family:var(--font-sans);color:var(--text);background:var(--bg);line-height:1.55;-webkit-font-smoothing:antialiased}a{color:var(--accent);text-decoration:none}a:hover{text-decoration:underline}main p a{text-decoration:underline;text-underline-offset:2px}h1{font-family:var(--font-serif);font-weight:600;font-size:1.95rem;letter-spacing:.2px;margin:0 0 .35rem}h2{font-family:var(--font-serif);font-weight:600;font-size:1.25rem;margin:1.6rem 0 .5rem}.page-intro{color:var(--muted);margin:0 0 1.75rem}.page-head{display:flex;align-items:baseline;justify-content:space-between;gap:1rem;flex-wrap:wrap}.form-narrow{max-width:620px}.btn-link{font-weight:500;padding:.5rem .95rem;border:1px solid var(--border);border-radius:8px;background:var(--surface);color:var(--text);white-space:nowrap}.btn-link:hover{border-color:#d8cdbd;background:#fbf7f1;text-decoration:none}code{font-family:ui-monospace,SF Mono,Menlo,monospace;font-size:.86em;background:#f0e9df;padding:.05rem .32rem;border-radius:4px}.site-header{position:sticky;top:0;z-index:10;background:#faf7f2d1;-webkit-backdrop-filter:saturate(180%) blur(8px);backdrop-filter:saturate(180%) blur(8px);border-bottom:1px solid var(--border)}.site-header-inner{max-width:960px;margin:0 auto;display:flex;align-items:center;gap:1.5rem;padding:.85rem 1.25rem}.wordmark{font-family:var(--font-serif);font-size:1.35rem;font-weight:600;color:var(--text)}.wordmark:hover{text-decoration:none}.site-nav{display:flex;gap:.2rem;margin-left:auto;align-items:center}.site-nav a{color:var(--muted);padding:.4rem .7rem;border-radius:7px;font-size:.95rem;font-weight:500}.site-nav a:hover{color:var(--text);background:var(--accent-soft);text-decoration:none}.site-nav a.active{color:var(--accent)}.site-nav a.health-link{font-size:.82rem;opacity:.65}main{max-width:960px;margin:0 auto;padding:2.25rem 1.25rem 4rem}button{font:inherit;font-weight:500;padding:.5rem .95rem;border:1px solid var(--border);border-radius:8px;background:var(--surface);color:var(--text);cursor:pointer;transition:background .12s,border-color .12s,opacity .12s}button:hover:not(:disabled){border-color:#d8cdbd;background:#fbf7f1}button:disabled{opacity:.5;cursor:default}button.primary{background:var(--accent);border-color:var(--accent);color:#fff}button.primary:hover:not(:disabled){background:var(--accent-hover);border-color:var(--accent-hover)}button.danger{color:var(--danger);border-color:#e7c7c4}button.danger:hover:not(:disabled){background:#fbeeed}button.secondary{color:var(--muted)}input,textarea,.search{font:inherit;width:100%;padding:.5rem .65rem;border:1px solid var(--border);border-radius:8px;background:var(--surface);color:var(--text)}input:focus,textarea:focus,.search:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}textarea{resize:vertical}label{display:block;font-weight:600;font-size:.9rem;margin-bottom:.9rem}label input,label textarea{margin-top:.3rem;font-weight:400}.status-ok{color:var(--ok);font-weight:600}.status-bad{color:var(--danger);font-weight:600}.img-fallback{background:radial-gradient(circle at 32% 28%,#efe6da,#e2d6c5);display:block}.capture input[type=file]{padding:.6rem;background:var(--surface);cursor:pointer}.capture-preview{margin-top:1rem}.capture-preview img{max-width:100%;border-radius:var(--radius);border:1px solid var(--border)}.capture-count{font-weight:600;margin:1rem 0 .5rem}.capture-thumbs{display:flex;flex-wrap:wrap;gap:.4rem}.capture-thumbs img{width:72px;height:72px;object-fit:cover;border-radius:6px;border:1px solid var(--border)}.capture-actions{margin-top:1.1rem}.capture-result{margin-top:1.1rem;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:.85rem 1rem}.search{margin-bottom:1.5rem;padding:.65rem .85rem}.recipe-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:1.1rem}.recipe-card{display:flex;flex-direction:column;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);overflow:hidden;transition:box-shadow .15s ease,transform .15s ease}.recipe-card:hover{box-shadow:var(--shadow);transform:translateY(-2px)}.recipe-card-link{display:flex;flex-direction:column;color:inherit;text-decoration:none}.recipe-card-link:hover{text-decoration:none}.recipe-card-foot{margin-top:auto}.dish-controls{display:flex;border-top:1px solid var(--border)}.dish-btn{flex:1;border:none;border-radius:0;background:transparent;color:var(--muted);font-size:.85rem;padding:.5rem}.dish-btn:hover:not(:disabled){background:var(--accent-soft);color:var(--text)}.dish-btn-remove{border-left:1px solid var(--border);flex:0 0 auto}.dish-btn-remove:hover:not(:disabled){background:#fbeeed;color:var(--danger)}.recipe-card img,.recipe-card .img-fallback{width:100%;aspect-ratio:4 / 3;object-fit:cover}.recipe-card-body{padding:.75rem .85rem .9rem}.recipe-card-body strong{font-family:var(--font-serif);font-weight:600;font-size:1.05rem}.empty-note{color:var(--muted)}.review-list{list-style:none;padding:0;margin:0;display:grid;gap:.6rem}.review-list a{display:flex;align-items:center;gap:.9rem;padding:.6rem .75rem;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);color:inherit}.review-list a:hover{box-shadow:var(--shadow);text-decoration:none}.thumb,.review-list .img-fallback{width:56px;height:56px;border-radius:8px;object-fit:cover;flex:none}.review-title{font-weight:600;flex:1}.review-list small{color:var(--muted)}.pantry-add{display:flex;gap:.5rem;margin:.5rem 0 1rem}.pantry-add input{flex:1}.pantry-count{color:var(--muted);font-size:.9rem;margin:0 0 .6rem}.pantry-list{list-style:none;padding:0;margin:0;display:grid;gap:.4rem}.pantry-list li{display:flex;align-items:center;gap:.75rem;padding:.5rem .75rem;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius)}.pantry-list li.out{background:transparent;color:var(--muted)}.pantry-item{display:flex;align-items:center;gap:.6rem;flex:1;cursor:pointer}.pantry-item input[type=checkbox]{width:18px;height:18px;accent-color:var(--accent);flex:none}.pantry-list li.out .pantry-name{text-decoration:line-through}.link-danger{background:none;border:none;padding:.2rem .3rem;color:var(--muted);font-size:.85rem;cursor:pointer}.link-danger:hover:not(:disabled){color:#b3261e;background:none}.cook-summary{font-family:var(--font-serif);font-size:1.05rem;margin:0 0 .75rem}.cook-filters{display:flex;flex-wrap:wrap;gap:.4rem;margin-bottom:1rem}.chip{padding:.3rem .7rem;font-size:.85rem;background:var(--surface);border:1px solid var(--border);border-radius:999px;color:var(--muted);cursor:pointer}.chip:hover:not(:disabled){border-color:var(--accent);background:var(--surface)}.chip.active{background:var(--accent);border-color:var(--accent);color:#fff}.recipe-card-body .cook-ready{display:block;margin-top:.3rem;font-size:.85rem;font-weight:600;color:var(--ok)}.recipe-card-body .cook-missing{display:block;margin-top:.3rem;font-size:.85rem;color:var(--muted)}.recipe-card-body .cook-have{display:block;margin-top:.2rem;font-size:.78rem;color:var(--muted)}.editor-grid{display:grid;grid-template-columns:1.5fr 1fr;gap:2rem;align-items:start}@media(max-width:760px){.editor-grid{grid-template-columns:1fr}}.photo-pane{display:flex;flex-direction:column;gap:.85rem;position:sticky;top:4.5rem;align-self:start;max-height:calc(100vh - 5.5rem);overflow-y:auto}.photo-pane img,.photo-pane .img-fallback{width:100%;border-radius:var(--radius);border:1px solid var(--border)}.photo-pane .img-fallback{aspect-ratio:3 / 4}.trash-row{display:flex;align-items:center;gap:.9rem;padding:.6rem .75rem;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius)}.trash-row button{flex:none;font-size:.88rem;padding:.4rem .7rem}.list-editor{border:1px solid var(--border);border-radius:var(--radius);margin:0 0 1rem;padding:.75rem .85rem .85rem;background:var(--surface)}.list-editor legend{font-weight:600;font-size:.9rem;padding:0 .4rem}.list-row{display:flex;gap:.3rem;margin-bottom:.4rem;align-items:flex-start}.list-row input,.list-row textarea{flex:1}.list-row button{padding:.4rem .55rem;color:var(--muted)}.section-block{margin-bottom:.5rem}.section-block+.section-block{padding-top:.5rem;border-top:1px dashed var(--border)}.section-head{display:flex;gap:.3rem;margin:.2rem 0 .5rem;align-items:center}.section-heading{flex:1;font-weight:600}.section-head button{padding:.4rem .55rem;color:var(--muted);white-space:nowrap}.add-section{margin-top:.3rem}.meta-row{display:flex;gap:.6rem}.meta-row label{flex:1}.actions{display:flex;gap:.6rem;margin-top:1.25rem;flex-wrap:wrap}.back-link{display:inline-block;margin-bottom:1rem;color:var(--muted)}.tags{display:flex;flex-wrap:wrap;gap:.35rem;margin-top:.5rem}.tag{font-size:.78rem;background:var(--accent-soft);color:var(--accent);padding:.15rem .6rem;border-radius:999px;font-weight:500}.recipe-meta{color:var(--muted);margin-top:.2rem}.recipe-body ul,.recipe-body ol{padding-left:1.2rem}.recipe-body li{margin-bottom:.35rem}.recipe-section .section-title{font-family:var(--font-serif);font-size:1rem;font-weight:600;margin:.6rem 0 .3rem;color:var(--accent)}.health-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:1rem 1.25rem}.health-card ul{margin:0;padding-left:1.1rem}@media(max-width:760px){.photo-pane{position:static;max-height:none;overflow:visible}.photo-pane img{position:static;max-height:52vh;object-fit:contain;background:var(--surface)}.photo-pane .img-fallback{position:static;aspect-ratio:auto;height:38vh}.meta-row{flex-wrap:wrap}.meta-row label{flex:1 1 30%;min-width:90px}}@media(max-width:560px){main{padding:1.5rem 1rem 3rem}.site-header-inner{flex-wrap:wrap;gap:.3rem 1rem;padding:.7rem 1rem}.site-nav{width:100%;margin-left:0;gap:.1rem}.site-nav a{padding:.35rem .5rem;font-size:.9rem}h1{font-size:1.6rem}.recipe-grid{gap:.85rem}}
