/* ===== 三角洲交易平台 · 登录页样式 ===== */
:root{
  --bg-0:#06080f;
  --card:rgba(255,255,255,.045);
  --border:rgba(255,255,255,.10);
  --text:#eaf0fb;
  --muted:#8593b0;
  --accent:#00d4a6;
  --accent-2:#12f0c0;
  --danger:#ff5b6a;
  --up:#00d4a6;
  --down:#ff5b6a;
}
*{box-sizing:border-box;margin:0;padding:0}
html,body{height:100%}
body{
  font-family:-apple-system,BlinkMacSystemFont,"PingFang SC","Microsoft YaHei",sans-serif;
  color:var(--text);
  background:radial-gradient(1200px 700px at 70% -10%,#12203f 0%,var(--bg-0) 55%);
  overflow-x:hidden;
}
.bg{position:fixed;inset:0;z-index:-1}
.grid-overlay{
  position:absolute;inset:0;
  background-image:linear-gradient(rgba(255,255,255,.03) 1px,transparent 1px),
                   linear-gradient(90deg,rgba(255,255,255,.03) 1px,transparent 1px);
  background-size:48px 48px;
  -webkit-mask-image:radial-gradient(circle at 50% 35%,#000 0%,transparent 75%);
  mask-image:radial-gradient(circle at 50% 35%,#000 0%,transparent 75%);
}
.glow{position:absolute;border-radius:50%;filter:blur(90px);opacity:.5}
.glow-a{width:420px;height:420px;left:-120px;top:-80px;background:rgba(0,212,166,.25)}
.glow-b{width:460px;height:460px;right:-140px;bottom:-120px;background:rgba(64,120,255,.22)}

.ticker{
  position:fixed;top:0;left:0;right:0;height:34px;
  background:rgba(10,15,28,.6);backdrop-filter:blur(8px);
  border-bottom:1px solid var(--border);overflow:hidden;display:flex;align-items:center;
}
.ticker-track{display:flex;gap:40px;white-space:nowrap;animation:tick 28s linear infinite;padding-left:20px}
.t-item{font-size:12px;color:var(--muted);font-variant-numeric:tabular-nums}
.t-item b{font-weight:600}
.up{color:var(--up)}.down{color:var(--down)}
@keyframes tick{from{transform:translateX(0)}to{transform:translateX(-50%)}}

.login-wrap{min-height:100vh;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:80px 16px 24px}
.login-card{
  width:100%;max-width:400px;padding:38px 34px 30px;
  background:var(--card);border:1px solid var(--border);border-radius:16px;
  backdrop-filter:blur(14px);box-shadow:0 24px 60px rgba(0,0,0,.45);
}
.brand{text-align:center;margin-bottom:28px}
.logo{
  width:54px;height:54px;margin:0 auto 14px;font-size:32px;font-weight:800;line-height:54px;color:#04251c;
  background:linear-gradient(135deg,var(--accent-2),var(--accent));border-radius:14px;
  box-shadow:0 10px 26px rgba(0,212,166,.35);
}
.brand h1{font-size:22px;letter-spacing:2px;font-weight:700}
.slogan{font-size:11px;letter-spacing:3px;color:var(--muted);margin-top:6px}

.field{margin-bottom:16px}
.field label{display:block;font-size:13px;color:var(--muted);margin-bottom:8px}
.input-box{display:flex;align-items:center;gap:10px;padding:0 14px;height:46px;background:rgba(0,0,0,.28);border:1px solid var(--border);border-radius:10px;transition:border-color .2s,box-shadow .2s}
.input-box:focus-within{border-color:var(--accent);box-shadow:0 0 0 3px rgba(0,212,166,.15)}
.input-box .icon{width:18px;height:18px;fill:var(--muted);flex-shrink:0}
.input-box input{flex:1;height:100%;min-width:0;background:transparent;border:0;outline:0;color:var(--text);font-size:15px}
.input-box input::placeholder{color:#5a6a88}
.toggle{background:none;border:0;color:var(--accent);font-size:12px;cursor:pointer;padding:4px;white-space:nowrap}
.toggle:hover{color:var(--accent-2)}
.err{min-height:16px;font-size:12px;color:var(--danger);margin-top:6px}

.row{display:flex;align-items:center;justify-content:space-between;margin:2px 0 20px}
.remember{display:flex;align-items:center;gap:6px;font-size:13px;color:var(--muted);cursor:pointer}
.remember input{accent-color:var(--accent);width:15px;height:15px}
.forgot{font-size:13px;color:var(--accent);text-decoration:none}
.forgot:hover{color:var(--accent-2)}

.submit{
  width:100%;height:48px;border:0;border-radius:10px;cursor:pointer;
  font-size:16px;font-weight:600;letter-spacing:4px;color:#06211a;
  background:linear-gradient(135deg,var(--accent-2),var(--accent));
  transition:transform .15s,box-shadow .15s,opacity .15s;
  box-shadow:0 12px 28px rgba(0,212,166,.28);
}
.submit:hover{transform:translateY(-1px);box-shadow:0 16px 34px rgba(0,212,166,.34)}
.submit:active{transform:translateY(0)}
.submit:disabled{opacity:.6;cursor:not-allowed;transform:none}

.tip{text-align:center;font-size:12px;color:var(--muted);margin-top:18px}
.tip code{color:var(--accent);background:rgba(0,212,166,.1);padding:2px 6px;border-radius:5px;font-family:ui-monospace,Menlo,monospace}
.copy{font-size:12px;color:#4a5670;margin-top:22px;text-align:center}

.toast{
  position:fixed;top:56px;left:50%;transform:translateX(-50%);
  padding:10px 18px;border-radius:8px;font-size:14px;color:#fff;
  background:rgba(20,28,44,.95);border:1px solid var(--border);box-shadow:0 10px 30px rgba(0,0,0,.4);
  z-index:50;opacity:0;pointer-events:none;transition:opacity .25s,transform .25s;
}
.toast.show{opacity:1;transform:translateX(-50%) translateY(4px)}
.toast.error{border-color:rgba(255,91,106,.5)}
.toast.success{border-color:rgba(0,212,166,.5)}

/* ===== 注册 / 找回 / 重置 / 面板 页面补充样式 ===== */
.link{color:var(--accent);text-decoration:none}
.link:hover{color:var(--accent-2);text-decoration:underline}
.tip .link{margin-left:4px}
.form-message{display:none;font-size:13px;line-height:1.7;padding:10px 12px;border-radius:8px;margin:0 0 16px}
.form-message.show{display:block}
.form-message.info{background:rgba(0,212,166,.08);border:1px solid rgba(0,212,166,.35);color:var(--accent-2)}
.form-message.error{background:rgba(255,91,106,.08);border:1px solid rgba(255,91,106,.4);color:var(--danger)}
.input-box.invalid{border-color:var(--danger)}
.auth-foot{text-align:center;font-size:13px;color:var(--muted);margin-top:16px}

/* 面板 */
.panel-card{max-width:440px}
.acct-line{display:flex;justify-content:space-between;gap:16px;font-size:14px;color:var(--muted);padding:9px 0;border-bottom:1px dashed var(--border)}
.acct-line span{flex-shrink:0}
.acct-line b{color:var(--text);font-weight:600}
.panel-hint{font-size:13px;color:var(--muted);text-align:center;line-height:1.8;margin:18px 0}
.pwdBox{margin-top:14px;border-top:1px solid var(--border);padding-top:14px;text-align:left}
.pwdBox summary{cursor:pointer;font-size:14px;color:var(--accent);margin-bottom:14px;list-style:none;user-select:none}
.pwdBox summary::-webkit-details-marker{display:none}
.pwdBox .field{margin-bottom:12px}
.submit.outline{background:transparent;color:var(--accent);border:1px solid var(--accent);box-shadow:none;letter-spacing:2px;font-size:14px}
.submit.outline:hover{background:rgba(0,212,166,.08);transform:none;box-shadow:none}

@media(max-width:480px){
  .login-card{padding:30px 22px 24px}
  .ticker-track{gap:26px}
}