.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(214px,1fr));grid-gap:16px;gap:16px}.card{--surface:#fff;--muted:#6b7580;--chip-ink:#4d6b1c;background:var(--surface);border:1px solid var(--line);border-radius:12px;padding:14px;text-align:left;display:flex;flex-direction:column;gap:9px;text-decoration:none;color:inherit;transition:border-color .18s ease,transform .18s ease}.card:hover{border-color:var(--green);transform:translateY(-2px)}.card .ph{aspect-ratio:4/3;border-radius:8px;width:100%;object-fit:cover;display:block;background:var(--tint)}.card .ph.is-empty{border:1px dashed var(--line);display:flex;align-items:center;justify-content:center;color:var(--muted);font-size:.7rem;letter-spacing:.08em;text-transform:uppercase}.card .fam{font-size:.66rem;letter-spacing:.09em;text-transform:uppercase;color:var(--chip-ink)}.card .nm{font-size:.9rem;font-weight:500;line-height:1.35;color:var(--ink);display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}.card .sp{font-size:.76rem;color:var(--muted);margin-top:auto;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.card .warn{font-size:.7rem;color:#a3721a;background:#fdf5e3;border-radius:4px;padding:2px 6px;align-self:flex-start}@media (max-width:560px){.grid{grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:12px}}@media (prefers-reduced-motion:reduce){.card{transition:none}}