* { box-sizing: border-box; }
body { font-family: -apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,'Helvetica Neue',Arial,'Noto Sans SC','PingFang SC','Hiragino Sans GB','Microsoft YaHei',sans-serif; margin:0; background:#f7fafb; color:#111827;}
.header { padding: 22px; background: linear-gradient(135deg,#7dd3fc,#a78bfa); color:#fff; text-align:center; }
.container { max-width: 900px; margin: 18px auto; padding: 12px; }
.card { background:#fff; border-radius:16px; padding:16px; box-shadow:0 6px 18px rgba(0,0,0,0.06); }
.search-row { display:flex; gap:10px; flex-wrap:wrap; }
.input { flex:1; padding:12px 14px; border:1px solid #e5e7eb; border-radius:12px; outline:none; }
.btn { padding:12px 16px; border:none; border-radius:12px; cursor:pointer; font-weight:600; }
.btn-primary { background:#4f46e5; color:#fff; }
.btn-secondary { background:#10b981; color:#fff; }
.badge { display:inline-block; background:#eef2ff; color:#3730a3; padding:2px 8px; border-radius:999px; font-size:12px; }
.list { margin-top: 12px; }
.item { padding:12px; border:1px solid #f1f5f9; border-radius:12px; margin-bottom:10px; display:flex; align-items:center; justify-content:space-between; }
.item .meta { font-size:14px; color:#374151; }
.item .name { font-size:16px; font-weight:700; color:#111827; }
.footer { text-align:center; padding:16px; color:#6b7280; font-size:12px; }
.qr-wrap { text-align:center; }
.qr-wrap img { width:260px; height:260px; object-fit:contain; border-radius:16px; border:1px solid #e5e7eb; padding:8px; background:#fff; }
.tiers { display:flex; gap:10px; margin-top:12px; flex-wrap:wrap; }
.tier-btn { flex:1; min-width:180px; padding:12px; border:1px solid #e5e7eb; border-radius:12px; background:#fff; cursor:pointer; }
.tier-btn strong { display:block; font-size:18px; }
.copy { margin-top:10px; font-size:13px; color:#6b7280; }
.success { color:#059669; font-weight:600; }
.err { color:#dc2626; font-weight:600; }

/* —— 放大预览弹层 —— */
.preview-overlay {
  position: fixed; inset: 0;
  background: rgba(17, 24, 39, .55);
  display: none; align-items: center; justify-content: center;
  z-index: 9999;
}
.preview-overlay.show { display: flex; animation: fadeIn .12s ease-out; }
.preview-wrap {
  position: relative;
  width: min(92vw, 680px); height: auto;
  display: flex; align-items: center; justify-content: center;
}
.preview-img {
  width: 100%; height: auto; max-height: 88vh;
  border-radius: 16px;
  background: #fff;
  box-shadow: 0 20px 60px rgba(0,0,0,.25);
  transform: scale(.86);
  opacity: 0;
  transition: transform .18s ease-out, opacity .18s ease-out;
}
.preview-overlay.show .preview-img { transform: scale(1); opacity: 1; }
.preview-hint {
  position: absolute; bottom: -44px; left: 50%; transform: translateX(-50%);
  background: rgba(255,255,255,.9);
  color: #111827; font-size: 13px; padding: 6px 10px;
  border-radius: 999px; box-shadow: 0 4px 16px rgba(0,0,0,.1);
  white-space: nowrap;
}
.page-root.blurred { filter: blur(6px); transform: scale(.995); }
@keyframes fadeIn { from { opacity: 0; } to { opacity: 1; } }