/* ===== Ingredient grid ===== */
.filter-bar{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:20px;align-items:center}
.chip{font-family:inherit;font-size:13px;padding:8px 15px;border-radius:999px;border:1px solid var(--line);background:#fbfaf6;color:var(--ink-soft);cursor:pointer;transition:.15s}
.chip.on{background:var(--ink);color:#fff;border-color:var(--ink)}
.ing-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(270px,1fr));gap:16px}
.ing{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:20px;display:flex;flex-direction:column}
.ing .top{display:flex;align-items:flex-start;justify-content:space-between;gap:8px;margin-bottom:4px}
.ing .name{font-size:17px;font-weight:700;display:flex;align-items:center;gap:7px}
.ing .catlabel{font-size:11px;color:var(--ink-soft);margin-top:2px}
.ing .note{font-size:13px;color:var(--ink-soft);margin-bottom:8px}
.ing .warn{font-size:12px;color:var(--amber);background:var(--amber-soft);padding:8px 11px;border-radius:8px;margin-bottom:8px}
.ing .danger{font-size:12px;color:var(--red);background:var(--red-soft);padding:8px 11px;border-radius:8px;margin-bottom:8px}
.ing .src{margin-top:auto;font-size:11px;color:#9a9788;padding-top:10px;border-top:1px solid var(--line)}
