diff --git a/uffd/invite/templates/invite/use.html b/uffd/invite/templates/invite/use.html
index d31f23d467126fb7aaa3ef1171ba57d5b32181a7..687153f9ab969b34507f8c4f55c91d24fbbe2388 100644
--- a/uffd/invite/templates/invite/use.html
+++ b/uffd/invite/templates/invite/use.html
@@ -1,51 +1,43 @@
-{% extends 'base.html' %}
+{% extends 'base_narrow.html' %}
 
 {% block body %}
+	<div class="col-12 mb-3">
+		<h2 class="text-center">{{_('Invite Link')}}</h2>
+	</div>
+	{% if not request.user %}
+	<p>{{_('Welcome to the %(org_name)s Single-Sign-On!', org_name=config.ORGANISATION_NAME)}}</p>
+	{% endif %}
 
-<div class="row mt-2 justify-content-center">
-	<div class="col-lg-6 col-md-10" style="background: #f7f7f7; box-shadow: 0px 2px 2px rgba(0, 0, 0, 0.3); padding: 30px;">
-		<div class="text-center">
-			<img alt="branding logo" src="{{ config.get("BRANDING_LOGO_URL") }}" class="col-lg-8 col-md-12" >
-		</div>
-		<div class="col-12 mb-3">
-			<h2 class="text-center">{{_('Invite Link')}}</h2>
-		</div>
-		{% if not request.user %}
-		<p>{{_('Welcome to the %(org_name)s Single-Sign-On!', org_name=config.ORGANISATION_NAME)}}</p>
+	{% if invite.roles and invite.allow_signup %}
+	<p>{{_('With this link you can register a new user account with the following roles or add the roles to an existing account:')}}</p>
+	{% elif invite.roles %}
+	<p>{{_('With this link you can add the following roles to an existing account:')}}</p>
+	{% elif invite.allow_signup %}
+	<p>{{_('With this link you can register a new user account.')}}</p>
+	{% endif %}
+	{% if invite.roles %}
+	<ul>
+		{% for role in invite.roles %}
+		<li>{{ role.name }}{% if role.description %}: {{ role.description }}{% endif %}</li>
+		{% endfor %}
+	</ul>
+	{% endif %}
+	{% if request.user %}
+		{% if invite.roles %}
+			<form method="POST" action="{{ url_for("invite.grant", token=invite.token) }}" class="mb-2">
+				<button type="submit" class="btn btn-primary btn-block">{{_('Add the roles to your account now')}}</button>
+			</form>
+			<a href="{{ url_for("session.logout", ref=url_for("session.login", ref=request.full_path)) }}" class="btn btn-secondary btn-block">{{_('Logout and switch to a different account')}}</a>
 		{% endif %}
-
-		{% if invite.roles and invite.allow_signup %}
-		<p>{{_('With this link you can register a new user account with the following roles or add the roles to an existing account:')}}</p>
-		{% elif invite.roles %}
-		<p>{{_('With this link you can add the following roles to an existing account:')}}</p>
-		{% elif invite.allow_signup %}
-		<p>{{_('With this link you can register a new user account.')}}</p>
+		{% if invite.allow_signup %}
+			<a href="{{ url_for("session.logout", ref=url_for("invite.signup_start", token=invite.token)) }}" class="btn btn-secondary btn-block">{{_('Logout to register a new account')}}</a>
 		{% endif %}
-		{% if invite.roles %}
-		<ul>
-			{% for role in invite.roles %}
-			<li>{{ role.name }}{% if role.description %}: {{ role.description }}{% endif %}</li>
-			{% endfor %}
-		</ul>
+	{% else %}
+		{% if invite.allow_signup %}
+			<a href="{{ url_for("invite.signup_start", token=invite.token) }}" class="btn btn-primary btn-block">{{_('Register a new account')}}</a>
 		{% endif %}
-		{% if request.user %}
-			{% if invite.roles %}
-				<form method="POST" action="{{ url_for("invite.grant", token=invite.token) }}" class="mb-2">
-					<button type="submit" class="btn btn-primary btn-block">{{_('Add the roles to your account now')}}</button>
-				</form>
-				<a href="{{ url_for("session.logout", ref=url_for("session.login", ref=request.full_path)) }}" class="btn btn-secondary btn-block">{{_('Logout and switch to a different account')}}</a>
-			{% endif %}
-			{% if invite.allow_signup %}
-				<a href="{{ url_for("session.logout", ref=url_for("invite.signup_start", token=invite.token)) }}" class="btn btn-secondary btn-block">{{_('Logout to register a new account')}}</a>
-			{% endif %}
-		{% else %}
-			{% if invite.allow_signup %}
-				<a href="{{ url_for("invite.signup_start", token=invite.token) }}" class="btn btn-primary btn-block">{{_('Register a new account')}}</a>
-			{% endif %}
-			{% if invite.roles %}
-				<a href="{{ url_for("session.login", ref=request.full_path) }}" class="btn btn-primary btn-block">{{_('Login and add the roles to your account')}}</a>
-			{% endif %}
+		{% if invite.roles %}
+			<a href="{{ url_for("session.login", ref=request.full_path) }}" class="btn btn-primary btn-block">{{_('Login and add the roles to your account')}}</a>
 		{% endif %}
-	</div>
-</div>
+	{% endif %}
 {% endblock %}
diff --git a/uffd/mfa/templates/mfa/auth.html b/uffd/mfa/templates/mfa/auth.html
index c17e99f6d9de88a3dd31800905ddfb6f86770620..31e92dcc7019f08a0e2cae3cb0516e060fe03add 100644
--- a/uffd/mfa/templates/mfa/auth.html
+++ b/uffd/mfa/templates/mfa/auth.html
@@ -1,45 +1,37 @@
-{% extends 'base.html' %}
+{% extends 'base_narrow.html' %}
 
 {% block body %}
-
 <form action="{{ url_for("mfa.auth_finish", ref=ref) }}" method="POST">
-<div class="row mt-2 justify-content-center">
-	<div class="col-lg-6 col-md-10" style="background: #f7f7f7; box-shadow: 0px 2px 2px rgba(0, 0, 0, 0.3); padding: 30px;">
-		<div class="text-center">
-			<img alt="branding logo" src="{{ config.get("BRANDING_LOGO_URL") }}" class="col-lg-8 col-md-12" >
-		</div>
-		<div class="col-12 mb-3">
-			<h2 class="text-center">{{_("Two-Factor Authentication")}}</h2>
-		</div>
-		{% if request.user_pre_mfa.mfa_webauthn_methods %}
-		<noscript>
-			<div class="form-group col-12">
-				<div id="webauthn-nojs" class="alert alert-warning" role="alert">{{_("Enable javascript for authentication with U2F/FIDO2 devices")}}</div>
-			</div>
-		</noscript>
-		<div id="webauthn-unsupported" class="form-group col-12 d-none">
-			<div class="alert alert-warning" role="alert">{{_("Authentication with U2F/FIDO2 devices is not supported by your browser")}}</div>
-		</div>
-		<div class="form-group col-12 d-none webauthn-group">
-			<div id="webauthn-alert" class="alert alert-warning d-none" role="alert"></div>
-			<button type="button" id="webauthn-btn" class="btn btn-primary btn-block">
-				<span id="webauthn-spinner" class="spinner-border spinner-border-sm d-none" role="status" aria-hidden="true"></span>
-				<span id="webauthn-btn-text">{{_("Authenticate with U2F/FIDO2 device")}}</span>
-			</button>
-		</div>
-		<div class="text-center text-muted d-none webauthn-group mb-3">- {{_("or")}} -</div>
-		{% endif %}
-		<div class="form-group col-12 mb-2">
-			<input type="text" class="form-control" id="mfa-code" name="code" required="required" placeholder="{{_("Code from your authenticator app or recovery code")}}" autocomplete="off" autofocus>
-		</div>
-		<div class="form-group col-12">
-			<button type="submit" class="btn btn-primary btn-block">{{_("Verify")}}</button>
-		</div>
+	<div class="col-12 mb-3">
+		<h2 class="text-center">{{_("Two-Factor Authentication")}}</h2>
+	</div>
+	{% if request.user_pre_mfa.mfa_webauthn_methods %}
+	<noscript>
 		<div class="form-group col-12">
-			<a href="{{ url_for("session.logout") }}" class="btn btn-secondary btn-block">{{_("Cancel")}}</a>
+			<div id="webauthn-nojs" class="alert alert-warning" role="alert">{{_("Enable javascript for authentication with U2F/FIDO2 devices")}}</div>
 		</div>
+	</noscript>
+	<div id="webauthn-unsupported" class="form-group col-12 d-none">
+		<div class="alert alert-warning" role="alert">{{_("Authentication with U2F/FIDO2 devices is not supported by your browser")}}</div>
+	</div>
+	<div class="form-group col-12 d-none webauthn-group">
+		<div id="webauthn-alert" class="alert alert-warning d-none" role="alert"></div>
+		<button type="button" id="webauthn-btn" class="btn btn-primary btn-block">
+			<span id="webauthn-spinner" class="spinner-border spinner-border-sm d-none" role="status" aria-hidden="true"></span>
+			<span id="webauthn-btn-text">{{_("Authenticate with U2F/FIDO2 device")}}</span>
+		</button>
+	</div>
+	<div class="text-center text-muted d-none webauthn-group mb-3">- {{_("or")}} -</div>
+	{% endif %}
+	<div class="form-group col-12 mb-2">
+		<input type="text" class="form-control" id="mfa-code" name="code" required="required" placeholder="{{_("Code from your authenticator app or recovery code")}}" autocomplete="off" autofocus>
+	</div>
+	<div class="form-group col-12">
+		<button type="submit" class="btn btn-primary btn-block">{{_("Verify")}}</button>
+	</div>
+	<div class="form-group col-12">
+		<a href="{{ url_for("session.logout") }}" class="btn btn-secondary btn-block">{{_("Cancel")}}</a>
 	</div>
-</div>
 </form>
 
 {% if webauthn_supported and request.user_pre_mfa.mfa_webauthn_methods %}
diff --git a/uffd/oauth2/templates/oauth2/logout.html b/uffd/oauth2/templates/oauth2/logout.html
index f048ccdfc93ab9a670b7df603ca11dcec20994eb..e45a92686f1ae669164559ed882400123eb7e205 100644
--- a/uffd/oauth2/templates/oauth2/logout.html
+++ b/uffd/oauth2/templates/oauth2/logout.html
@@ -1,45 +1,38 @@
-{% extends 'base.html' %}
+{% extends 'base_narrow.html' %}
 
 {% block body %}
-<div class="row mt-2 justify-content-center">
-	<div class="col-lg-6 col-md-10" style="background: #f7f7f7; box-shadow: 0px 2px 2px rgba(0, 0, 0, 0.3); padding: 30px;">
-		<div class="text-center">
-			<img alt="branding logo" src="{{ config.get("BRANDING_LOGO_URL") }}" class="col-lg-8 col-md-12" >
-		</div>
-		<div class="col-12">
-			<h2 class="text-center">{{_('Logout')}}</h2>
-		</div>
+<div class="col-12">
+	<h2 class="text-center">{{_('Logout')}}</h2>
+</div>
 
-		<div class="col-12">
-			<noscript>
-				<div class="alert alert-warning" role="alert">{{_('Javascript is required for automatic logout')}}</div>
-			</noscript>
-			<p>{{_('While you successfully logged out of the Single-Sign-On service, you may still be logged in on these services:')}}</p>
-			<ul>
-			{% for client in clients if client.logout_urls %}
-				<li class="client" data-urls='{{ client.logout_urls|tojson }}'>
-					{{ client.client_id }}
-					<span class="status-active spinner-border spinner-border-sm d-none" role="status" aria-hidden="true"></span>
-					<i class="status-success fas fa-check d-none"></i>
-					<i class="status-failed fas fa-exclamation d-none"></i>
-				</li>
-			{% endfor %}
-			</ul>
+<div class="col-12">
+	<noscript>
+		<div class="alert alert-warning" role="alert">{{_('Javascript is required for automatic logout')}}</div>
+	</noscript>
+	<p>{{_('While you successfully logged out of the Single-Sign-On service, you may still be logged in on these services:')}}</p>
+	<ul>
+	{% for client in clients if client.logout_urls %}
+		<li class="client" data-urls='{{ client.logout_urls|tojson }}'>
+			{{ client.client_id }}
+			<span class="status-active spinner-border spinner-border-sm d-none" role="status" aria-hidden="true"></span>
+			<i class="status-success fas fa-check d-none"></i>
+			<i class="status-failed fas fa-exclamation d-none"></i>
+		</li>
+	{% endfor %}
+	</ul>
 
-			<p>
-				{{_('Please wait until you have been automatically logged out of all services or make sure of this yourself.')}}
-			</p>
+	<p>
+		{{_('Please wait until you have been automatically logged out of all services or make sure of this yourself.')}}
+	</p>
 
-			<button id="retry-button" class="btn btn-block btn-primary d-none" disabled>
-				<span id="cont-text">{{_('Logging you out on all services ...')}}</span>
-			</button>
+	<button id="retry-button" class="btn btn-block btn-primary d-none" disabled>
+		<span id="cont-text">{{_('Logging you out on all services ...')}}</span>
+	</button>
 
-			<a href="{{ request.values.get('ref') or '/' }}" class="btn btn-block btn-secondary">
-				<span>{{_('Skip this and continue')}}</span>
-			</a>
+	<a href="{{ request.values.get('ref') or '/' }}" class="btn btn-block btn-secondary">
+		<span>{{_('Skip this and continue')}}</span>
+	</a>
 
-		</div>
-	</div>
 </div>
 
 <script>
diff --git a/uffd/selfservice/templates/selfservice/forgot_password.html b/uffd/selfservice/templates/selfservice/forgot_password.html
index 6997f4a7b7f26f3e75c06759e020fcd21bbfca4a..9792f15b471d058f385e3c55b6fb82c732755e86 100644
--- a/uffd/selfservice/templates/selfservice/forgot_password.html
+++ b/uffd/selfservice/templates/selfservice/forgot_password.html
@@ -1,27 +1,20 @@
-{% extends 'base.html' %}
+{% extends 'base_narrow.html' %}
 
 {% block body %}
 <form action="{{ url_for("selfservice.forgot_password") }}" method="POST">
-<div class="row mt-2 justify-content-center">
-	<div class="col-lg-6 col-md-10" style="background: #f7f7f7; box-shadow: 0px 2px 2px rgba(0, 0, 0, 0.3); padding: 30px;">
-		<div class="text-center">
-			<img alt="branding logo" src="{{ config.get("BRANDING_LOGO_URL") }}" class="col-lg-8 col-md-12" >
-		</div>
-		<div class="col-12">
-			<h2 class="text-center">{{_("Forgot password")}}</h2>
-		</div>
-		<div class="form-group col-12">
-			<label for="user-loginname">{{_("Login Name")}}</label>
-			<input type="text" class="form-control" id="user-loginname" name="loginname" required="required" tabindex = "1">
-		</div>
-		<div class="form-group col-12">
-			<label for="user-mail">{{_("Mail Address")}}</label>
-			<input type="text" class="form-control" id="user-mail" name="mail" required="required" tabindex = "2">
-		</div>
-		<div class="form-group col-12">
-			<button type="submit" class="btn btn-primary btn-block" tabindex = "3">{{_("Send password reset mail")}}</button>
-		</div>
+	<div class="col-12">
+		<h2 class="text-center">{{_("Forgot password")}}</h2>
+	</div>
+	<div class="form-group col-12">
+		<label for="user-loginname">{{_("Login Name")}}</label>
+		<input type="text" class="form-control" id="user-loginname" name="loginname" required="required" tabindex = "1">
+	</div>
+	<div class="form-group col-12">
+		<label for="user-mail">{{_("Mail Address")}}</label>
+		<input type="text" class="form-control" id="user-mail" name="mail" required="required" tabindex = "2">
+	</div>
+	<div class="form-group col-12">
+		<button type="submit" class="btn btn-primary btn-block" tabindex = "3">{{_("Send password reset mail")}}</button>
 	</div>
-</div>
 </form>
 {% endblock %}
diff --git a/uffd/selfservice/templates/selfservice/self.html b/uffd/selfservice/templates/selfservice/self.html
index 158e3f3dfbc92176b87bb1ceac50960e54690f2c..79f4b0da87e39126acb89262663171482d1ac30e 100644
--- a/uffd/selfservice/templates/selfservice/self.html
+++ b/uffd/selfservice/templates/selfservice/self.html
@@ -9,7 +9,7 @@
 </div>
 {% endif %}
 
-<div class="row mt-3">
+<div class="row">
 	<div class="col-12 col-md-5">
 		<h5>{{_("Profile")}}</h5>
 		<p>{{_("Your profile information is used by all services that are integrated into the Single-Sign-On. Your e-mail address is also used for password recovery.")}}</p>
diff --git a/uffd/selfservice/templates/selfservice/set_password.html b/uffd/selfservice/templates/selfservice/set_password.html
index ff4c447895b3c52a3beb927e090403e89ed4d567..743b76333db6edf6db20bc0c5c1323b381a55c58 100644
--- a/uffd/selfservice/templates/selfservice/set_password.html
+++ b/uffd/selfservice/templates/selfservice/set_password.html
@@ -1,30 +1,23 @@
-{% extends 'base.html' %}
+{% extends 'base_narrow.html' %}
 
 {% block body %}
 <form action="{{ url_for("selfservice.token_password", token=token) }}" method="POST" onInput="password2.setCustomValidity(password1.value != password2.value ? 'Passwords do not match.' : '') ">
-<div class="row mt-2 justify-content-center">
-	<div class="col-lg-6 col-md-10" style="background: #f7f7f7; box-shadow: 0px 2px 2px rgba(0, 0, 0, 0.3); padding: 30px;">
-		<div class="text-center">
-			<img alt="branding logo" src="{{ config.get("BRANDING_LOGO_URL") }}" class="col-lg-8 col-md-12" >
-		</div>
-		<div class="col-12">
-			<h2 class="text-center">{{_("Reset password")}}</h2>
-		</div>
-		<div class="form-group col-12">
-			<label for="user-password1">{{_("New Password")}}</label>
-			<input type="password" class="form-control" id="user-password1" name="password1" tabindex="2" minlength={{ User.PASSWORD_MINLEN }} maxlength={{ User.PASSWORD_MAXLEN }} pattern="{{ User.PASSWORD_REGEX }}" required>
-			<small class="form-text text-muted">
-				{{ User.PASSWORD_DESCRIPTION|safe }}
-			</small>
-		</div>
-		<div class="form-group col-12">
-			<label for="user-password2">{{_("Repeat Password")}}</label>
-			<input type="password" class="form-control" id="user-password2" name="password2" tabindex="3" required>
-		</div>
-		<div class="form-group col-12">
-			<button type="submit" class="btn btn-primary btn-block" tabindex = "3">{{_("Set password")}}</button>
-		</div>
+	<div class="col-12">
+		<h2 class="text-center">{{_("Reset password")}}</h2>
+	</div>
+	<div class="form-group col-12">
+		<label for="user-password1">{{_("New Password")}}</label>
+		<input type="password" class="form-control" id="user-password1" name="password1" tabindex="2" minlength={{ User.PASSWORD_MINLEN }} maxlength={{ User.PASSWORD_MAXLEN }} pattern="{{ User.PASSWORD_REGEX }}" required>
+		<small class="form-text text-muted">
+			{{ User.PASSWORD_DESCRIPTION|safe }}
+		</small>
+	</div>
+	<div class="form-group col-12">
+		<label for="user-password2">{{_("Repeat Password")}}</label>
+		<input type="password" class="form-control" id="user-password2" name="password2" tabindex="3" required>
+	</div>
+	<div class="form-group col-12">
+		<button type="submit" class="btn btn-primary btn-block" tabindex = "3">{{_("Set password")}}</button>
 	</div>
-</div>
 </form>
 {% endblock %}
diff --git a/uffd/session/templates/session/deviceauth.html b/uffd/session/templates/session/deviceauth.html
index 382cf74ade88637f4d066bda3317d38024abd47e..c0827501355d9003328d68a0d32a47ee67e36b12 100644
--- a/uffd/session/templates/session/deviceauth.html
+++ b/uffd/session/templates/session/deviceauth.html
@@ -1,4 +1,4 @@
-{% extends 'base.html' %}
+{% extends 'base_narrow.html' %}
 
 {% block body %}
 {% if not initiation %}
@@ -8,60 +8,53 @@
 {% else %}
 <form action="{{ url_for("session.deviceauth_finish") }}" method="POST">
 {% endif %}
-<div class="row mt-2 justify-content-center">
-	<div class="col-lg-6 col-md-10" style="background: #f7f7f7; box-shadow: 0px 2px 2px rgba(0, 0, 0, 0.3); padding: 30px;">
-		<div class="text-center">
-			<img alt="branding logo" src="{{ config.get("BRANDING_LOGO_URL") }}" class="col-lg-8 col-md-12" >
+	<div class="col-12">
+		<h2 class="text-center">{{_('Authorize Device Login')}}</h2>
+	</div>
+	<div class="form-group col-12">
+		<p>{{_('Log into a service on another device without entering your password.')}}</p>
+	</div>
+	<div class="form-group col-12">
+		<label for="initiation-code">{{_('Initiation Code')}}</label>
+		{% if not initiation %}
+			<input type="text" class="form-control" id="initiation-code" name="initiation-code" value="{{ initiation_code or '' }}" required="required" tabindex = "1" autofocus>
+		{% else %}
+			<input type="text" class="form-control" id="initiation-code" name="initiation-code" value="{{ initiation.code }}" readonly>
+		{% endif %}
+	</div>
+	{% if confirmation %}
+		<div class="form-group col-12">
+			<label for="confirmation-code">{{_('Confirmation Code')}}</label>
+			<input type="text" class="form-control" id="confirmation-code" name="confirmation-code" value="{{ confirmation.code }}" readonly>
 		</div>
-		<div class="col-12">
-			<h2 class="text-center">{{_('Authorize Device Login')}}</h2>
+	{% endif %}
+	{% if not initiation %}
+		<div class="form-group col-12">
+			<p>{{_('Start logging into a service on the other device and chose "Device Login" on the login page. Enter the displayed initiation code in the box above.')}}</p>
 		</div>
 		<div class="form-group col-12">
-			<p>{{_('Log into a service on another device without entering your password.')}}</p>
+			<button type="submit" class="btn btn-primary btn-block" tabindex = "2">{{_('Continue')}}</button>
 		</div>
 		<div class="form-group col-12">
-			<label for="initiation-code">{{_('Initiation Code')}}</label>
-			{% if not initiation %}
-				<input type="text" class="form-control" id="initiation-code" name="initiation-code" value="{{ initiation_code or '' }}" required="required" tabindex = "1" autofocus>
-			{% else %}
-				<input type="text" class="form-control" id="initiation-code" name="initiation-code" value="{{ initiation.code }}" readonly>
-			{% endif %}
+			<a href="{{ url_for('index') }}" class="btn btn-secondary btn-block" tabindex="0">{{_('Cancel')}}</a>
 		</div>
-		{% if confirmation %}
-			<div class="form-group col-12">
-				<label for="confirmation-code">{{_('Confirmation Code')}}</label>
-				<input type="text" class="form-control" id="confirmation-code" name="confirmation-code" value="{{ confirmation.code }}" readonly>
-			</div>
-		{% endif %}
-		{% if not initiation %}
-			<div class="form-group col-12">
-				<p>{{_('Start logging into a service on the other device and chose "Device Login" on the login page. Enter the displayed initiation code in the box above.')}}</p>
-			</div>
-			<div class="form-group col-12">
-				<button type="submit" class="btn btn-primary btn-block" tabindex = "2">{{_('Continue')}}</button>
-			</div>
-			<div class="form-group col-12">
-				<a href="{{ url_for('index') }}" class="btn btn-secondary btn-block" tabindex="0">{{_('Cancel')}}</a>
-			</div>
-		{% elif not confirmation %}
-			<div class="form-group col-12">
-				<p>{{_('Authorize the login for service <b>%(service_name)s</b>?', service_name=initiation.description|e)|safe}}</p>
-			</div>
-			<div class="form-group col-12">
-				<button type="submit" class="btn btn-primary btn-block" tabindex = "2">{{_('Authorize Login')}}</button>
-			</div>
-			<div class="form-group col-12">
-				<a href="{{ url_for('index') }}" class="btn btn-secondary btn-block" tabindex="0">{{_('Cancel')}}</a>
-			</div>
-		{% else %}
-			<div class="form-group col-12">
-				<p>{{_('Enter the confirmation code on the other device and complete the login. Click <em>Finish</em> afterwards.')|safe}}</p>
-			</div>
-			<div class="form-group col-12">
-				<button type="submit" class="btn btn-primary btn-block" tabindex = "2">{{_('Finish')}}</button>
-			</div>
-		{% endif %}
-	</div>
-</div>
+	{% elif not confirmation %}
+		<div class="form-group col-12">
+			<p>{{_('Authorize the login for service <b>%(service_name)s</b>?', service_name=initiation.description|e)|safe}}</p>
+		</div>
+		<div class="form-group col-12">
+			<button type="submit" class="btn btn-primary btn-block" tabindex = "2">{{_('Authorize Login')}}</button>
+		</div>
+		<div class="form-group col-12">
+			<a href="{{ url_for('index') }}" class="btn btn-secondary btn-block" tabindex="0">{{_('Cancel')}}</a>
+		</div>
+	{% else %}
+		<div class="form-group col-12">
+			<p>{{_('Enter the confirmation code on the other device and complete the login. Click <em>Finish</em> afterwards.')|safe}}</p>
+		</div>
+		<div class="form-group col-12">
+			<button type="submit" class="btn btn-primary btn-block" tabindex = "2">{{_('Finish')}}</button>
+		</div>
+	{% endif %}
 </form>
 {% endblock %}
diff --git a/uffd/session/templates/session/devicelogin.html b/uffd/session/templates/session/devicelogin.html
index 62578d0536240bbb64444273d9478f5cfb02122b..b9874ecdc8f2cff8e4b61a1a212a960a9b0e88c0 100644
--- a/uffd/session/templates/session/devicelogin.html
+++ b/uffd/session/templates/session/devicelogin.html
@@ -1,39 +1,32 @@
-{% extends 'base.html' %}
+{% extends 'base_narrow.html' %}
 
 {% block body %}
 <form action="{{ url_for("session.devicelogin_submit", ref=ref) }}" method="POST">
-<div class="row mt-2 justify-content-center">
-	<div class="col-lg-6 col-md-10" style="background: #f7f7f7; box-shadow: 0px 2px 2px rgba(0, 0, 0, 0.3); padding: 30px;">
-		<div class="text-center">
-			<img alt="branding logo" src="{{ config.get("BRANDING_LOGO_URL") }}" class="col-lg-8 col-md-12" >
-		</div>
-		<div class="col-12">
-			<h2 class="text-center">{{_('Device Login')}}</h2>
-		</div>
-		<div class="form-group col-12">
-			<p>{{_('Use a login session on another device (e.g. your laptop) to log into a service without entering your password.')}}</p>
-		</div>
-		{% if initiation %}
-		<div class="form-group col-12">
-			<label for="initiation-code">{{_('Initiation Code')}}</label>
-			<input type="text" class="form-control" id="initiation-code" name="initiation-code" value="{{ initiation.code }}" readonly>
-		</div>
-		<input type="hidden" class="form-control" id="initiation-secret" name="initiation-secret" value="{{ initiation.secret }}">
-		<div class="form-group col-12">
-			<label for="confirmation-code">{{_('Confirmation Code')}}</label>
-			<input type="text" class="form-control" id="confirmation-code" name="confirmation-code" required="required" tabindex = "1" autofocus>
-		</div>
-		<div class="form-group col-12">
-			<p>{{_('Open <code><a href="%(deviceauth_url)s">%(deviceauth_url)s</a></code> on the other device and enter the initiation code there. Then enter the confirmation code in the box above.', deviceauth_url=url_for('session.deviceauth', _external=True)|e)|safe}}</p>
-		</div>
-		<div class="form-group col-12">
-			<button type="submit" class="btn btn-primary btn-block" tabindex = "3">{{_('Continue')}}</button>
-		</div>
-		{% endif %}
-		<div class="form-group col-12">
-			<a href="{{ url_for('session.login', ref=ref, devicelogin=True) }}" class="btn btn-secondary btn-block" tabindex="0">{{_('Cancel')}}</a>
-		</div>
+	<div class="col-12">
+		<h2 class="text-center">{{_('Device Login')}}</h2>
+	</div>
+	<div class="form-group col-12">
+		<p>{{_('Use a login session on another device (e.g. your laptop) to log into a service without entering your password.')}}</p>
+	</div>
+	{% if initiation %}
+	<div class="form-group col-12">
+		<label for="initiation-code">{{_('Initiation Code')}}</label>
+		<input type="text" class="form-control" id="initiation-code" name="initiation-code" value="{{ initiation.code }}" readonly>
+	</div>
+	<input type="hidden" class="form-control" id="initiation-secret" name="initiation-secret" value="{{ initiation.secret }}">
+	<div class="form-group col-12">
+		<label for="confirmation-code">{{_('Confirmation Code')}}</label>
+		<input type="text" class="form-control" id="confirmation-code" name="confirmation-code" required="required" tabindex = "1" autofocus>
+	</div>
+	<div class="form-group col-12">
+		<p>{{_('Open <code><a href="%(deviceauth_url)s">%(deviceauth_url)s</a></code> on the other device and enter the initiation code there. Then enter the confirmation code in the box above.', deviceauth_url=url_for('session.deviceauth', _external=True)|e)|safe}}</p>
+	</div>
+	<div class="form-group col-12">
+		<button type="submit" class="btn btn-primary btn-block" tabindex = "3">{{_('Continue')}}</button>
+	</div>
+	{% endif %}
+	<div class="form-group col-12">
+		<a href="{{ url_for('session.login', ref=ref, devicelogin=True) }}" class="btn btn-secondary btn-block" tabindex="0">{{_('Cancel')}}</a>
 	</div>
-</div>
 </form>
 {% endblock %}
diff --git a/uffd/session/templates/session/login.html b/uffd/session/templates/session/login.html
index 1b876e8626b1c6a3c0133859fa94a3181e6ff551..3818d94321e208d867298404765a4aa4a980e2b2 100644
--- a/uffd/session/templates/session/login.html
+++ b/uffd/session/templates/session/login.html
@@ -1,41 +1,34 @@
-{% extends 'base.html' %}
+{% extends 'base_narrow.html' %}
 
 {% block body %}
 <form action="{{ url_for("session.login", ref=ref) }}" method="POST">
-<div class="row mt-2 justify-content-center">
-	<div class="col-lg-6 col-md-10" style="background: #f7f7f7; box-shadow: 0px 2px 2px rgba(0, 0, 0, 0.3); padding: 30px;">
-		<div class="text-center">
-			<img alt="branding logo" src="{{ config.get("BRANDING_LOGO_URL") }}" class="col-lg-8 col-md-12" >
-		</div>
-		<div class="col-12">
-			<h2 class="text-center">{{_("Login")}}</h2>
-		</div>
-		<div class="form-group col-12">
-			<label for="user-loginname">{{_("Login Name")}}</label>
-			<input type="text" class="form-control" id="user-loginname" name="loginname" required="required" tabindex = "1" autofocus>
-		</div>
-		<div class="form-group col-12">
-			<label for="user-password1">{{_("Password")}}</label>
-			<input type="password" class="form-control" id="user-password1" name="password" required="required" tabindex = "2">
-		</div>
-		<div class="form-group col-12">
-			<button type="submit" class="btn btn-primary btn-block" tabindex = "3">{{_("Login")}}</button>
-		</div>
-		{% if request.values.get('devicelogin') %}
-		<div class="text-center text-muted mb-3">{{_("- or -")}}</div>
-		<div class="form-group col-12">
-			<a href="{{ url_for('session.devicelogin_start', ref=ref) }}" class="btn btn-primary btn-block" tabindex="0">{{_("Login with another device")}}</a>
-		</div>
+	<div class="col-12">
+		<h2 class="text-center">{{_("Login")}}</h2>
+	</div>
+	<div class="form-group col-12">
+		<label for="user-loginname">{{_("Login Name")}}</label>
+		<input type="text" class="form-control" id="user-loginname" name="loginname" required="required" tabindex = "1" autofocus>
+	</div>
+	<div class="form-group col-12">
+		<label for="user-password1">{{_("Password")}}</label>
+		<input type="password" class="form-control" id="user-password1" name="password" required="required" tabindex = "2">
+	</div>
+	<div class="form-group col-12">
+		<button type="submit" class="btn btn-primary btn-block" tabindex = "3">{{_("Login")}}</button>
+	</div>
+	{% if request.values.get('devicelogin') %}
+	<div class="text-center text-muted mb-3">{{_("- or -")}}</div>
+	<div class="form-group col-12">
+		<a href="{{ url_for('session.devicelogin_start', ref=ref) }}" class="btn btn-primary btn-block" tabindex="0">{{_("Login with another device")}}</a>
+	</div>
+	{% endif %}
+	<div class="clearfix col-12">
+		{% if config['SELF_SIGNUP'] %}
+		<a href="{{ url_for("signup.signup_start") }}" class="float-left">{{_("Register")}}</a>
+		{% endif %}
+		{% if config['ENABLE_PASSWORDRESET'] %}
+		<a href="{{ url_for("selfservice.forgot_password") }}" class="float-right">{{_("Forgot Password?")}}</a>
 		{% endif %}
-		<div class="clearfix col-12">
-			{% if config['SELF_SIGNUP'] %}
-			<a href="{{ url_for("signup.signup_start") }}" class="float-left">{{_("Register")}}</a>
-			{% endif %}
-			{% if config['ENABLE_PASSWORDRESET'] %}
-			<a href="{{ url_for("selfservice.forgot_password") }}" class="float-right">{{_("Forgot Password?")}}</a>
-			{% endif %}
-		</div>
 	</div>
-</div>
 </form>
 {% endblock %}
diff --git a/uffd/signup/templates/signup/confirm.html b/uffd/signup/templates/signup/confirm.html
index dc81ba7f55efd9f95990b3f588ba07e837fd1060..d6b75e2a9b589ce874c0bfbbb5665716781187c8 100644
--- a/uffd/signup/templates/signup/confirm.html
+++ b/uffd/signup/templates/signup/confirm.html
@@ -1,26 +1,19 @@
-{% extends 'base.html' %}
+{% extends 'base_narrow.html' %}
 
 {% block body %}
 <form action="{{ url_for(".signup_confirm_submit", token=signup.token) }}" method="POST">
-<div class="row mt-2 justify-content-center">
-	<div class="col-lg-6 col-md-10" style="background: #f7f7f7; box-shadow: 0px 2px 2px rgba(0, 0, 0, 0.3); padding: 30px;">
-		<div class="text-center">
-			<img alt="branding logo" src="{{ config.get("BRANDING_LOGO_URL") }}" class="col-lg-8 col-md-12" >
-		</div>
-		<div class="col-12">
-			<h2 class="text-center">{{_('Complete Registration')}}</h2>
-		</div>
-		{% if error %}
-		<div class="alert alert-danger" role="alert">{{ error }}</div>
-		{% endif %}
-		<div class="form-group col-12">
-			<label for="user-password1">{{_('Please enter your password to complete the account registration')}}</label>
-			<input type="password" class="form-control" id="user-password1" name="password" required="required">
-		</div>
-		<div class="form-group col-12">
-			<button type="submit" class="btn btn-primary btn-block">{{_('Complete Account Registration')}}</button>
-		</div>
+	<div class="col-12">
+		<h2 class="text-center">{{_('Complete Registration')}}</h2>
+	</div>
+	{% if error %}
+	<div class="alert alert-danger" role="alert">{{ error }}</div>
+	{% endif %}
+	<div class="form-group col-12">
+		<label for="user-password1">{{_('Please enter your password to complete the account registration')}}</label>
+		<input type="password" class="form-control" id="user-password1" name="password" required="required">
+	</div>
+	<div class="form-group col-12">
+		<button type="submit" class="btn btn-primary btn-block">{{_('Complete Account Registration')}}</button>
 	</div>
-</div>
 </form>
 {% endblock %}
diff --git a/uffd/signup/templates/signup/start.html b/uffd/signup/templates/signup/start.html
index ad150f4ba5f538aefb85ba7a6b6cdeceef9e81ec..3238fffecb844b2e6850731d6a97d0933bb4cf39 100644
--- a/uffd/signup/templates/signup/start.html
+++ b/uffd/signup/templates/signup/start.html
@@ -1,63 +1,56 @@
-{% extends 'base.html' %}
+{% extends 'base_narrow.html' %}
 
 {% block body %}
 <form action="{{ url_for('.signup_submit') }}" method="POST" onInput="password2.setCustomValidity(password1.value != password2.value ? 'Passwords do not match.' : '') ">
-<div class="row mt-2 justify-content-center">
-	<div class="col-lg-6 col-md-10" style="background: #f7f7f7; box-shadow: 0px 2px 2px rgba(0, 0, 0, 0.3); padding: 30px;">
-		<div class="text-center">
-			<img alt="branding logo" src="{{ config.get("BRANDING_LOGO_URL") }}" class="col-lg-8 col-md-12" >
-		</div>
-		<div class="col-12">
-			<h2 class="text-center">{{_('Account Registration')}}</h2>
-		</div>
-		{% if error %}
-		<div class="form-group col-12">
-			<div class="alert alert-danger" role="alert">{{ error }}</div>
-		</div>
-		{% endif %}
-		<div class="form-group col-12">
-			<label for="user-loginname">{{_('Login Name')}}</label>
-			<div class="js-only-input-group">
-				<input type="text" class="form-control" id="user-loginname" name="loginname" aria-describedby="loginname-feedback" value="{{ request.form.loginname }}" minlength=1 maxlength=32 pattern="[a-z0-9_-]*" required>
-				<div class="js-only-input-group-append d-none">
-					<button class="btn btn-outline-secondary rounded-right" type="button" id="check-loginname">{{_('Check')}}</button>
-				</div>
-				<div id="loginname-feedback" class="invalid-feedback"></div>
+	<div class="col-12">
+		<h2 class="text-center">{{_('Account Registration')}}</h2>
+	</div>
+	{% if error %}
+	<div class="form-group col-12">
+		<div class="alert alert-danger" role="alert">{{ error }}</div>
+	</div>
+	{% endif %}
+	<div class="form-group col-12">
+		<label for="user-loginname">{{_('Login Name')}}</label>
+		<div class="js-only-input-group">
+			<input type="text" class="form-control" id="user-loginname" name="loginname" aria-describedby="loginname-feedback" value="{{ request.form.loginname }}" minlength=1 maxlength=32 pattern="[a-z0-9_-]*" required>
+			<div class="js-only-input-group-append d-none">
+				<button class="btn btn-outline-secondary rounded-right" type="button" id="check-loginname">{{_('Check')}}</button>
 			</div>
-			<small class="form-text text-muted">
-				{{_('At least one and at most 32 lower-case characters, digits, dashes ("-") or underscores ("_"). <b>Cannot be changed later!</b>')|safe}}
-			</small>
-		</div>
-		<div class="form-group col-12">
-			<label for="user-displayname">{{_('Display Name')}}</label>
-			<input type="text" class="form-control" id="user-displayname" name="displayname" value="{{ request.form.displayname }}" minlength=1 maxlength=128 required>
-			<small class="form-text text-muted">
-				{{_('At least one and at most 128 characters, no other special requirements.')}}
-			</small>
-		</div>
-		<div class="form-group col-12">
-			<label for="user-mail">{{_('E-Mail Address')}}</label>
-			<input type="email" class="form-control" id="user-mail" name="mail" value="{{ request.form.mail }}" required>
-			<small class="form-text text-muted">
-				{{_('We will send a confirmation mail to this address that you need to complete the registration.')}}
-			</small>
-		</div>
-		<div class="form-group col-12">
-			<label for="user-password1">{{_('Password')}}</label>
-			<input type="password" class="form-control" id="user-password1" name="password1" minlength={{ User.PASSWORD_MINLEN }} maxlength={{ User.PASSWORD_MAXLEN }} pattern="{{ User.PASSWORD_REGEX }}" required>
-			<small class="form-text text-muted">
-				{{ User.PASSWORD_DESCRIPTION|safe }}
-			</small>
-		</div>
-		<div class="form-group col-12">
-			<label for="user-password2">{{_('Repeat Password')}}</label>
-			<input type="password" class="form-control" id="user-password2" name="password2" required>
-		</div>
-		<div class="form-group col-12">
-			<button type="submit" class="btn btn-primary btn-block">{{_('Create Account')}}</button>
+			<div id="loginname-feedback" class="invalid-feedback"></div>
 		</div>
+		<small class="form-text text-muted">
+			{{_('At least one and at most 32 lower-case characters, digits, dashes ("-") or underscores ("_"). <b>Cannot be changed later!</b>')|safe}}
+		</small>
+	</div>
+	<div class="form-group col-12">
+		<label for="user-displayname">{{_('Display Name')}}</label>
+		<input type="text" class="form-control" id="user-displayname" name="displayname" value="{{ request.form.displayname }}" minlength=1 maxlength=128 required>
+		<small class="form-text text-muted">
+			{{_('At least one and at most 128 characters, no other special requirements.')}}
+		</small>
+	</div>
+	<div class="form-group col-12">
+		<label for="user-mail">{{_('E-Mail Address')}}</label>
+		<input type="email" class="form-control" id="user-mail" name="mail" value="{{ request.form.mail }}" required>
+		<small class="form-text text-muted">
+			{{_('We will send a confirmation mail to this address that you need to complete the registration.')}}
+		</small>
+	</div>
+	<div class="form-group col-12">
+		<label for="user-password1">{{_('Password')}}</label>
+		<input type="password" class="form-control" id="user-password1" name="password1" minlength={{ User.PASSWORD_MINLEN }} maxlength={{ User.PASSWORD_MAXLEN }} pattern="{{ User.PASSWORD_REGEX }}" required>
+		<small class="form-text text-muted">
+			{{ User.PASSWORD_DESCRIPTION|safe }}
+		</small>
+	</div>
+	<div class="form-group col-12">
+		<label for="user-password2">{{_('Repeat Password')}}</label>
+		<input type="password" class="form-control" id="user-password2" name="password2" required>
+	</div>
+	<div class="form-group col-12">
+		<button type="submit" class="btn btn-primary btn-block">{{_('Create Account')}}</button>
 	</div>
-</div>
 </form>
 
 <script>
diff --git a/uffd/signup/templates/signup/submitted.html b/uffd/signup/templates/signup/submitted.html
index 6c85e910481bcc18b0ea459ad60aec4594d93b88..2e750bd540a93f19f4607a0d7399965d6c2d4260 100644
--- a/uffd/signup/templates/signup/submitted.html
+++ b/uffd/signup/templates/signup/submitted.html
@@ -1,17 +1,9 @@
-{% extends 'base.html' %}
+{% extends 'base_narrow.html' %}
 
 {% block body %}
-
-<div class="row mt-2 justify-content-center">
-	<div class="col-lg-6 col-md-10" style="background: #f7f7f7; box-shadow: 0px 2px 2px rgba(0, 0, 0, 0.3); padding: 30px;">
-		<div class="text-center">
-			<img alt="branding logo" src="{{ config.get("BRANDING_LOGO_URL") }}" class="col-lg-8 col-md-12" >
-		</div>
-		<div class="col-12 mb-3">
-			<h2 class="text-center">{{_('Confirm your E-Mail Address')}}</h2>
-		</div>
-		<p>{{_('We sent a confirmation mail to <b>%(signup_mail)s</b>. You need to confirm your mail address within 48 hours to complete the account registration.', signup_mail=signup.mail|e)|safe}}</p>
-		<p>{{_("If you mistyped your mail address or don't receive the confirmation mail for another reason, retry the registration procedure from the beginning.")}}</p>
-	</div>
+<div class="col-12 mb-3">
+	<h2 class="text-center">{{_('Confirm your E-Mail Address')}}</h2>
 </div>
+<p>{{_('We sent a confirmation mail to <b>%(signup_mail)s</b>. You need to confirm your mail address within 48 hours to complete the account registration.', signup_mail=signup.mail|e)|safe}}</p>
+<p>{{_("If you mistyped your mail address or don't receive the confirmation mail for another reason, retry the registration procedure from the beginning.")}}</p>
 {% endblock %}
diff --git a/uffd/templates/base.html b/uffd/templates/base.html
index 8f28ff9034ed3ace875815275b5e069520752fed..ef34e937f251b6c0c4b5d0f08f93622361d110ec 100644
--- a/uffd/templates/base.html
+++ b/uffd/templates/base.html
@@ -107,7 +107,8 @@
 		</nav>
 		{% endblock navbar %}
 
-		<div class="container mt-2">
+		{% block main %}
+		<main role="main" class="container mt-3">
 			<div class="row">
 				{% for message in get_flashed_messages() %}
 				<div class="col-12">
@@ -115,18 +116,17 @@
 				</div>
 				{% endfor %}
 			</div>
-		</div>
 
-		<main role="main" class="container">
 			{% block body %}
 			{% endblock body %}
-			<!-- spacer for floating footer -->
-			<div class="mb-5"></div>
 		</main>
+		{% endblock main %}
 
+		<!-- spacer for floating footer -->
+		<div class="mb-5"></div>
 		<footer class="footer">
 			{% block footer %}
-			<div class="container">
+			<div class="container-fluid">
 				<ul class="list-inline">
 					{% for link in config["FOOTER_LINKS"]%}
 					<li class="list-inline-item"><a href="{{ link.url }}">{{ link.title }}</a></li>
diff --git a/uffd/templates/base_narrow.html b/uffd/templates/base_narrow.html
new file mode 100644
index 0000000000000000000000000000000000000000..2077185b5d63122b730b81d27ac00f8ebb215116
--- /dev/null
+++ b/uffd/templates/base_narrow.html
@@ -0,0 +1,26 @@
+{% extends 'base.html' %}
+
+{% block main %}
+<main role="main" class="container mt-3">
+	<div class="row justify-content-center">
+		<div class="col-lg-6 col-md-10 px-0">
+			<div class="row">
+				{% for message in get_flashed_messages() %}
+				<div class="col-12">
+					<div class="alert alert-primary" role="alert">{{ message }}</div>
+				</div>
+				{% endfor %}
+			</div>
+		</div>
+	</div>
+	<div class="row justify-content-center">
+		<div class="col-lg-6 col-md-10" style="background: #f7f7f7; box-shadow: 0px 2px 2px rgba(0, 0, 0, 0.3); padding: 30px;">
+			<div class="text-center">
+				<img alt="branding logo" src="{{ config.get("BRANDING_LOGO_URL") }}" class="col-lg-8 col-md-12" >
+			</div>
+			{% block body %}
+			{% endblock body %}
+		</div>
+	</div>
+</main>
+{% endblock main %}