* { box-sizing: border-box; }
body { margin: 0; font-family: -apple-system, "PingFang SC", "Microsoft YaHei", sans-serif; color: #1c1c1e; background: #f7f5f0; line-height: 1.6; }
.wrap { max-width: 860px; margin: 0 auto; padding: 0 16px; }
a { color: #b3541e; text-decoration: none; }
.topbar { background: #1c1a17; color: #fff; position: sticky; top: 0; z-index: 10; }
.topbar-in { display: flex; align-items: center; gap: 18px; height: 56px; }
.logo { font-size: 20px; font-weight: 700; color: #f5c86b; }
.topbar nav { display: flex; gap: 16px; flex: 1; }
.topbar nav a { color: #ddd; font-size: 14px; }
.userbox { display: flex; align-items: center; gap: 10px; }
.quota-badge { background: #f5c86b; color: #1c1a17; border-radius: 999px; padding: 2px 10px; font-size: 13px; }
.user-chip { font-size: 14px; color: #fff; }
.linklike { background: none; border: none; color: #aaa; cursor: pointer; font-size: 13px; margin-left: 6px; }
.btn { display: inline-block; background: #b3541e; color: #fff; border: none; border-radius: 8px; padding: 10px 18px; font-size: 15px; cursor: pointer; }
.btn:hover { background: #96431a; }
.btn-small { padding: 6px 12px; font-size: 13px; }
.btn-big { padding: 12px 24px; font-size: 16px; }
.btn-ghost { background: #fff; color: #1c1c1e; border: 1px solid #ccc; }
.btn-wechat { background: #07c160; width: 100%; margin: 8px 0; }
.btn-wechat:disabled { background: #9aa0a6; cursor: not-allowed; }
.btn:disabled { opacity: .55; cursor: not-allowed; }
.hero { text-align: center; padding: 56px 16px 24px; }
.hero h1 { font-size: 34px; margin: 0 0 8px; }
.hero .sub { color: #555; font-size: 17px; }
.hero-cta { margin: 20px 0 8px; display: flex; gap: 14px; align-items: center; justify-content: center; flex-wrap: wrap; }
.hero-note { color: #777; font-size: 14px; }
.card { background: #fff; border-radius: 12px; padding: 24px; margin: 24px auto; box-shadow: 0 1px 4px rgba(0,0,0,.06); }
.card h2 { margin-top: 0; }
.status-line { background: #f0ede6; border-radius: 8px; padding: 8px 12px; font-size: 14px; color: #555; margin-bottom: 14px; }
.status-line.bad { background: #fdecea; color: #a33; }
.field-label { font-weight: 600; display: block; margin-bottom: 6px; }
textarea, input[type=text], input { width: 100%; padding: 10px; border: 1px solid #ccc; border-radius: 8px; font-size: 15px; font-family: inherit; }
textarea { resize: vertical; }
.row { display: flex; gap: 14px; align-items: flex-end; margin-top: 14px; flex-wrap: wrap; }
.row select { padding: 9px; border: 1px solid #ccc; border-radius: 8px; font-size: 14px; }
.quota-text { color: #555; font-size: 14px; }
.error { background: #fdecea; color: #a33; border-radius: 8px; padding: 10px 12px; margin-top: 14px; font-size: 14px; }
.result { margin-top: 20px; text-align: center; }
.result img { max-width: 100%; border-radius: 10px; box-shadow: 0 2px 10px rgba(0,0,0,.15); }
.result-actions { margin-top: 12px; display: flex; gap: 10px; justify-content: center; }
.gallery-title { margin-top: 28px; }
.gallery { display: grid; grid-template-columns: repeat(auto-fill, minmax(150px, 1fr)); gap: 10px; margin-top: 10px; }
.gallery img { width: 100%; border-radius: 8px; display: block; }
.muted { color: #777; }
.small { font-size: 13px; }
.ad-slot { border: 1px dashed #bbb; border-radius: 8px; color: #999; text-align: center; padding: 18px; font-size: 13px; margin: 16px 0; background: #fafafa; }
.bonus-in { display: flex; gap: 20px; align-items: center; flex-wrap: wrap; }
.qr { width: 160px; height: 160px; border: 1px solid #ddd; border-radius: 8px; background: #fff; }
.shop-card { text-align: center; }
.footer { text-align: center; color: #999; font-size: 13px; padding: 30px 16px 40px; }
.modal { position: fixed; inset: 0; background: rgba(0,0,0,.5); display: flex; align-items: center; justify-content: center; z-index: 20; }
.modal-box { background: #fff; border-radius: 12px; padding: 24px; width: 340px; max-width: 92vw; position: relative; }
.modal-close { position: absolute; top: 8px; right: 12px; border: none; background: none; font-size: 22px; cursor: pointer; }
.modal-box h3 { margin-top: 0; }
.modal-box input { margin: 10px 0; }
.modal-box .btn-big { width: 100%; }
.divider { text-align: center; color: #aaa; font-size: 13px; margin: 6px 0; }
@media (max-width: 600px) { .hero h1 { font-size: 26px; } .topbar nav { display: none; } }
