diff --git a/server/bindata.go b/server/bindata.go
index 77cfe4ed5e4ccbc204b006bc65030cf2da8784fa..bf3c03639259752681498fc2a8dff7a64584feee 100644
--- a/server/bindata.go
+++ b/server/bindata.go
@@ -74,7 +74,7 @@ func staticCssBootstrapMinCss() (*asset, error) {
 		return nil, err
 	}
 
-	info := bindataFileInfo{name: "static/css/bootstrap.min.css", size: 140936, mode: os.FileMode(420), modTime: time.Unix(1561034381, 0)}
+	info := bindataFileInfo{name: "static/css/bootstrap.min.css", size: 140936, mode: os.FileMode(420), modTime: time.Unix(1560696660, 0)}
 	a := &asset{bytes: bytes, info: info}
 	return a, nil
 }
@@ -147,7 +147,7 @@ func staticCssSigninCss() (*asset, error) {
 		return nil, err
 	}
 
-	info := bindataFileInfo{name: "static/css/signin.css", size: 1009, mode: os.FileMode(420), modTime: time.Unix(1561034381, 0)}
+	info := bindataFileInfo{name: "static/css/signin.css", size: 1009, mode: os.FileMode(420), modTime: time.Unix(1560696660, 0)}
 	a := &asset{bytes: bytes, info: info}
 	return a, nil
 }
@@ -170,7 +170,7 @@ func staticJsBootstrap413MinJs() (*asset, error) {
 		return nil, err
 	}
 
-	info := bindataFileInfo{name: "static/js/bootstrap-4.1.3.min.js", size: 51039, mode: os.FileMode(420), modTime: time.Unix(1561034381, 0)}
+	info := bindataFileInfo{name: "static/js/bootstrap-4.1.3.min.js", size: 51039, mode: os.FileMode(420), modTime: time.Unix(1560696660, 0)}
 	a := &asset{bytes: bytes, info: info}
 	return a, nil
 }
@@ -189,7 +189,7 @@ func staticJsJquery331MinJs() (*asset, error) {
 		return nil, err
 	}
 
-	info := bindataFileInfo{name: "static/js/jquery-3.3.1.min.js", size: 86927, mode: os.FileMode(420), modTime: time.Unix(1561034381, 0)}
+	info := bindataFileInfo{name: "static/js/jquery-3.3.1.min.js", size: 86927, mode: os.FileMode(420), modTime: time.Unix(1560696660, 0)}
 	a := &asset{bytes: bytes, info: info}
 	return a, nil
 }
@@ -243,7 +243,7 @@ func staticJsLogoutJs() (*asset, error) {
 		return nil, err
 	}
 
-	info := bindataFileInfo{name: "static/js/logout.js", size: 1005, mode: os.FileMode(420), modTime: time.Unix(1561034381, 0)}
+	info := bindataFileInfo{name: "static/js/logout.js", size: 1005, mode: os.FileMode(420), modTime: time.Unix(1560696660, 0)}
 	a := &asset{bytes: bytes, info: info}
 	return a, nil
 }
@@ -265,7 +265,7 @@ func staticJsPopper1143MinJs() (*asset, error) {
 		return nil, err
 	}
 
-	info := bindataFileInfo{name: "static/js/popper-1.14.3.min.js", size: 20337, mode: os.FileMode(420), modTime: time.Unix(1561034381, 0)}
+	info := bindataFileInfo{name: "static/js/popper-1.14.3.min.js", size: 20337, mode: os.FileMode(420), modTime: time.Unix(1560696660, 0)}
 	a := &asset{bytes: bytes, info: info}
 	return a, nil
 }
@@ -1030,7 +1030,7 @@ func staticJsU2fApiJs() (*asset, error) {
 		return nil, err
 	}
 
-	info := bindataFileInfo{name: "static/js/u2f-api.js", size: 20880, mode: os.FileMode(420), modTime: time.Unix(1561034381, 0)}
+	info := bindataFileInfo{name: "static/js/u2f-api.js", size: 20880, mode: os.FileMode(420), modTime: time.Unix(1512325237, 0)}
 	a := &asset{bytes: bytes, info: info}
 	return a, nil
 }
@@ -1099,7 +1099,7 @@ func staticJsU2fJs() (*asset, error) {
 		return nil, err
 	}
 
-	info := bindataFileInfo{name: "static/js/u2f.js", size: 1274, mode: os.FileMode(420), modTime: time.Unix(1561034381, 0)}
+	info := bindataFileInfo{name: "static/js/u2f.js", size: 1274, mode: os.FileMode(420), modTime: time.Unix(1560696660, 0)}
 	a := &asset{bytes: bytes, info: info}
 	return a, nil
 }
@@ -1109,13 +1109,13 @@ var _templatesLogin_otpHtml = []byte(`{{template "header" .}}
     <form class="form-signin" action="{{.URLPrefix}}/login" method="post">
       {{.CSRFField}}
 
-      <div class="row">
+      <div class="row no-gutters">
           {{if .SiteLogo}}
-          <div class="col-md1">
+          <div class="col-sm-auto">
             <img src="./img/site_logo">
           </div>
           {{end}}
-          <div class="col-md3">
+          <div class="col-sm-auto">
             <h1 class="form-signin-heading">Sign In / OTP</h1>
           </div>
       </div>
@@ -1154,7 +1154,7 @@ func templatesLogin_otpHtml() (*asset, error) {
 		return nil, err
 	}
 
-	info := bindataFileInfo{name: "templates/login_otp.html", size: 937, mode: os.FileMode(420), modTime: time.Unix(1561391872, 0)}
+	info := bindataFileInfo{name: "templates/login_otp.html", size: 956, mode: os.FileMode(420), modTime: time.Unix(1561757406, 0)}
 	a := &asset{bytes: bytes, info: info}
 	return a, nil
 }
@@ -1164,13 +1164,13 @@ var _templatesLogin_passwordHtml = []byte(`{{template "header" .}}
     <form class="form-signin" action="{{.URLPrefix}}/login" method="post">
       {{.CSRFField}}
 
-      <div class="row">
+      <div class="row no-gutters">
           {{if .SiteLogo}}
-          <div class="col-md1">
+          <div class="col-sm-auto">
             <img src="./img/site_logo">
           </div>
           {{end}}
-          <div class="col-md3">
+          <div class="col-sm-auto">
             <h1 class="form-signin-heading">Sign In</h1>
           </div>
       </div>
@@ -1225,7 +1225,7 @@ func templatesLogin_passwordHtml() (*asset, error) {
 		return nil, err
 	}
 
-	info := bindataFileInfo{name: "templates/login_password.html", size: 1413, mode: os.FileMode(420), modTime: time.Unix(1561391985, 0)}
+	info := bindataFileInfo{name: "templates/login_password.html", size: 1432, mode: os.FileMode(420), modTime: time.Unix(1561757427, 0)}
 	a := &asset{bytes: bytes, info: info}
 	return a, nil
 }
@@ -1236,13 +1236,13 @@ var _templatesLogin_u2fHtml = []byte(`{{template "header" .}}
       {{.CSRFField}}
       <input type="hidden" id="u2fResponseField" name="u2f_response" value="">
 
-      <div class="row">
+      <div class="row no-gutters">
           {{if .SiteLogo}}
-          <div class="col-md1">
+          <div class="col-sm-auto">
             <img src="./img/site_logo">
           </div>
           {{end}}
-          <div class="col-md3">
+          <div class="col-sm-auto">
             <h1 class="form-signin-heading">Sign In / U2F</h1>
           </div>
       </div>
@@ -1258,7 +1258,7 @@ var _templatesLogin_u2fHtml = []byte(`{{template "header" .}}
       </p>
 
       <p id="u2fMsg" class="hidden"></p>
-      
+
     </form>
 
     {{if .AuthResponse.Has2FAMethod "otp"}}
@@ -1282,7 +1282,7 @@ func templatesLogin_u2fHtml() (*asset, error) {
 		return nil, err
 	}
 
-	info := bindataFileInfo{name: "templates/login_u2f.html", size: 895, mode: os.FileMode(420), modTime: time.Unix(1561391993, 0)}
+	info := bindataFileInfo{name: "templates/login_u2f.html", size: 908, mode: os.FileMode(420), modTime: time.Unix(1561757448, 0)}
 	a := &asset{bytes: bytes, info: info}
 	return a, nil
 }
@@ -1342,7 +1342,7 @@ func templatesLogoutHtml() (*asset, error) {
 		return nil, err
 	}
 
-	info := bindataFileInfo{name: "templates/logout.html", size: 1063, mode: os.FileMode(420), modTime: time.Unix(1561034381, 0)}
+	info := bindataFileInfo{name: "templates/logout.html", size: 1063, mode: os.FileMode(420), modTime: time.Unix(1561757528, 0)}
 	a := &asset{bytes: bytes, info: info}
 	return a, nil
 }
@@ -1391,7 +1391,7 @@ func templatesPageHtml() (*asset, error) {
 		return nil, err
 	}
 
-	info := bindataFileInfo{name: "templates/page.html", size: 1865, mode: os.FileMode(420), modTime: time.Unix(1561034381, 0)}
+	info := bindataFileInfo{name: "templates/page.html", size: 1865, mode: os.FileMode(420), modTime: time.Unix(1561757493, 0)}
 	a := &asset{bytes: bytes, info: info}
 	return a, nil
 }
diff --git a/server/templates/login_otp.html b/server/templates/login_otp.html
index a21084cc5a962565a570af312add31ff1df4fc44..68a6ac511f5d0b51b43d269416ad169a46e8c33d 100644
--- a/server/templates/login_otp.html
+++ b/server/templates/login_otp.html
@@ -3,13 +3,13 @@
     <form class="form-signin" action="{{.URLPrefix}}/login" method="post">
       {{.CSRFField}}
 
-      <div class="row">
+      <div class="row no-gutters">
           {{if .SiteLogo}}
-          <div class="col-md1">
+          <div class="col-sm-auto">
             <img src="./img/site_logo">
           </div>
           {{end}}
-          <div class="col-md3">
+          <div class="col-sm-auto">
             <h1 class="form-signin-heading">Sign In / OTP</h1>
           </div>
       </div>
diff --git a/server/templates/login_password.html b/server/templates/login_password.html
index b2e8fdaf0f5d690ff5c9862190e2f353d3c41eb2..483e15ed127f14ebb4dbeb87d2d10880b1433b36 100644
--- a/server/templates/login_password.html
+++ b/server/templates/login_password.html
@@ -3,13 +3,13 @@
     <form class="form-signin" action="{{.URLPrefix}}/login" method="post">
       {{.CSRFField}}
 
-      <div class="row">
+      <div class="row no-gutters">
           {{if .SiteLogo}}
-          <div class="col-md1">
+          <div class="col-sm-auto">
             <img src="./img/site_logo">
           </div>
           {{end}}
-          <div class="col-md3">
+          <div class="col-sm-auto">
             <h1 class="form-signin-heading">Sign In</h1>
           </div>
       </div>
diff --git a/server/templates/login_u2f.html b/server/templates/login_u2f.html
index 6147232f3e5f631caa8a50b5cad2f02c64d8468d..904c2f88d8710222a51148c36c322226fac69d36 100644
--- a/server/templates/login_u2f.html
+++ b/server/templates/login_u2f.html
@@ -4,13 +4,13 @@
       {{.CSRFField}}
       <input type="hidden" id="u2fResponseField" name="u2f_response" value="">
 
-      <div class="row">
+      <div class="row no-gutters">
           {{if .SiteLogo}}
-          <div class="col-md1">
+          <div class="col-sm-auto">
             <img src="./img/site_logo">
           </div>
           {{end}}
-          <div class="col-md3">
+          <div class="col-sm-auto">
             <h1 class="form-signin-heading">Sign In / U2F</h1>
           </div>
       </div>
@@ -26,7 +26,7 @@
       </p>
 
       <p id="u2fMsg" class="hidden"></p>
-      
+
     </form>
 
     {{if .AuthResponse.Has2FAMethod "otp"}}