:root{
  --stage:#15121C;
  --stage-2:#1B1724;
  --surface:#211C2C;
  --surface-2:#2B2438;
  --line:rgba(243,240,250,0.09);
  --line-strong:rgba(243,240,250,0.16);
  --ink:#F3F0FA;
  --ink-soft:#B7AFCB;
  --ink-faint:#7C7495;
  --gold:#EEBE55;
  --gold-ink:#1B1508;
  --violet:#9C90F5;
  --good:#5FCB93;
  --good-soft:rgba(95,203,147,0.15);
  --shadow-card: 0 1px 0 rgba(255,255,255,0.03) inset, 0 20px 40px -20px rgba(0,0,0,0.6);
  --shadow-glow: 0 0 0 1px rgba(238,190,85,0.15), 0 30px 70px -25px rgba(238,190,85,0.35);
}
*{box-sizing:border-box;}
html{color-scheme:dark;}
body{
  margin:0;
  min-height:100vh;
  display:flex;
  align-items:center;
  justify-content:center;
  background:
    radial-gradient(720px 420px at 18% -8%, rgba(156,144,245,0.16), transparent 60%),
    radial-gradient(900px 520px at 88% 8%, rgba(238,190,85,0.10), transparent 55%),
    var(--stage);
  color:var(--ink);
  font-family:"Noto Sans SC","PingFang SC","Microsoft YaHei",sans-serif;
  line-height:1.6;
  -webkit-font-smoothing:antialiased;
}
a{color:var(--gold);}
:focus-visible{outline:2px solid var(--gold);outline-offset:2px;border-radius:4px;}
.icon{width:1em;height:1em;stroke:currentColor;fill:none;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;display:inline-block;vertical-align:-0.15em;}

.auth-shell{width:100%;max-width:400px;padding:24px;}
.brand-mini{display:flex;flex-direction:column;align-items:center;gap:10px;margin-bottom:26px;text-align:center;}
.brand-mini .mark{width:50px;height:50px;border-radius:16px;background:linear-gradient(135deg,var(--violet),var(--gold));display:flex;align-items:center;justify-content:center;color:#1B1508;flex-shrink:0;}
.brand-mini .word{font-size:12.5px;font-weight:700;letter-spacing:.16em;}
.brand-mini .tag{font-size:12px;color:var(--ink-faint);}

.auth-card{background:var(--surface);border:1px solid var(--line-strong);border-radius:20px;padding:32px 30px;box-shadow:var(--shadow-glow), var(--shadow-card);}
.auth-card h1{font-size:19px;margin:0 0 6px;font-weight:900;}
.auth-card .sub{font-size:13px;color:var(--ink-faint);margin-bottom:22px;}

.field{margin-bottom:16px;}
.field label{display:block;font-size:12.5px;color:var(--ink-soft);margin-bottom:6px;}
.field input{width:100%;background:var(--surface-2);border:1px solid var(--line-strong);border-radius:10px;padding:12px 14px;color:var(--ink);font-size:14px;font-family:inherit;}
.field input:focus{outline:none;border-color:var(--gold);}
.field input::placeholder{color:var(--ink-faint);}

button{font:inherit;}
.btn{border:none;cursor:pointer;border-radius:100px;padding:13px 22px;font-size:14.5px;font-weight:700;display:inline-flex;align-items:center;justify-content:center;gap:8px;transition:transform .15s ease, opacity .15s ease;}
.btn:active{transform:scale(.98);}
.btn-primary{background:var(--gold);color:var(--gold-ink);}
.btn-primary:hover{background:#f3c968;}
.btn-block{width:100%;margin-top:6px;}
.btn[disabled]{opacity:.5;cursor:default;pointer-events:none;}

.auth-foot{margin-top:20px;text-align:center;font-size:13px;color:var(--ink-faint);}
.auth-foot a{text-decoration:none;font-weight:600;}
.auth-foot a:hover{text-decoration:underline;}
.auth-foot .row{margin-top:8px;}

.msg{border-radius:10px;padding:11px 14px;font-size:13px;margin-bottom:16px;display:none;line-height:1.5;}
.msg.error{background:rgba(242,102,102,.12);color:#f28c8c;border:1px solid rgba(242,102,102,.3);}
.msg.success{background:var(--good-soft);color:var(--good);border:1px solid rgba(95,203,147,.3);}

.spinner{width:16px;height:16px;border-radius:50%;border:2px solid rgba(27,21,8,.35);border-top-color:var(--gold-ink);animation:mt-spin .8s linear infinite;}
@keyframes mt-spin{to{transform:rotate(360deg);}}
@media (prefers-reduced-motion:reduce){.spinner{animation-duration:1.6s;}}

.page-loading{display:flex;flex-direction:column;align-items:center;gap:14px;color:var(--ink-faint);font-size:13px;}
.page-loading .spinner{width:26px;height:26px;border-color:var(--surface-2);border-top-color:var(--gold);}
