:root{
  --brand:#2f6bff;--brand-d:#1f52d6;--ink:#1d2433;--muted:#6b7385;
  --line:#e6e9f0;--bg:#f6f8fc;--card:#fff;
}
*{box-sizing:border-box;margin:0;padding:0}
html,body{height:100%}
body{font-family:-apple-system,BlinkMacSystemFont,"PingFang SC","Microsoft YaHei","Helvetica Neue",Arial,sans-serif;color:var(--ink);background:var(--bg);line-height:1.7;display:flex;flex-direction:column;min-height:100vh}
a{color:var(--brand);text-decoration:none}
a:hover{text-decoration:underline}
.wrap{width:100%;max-width:1080px;margin:0 auto;padding:0 20px}

/* header */
.header{background:#fff;border-bottom:1px solid var(--line)}
.header .wrap{display:flex;align-items:center;justify-content:space-between;height:64px}
.logo{display:flex;align-items:center;gap:10px;font-weight:700;font-size:20px;color:var(--ink)}
.logo:hover{text-decoration:none}
.logo i{width:32px;height:32px;border-radius:8px;background:linear-gradient(135deg,#4d86ff,#2f6bff);display:grid;place-items:center;color:#fff;font-style:normal;font-size:16px}
.nav{display:flex;gap:24px;align-items:center}
.nav a{color:var(--ink);font-size:15px}
.nav a.btn{color:#fff}

.btn{display:inline-block;background:var(--brand);color:#fff;border:0;border-radius:8px;padding:10px 22px;font-size:15px;cursor:pointer;transition:background .2s}
.btn:hover{background:var(--brand-d);text-decoration:none}
.btn:disabled{background:#a9bdf0;cursor:not-allowed}
.btn.block{display:block;width:100%;padding:12px;font-size:16px}

main{flex:1}

/* hero */
.hero{background:linear-gradient(180deg,#eaf0ff 0%,var(--bg) 100%);padding:80px 0 60px;text-align:center}
.hero h1{font-size:40px;margin-bottom:14px}
.hero p{color:var(--muted);font-size:18px;margin-bottom:30px}
.features{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:20px;padding:40px 20px 40px}
.feature{background:var(--card);border:1px solid var(--line);border-radius:12px;padding:26px}
.feature h3{font-size:18px;margin-bottom:8px}
.feature p{color:var(--muted);font-size:14px}

/* login */
.login-page{display:flex;align-items:center;justify-content:center;padding:60px 20px}
.card{background:var(--card);border:1px solid var(--line);border-radius:14px;box-shadow:0 8px 30px rgba(31,82,214,.06);width:100%;max-width:400px;padding:36px 32px}
.card h2{font-size:24px;margin-bottom:6px}
.card .sub{color:var(--muted);font-size:14px;margin-bottom:26px}
.field{margin-bottom:16px}
.field label{display:block;font-size:14px;margin-bottom:6px}
.input{width:100%;height:44px;border:1px solid var(--line);border-radius:8px;padding:0 12px;font-size:15px;outline:none;transition:border-color .2s}
.input:focus{border-color:var(--brand)}
.row{display:flex;gap:10px}
.row .input{flex:1}
.code-btn{flex:0 0 120px;height:44px;border:1px solid var(--brand);background:#fff;color:var(--brand);border-radius:8px;font-size:14px;cursor:pointer}
.code-btn:disabled{border-color:var(--line);color:var(--muted);cursor:not-allowed}
.phone-prefix{flex:0 0 64px;display:grid;place-items:center;border:1px solid var(--line);border-radius:8px;color:var(--muted);font-size:15px}
.agree{display:flex;align-items:flex-start;gap:8px;font-size:13px;color:var(--muted);margin:6px 0 20px}
.agree input{margin-top:4px}
.tip{min-height:20px;font-size:13px;color:#e5484d;margin-bottom:10px}
.tip.ok{color:#18a058}

/* doc */
.doc{background:var(--card);border:1px solid var(--line);border-radius:12px;margin:40px auto;padding:40px 44px;max-width:860px}
.doc h1{font-size:28px;margin-bottom:6px}
.doc .meta{color:var(--muted);font-size:13px;margin-bottom:28px}
.doc h2{font-size:18px;margin:26px 0 10px}
.doc p,.doc li{font-size:15px;color:#3a4255}
.doc ul{padding-left:22px;margin:6px 0}

/* footer */
.footer{background:#fff;border-top:1px solid var(--line);padding:24px 0;text-align:center;font-size:13px;color:var(--muted)}
.footer p{margin:4px 0}
.footer a{color:var(--muted)}
.footer .links a{margin:0 10px}

@media (max-width:600px){
  .hero h1{font-size:28px}
  .nav{gap:14px}
  .nav .hide-sm{display:none}
  .doc{padding:26px 20px;margin:20px 16px}
  .card{padding:28px 20px}
}
