diff --git a/core/css/guest.css b/core/css/guest.css
index 340d3954c953b5ff2c5598540af7257a0e204b75..b6421aca1f79c9ffb6c27c168e032593550ffad5 100644
--- a/core/css/guest.css
+++ b/core/css/guest.css
@@ -285,8 +285,14 @@ input[type='password'].password-with-toggle, input[type='text'].password-with-to
 }
 .toggle-password {
 	position: absolute;
-	top: 17px;
-	right: 20px;
+	top: 1px;
+	right: 5px;
+	padding: 14px;
+	height: 16px;
+}
+.toggle-password:hover,
+.toggle-password:focus {
+	opacity: .6;
 }
 input.login {
 	width: 260px;
@@ -334,7 +340,9 @@ button.primary:not(:disabled):hover,
 button.primary:not(:disabled):focus,
 a.primary:not(:disabled):hover,
 a.primary:not(:disabled):focus {
-	color: rgba(255, 255, 255, .8);
+	color: rgba(255, 255, 255, 1);
+	background-image: linear-gradient(40deg, #0082c9 0%, #30b6ff 100%);
+	background-position: initial;
 }
 
 /* Checkboxes - white only for login */
diff --git a/core/js/dist/login.js b/core/js/dist/login.js
index 01cd6eb0045cfc8a5577829a65a6a4237619d489..5a3847992358bc20cc3d29353a2af6b2871e34b5 100644
Binary files a/core/js/dist/login.js and b/core/js/dist/login.js differ
diff --git a/core/js/dist/login.js.map b/core/js/dist/login.js.map
index 027365f90117bfb420ce56a0e24d1566971d6305..0f8bbed4b571378af58a00af8fc1610f5475c817 100644
Binary files a/core/js/dist/login.js.map and b/core/js/dist/login.js.map differ
diff --git a/core/src/components/login/LoginForm.vue b/core/src/components/login/LoginForm.vue
index 9f0d4f9ba1c47ea1565ae1869bd938d1ae289ef9..c75b6f2c7ea46403d9e6d05c8fade3b4abd7adcb 100644
--- a/core/src/components/login/LoginForm.vue
+++ b/core/src/components/login/LoginForm.vue
@@ -82,7 +82,7 @@
 				<label for="password"
 					class="infield">{{ t('Password') }}</label>
 				<a href="#" class="toggle-password" @click.stop.prevent="togglePassword">
-					<img :src="toggleIcon">
+					<img :src="toggleIcon" :alt="t('core', 'Toggle password visibility')">
 				</a>
 			</p>
 
diff --git a/core/src/views/Login.vue b/core/src/views/Login.vue
index 0a5708bb5c32c3ea9c6906d972db166758d85fb9..c4e53c6559babaa9e19574f7970f9e4965faa6aa 100644
--- a/core/src/views/Login.vue
+++ b/core/src/views/Login.vue
@@ -46,7 +46,9 @@
 					{{ t('core', 'Forgot password?') }}
 				</a>
 				<br>
-				<a v-if="hasPasswordless" @click.prevent="passwordlessLogin = true">
+				<a v-if="hasPasswordless"
+					href="#"
+					@click.prevent="passwordlessLogin = true">
 					{{ t('core', 'Log in with a device') }}
 				</a>
 			</div>
@@ -61,7 +63,7 @@
 					:is-https="isHttps"
 					:has-public-key-credential="hasPublicKeyCredential"
 					@submit="loading = true" />
-				<a @click.prevent="passwordlessLogin = false">
+				<a @click.prevent="passwordlessLogin = false" href="#">
 					{{ t('core', 'Back') }}
 				</a>
 			</div>