:root{--ink:#182235;--muted:#606c80;--faint:#9aa3b2;--blue:#315de8;--blue-dark:#2144b8;--blue-soft:#e8eefc;--line:#e3e7ef;--paper:#f6f8fb;--ok:#2f7d46;--ok-soft:#e6f4ea;--bad:#b3401f;--display:"Songti SC","Noto Serif SC","STSong",serif}
*{box-sizing:border-box}
body{margin:0;background:var(--paper);color:var(--ink);font:15px/1.7 "PingFang SC","Noto Sans SC","Microsoft YaHei",system-ui,sans-serif;-webkit-font-smoothing:antialiased}
h1,h2,h3,p{margin:0}
a{color:var(--blue)}a:hover{color:var(--blue-dark)}
button,input{font:inherit;color:inherit}
:focus-visible{outline:2px solid var(--blue);outline-offset:3px}
.skip-link{position:fixed;top:-60px;left:12px;background:#fff;padding:8px 12px;z-index:20}.skip-link:focus{top:8px}
.loading{padding:40px;color:var(--muted)}
#toast{position:fixed;left:50%;bottom:28px;transform:translate(-50%,12px);background:var(--ink);color:#fff;padding:12px 20px;border-radius:10px;font-size:14px;max-width:calc(100% - 32px);opacity:0;pointer-events:none;transition:.2s;z-index:30}
#toast.show{opacity:1;transform:translate(-50%,0)}
[hidden]{display:none!important}

.dq{min-height:100vh;display:flex;flex-direction:column}
.dq-top{height:72px;padding:0 clamp(16px,4vw,48px);display:flex;align-items:center;justify-content:space-between;gap:16px;background:#fff;border-bottom:1px solid var(--line)}
.dq-brand{font:700 22px var(--display);color:var(--ink);text-decoration:none}
.dq-quiet{font-size:14px;color:var(--muted);text-decoration:none}
.dq-main{flex:1;width:min(1120px,100%);margin:0 auto;padding:clamp(24px,5vw,56px) clamp(16px,4vw,48px);display:flex;flex-direction:column;gap:24px}
.dq-center{align-items:center;justify-content:center;text-align:center}
.dq-center-text{text-align:center}

.dq-steps{display:flex;align-items:center;gap:12px;margin:0;padding:0;list-style:none;font-size:14px;color:var(--muted)}
.dq-steps li{display:flex;align-items:center;gap:8px}
.dq-steps li+li:before{content:"";width:32px;height:2px;background:var(--line);margin-right:4px}
.dq-steps span{width:28px;height:28px;border-radius:50%;display:grid;place-items:center;font-size:13px;font-weight:700;background:var(--line);color:var(--muted)}
.dq-steps .now{color:var(--ink);font-weight:700}.dq-steps .now span{background:var(--blue);color:#fff}
.dq-steps .done{color:var(--ink)}.dq-steps .done span{background:var(--ink);color:#fff}
.dq svg{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:2.6;stroke-linecap:round;stroke-linejoin:round}

.dq-title{font:700 clamp(34px,5vw,48px)/1.25 var(--display)}
.dq-h1{font:700 clamp(24px,3vw,34px)/1.35 var(--display)}
.dq-lead{font-size:17px;color:#4a5568}
.dq-note,.dq-muted{color:var(--muted);font-size:14px}
.dq-card{background:#fff;border:1px solid var(--line);border-radius:20px;padding:clamp(20px,3vw,36px)}
.dq-card h2{font-size:19px;margin-bottom:10px}
.dq-narrow{max-width:640px;margin:0 auto;display:flex;flex-direction:column;gap:16px}
.dq-list{margin:0;padding-left:22px;display:flex;flex-direction:column;gap:14px;font-size:16px}

.dq-btn{min-height:44px;padding:0 20px;display:inline-flex;align-items:center;justify-content:center;border-radius:12px;border:1px solid var(--line);background:#fff;color:var(--ink);font-size:15px;text-decoration:none;cursor:pointer}
.dq-btn:hover{border-color:#c4cede;color:var(--ink)}
.dq-btn.primary{background:var(--blue);border-color:var(--blue);color:#fff}.dq-btn.primary:hover{background:var(--blue-dark);color:#fff}
.dq-btn.dark{background:var(--ink);border-color:var(--ink);color:#fff}
.dq-btn.big{min-height:52px;padding:0 30px;font-size:16px;font-weight:500}
.dq-btn:disabled{opacity:.5;cursor:wait}
.dq-link{border:0;background:none;padding:0;color:var(--blue);cursor:pointer;font-size:14px;min-height:32px}
.dq-row{display:flex;gap:14px;flex-wrap:wrap;justify-content:center}

.dq-form{display:flex;flex-direction:column;gap:10px;width:min(380px,100%);text-align:left}
.dq-form label{font-weight:600;font-size:14px}
.dq-form input{min-height:46px;padding:0 14px;border:1px solid #d5dce8;border-radius:10px;background:#fff}
.dq-form button{margin-top:8px}

.dq-scan{display:flex;gap:clamp(24px,4vw,48px);align-items:center;justify-content:center;flex-wrap:wrap}
.dq-qr{width:200px;height:200px;border-radius:16px;border:1px solid var(--line);display:grid;place-items:center;background:#fff;flex-shrink:0;overflow:hidden}
.dq-qr img{width:200px;height:200px}
.dq-qr-wait{color:var(--muted);font-size:14px}
.dq-scan h2{margin-bottom:10px}.dq-scan p{color:#4a5568;margin-bottom:10px}

.dq-chip{align-self:flex-start;display:flex;align-items:center;gap:8px;padding:6px 14px;border-radius:999px;background:var(--ok-soft);color:var(--ok);font-size:14px}
.dq-split{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:32px;align-items:start}
.dq-apps{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}
.dq-app{height:92px;padding:16px 18px;border-radius:14px;background:#fff;border:1px solid var(--line);display:flex;flex-direction:column;justify-content:space-between}
.dq-app strong{font-size:17px}.dq-app span{font-size:13px;color:var(--ok)}
.dq-app.selected{border:2px solid var(--blue)}
.dq-app.soon{border-style:dashed;border-color:#cfd5df}.dq-app.soon strong{color:var(--muted)}.dq-app.soon span{color:var(--faint)}

.dq-done{display:flex;flex-direction:column;align-items:center;gap:20px;text-align:center;padding-top:4vh}
.dq-big-check{width:72px;height:72px;border-radius:50%;background:var(--blue);color:#fff;display:grid;place-items:center}
.dq-big-check svg{width:34px;height:34px}

.dq-home{display:flex;flex-direction:column;gap:24px}
.dq-home-head{display:flex;align-items:center;justify-content:space-between;gap:20px;flex-wrap:wrap}
.dq-home-head .dq-h1{font-size:clamp(22px,2.6vw,28px)}
.dq-accounts{padding:0}
.dq-accounts-head{display:flex;justify-content:space-between;align-items:center;padding:18px 24px}
.dq-accounts-head h2{margin:0;font-size:17px}
.dq-accounts ul{list-style:none;margin:0;padding:0}
.dq-account{display:flex;align-items:center;gap:16px;padding:16px 24px;border-top:1px solid #eef1f6;flex-wrap:wrap}
.dq-account strong{width:110px}.dq-account .dq-muted{flex:1;min-width:120px}
.dq-dot{width:12px;height:12px;border-radius:50%;background:var(--faint)}
.dq-dot.ok{background:var(--ok)}.dq-dot.bad{background:var(--bad)}
.dq-state{font-size:15px;color:var(--muted)}.dq-state.ok{color:var(--ok)}.dq-state.bad{color:var(--bad)}
.dq-team p{color:#4a5568}
.dq-footnote{display:flex;align-items:center;gap:8px;flex-wrap:wrap;font-size:13px;color:var(--muted)}
.dq-footnote svg{width:15px;height:15px;stroke-width:2}
.dq-footnote .dq-link{font-size:13px;color:var(--muted)}

@media (max-width:760px){
 .dq-top{height:auto;padding-top:12px;padding-bottom:12px;flex-wrap:wrap}
 .dq-steps{order:3;width:100%;font-size:12px;gap:6px}.dq-steps li+li:before{width:12px}
 .dq-split{grid-template-columns:1fr}
}
.dq-start{justify-content:flex-start;align-items:center;margin-top:16px}
.dq-hl{color:var(--blue)}
.dq-apps-col{display:flex;flex-direction:column;gap:14px}
.dq-path{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:10px}
.dq-path li{display:flex;align-items:center;gap:10px;padding:10px 16px;border-radius:12px;background:#eef1f6;color:var(--muted);font-size:15px;transition:background .35s,color .35s,transform .35s}
.dq-path li:before{content:"";width:8px;height:8px;border-radius:50%;background:currentColor;opacity:.5}
.dq-path li.now{background:var(--blue);color:#fff;transform:translateX(6px)}
.dq-side{display:flex;align-items:center;gap:20px;font-size:14px}
.dq-link.muted{color:var(--muted)}
.dq-trial{display:flex;gap:32px;align-items:center;text-align:left;max-width:760px}
.dq-numbered{margin:0;padding-left:22px;display:flex;flex-direction:column;gap:14px;font-size:16px}
.dq-qr{position:relative}
.dq-qr-busy{position:absolute;inset:0;border-radius:inherit;background:rgba(255,255,255,.94);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;padding:16px;text-align:center}
.dq-qr-busy em{font-style:normal;font-size:14px;color:var(--ink)}
.dq-spin{width:28px;height:28px;border-radius:50%;border:3px solid var(--blue-soft);border-top-color:var(--blue);animation:dq-spin .8s linear infinite}
.dq-bar{width:70%;height:4px;border-radius:2px;background:var(--blue-soft);overflow:hidden;position:relative}
.dq-bar:after{content:"";position:absolute;inset:0;width:40%;border-radius:2px;background:var(--blue);animation:dq-bar 1.4s ease-in-out infinite}
@keyframes dq-spin{to{transform:rotate(360deg)}}
@keyframes dq-bar{0%{transform:translateX(-100%)}100%{transform:translateX(250%)}}
@media (prefers-reduced-motion:reduce){.dq-spin,.dq-bar:after{animation-duration:3s}}

.dq-plans{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:20px}
.dq-plan{display:flex;flex-direction:column;gap:14px}
.dq-plan h2{margin:0}
.dq-price strong{font:700 30px var(--display)}.dq-price span{color:var(--muted);font-size:14px}
.dq-tight{gap:8px;font-size:15px}
.dq-plan .dq-btn{margin-top:auto}
.dq-plan-line{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap}
.dq-plan-line h2{margin-bottom:4px}
.dq-pay{align-items:center;text-align:center}
/* Free-trial notes: shown on the onboarding pages and beside the plan, never as a warning. */
.dq-freetrial{display:flex;align-items:flex-start;gap:10px;margin:14px 0;padding:10px 14px;border-radius:10px;background:var(--ok-soft);color:var(--ok);font-size:14px;line-height:1.6}
.dq-freetrial strong{font-weight:600}
/* A plan that no longer covers the connected accounts: a clear notice, not an error page. */
.dq-warn{padding:8px 12px;border-radius:8px;background:#fff6e5;color:#8a5a00}
/* WeChat's compact QR is drawn small; it is enlarged here, with no frame around it. */
.wechat-embed{width:300px;height:280px;margin:4px 0 8px;position:relative;overflow:hidden}
.wechat-embed iframe{border:0;width:300px;height:220px;display:block;transform:scale(1.36);transform-origin:top center;position:absolute;left:0;top:-6px}
.wechat-fallback button{border:0;background:none;padding:0;min-height:32px;font:inherit;font-size:13px;color:#606c80;cursor:pointer;text-decoration:underline;text-underline-offset:3px}
