.wechat-banner{width:100%;max-width:1040px;margin:48px auto 0;padding:28px 36px;display:flex;align-items:center;justify-content:space-between;gap:28px;border:1px solid #dce7fc;border-radius:20px;background:radial-gradient(ellipse at 98% 10%,#e6efff 0,transparent 58%),linear-gradient(115deg,#f6f9ff,#f0f5ff 66%,#f7faff);position:relative;}
.wechat-eyebrow{display:flex;align-items:center;gap:8px;font-size:12px;font-weight:600;color:#418072;letter-spacing:.05em;}
.wechat-eyebrow svg{width:20px;height:20px;color:#09a578;}
.wechat-eyebrow span{width:1px;height:11px;background:#c9d8e7;margin:0 3px;}
.wechat-copy{min-width:0;}
.wechat-copy h2{margin:12px 0 9px;font-size:27px;line-height:1.4;letter-spacing:-.035em;color:#182344;}
.wechat-copy p{margin:0;color:#6b7892;font-size:13px;line-height:1.85;}
.wechat-topics{display:flex;gap:8px;flex-wrap:wrap;margin-top:20px;}
.wechat-topics span{padding:5px 10px;border:1px solid #e0e9fa;background:#ffffff9c;border-radius:6px;font-size:11px;color:#587097;}
.wechat-scan{display:flex;align-items:center;gap:22px;flex-shrink:0;}
.wechat-scan-copy{display:flex;flex-direction:column;gap:7px;}
.wechat-scan-copy strong{font-size:15px;color:#24365b;}
.wechat-scan-copy>span{font-size:12px;color:#71809c;}
.wechat-scan-copy small{font-size:10px;color:#6c80a2;margin-top:13px;}
.qr-button{display:block;flex-shrink:0;padding:13px;background:white;border:1px solid #e3eaf7;border-radius:13px;box-shadow:0 6px 22px #3659940b;cursor:zoom-in;transition:box-shadow .2s;}
.qr-button:hover{box-shadow:0 8px 26px #36599424;}
.qr-button:focus-visible,.qr-close:focus-visible{outline:3px solid #2563eb;outline-offset:4px;}
.qr-image{display:block;position:relative;width:142px;aspect-ratio:751/735;background:#fff;}
.qr-pattern{display:block;width:100%;height:100%;}
/* Overlay only the original center logo; preserve every surrounding QR module. */
.qr-avatar{position:absolute;left:36.75%;top:37.7%;width:23.4%;height:24%;object-fit:cover;box-sizing:border-box;border:2px solid white;border-radius:17%;background:white;}
.wechat-banner+.modules{margin-top:28px;}
.qr-dialog{width:min(420px,calc(100vw - 32px));padding:34px 28px 26px;border:1px solid #e1e9f7;border-radius:22px;color:#182344;box-shadow:0 24px 100px #17264d33;text-align:center;}
.qr-dialog::backdrop{background:#14233b80;backdrop-filter:blur(5px);}
.qr-dialog h2{font-size:21px;margin:8px 0 24px;}
.qr-dialog p{font-size:12px;color:#78839a;margin:20px 0 0;}
.qr-close{position:absolute;right:12px;top:8px;border:0;background:none;color:#72809a;font-size:28px;cursor:pointer;}
.qr-large{padding:18px;background:white;}
.qr-large .qr-image{width:100%;}
.qr-large .qr-avatar{border-width:4px;}

/* The exported image includes a white scanning margin and the approved avatar. */
.qr-button{padding:0;overflow:hidden;width:168px;}
.wechat-qr{display:block;width:100%;height:auto;border-radius:12px;}
.qr-large{padding:0;}
.qr-dialog{max-height:calc(100dvh - 32px);overflow:auto;}
.qr-close{width:44px;height:44px;right:6px;top:4px;}
.qr-dialog h2{padding:0 10px;}
.qr-dialog p{line-height:1.7;}
.qr-save{display:inline-flex;align-items:center;justify-content:center;min-height:44px;margin-top:14px;padding:8px 22px;background:#eff5ff;border-radius:10px;color:#1d4ed8;font-size:14px;font-weight:600;}
.qr-mobile-hint{display:none;}
@media(max-width:1000px){.wechat-banner{padding:26px;gap:20px;}.wechat-copy h2{font-size:24px;}.wechat-scan{gap:12px;}.wechat-scan-copy{display:none;}}
@media(max-width:600px){.wechat-banner{margin-top:32px;padding:24px;flex-direction:column;align-items:stretch;gap:24px;}.wechat-copy h2{font-size:23px;letter-spacing:-.04em;}.wechat-copy p{font-size:13px;}.wechat-topics{margin-top:14px;}.wechat-scan{justify-content:space-between;flex-direction:row-reverse;border-top:1px solid #dde7f8;padding-top:20px;gap:14px;}.wechat-scan-copy{display:flex;}.qr-button{width:154px;}.wechat-scan-copy small{font-size:10px;}.wechat-banner+.modules{margin-top:24px;}.qr-desktop-hint{display:none;}.qr-mobile-hint{display:inline;}}
@media(max-width:360px){.wechat-banner{padding:20px;}.wechat-copy h2{font-size:21px;}.qr-button{width:136px;}.wechat-scan{gap:10px;}.wechat-scan-copy strong{font-size:14px;}.wechat-scan-copy small{font-size:9px;}}
