:root{
  --brand:#1976d2; --brand-dark:#0b5cad; --bg:#0e1f33; --panel:#fff;
  --text:#1c2733; --muted:#6b7785; --border:#e1e5eb; --danger:#e53935;
}
*{box-sizing:border-box}
html,body{height:100%;margin:0;font:14px/1.4 -apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,sans-serif}
body{
  background:
    radial-gradient(at 20% 10%, rgba(25,118,210,.35), transparent 50%),
    radial-gradient(at 80% 80%, rgba(11,92,173,.25), transparent 50%),
    linear-gradient(135deg, #0e1f33 0%, #142847 100%);
  color:var(--text);display:flex;align-items:center;justify-content:center;padding:24px
}
.card{
  width:100%;max-width:380px;background:var(--panel);border-radius:14px;
  box-shadow:0 24px 60px rgba(0,0,0,.35);overflow:hidden;
  animation:in .35s ease-out
}
@keyframes in{from{transform:translateY(12px);opacity:0}to{transform:translateY(0);opacity:1}}
.card .head{padding:24px 24px 0;text-align:center}
.logo{width:88px;height:88px;margin:0 auto 14px;border-radius:18px;
  background:#fff;border:1px solid #e2e8f0;
  display:flex;align-items:center;justify-content:center;overflow:hidden;
  padding:8px;box-shadow:0 4px 14px rgba(0,0,0,.18)}
.logo img{width:100%;height:100%;object-fit:contain;display:block}
.title{font-size:18px;font-weight:600;margin:0}
.sub{font-size:12px;color:var(--muted);margin:6px 0 0}
.body{padding:24px}
.field{margin-bottom:14px}
.label{font-size:12px;color:var(--muted);text-transform:uppercase;
  letter-spacing:.5px;font-weight:600;margin-bottom:6px;display:block}
.input{
  width:100%;padding:11px 14px;border:1px solid var(--border);
  border-radius:8px;font-size:14px;outline:none;
  transition:border-color .15s, box-shadow .15s;font-family:inherit
}
.input:focus{border-color:var(--brand);box-shadow:0 0 0 3px rgba(25,118,210,.15)}
.btn{
  width:100%;padding:11px 14px;background:var(--brand);color:#fff;
  border:0;border-radius:8px;cursor:pointer;font-weight:600;font-size:14px;
  transition:background .15s;font-family:inherit
}
.btn:hover{background:var(--brand-dark)}
.btn:disabled{opacity:.6;cursor:wait}
.err{
  background:#ffebee;color:var(--danger);padding:10px 12px;border-radius:6px;
  font-size:13px;margin-bottom:12px;display:none
}
.err.on{display:block}
.foot{padding:14px 24px;background:#fafbfc;border-top:1px solid var(--border);
  font-size:11px;color:var(--muted);text-align:center}
