/* GiftLoop guest list — plain static styles, no framework, no trackers. */
* { box-sizing: border-box; }
body {
  margin: 0;
  font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;
  line-height: 1.5;
  color: #2a181e;
  background: #faf7f2;
}
main { max-width: 680px; margin: 0 auto; padding: 24px 16px 32px; }
footer {
  max-width: 680px; margin: 0 auto; padding: 0 16px 32px;
  text-align: center; color: #6b5b60; font-size: 13px;
}
footer .note { margin-top: 2px; }
h1 { font-size: 28px; line-height: 1.2; margin: 0 0 4px; }
.subtitle { color: #6b5b60; margin: 0 0 20px; }
.loading, .error { text-align: center; padding: 48px 0; color: #6b5b60; }
.error h1 { color: #2a181e; }
.card {
  background: #fff; border: 1px solid #ead9dc; border-radius: 16px;
  padding: 16px; margin-bottom: 12px; display: flex; gap: 14px;
}
.card img {
  width: 84px; height: 84px; object-fit: cover; border-radius: 12px;
  background: #f6e6e9; flex-shrink: 0;
}
.card .body { flex: 1; min-width: 0; }
.card h2 { font-size: 17px; margin: 0 0 2px; line-height: 1.3; }
.price { font-weight: 700; margin: 2px 0; }
.stars { color: #d13a6a; letter-spacing: 1px; font-size: 15px; }
.stars .empty { color: #d8c8cc; }
.badge {
  display: inline-block; font-size: 12px; font-weight: 700;
  padding: 2px 8px; border-radius: 999px; margin: 6px 0;
}
.badge.available { background: #e3f4ec; color: #1d6b3f; }
.badge.claimed { background: #f6e6e9; color: #8a2b45; }
.badge.closed { background: #f0ece8; color: #6b5b60; }
a.store { color: #2ea3e8; font-weight: 600; text-decoration: none; }
button {
  font: inherit; font-weight: 700; border: 0; border-radius: 12px;
  padding: 10px 18px; cursor: pointer; margin-top: 8px;
}
button.primary { background: #d13a6a; color: #fff; }
button.secondary { background: #f0ece8; color: #2a181e; }
button:disabled { opacity: 0.55; cursor: default; }
.claim-form { margin-top: 10px; }
.claim-form input[type="text"] {
  font: inherit; width: 100%; padding: 10px 12px; margin: 6px 0;
  border: 1px solid #d8c8cc; border-radius: 10px;
}
.claim-form label { font-size: 13px; color: #6b5b60; }
.receipt {
  margin-top: 10px; padding: 10px 12px; background: #fdf6ec;
  border: 1px solid #f0d9a8; border-radius: 10px; font-size: 14px;
}
.receipt code { font-size: 16px; font-weight: 800; letter-spacing: 1px; }
.hint { font-size: 13px; color: #6b5b60; margin: 6px 0 0; }
