After changing the site root, how to reflect this for wp-admin too?

You should be able to regex it with /wp/(wp-admin/.*) and point that to /$1, thus removing the /wp/. You can do this either via .htaccess or via wordpress’ rewrite API.

404 Not Found

Not Found

The requested URL was not found on this server.

Additionally, a 404 Not Found error was encountered while trying to use an ErrorDocument to handle the request.