body {
  display: flex;
  align-items: center;
  justify-content: center;
}

#login-container {
  background: rgba(0,0,0,.6);
  border: 1px solid rgba(255,255,255,.1);
  border-radius: 10px;
  padding: 40px;
  width: min(320px, 90vw);   /* never overflow narrow phones */
  box-sizing: border-box;
}

@media (max-width: 640px) {
  #login-container { padding: 28px; }
  /* >=16px stops iOS from auto-zooming when a field is focused. */
  #login-form input { font-size: 16px; }
}

#login-container h1 {
  margin: 0 0 24px;
  font-size: 22px;
  text-align: center;
  letter-spacing: .05em;
}

#login-form {
  display: flex;
  flex-direction: column;
  gap: 12px;
}

#login-form input {
  padding: 10px 12px;
  border-radius: 5px;
  border: 1px solid rgba(255,255,255,.2);
  background: rgba(255,255,255,.07);
  color: #eee;
  font-size: 14px;
}

#login-form input:focus {
  outline: none;
  border-color: #63a0ff;
}

#login-form button {
  padding: 10px;
  border-radius: 5px;
  border: none;
  background: #63a0ff;
  color: #fff;
  font-size: 14px;
  cursor: pointer;
}

#login-form button:hover { background: #4d8fee; }

#error-msg {
  color: #ff6b6b;
  font-size: 13px;
  margin: 0;
  min-height: 18px;
}
