html.invitation-open{overflow:hidden}
#invitationDialog{width:min(760px,calc(100vw - 32px));max-width:none;max-height:calc(100dvh - 40px);margin:auto;padding:32px;overflow:auto;overscroll-behavior:contain;box-sizing:border-box;background:white;border:1px solid #e1e8f3;border-radius:20px;box-shadow:0 15px 65px #172d4d33;color:#21394b;font:15px/1.7 system-ui,-apple-system,"Microsoft YaHei",sans-serif}
#invitationDialog::backdrop{background:rgba(20,35,55,.45)}
#invitationDialog .invite-header{display:flex;align-items:center;justify-content:space-between;gap:18px}#invitationDialog .brand{display:flex;align-items:center;gap:12px;min-width:0;color:#21394b;text-decoration:none;font-size:18px;font-weight:700}#invitationDialog .brand img{width:48px;height:48px;object-fit:contain;flex-shrink:0}#invitationDialog .close{display:flex;align-items:center;justify-content:center;width:36px;height:36px;flex-shrink:0;color:#708294;text-decoration:none;font-size:28px;line-height:1;border-radius:6px}#invitationDialog .close:hover{background:#f0f4fa}#invitationDialog #inviter{margin:20px 0 24px;font-size:17px}#invitationDialog h2{font-size:21px}#invitationDialog form{margin:0}#invitationDialog label{display:block;margin:12px 0}#invitationDialog input{display:block;width:100%;padding:12px;border:1px solid #ccd8e6;border-radius:7px;font:inherit}#invitationDialog .code-row{display:flex;gap:10px}#invitationDialog .code-row input{min-width:0}#invitationDialog button,#invitationDialog .primary,#invitationDialog .download-button{display:inline-flex;align-items:center;justify-content:center;padding:12px 18px;border:1px solid #d1dcea;border-radius:8px;background:white;font:inherit;cursor:pointer;text-decoration:none;white-space:nowrap}#invitationDialog .primary{background:#315efb;color:white;border-color:#315efb}#invitationDialog .form-actions{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-top:20px}#invitationDialog .form-actions>*{width:100%;min-width:0}#invitationDialog button:disabled{opacity:.55;cursor:default}#invitationDialog .agreement{display:flex;align-items:center;flex-wrap:wrap;gap:6px;font-size:13px}#invitationDialog .agreement input{width:auto}#invitationDialog .agreement a,#invitationDialog a{color:#315efb}#invitationDialog #message{color:#a34522;white-space:pre-wrap}#invitationDialog #message:empty{display:none}#invitationDialog [hidden]{display:none!important}
#invitationDialog .brand{white-space:normal}
#invitationDialog button.close{padding:0;border:0;background:transparent}
#invitationDialog button.close:hover{background:#f0f4fa}
#invitationDialog .primary:hover{background:#284fdb}
#reopenInvitation{position:fixed;right:24px;bottom:24px;z-index:20;border:1px solid #e53935;border-radius:24px;padding:11px 20px;background:#e53935;color:white;box-shadow:0 5px 20px #e5393533;font:700 14px "Microsoft YaHei",system-ui,sans-serif;cursor:pointer}
#reopenInvitation[hidden]{display:none}
@media(max-width:600px){#invitationDialog{padding:24px 18px;width:calc(100vw - 24px);max-height:calc(100dvh - 24px);border-radius:14px}#invitationDialog .brand{font-size:15px;gap:8px}#invitationDialog .brand img{width:36px;height:36px}#invitationDialog .invite-header{gap:8px}#invitationDialog .form-actions{gap:10px}#invitationDialog .form-actions>*{padding:12px 6px;font-size:12px}#invitationDialog #inviter{font-size:15px}}

#invitationDialog .invite-wechat{text-align:center}#invitationDialog .invite-qr{display:flex;align-items:center;justify-content:center;min-height:220px}#invitationDialog .invite-qr img{width:220px;height:220px;object-fit:contain}#invitationDialog #inviteQrStatus{min-height:26px;margin:12px 0;color:#60778b}#invitationDialog .invite-wechat .agreement{justify-content:center;margin-top:22px}#invitationDialog #inviteWxSubmit{display:flex;width:100%;margin-top:14px}#invitationDialog .invite-existing{display:inline-block;margin-top:16px}#invitationDialog button:focus-visible{outline:2px solid #315efb;outline-offset:3px}

/* Show both registration methods together on desktop. */
#invitationDialog{width:min(940px,calc(100vw - 32px))}
#invitationDialog .invite-register-layout{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,1fr);gap:32px;align-items:start}
#invitationDialog .invite-register-layout>form,#invitationDialog .invite-wechat{min-width:0}
#invitationDialog .invite-register-layout h3{margin:0 0 16px;font-size:18px;line-height:1.5;font-weight:600}
#invitationDialog .invite-wechat{border:0;border-left:1px solid #e1e8f3;border-radius:0;padding:0 0 0 32px;margin:0;background:transparent}
#invitationDialog .form-actions{grid-template-columns:1fr;gap:10px;margin-top:14px}
#invitationDialog .invite-register-layout .download-button{border:0;padding:0;white-space:normal}
#invitationDialog .invite-qr{min-height:220px}
#invitationDialog #inviteQrStatus{min-height:48px;font-size:14px;line-height:1.7}
#invitationDialog .invite-wechat .agreement{margin-top:18px;text-align:left}
@media(max-width:700px){
 #invitationDialog .invite-register-layout{grid-template-columns:1fr;gap:28px}
 #invitationDialog .invite-wechat{border-left:0;border-top:1px solid #e1e8f3;padding:24px 0 0}
 #invitationDialog .invite-register-layout .form-actions>*{font-size:14px}
}

#invitationDialog .invite-scan-agreement{margin:0 0 16px;font-size:12px;line-height:1.7;color:#60778b}

#invitationDialog .invite-qr{position:relative;width:220px;height:220px;min-height:220px;margin:0 auto;overflow:hidden;border-radius:6px}
#invitationDialog #inviteQrImage,#invitationDialog .invite-qr img{width:220px;height:220px;display:block}
#invitationDialog .invite-qr.is-stale img{filter:blur(4px);opacity:.35;pointer-events:none}
#invitationDialog .invite-qr .qr-refresh-icon{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:48px;height:48px;padding:0;border:0;border-radius:50%;background:white;color:#21394b;box-shadow:0 2px 12px #17343e33;font:34px/1 system-ui;z-index:1}
#invitationDialog .invite-qr .qr-refresh-icon:hover{background:#f3f7fc}
