/* ===== 1017 登录页 / 订阅页 排版美化（只改样式，不改表单与接口逻辑） ===== */
:root{--ewFont:-apple-system,BlinkMacSystemFont,"Segoe UI","PingFang SC","HarmonyOS Sans SC","Microsoft YaHei UI","Microsoft YaHei","Noto Sans SC","Source Han Sans SC",sans-serif;--ewGrad:linear-gradient(100deg,#06b6d4 0%,#3b82f6 50%,#6366f1 100%);--ewInk:#0f172a;--ewText:#334155;--ewMuted:#64748b;--ewLine:#e2e8f0}
html{-webkit-text-size-adjust:100%}
body{font-family:var(--ewFont);font-size:15px;line-height:1.65;color:var(--ewInk);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility;
  background-color:#eef2f8;background-image:radial-gradient(900px 520px at 12% -8%,rgba(34,211,238,.13),transparent 60%),radial-gradient(900px 560px at 100% 0%,rgba(99,102,241,.12),transparent 62%),linear-gradient(rgba(148,163,184,.09) 1px,transparent 1px),linear-gradient(90deg,rgba(148,163,184,.09) 1px,transparent 1px);background-size:auto,auto,30px 30px,30px 30px;background-attachment:fixed}
button,input,textarea,select{font-family:inherit}
/* 顶栏 */
.payTop{height:66px;background:rgba(255,255,255,.86);border-bottom:1px solid rgba(203,213,225,.7);backdrop-filter:saturate(1.4) blur(14px);-webkit-backdrop-filter:saturate(1.4) blur(14px);position:sticky;top:0;z-index:5}
.payBrand{font-family:"Segoe UI",-apple-system,BlinkMacSystemFont,"Helvetica Neue",var(--ewFont);font-size:20px;font-weight:600;letter-spacing:-.01em}
.payTop>a:last-child{display:inline-flex;align-items:center;height:36px;padding:0 15px;border:1px solid #d6dfeb;border-radius:10px;background:#fff;color:#334155;font-size:13.5px;font-weight:500;text-decoration:none;transition:border-color .15s,background .15s}
.payTop>a:last-child:hover{border-color:#a5b4fc;background:#f8faff;color:#3730a3}

/* ---------- 登录页 ---------- */
.authShell{width:min(100%,468px);padding:64px 20px 56px}
.authCard{margin-top:0;padding:40px 38px 30px;background:rgba(255,255,255,.97);border:1px solid rgba(226,232,240,.95);border-radius:22px;box-shadow:0 28px 70px -28px rgba(30,41,90,.32),0 2px 6px rgba(15,23,42,.04)}
.authMark{display:grid;place-items:center;width:56px;height:56px;margin:0 auto 4px;border-radius:17px;background:linear-gradient(135deg,#22d3ee 0%,#3b82f6 52%,#6366f1 100%);box-shadow:0 12px 24px -10px rgba(59,130,246,.6)}
.authCard h1{margin:18px 0 8px;font-size:26px;font-weight:700;letter-spacing:.01em;line-height:1.3;color:var(--ewInk)}
.authCard>p#authDesc{margin:0;color:var(--ewMuted);font-size:14.5px;line-height:1.7}
.authTabs{display:grid;grid-template-columns:1fr 1fr;gap:4px;margin:26px 0 24px;padding:4px;border:0;border-radius:13px;background:#f1f5f9}
.authTabs button{height:40px;padding:0 6px;border:0;border-radius:10px;background:transparent;color:var(--ewMuted);font-size:14px;font-weight:500;cursor:pointer;transition:background .15s,color .15s,box-shadow .15s}
.authTabs button:hover{color:var(--ewInk)}
.authTabs button.on{margin:0;border:0;background:#fff;color:#1e3a8a;font-weight:600;box-shadow:0 1px 2px rgba(15,23,42,.08),0 4px 10px -4px rgba(30,58,138,.18)}
.authCard form{text-align:left}
.authCard label{display:grid;gap:8px;margin-top:16px;font-size:13.5px;font-weight:600;color:var(--ewText);letter-spacing:.02em}
.authCard form>label:first-child{margin-top:0}
.authCard input{height:48px;padding:0 15px;border:1px solid #d5dde8;border-radius:12px;background:#fbfcfe;color:var(--ewInk);font-size:15px;font-weight:400;letter-spacing:0;transition:border-color .15s,box-shadow .15s,background .15s}
.authCard input::placeholder{color:#a3afc0}
.authCard input:hover{border-color:#b8c4d6}
.authCard input:focus{border-color:#3b82f6;background:#fff;box-shadow:0 0 0 4px rgba(59,130,246,.14)}
.authCard #code{font-size:20px;letter-spacing:.42em;text-align:center;font-variant-numeric:tabular-nums}
.authCard .primary{height:48px;margin-top:20px;padding:0 16px;border:0;border-radius:12px;background:var(--ewGrad);color:#fff;font-size:15.5px;font-weight:600;letter-spacing:.06em;box-shadow:0 12px 24px -12px rgba(59,130,246,.75);cursor:pointer;transition:transform .15s,box-shadow .15s,filter .15s}
.authCard .primary:hover{background:var(--ewGrad);filter:brightness(1.05);transform:translateY(-1px);box-shadow:0 16px 28px -12px rgba(59,130,246,.8)}
.authCard .primary:active{transform:none}
.authCard .primary:focus-visible,.authCard .textBtn:focus-visible,.authTabs button:focus-visible{outline:3px solid #93c5fd;outline-offset:2px}
.authCard .textBtn{padding:14px 0 0;color:#2563eb;font-size:14px;font-weight:500}
.authCard .textBtn:hover{color:#1d4ed8;text-decoration:underline;text-underline-offset:3px}
.authCard #sendRegisterCode{margin:10px 0 0 auto;padding:4px 0 0;font-size:13.5px}
.authMsg{min-height:22px!important;margin:16px 0 0!important;font-size:13.5px!important;color:var(--ewMuted)}
.authMsg.ok{color:#047857}.authMsg.err{color:#c2410c}
.authExtra{margin:22px 0 0;color:var(--ewMuted);font-size:13.5px;text-align:center}
.authExtra a{color:#4f46e5;font-weight:600;text-decoration:none}.authExtra a:hover{text-decoration:underline;text-underline-offset:3px}
@media(max-width:520px){.authShell{padding:28px 14px 40px}.authCard{padding:30px 22px 24px;border-radius:18px}.authCard h1{font-size:23px}.payTop{height:58px}}

/* ---------- 订阅页 ---------- */
.payMain{max-width:1000px;padding:60px 22px 96px}
.payIntro{max-width:640px;margin:0 auto 38px}
.payIntro h1{margin:0;font-size:clamp(30px,4.4vw,42px);font-weight:700;line-height:1.22;letter-spacing:.005em;color:#0f1e3a}
.payIntro .paySub{margin:14px auto 0;color:var(--ewMuted);font-size:16px;line-height:1.7}
.planList{max-width:820px;gap:22px}
.plan{min-height:0;padding:30px 30px 26px;border:1px solid #dbe4f0;border-radius:22px;background:rgba(255,255,255,.97);box-shadow:0 22px 50px -30px rgba(30,64,120,.35)}
.plan:hover{transform:translateY(-3px);box-shadow:0 28px 56px -28px rgba(30,64,120,.42)}
.plan[data-card="pro"],.plan:nth-child(2){border-color:#a5b4fc;box-shadow:0 26px 56px -28px rgba(79,70,229,.45)}
.plan[data-card="pro"]::before{content:'推荐';position:absolute;top:22px;right:22px;padding:2px 11px;border-radius:999px;background:var(--ewGrad);color:#fff;font-size:12px;font-weight:600;letter-spacing:.1em;line-height:22px}
.plan h2{margin:0;font-size:20px;font-weight:700;color:#172b4d;letter-spacing:.01em}
.price{margin:16px 0 4px;font-family:"Segoe UI",-apple-system,BlinkMacSystemFont,var(--ewFont);font-size:40px;font-weight:700;letter-spacing:-.02em;color:#0f1e3a;font-variant-numeric:tabular-nums;line-height:1.15}
.price small{margin-left:2px;font-family:var(--ewFont);font-size:14px;font-weight:500;color:var(--ewMuted)}
.planBenefits{margin:18px 0 24px;padding:16px 0 0;border-top:1px solid #edf1f7;color:var(--ewText);font-size:14.5px;line-height:1.9}
.planBenefits li{display:flex;align-items:center}
.planBenefits li::before{content:'✓';flex:0 0 20px;height:20px;display:inline-grid;place-items:center;margin-right:10px;border-radius:50%;background:#e0e7ff;color:#4338ca;font-size:11px;font-weight:700;line-height:20px;text-align:center}
.payBtn{height:48px;padding:0 16px;border:1px solid #c7d2fe;border-radius:12px;background:#fff;color:#3730a3;font-size:15px;font-weight:600;letter-spacing:.06em;box-shadow:none;transition:background .15s,transform .15s,box-shadow .15s,filter .15s}
.payBtn:hover{background:#eef2ff}
.plan[data-card="pro"] .payBtn,.plan:nth-child(2) .payBtn{border:0;background:var(--ewGrad);color:#fff;box-shadow:0 12px 24px -12px rgba(79,70,229,.75)}
.plan[data-card="pro"] .payBtn:hover,.plan:nth-child(2) .payBtn:hover{filter:brightness(1.05);transform:translateY(-1px)}
.payFoot{margin-top:30px;color:#8592a6;font-size:13px;letter-spacing:.02em}
.paymentDialog{font-family:var(--ewFont);border-radius:22px}
.paymentDialog h2{font-size:21px;font-weight:700}.paymentDialog #selectedPlan{font-size:18px;font-weight:600}
.supportFab{height:42px;padding:0 18px;border-radius:999px;background:#1e293b;font-size:13.5px;font-weight:600;letter-spacing:.04em;box-shadow:0 12px 26px -10px rgba(15,23,42,.5)}
.supportPanel{border-radius:18px;font-family:var(--ewFont)}.supportPanel h2{font-size:18px;font-weight:700}
.supportPanel textarea{border-radius:12px;padding:12px;border-color:#d5dde8}.supportPanel textarea:focus{outline:0;border-color:#3b82f6;box-shadow:0 0 0 4px rgba(59,130,246,.14)}
.supportPanel button:not(.supportClose){height:44px;border-radius:12px;background:var(--ewGrad)}
@media(max-width:680px){.payMain{padding:40px 16px 96px}.payIntro{margin-bottom:28px}.payIntro h1{font-size:30px}.payIntro .paySub{font-size:14.5px}.plan{padding:26px 22px 22px}.price{font-size:36px}.supportFab{right:16px;bottom:16px}}
