body{margin:0;font-family:var(--font);background:var(--bg);color:var(--ink);min-height:100vh}
.page{min-height:100vh;display:grid;place-items:center;padding:40px 20px}
.card{
  background:#fff;
  border:1px solid rgba(8,11,66,.07);
  border-radius:20px;
  box-shadow:0 2px 4px rgba(8,11,66,.04),0 14px 44px rgba(8,11,66,.09);
  padding:44px;
  max-width:420px;
  width:100%;
  position:relative;
  overflow:hidden;
}
.card::before{
  content:'';
  position:absolute;
  top:0;left:0;right:0;
  height:3px;
  background:var(--grad);
}
.brand{margin-bottom:32px}
.brand img{height:32px;width:auto;max-width:100%;display:block}
h1{font-size:26px;font-weight:800;margin:0 0 8px;letter-spacing:-.02em}
p.sub{color:var(--muted);margin:0 0 24px;font-size:14px;line-height:1.6}
label{display:block;font-weight:700;font-size:13px;margin-bottom:6px}
input{
  width:100%;
  border:1.5px solid var(--line);
  border-radius:10px;
  padding:12px 14px;
  font:inherit;
  font-size:15px;
  color:var(--ink);
  transition:border-color var(--t-fast),box-shadow var(--t-fast);
}
input:focus{outline:none;border-color:#7714FD;box-shadow:0 0 0 3px rgba(119,20,253,.10)}
.btn{
  display:block;
  width:100%;
  background:var(--grad);
  color:#fff;
  border:0;
  border-radius:10px;
  padding:14px;
  font:inherit;
  font-size:15px;
  font-weight:700;
  cursor:pointer;
  box-shadow:0 4px 18px rgba(119,20,253,.22);
  margin-top:16px;
  transition:transform var(--t-fast),box-shadow var(--t-fast);
  text-align:center;
}
.btn:disabled{opacity:.6;cursor:default}
.btn:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 8px 26px rgba(119,20,253,.32)}
#msg{margin-top:12px}
.msg{font-size:13px;font-weight:600;border-radius:10px;padding:11px 14px}
.ok{background:#e6f5ee;border:1px solid #bfe6d2;color:#1f7d54}
.err{background:#fdeaed;border:1px solid #f3c2ca;color:#a23341}
.foot{margin-top:20px;font-size:13px;color:var(--muted)}
.foot a{color:var(--accent);text-decoration:none;font-weight:700}
.foot a:hover{text-decoration:underline}
