*{margin:0;padding:0;box-sizing:border-box;-webkit-tap-highlight-color:transparent}
:root{
  --bg:#080c14;--bg2:#0e1220;--surf:#111624;--surf2:#151b2a;--surf3:#1a2033;
  --text:#e4eaf5;--text2:#8892a8;--text3:#4e5668;
  --rule:#1c2540;--rule2:#24304d;
  --accent:#4f8cff;--accent2:#7c6cf0;--accent-glow:rgba(79,140,255,.12);
  --long:#f04444;--long-bg:rgba(240,68,68,.1);
  --short:#26d966;--short-bg:rgba(38,217,102,.1);
  --warn:#f59e0b;--warn-bg:rgba(245,158,11,.1);
  --radius:10px;--radius-sm:6px;--radius-xs:4px;
  --shadow:0 8px 32px rgba(0,0,0,.4);
  --font:-apple-system,BlinkMacSystemFont,"Segoe UI","PingFang SC","Microsoft YaHei",sans-serif;
  --mono:"SF Mono","Cascadia Code","Consolas",monospace;
}
html{font-size:16px}
body{font-family:var(--font);background:var(--bg);color:var(--text);min-height:100vh;overflow-x:hidden;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}

@keyframes slideUp{from{transform:translateY(16px);opacity:0}}
@keyframes pulse{0%,100%{opacity:1}50%{opacity:.45}}
@keyframes shake{0%,100%{transform:translateX(0)}20%{transform:translateX(-3px)}60%{transform:translateX(3px)}}

.login-page{
  min-height:100vh;display:flex;align-items:center;justify-content:center;
  background:radial-gradient(ellipse at 30% 20%,rgba(79,140,255,.06),transparent 60%),
             radial-gradient(ellipse at 70% 80%,rgba(124,108,240,.05),transparent 60%),
             var(--bg);
  padding:24px;position:relative;overflow:hidden;
}
.login-box{
  width:100%;max-width:380px;background:rgba(17,22,36,.85);
  backdrop-filter:blur(24px);-webkit-backdrop-filter:blur(24px);
  border-radius:20px;padding:48px 36px;position:relative;z-index:1;
  border:1px solid rgba(255,255,255,.05);box-shadow:var(--shadow);
  animation:slideUp .5s ease;
}
.login-logo{text-align:center;margin-bottom:36px}
.logo-icon{font-size:52px;margin-bottom:8px;animation:pulse 3s infinite}
.login-box h1{
  font-size:28px;font-weight:800;letter-spacing:4px;
  background:linear-gradient(135deg,#4f8cff,#7c6cf0);
  -webkit-background-clip:text;-webkit-text-fill-color:transparent;
}
.login-subtitle{color:var(--text2);font-size:13px;margin-top:6px;letter-spacing:.5px}
.login-form{display:flex;flex-direction:column;gap:20px}
.input-group{display:flex;flex-direction:column;gap:8px}
.input-group label{font-size:12px;color:var(--text2);font-weight:600;letter-spacing:.8px;text-transform:uppercase}
.input-group input{
  width:100%;height:48px;background:var(--bg);border:1px solid var(--rule);
  border-radius:var(--radius-sm);padding:0 16px;color:var(--text);font-size:15px;
  transition:border-color .2s,box-shadow .2s;
}
.input-group input:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-glow)}
.input-group input::placeholder{color:var(--text3)}
.login-error{
  color:var(--long);font-size:12px;text-align:center;padding:10px;
  background:var(--long-bg);border-radius:var(--radius-sm);
  animation:shake .4s ease;
}
.login-remember{
  display:flex;align-items:center;margin-top:-6px;
}
.login-remember label{
  display:flex;align-items:center;gap:8px;font-size:12px;color:var(--text2);
  cursor:pointer;user-select:none;letter-spacing:.3px;
}
.login-remember input[type=checkbox]{
  width:16px;height:16px;accent-color:var(--accent);cursor:pointer;
}
.btn-login{
  width:100%;height:52px;background:linear-gradient(135deg,#4f8cff,#3568d8);
  color:#fff;border:none;border-radius:var(--radius-sm);font-size:16px;font-weight:700;
  cursor:pointer;transition:all .2s;margin-top:6px;position:relative;overflow:hidden;
  letter-spacing:2px;
}
.btn-login:hover{transform:translateY(-1px);box-shadow:0 8px 24px rgba(79,140,255,.3)}
.btn-login:active{transform:scale(.98)}
.btn-login:disabled{opacity:.6;cursor:not-allowed;transform:none;box-shadow:none}
.login-footer{text-align:center;color:var(--text3);font-size:11px;margin-top:24px}

.toast{
  position:fixed;bottom:32px;left:50%;transform:translateX(-50%);
  background:rgba(17,22,36,.95);color:var(--text);padding:12px 24px;
  border-radius:var(--radius-sm);font-size:14px;z-index:9999;
  border:1px solid var(--rule);backdrop-filter:blur(12px);
}
