:root{
  --blue:#0a3d66;
  --blue-light:#1f6fb2;
  --accent:#2f8fd6;
  --bg:#f3f6f9;
  --card:#ffffff;
  --ink:#182734;
  --muted:#5c7180;
  --border:#dfe6ec;
  --red:#c9433a;
}
*{box-sizing:border-box;}
html,body{margin:0; height:100%;}
body{
  background:linear-gradient(180deg, var(--blue), #062338);
  color:var(--ink);
  font-family:-apple-system, BlinkMacSystemFont,'Segoe UI', Roboto, Arial, sans-serif;
}
.login-shell{min-height:100vh; display:flex; align-items:center; justify-content:center; padding:20px;}
.login-card{
  background:var(--card); border-radius:14px; padding:34px 32px; width:340px; max-width:100%;
  box-shadow:0 20px 50px rgba(0,0,0,0.25);
}
.login-brand{font-size:18px; font-weight:700; color:var(--blue);}
.login-sub{font-size:13px; color:var(--muted); margin-bottom:22px;}
.field{display:flex; flex-direction:column; gap:5px; margin-bottom:14px;}
.field label{font-size:12px; font-weight:600; color:var(--muted);}
.field input{border:1px solid var(--border); border-radius:8px; padding:10px 12px; font-size:14px; font-family:inherit;}
.login-error{
  background:#fadcd9; color:#9c2a20; font-size:12.5px; padding:8px 10px; border-radius:8px; margin-bottom:12px;
}
.login-submit{
  width:100%; background:var(--accent); color:#fff; border:none; padding:11px; border-radius:8px;
  font-size:14px; font-weight:600; cursor:pointer;
}
.login-submit:hover{background:var(--blue-light);}
.login-submit:disabled{opacity:.6; cursor:default;}
