:root{
  --bg:#ffffff; --fg:#2c3137; --muted:#6a727c; --line:#e6e8eb; --card:#f9fafb; --accent:#0050b3;
  --good:#1a7f37; --warn:#b42318;
}
*{box-sizing:border-box}
html,body{margin:0;padding:0;background:var(--bg);color:var(--fg);font:400 16px/1.45 system-ui,-apple-system,Segoe UI,Roboto,Ubuntu,Cantarell,Noto Sans,sans-serif}
h1{font-size:1.6rem;margin:0 0 .25rem}
.subtitle{color:var(--muted);margin:0}
.site-header{padding:16px 12px;border-bottom:1px solid var(--line)}
.controls{border-bottom:1px solid var(--line);padding:12px}
.controls .row{display:flex;flex-wrap:wrap;gap:12px;align-items:flex-end}
.controls label{display:flex;flex-direction:column;font-size:.9rem;gap:6px}
.controls input[type="search"], .controls select{border:1px solid var(--line);background:#fff;padding:8px 10px;border-radius:6px;min-width:160px}
.controls input[type="checkbox"]{margin-top:10px;transform:scale(1.1)}
.controls .btn{border:1px solid var(--line);background:#fff;color:var(--fg);padding:8px 12px;border-radius:6px;cursor:pointer}
.controls .btn:hover{background:#f3f5f7}
.controls .hint{margin-top:8px;color:var(--muted);font-size:.85rem}

.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:10px;padding:12px}
.card{border:1px solid var(--line);background:var(--card);border-radius:8px;overflow:hidden;transform:translateZ(0);transition:transform .08s ease-in-out}
.card:hover{transform:scale(1.02)}
.thumb{aspect-ratio:4/3;width:100%;background:#fff object-fit:cover}
.body{padding:10px}
.name{font-weight:600;margin:0 0 2px;font-size:1rem}
.brand{color:var(--muted);font-size:.9rem;margin:0 0 6px}
.meta{display:flex;flex-wrap:wrap;gap:6px;font-size:.85rem;color:var(--muted)}
.badge{border:1px solid var(--line);padding:2px 6px;border-radius:999px;background:#fff}
.pills{display:flex;flex-wrap:wrap;gap:6px;margin-top:6px}
.pill{border:1px solid var(--line);background:#fff;border-radius:999px;padding:2px 6px;font-size:.8rem;color:var(--muted)}
.price{margin-top:8px;font-weight:700}
.unit{color:var(--muted);font-size:.85rem}
.macros{display:flex;gap:6px;margin-top:8px;font-size:.85rem}
.macro{border:1px solid var(--line);background:#fff;border-radius:6px;padding:4px 6px}
.allergens{display:flex;gap:4px;flex-wrap:wrap;margin-top:6px}
.allergen{display:inline-flex;align-items:center;justify-content:center;min-width:22px;height:22px;padding:0 6px;border:1px solid var(--line);background:#fff;border-radius:999px;font-size:.8rem;color:var(--muted)}
.diet{display:flex;gap:6px;flex-wrap:wrap;margin-top:6px}
.tag{display:inline-block;border-radius:999px;padding:3px 8px;font-size:.78rem;font-weight:600}
.tag.good{background:color-mix(in srgb, var(--good) 10%, #fff); color:var(--good); border:1px solid color-mix(in srgb, var(--good) 30%, #fff)}
.tag.warn{background:color-mix(in srgb, var(--warn) 10%, #fff); color:var(--warn); border:1px solid color-mix(in srgb, var(--warn) 30%, #fff)}
.tag.cat{background:#fff; color:#3b5bdb; border:1px solid color-mix(in srgb, #3b5bdb 30%, #fff)}
.link{display:inline-block;margin-top:8px;color:var(--accent);text-decoration:none;font-weight:600}
.link:hover{text-decoration:underline}
.site-footer{border-top:1px solid var(--line);padding:12px;color:var(--muted);text-align:center}

@media (prefers-reduced-motion: reduce){.card{transition:none}.card:hover{transform:none}}
