:root{
  --bg:#f7f8fa; --card:#fff; --text:#111827; --muted:#6b7280; --line:#e5e7eb; --brand:#1f2937;
}
*{box-sizing:border-box}
body{margin:0; font-family:system-ui, -apple-system, Segoe UI, Roboto, Arial; background:var(--bg); color:var(--text)}
.wrap{max-width:1100px; margin:0 auto; padding:16px}
h1{margin:4px 0 8px; font-size:clamp(20px, 3vw, 28px); color:var(--brand)}
.meta{color:var(--muted)}
.toolbar{display:flex; gap:10px; flex-wrap:wrap; margin-top:10px}
input[type="search"]{flex:1 1 320px; padding:10px 12px; border:1px solid var(--line); border-radius:10px; outline:none; background:#fff}
.btn{padding:10px 12px; border:1px solid var(--line); border-radius:10px; background:#fff; cursor:pointer}
.btn:hover{background:#f4f6f9}

/* การ์ดแบบลิงก์ */
a.card{
  display:block;
  text-decoration:none;
  color:inherit;
  background:var(--card);
  border:1px solid var(--line);
  border-radius:14px;
  overflow:hidden;
  transition:box-shadow .15s;
}
a.card:hover{box-shadow:0 10px 28px rgba(0,0,0,.06)}
a.card:visited{color:inherit}

/* กริดการ์ด */
.grid{display:grid; grid-template-columns:repeat(auto-fill, minmax(260px,1fr)); gap:16px; padding:16px 0 32px}

/* รูปสินค้า — กำหนดขนาดคงที่ กันเลย์เอาต์กระโดด */
.card img.thumb{
  width:100%;
  aspect-ratio:16/10;     /* คุมสัดส่วน */
  height:auto;
  object-fit:cover;       /* เติมเต็มกรอบ */
  display:block;          /* ตัดช่องว่างรูป */
  background:#fafafa;
}

.content{padding:12px 14px}
.row{display:flex; justify-content:space-between; align-items:center; gap:8px; flex-wrap:wrap; margin-top:6px}
.name{font-weight:700; margin:0 0 6px}
.kv{color:var(--muted); font-size:13px}
.badges{display:flex; gap:6px; flex-wrap:wrap; margin-top:8px}
.badge{background:#eef2ff; color:#3730a3; padding:4px 8px; border-radius:999px; font-size:12px; font-weight:600}
.badge.out{background:#fee2e2; color:#991b1b}
.loading,.empty{text-align:center; color:var(--muted); padding:36px 0}
.foot{border-top:1px solid var(--line); color:var(--muted); font-size:13px}

@media (prefers-color-scheme: dark){
  :root{--bg:#0b1020; --card:#121933; --text:#e6eaf5; --muted:#9aa3b2; --line:#1f2a44}
  input[type="search"], .btn{background:#0f172a; color:var(--text); border-color:var(--line)}
}