/* 777.w16.top — 深墨绿 + 白卡 视觉体系 */
:root{
  --bg:#404B47;
  --bg-top:#48544E;
  --bg-bot:#333D39;
  --card:#ffffff;
  --ink:#131E1A;
  --ink-2:#6E7D77;
  --ink-3:#A2AEA9;
  --green:#27B46F;
  --green-d:#1E9C60;
  --line:#E7ECE9;
  --field:#F5F8F6;
  --field-2:#EEF3F0;
  --radius:18px;
  --shadow:0 26px 60px -18px rgba(0,0,0,.42), 0 8px 20px -12px rgba(0,0,0,.28);
}

*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}
html,body{height:100%}
body{
  margin:0;
  font-family:-apple-system,BlinkMacSystemFont,"PingFang SC","Hiragino Sans GB","Microsoft YaHei","Helvetica Neue",Arial,sans-serif;
  color:var(--ink);
  background:
    radial-gradient(120% 70% at 50% -10%, var(--bg-top) 0%, rgba(72,84,78,0) 62%),
    linear-gradient(180deg, var(--bg) 0%, var(--bg) 46%, var(--bg-bot) 100%);
  background-color:var(--bg);
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
}

.stage{
  min-height:100%;
  display:flex;
  align-items:center;
  justify-content:center;
  padding:28px 20px calc(28px + env(safe-area-inset-bottom));
}

/* 卡内右上角的当前账号 */
.who{
  position:fixed;
  top:14px;
  right:16px;
  z-index:5;
  max-width:38vw;
  overflow:hidden;
  white-space:nowrap;
  text-overflow:ellipsis;
  font-size:12px;
  letter-spacing:.3px;
  color:rgba(255,255,255,.62);
  text-decoration:none;
  padding:6px 10px;
  border-radius:999px;
  background:rgba(255,255,255,.07);
  border:1px solid rgba(255,255,255,.09);
  backdrop-filter:blur(6px);
}
.who:active{background:rgba(255,255,255,.14)}

.card{
  position:relative;
  width:100%;
  max-width:340px;
  background:var(--card);
  border-radius:var(--radius);
  box-shadow:var(--shadow);
  padding:60px 30px 30px;
  text-align:center;
  animation:rise .46s cubic-bezier(.22,.68,.34,1) both;
}
@keyframes rise{
  from{opacity:0;transform:translateY(16px) scale(.985)}
  to{opacity:1;transform:none}
}

/* 顶部徽标（盾牌 / 对勾共用容器） */
.mark{
  width:76px;
  height:76px;
  margin:0 auto 22px;
  display:block;
}
.mark svg{width:100%;height:100%;display:block}
.mark .ring-pulse{
  transform-origin:36px 36px;
  animation:pulse 2.8s ease-out infinite;
}
@keyframes pulse{
  0%{opacity:.5;transform:scale(.92)}
  70%{opacity:0;transform:scale(1.16)}
  100%{opacity:0;transform:scale(1.16)}
}

/* 卡内右上角关闭 */
.close{
  position:absolute;
  top:13px;
  right:13px;
  width:34px;
  height:34px;
  display:flex;
  align-items:center;
  justify-content:center;
  border-radius:11px;
  background:#F3F6F4;
  color:#4A5A53;
  text-decoration:none;
  transition:background .15s;
}
.close:active{background:#E7EDE9}
.close svg{width:16px;height:16px;display:block}

.title{
  margin:0;
  font-size:26px;
  line-height:1.28;
  font-weight:700;
  letter-spacing:.5px;
  color:var(--ink);
}
.subtitle{
  margin:12px 0 0;
  font-size:16px;
  line-height:1.45;
  font-weight:400;
  color:var(--ink-2);
  letter-spacing:.2px;
}

/* 表单 */
.form{margin:30px 0 0;text-align:left}
.field{margin-bottom:14px}
.field label{
  display:block;
  font-size:12.5px;
  font-weight:600;
  letter-spacing:2.5px;
  color:#8D9B95;
  margin:0 0 8px 3px;
}
.control{position:relative}
.control input{
  width:100%;
  height:48px;
  padding:0 16px;
  font-size:15.5px;
  font-family:inherit;
  color:var(--ink);
  background:var(--field);
  border:1px solid transparent;
  border-radius:11px;
  outline:none;
  transition:border-color .18s, background .18s, box-shadow .18s;
}
.control input::placeholder{color:#B9C4BF}
.control input:focus{
  background:#fff;
  border-color:var(--green);
  box-shadow:0 0 0 3.5px rgba(39,180,111,.13);
}
.control input:-webkit-autofill{
  -webkit-text-fill-color:var(--ink);
  transition:background-color 100000s;
}
.control.has-eye input{padding-right:48px}
.eye{
  position:absolute;
  top:0;
  right:6px;
  width:42px;
  height:48px;
  display:flex;
  align-items:center;
  justify-content:center;
  border:0;
  background:transparent;
  cursor:pointer;
  color:#A9B5B0;
  padding:0;
  border-radius:9px;
}
.eye:active{color:var(--green)}
.eye svg{width:20px;height:20px}

/* 按钮 */
.btn{
  display:flex;
  align-items:center;
  justify-content:center;
  width:100%;
  height:50px;
  margin-top:22px;
  border:0;
  border-radius:11px;
  background:var(--green);
  color:#fff;
  font-family:inherit;
  font-size:16.5px;
  font-weight:600;
  letter-spacing:3px;
  text-indent:3px;
  text-decoration:none;
  cursor:pointer;
  transition:background .16s, transform .12s, box-shadow .16s;
  box-shadow:0 10px 22px -12px rgba(39,180,111,.85);
}
.btn:hover{background:var(--green-d)}
.btn:active{transform:scale(.985);background:var(--green-d);box-shadow:0 6px 14px -10px rgba(39,180,111,.8)}

/* 登录后页面：按钮与卡片左右内边距对齐（原图 264/324） */
.btn.confirm{
  width:100%;
  margin:38px auto 0;
  height:52px;
  border-radius:9px;
  letter-spacing:2px;
  text-indent:2px;
}

/* 提示 */
.alert{
  display:flex;
  align-items:center;
  gap:8px;
  margin:0 0 16px;
  padding:11px 14px;
  border-radius:11px;
  font-size:13.5px;
  line-height:1.4;
  text-align:left;
  background:#FDECEC;
  color:#B3262C;
  animation:shake .34s ease;
}
.alert svg{width:16px;height:16px;flex:none}
@keyframes shake{
  0%,100%{transform:translateX(0)}
  25%{transform:translateX(-4px)}
  75%{transform:translateX(4px)}
}

.footnote{
  margin:22px 0 0;
  font-size:12px;
  color:var(--ink-3);
  letter-spacing:.4px;
}

/* 登录后页面：按参考图 509px 卡片比例等比换算到 340px */
.card.done{padding:62px 35px 44px}
.card.done .mark{width:73px;height:73px;margin-bottom:30px}
.card.done .title{font-size:29px;font-weight:500;letter-spacing:.5px}
.card.done .subtitle{font-size:18.5px;margin-top:12px;color:var(--ink);font-weight:700;letter-spacing:0}
.card.done .btn{height:53px;margin-top:32px;font-weight:500;font-size:16px}

@media (max-height:640px){
  .stage{align-items:flex-start;padding:24px 18px calc(24px + env(safe-area-inset-bottom))}
  .card{padding:44px 26px 26px}
  .card.done{padding-top:48px;padding-bottom:34px}
  .mark{width:62px;height:62px;margin-bottom:16px}
  .card.done .mark{margin-bottom:20px}
  .title{font-size:23px}
  .card.done .title{font-size:24px}
  .subtitle{font-size:14.5px;margin-top:9px}
  .card.done .subtitle{font-size:15.5px;margin-top:11px}
  .form{margin-top:22px}
  .btn{height:46px;margin-top:18px}
  .card.done .btn{height:48px;margin-top:26px}
  .footnote{margin-top:16px}
}

@media (min-width:520px){
  .card{max-width:360px;padding:64px 34px 34px}
  .card.done{padding:80px 34px 50px}
}

@media (prefers-reduced-motion:reduce){
  .card,.mark .ring-pulse,.alert{animation:none!important}
}
