diff --git a/apps/files/css/detailsView.scss b/apps/files/css/detailsView.scss
index 46c177d63d41940c4dd49a04ee57acbe9434831d..c292a45b964a53de748e0624c5f86fdddf5bb827 100644
--- a/apps/files/css/detailsView.scss
+++ b/apps/files/css/detailsView.scss
@@ -122,7 +122,6 @@
 	top: 0;
 	right: 0;
 	padding: 15px;
-	-ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=50)";
 	opacity: .5;
 	z-index: 1;
 }
diff --git a/apps/files/css/files.scss b/apps/files/css/files.scss
index 10f37840580c1f4914eeff8df9811c8cb9326785..7c2d3b0bb1cbffecdd1633637c80433851cbba2d 100644
--- a/apps/files/css/files.scss
+++ b/apps/files/css/files.scss
@@ -32,8 +32,8 @@
 }
 
 .newFileMenu .error, #fileList .error {
-	color: #e9322d;
-	border-color: #e9322d;
+	color: $color-error;
+	border-color: $color-error;
 	-webkit-box-shadow: 0 0 6px #f8b9b7;
 	-moz-box-shadow: 0 0 6px #f8b9b7;
 	box-shadow: 0 0 6px #f8b9b7;
@@ -58,7 +58,6 @@
 }
 
 #filestable tbody tr {
-	background-color: #fff;
 	height: 51px;
 }
 
@@ -134,7 +133,6 @@
 
 #filestable tbody tr {
 	transition: background-color 0.3s ease;
-	background-color: #fff;
 	height: 40px;
 }
 #filestable tbody tr:hover,
@@ -147,16 +145,14 @@
 #filestable tbody tr.searchresult,
 table tr.mouseOver td {
 	transition: background-color 0.3s ease;
-	background-color: #f8f8f8;
+	background-color: nc-darken($color-main-background, 3%);
 }
-tbody a { color:#000; }
+tbody a { color: $color-main-text; }
 
 span.conflict-path, span.extension, span.uploading, td.date {
 	color: #999;
 }
 span.conflict-path, span.extension {
-	-ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=70)";
-	filter: alpha(opacity=70);
 	opacity: .7;
 	-webkit-transition: opacity 300ms;
 	-moz-transition: opacity 300ms;
@@ -168,8 +164,6 @@ tr:hover span.conflict-path,
 tr:focus span.conflict-path,
 tr:hover span.extension,
 tr:focus span.extension {
-	-ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=100)";
-	filter: alpha(opacity=100);
 	opacity: 1;
 	color: #777;
 }
@@ -200,8 +194,6 @@ table th .sort-indicator {
 	margin-left: 5px;
 	display: inline-block;
 	vertical-align: text-bottom;
-	-ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=30)";
-	filter: alpha(opacity=30);
 	opacity: .3;
 }
 .sort-indicator.hidden,
@@ -220,7 +212,7 @@ table th:focus .sort-indicator.hidden {
 
 table th,
 table td {
-	border-bottom: 1px solid #eee;
+	border-bottom: 1px solid $color-border;
 	text-align: left;
 	font-weight: normal;
 }
@@ -270,9 +262,6 @@ table.multiselect thead {
 	left: 250px; /* sidebar */
 }
 
-table thead th {
-	background-color: #fff;
-}
 table.multiselect thead th {
 	background-color: rgba(255, 255, 255, 0.95); /* like controls bar */
 	color: #000;
@@ -307,11 +296,19 @@ table td.filename a.name {
 	line-height: 50px;
 	padding: 0;
 }
+table td.filename label.icon-loading-small {
+	&:after {
+		z-index: 10;
+	}
+	.thumbnail {
+		opacity: 0.2;
+	}
+}
 table td.filename .thumbnail {
 	display: inline-block;
 	width: 32px;
 	height: 32px;
-	margin-left: 8px;
+	margin-left: 9px;
 	margin-top: 9px;
 	cursor: pointer;
 	float: left;
@@ -439,8 +436,6 @@ table td.filename .uploadtext {
 	height: 20px;
 	padding: 10px 0;
 	font-size: 11px;
-	-ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=50)";
-	filter: alpha(opacity=50);
 	opacity: .5;
 }
 
@@ -536,8 +531,6 @@ table td.filename .uploadtext {
 
 /* force show the loading icon, not only on hover */
 #fileList .icon-loading-small {
-	-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=100)";
-	filter:alpha(opacity=100);
 	opacity: 1 !important;
 	display: inline !important;
 }
@@ -580,8 +573,6 @@ a.action > img {
 	display: inline;
 	padding: 17px 8px;
 	line-height: 50px;
-	-ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=0)";
-	filter: alpha(opacity=0);
 	opacity: 0;
 }
 #fileList a.action.action-share {
@@ -602,8 +593,6 @@ a.action > img {
 #fileList a.action.disabled:hover,
 #fileList a.action.disabled:focus,
 #fileList a.action.disabled img {
-	-ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=30)";
-	filter: alpha(opacity=30);
 	opacity: .3;
 }
 
@@ -615,8 +604,6 @@ a.action > img {
 #fileList .fileActionsMenu a.action,
 /* show share action of shared items darker to distinguish from non-shared */
 #fileList a.action.action-share.shared-style {
-	-ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=70)";
-	filter: alpha(opacity=70);
 	opacity: .7;
 }
 
@@ -631,8 +618,6 @@ a.action > img {
 }
 
 #fileList .action.action-favorite.permanent {
-	-ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=100)";
-	filter: alpha(opacity=100);
 	opacity: 1;
 }
 
@@ -641,8 +626,6 @@ a.action > img {
 /* show share action of shared items darker to distinguish from non-shared */
 #fileList a.action.action-share.shared-style:hover,
 #fileList a.action.action-share.shared-style:focus {
-	-ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=100)";
-	filter: alpha(opacity=100);
 	opacity: 1;
 }
 
@@ -660,8 +643,6 @@ a.action > img {
 }
 
 .summary {
-	-ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=30)";
-	filter: alpha(opacity=30);
 	opacity: .3;
 	/* add whitespace to bottom of files list to correctly show dropdowns */
 	height: 300px;
@@ -702,11 +683,10 @@ table.dragshadow td.size {
 	left: 0;
 	right: 0;
 	bottom: 0;
-	background-color: #fff;
+	background-color: $color-main-background;
 	background-repeat: no-repeat no-repeat;
 	background-position: 50%;
 	opacity: 0.7;
-	filter: alpha(opacity=70);
 	transition: opacity 100ms;
 	-moz-transition: opacity 100ms;
 	-o-transition: opacity 100ms;
@@ -734,10 +714,6 @@ table.dragshadow td.size {
 	margin: 2px 0;
 }
 
-#fileList .popovermenu .action {
-	color: #000;
-}
-
 #filestable .filename .action .icon,
 #filestable .selectedActions a .icon,
 #controls .actions .button .icon {
diff --git a/apps/files/css/mobile.scss b/apps/files/css/mobile.scss
index 9e1c8a01d89c6857d659a5e6dfdd39659aa056b9..eefc92c816b889686e73e54a61d82b469da95a87 100644
--- a/apps/files/css/mobile.scss
+++ b/apps/files/css/mobile.scss
@@ -51,11 +51,9 @@ table td.filename .nametext {
 	display: none !important;
 }
 #fileList a.action.action-favorite {
-	-ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=70)" !important;
 	opacity: .7 !important;
 }
 #fileList a.action.action-favorite {
-	-ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=30)" !important;
 	opacity: .3 !important;
 }
 
diff --git a/apps/files/js/filelist.js b/apps/files/js/filelist.js
index 48ac0f4e33ac4bf5086028d1f262dc0b61e3b16c..fd13deedc0df5ae41eacda657a295037465b676d 100644
--- a/apps/files/js/filelist.js
+++ b/apps/files/js/filelist.js
@@ -2540,11 +2540,9 @@
 				$tr.toggleClass('busy', state);
 
 				if (state) {
-					$thumbEl.attr('data-oldimage', $thumbEl.css('background-image'));
-					$thumbEl.css('background-image', 'url('+ OC.imagePath('core', 'loading.gif') + ')');
+					$thumbEl.parent().addClass('icon-loading-small');
 				} else {
-					$thumbEl.css('background-image', $thumbEl.attr('data-oldimage'));
-					$thumbEl.removeAttr('data-oldimage');
+					$thumbEl.parent().removeClass('icon-loading-small');
 				}
 			});
 		},
diff --git a/apps/files/tests/js/filelistSpec.js b/apps/files/tests/js/filelistSpec.js
index 5061d70c4c79159d6fb0a58469fd256b657b15ec..836a5e5ce71f42f1d79d1a18f3204e91be74c97b 100644
--- a/apps/files/tests/js/filelistSpec.js
+++ b/apps/files/tests/js/filelistSpec.js
@@ -749,8 +749,8 @@ describe('OCA.Files.FileList tests', function() {
 		it('Restores thumbnail when rename was cancelled', function() {
 			doRename();
 
-			expect(OC.TestUtil.getImageUrl(fileList.findFileEl('Tu_after_three.txt').find('.thumbnail')))
-				.toEqual(OC.imagePath('core', 'loading.gif'));
+			expect(fileList.findFileEl('Tu_after_three.txt').find('.thumbnail').parent().attr('class'))
+				.toEqual('icon-loading-small');
 
 			deferredRename.reject(409);
 
@@ -837,8 +837,8 @@ describe('OCA.Files.FileList tests', function() {
 		it('Restores thumbnail if a file could not be moved', function() {
 			fileList.move('One.txt', '/somedir');
 
-			expect(OC.TestUtil.getImageUrl(fileList.findFileEl('One.txt').find('.thumbnail')))
-				.toEqual(OC.imagePath('core', 'loading.gif'));
+			expect(fileList.findFileEl('One.txt').find('.thumbnail').parent().attr('class'))
+				.toEqual('icon-loading-small');
 
 			expect(moveStub.calledOnce).toEqual(true);
 
@@ -934,8 +934,8 @@ describe('OCA.Files.FileList tests', function() {
 		it('Restores thumbnail if a file could not be copied', function() {
 			fileList.copy('One.txt', '/somedir');
 
-			expect(OC.TestUtil.getImageUrl(fileList.findFileEl('One.txt').find('.thumbnail')))
-				.toEqual(OC.imagePath('core', 'loading.gif'));
+			expect(fileList.findFileEl('One.txt').find('.thumbnail').parent().attr('class'))
+				.toEqual('icon-loading-small');
 
 			expect(copyStub.calledOnce).toEqual(true);
 
@@ -3149,8 +3149,9 @@ describe('OCA.Files.FileList tests', function() {
 		it('shows spinner on busy rows', function() {
 			fileList.showFileBusyState('Two.jpg', true);
 			expect($tr.hasClass('busy')).toEqual(true);
-			expect(OC.TestUtil.getImageUrl($tr.find('.thumbnail')))
-				.toEqual(OC.imagePath('core', 'loading.gif'));
+			expect($tr.find('.thumbnail').parent().attr('class'))
+				.toEqual('icon-loading-small');
+
 
 			fileList.showFileBusyState('Two.jpg', false);
 			expect($tr.hasClass('busy')).toEqual(false);
diff --git a/apps/files_sharing/css/public.scss b/apps/files_sharing/css/public.scss
index 6d9fcf14efcf5d1069f20ea67b7bf8c252719528..652d36f77dbbba6e89595346961cad11a0172bd0 100644
--- a/apps/files_sharing/css/public.scss
+++ b/apps/files_sharing/css/public.scss
@@ -97,8 +97,6 @@ thead {
 
 .directLink label {
 	font-weight: normal;
-	-ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=50)";
-	filter: alpha(opacity=50);
 	opacity: .5;
 }
 .directLink input {
diff --git a/apps/files_trashbin/css/trash.css b/apps/files_trashbin/css/trash.scss
similarity index 100%
rename from apps/files_trashbin/css/trash.css
rename to apps/files_trashbin/css/trash.scss
diff --git a/apps/files_versions/css/versions.css b/apps/files_versions/css/versions.css
index cd63a90ab51d91993e2ce336f6a59ab9ae9dd568..74ab146b051a07a97bfa00343d6408fe80b741df 100644
--- a/apps/files_versions/css/versions.css
+++ b/apps/files_versions/css/versions.css
@@ -16,8 +16,6 @@
 .versionsTabView a,
 .versionsTabView div > span {
 	vertical-align: middle;
-	-ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=50)";
-	filter: alpha(opacity=50);
 	opacity: .5;
 }
 
@@ -27,8 +25,6 @@
 
 .versionsTabView a:hover,
 .versionsTabView a:focus {
-	-ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=100)";
-	filter: alpha(opacity=100);
 	opacity: 1;
 }
 
diff --git a/apps/systemtags/css/systemtagsfilelist.css b/apps/systemtags/css/systemtagsfilelist.css
index 6318d43687e9dbe86d04c06e9586d3781afd3682..ad711f747337dd208d56c3c591802f060ce86768 100644
--- a/apps/systemtags/css/systemtagsfilelist.css
+++ b/apps/systemtags/css/systemtagsfilelist.css
@@ -12,18 +12,6 @@
 	margin-left: 10px;
 }
 
-#app-content-systemtagsfilter .select2-choices {
-	white-space: nowrap;
-	text-overflow: ellipsis;
-	background: #fff;
-	color: #555;
-	box-sizing: content-box;
-	border-radius: 3px;
-	border: 1px solid #ddd;
-	padding: 0;
-	min-height: auto;
-}
-
 .nav-icon-systemtagsfilter {
 	background-image: url('../img/tag.svg');
 }
diff --git a/core/css/apps.scss b/core/css/apps.scss
index 8fbe035fc8565792276ca5cdb8e27be409a64ed2..b735dfa4d6435906691f7febbd79f578e53ec9f4 100644
--- a/core/css/apps.scss
+++ b/core/css/apps.scss
@@ -34,7 +34,6 @@ h3 {
 /* do not use italic typeface style, instead lighter color */
 em {
 	font-style: normal;
-	-ms-filter: 'progid:DXImageTransform.Microsoft.Alpha(Opacity=50)';
 	opacity: .5;
 }
 
@@ -90,7 +89,7 @@ kbd {
 	-moz-user-select: none;
 	-ms-user-select: none;
 	user-select: none;
-	border-right: 1px solid nc-darken($color-main-background, 8%);
+	border-right: 1px solid $color-border;
 	display: flex;
 	flex-direction: column;
 	li {
@@ -556,7 +555,7 @@ kbd {
 	min-width: 300px;
 	display: block;
 	background: $color-main-background;
-	border-left: 1px solid nc-darken($color-main-background, 8%);
+	border-left: 1px solid $color-border;
 	-webkit-transition: margin-right 300ms;
 	transition: margin-right 300ms;
 	overflow-x: hidden;
@@ -577,9 +576,11 @@ kbd {
 	/* change to 100% when layout positions are absolute */
 	bottom: 0;
 	z-index: 140;
-	&.open #app-settings-content,
-	&.opened #app-settings-content {
-		display: block;
+	&.open,
+	&.opened {
+		#app-settings-content {
+			display: block;
+		}
 	}
 }
 
@@ -590,7 +591,7 @@ kbd {
 	/* restrict height of settings and make scrollable */
 	max-height: 300px;
 	overflow-y: auto;
-	border-right: 1px solid nc-darken($color-main-background, 8%);
+	border-right: 1px solid $color-border;
 	width: 250px;
 	box-sizing: border-box;
 
@@ -606,7 +607,7 @@ kbd {
 }
 
 #app-settings-header {
-	border-right: 1px solid nc-darken($color-main-background, 8%);
+	border-right: 1px solid $color-border;
 	width: 250px;
 	box-sizing: border-box;
 }
@@ -618,7 +619,7 @@ kbd {
 	padding: 0;
 	margin: 0;
 	background-color: $color-main-background;
-	background-image: url('../img/actions/settings.svg?v=1');
+	background-image: url('../img/actions/settings-dark.svg?v=1');
 	background-position: 14px center;
 	background-repeat: no-repeat;
 	box-shadow: none;
@@ -627,14 +628,16 @@ kbd {
 	text-align: left;
 	padding-left: 42px;
 	font-weight: 400;
-	&:hover,
-	&:focus {
+
+	/* like app-navigation a */
+	color: $color-main-text;
+	opacity: .57;
+
+	&.opened,
+	&:hover {
 		background-color: $color-main-background;
-	}
-	&.opened {
-		&:hover, &:focus {
-			background-color: $color-main-background;
-		}
+		opacity: 1;
+		box-shadow: inset 2px 0 $color-primary;
 	}
 }
 
@@ -735,7 +738,7 @@ kbd {
 	.popovermenu, .popovermenu:after,
 	#app-navigation .app-navigation-entry-menu,
 	#app-navigation .app-navigation-entry-menu:after {
-		border: 1px solid nc-darken($color-main-background, 8%);
+		border: 1px solid $color-border;
 	}
 }
 
@@ -816,12 +819,8 @@ kbd {
 			box-shadow: none;
 			width: 100%;
 			/* Override the app-navigation li opacity */
-			-ms-filter: 'progid:DXImageTransform.Microsoft.Alpha(Opacity=70)' !important;
-			filter: alpha(opacity = 70) !important;
 			opacity: .7 !important;
 			&:hover, &:focus, &.active {
-				-ms-filter: 'progid:DXImageTransform.Microsoft.Alpha(Opacity=100)' !important;
-				filter: alpha(opacity = 100) !important;
 				opacity: 1 !important;
 			}
 			/* prevent .action class to break the design */
diff --git a/core/css/guest.css b/core/css/guest.css
index 1081b95fb368916dab4999b771e92dfb7d60b4a4..dacf79b37bca8348032709cafdc6e412047c6267 100644
--- a/core/css/guest.css
+++ b/core/css/guest.css
@@ -43,7 +43,6 @@ p.info a:hover {
 }
 em {
 	font-style: normal;
-	-ms-filter: 'progid:DXImageTransform.Microsoft.Alpha(Opacity=50)';
 	opacity: .5;
 }
 
@@ -309,7 +308,6 @@ label.infield {
 	padding: 14px !important;
 }
 #show:checked + label, #dbpassword-toggle:checked + label, #personal-show:checked + label {
-	-ms-filter: 'progid:DXImageTransform.Microsoft.Alpha(Opacity=80)';
 	opacity: .8;
 }
 #show + label, #dbpassword-toggle + label, #personal-show + label {
@@ -319,7 +317,6 @@ label.infield {
 	background-image: url('../img/actions/toggle.svg?v=1');
 	background-repeat: no-repeat;
 	background-position: center;
-	-ms-filter: 'progid:DXImageTransform.Microsoft.Alpha(Opacity=30)';
 	opacity: .3;
 }
 #show + label:before, #dbpassword-toggle + label:before, #personal-show + label:before {
@@ -520,7 +517,6 @@ form #selectDbType label.ui-state-active {
 .error a {
 	color: #fff !important;
 	font-weight: 600 !important;
-	-ms-filter: 'progid:DXImageTransform.Microsoft.Alpha(Opacity=100)';
 	opacity: 1;
 }
 .error a.button {
diff --git a/core/css/header.scss b/core/css/header.scss
index cf430914f87608081aef39fc71f65bd38a3cff84..e9edfe0bfb815505890990d308b526dbfdd5b1f4 100644
--- a/core/css/header.scss
+++ b/core/css/header.scss
@@ -26,7 +26,7 @@
 .menu {
 	position: absolute;
 	top: 45px;
-	background-color: #fff;
+	background-color: $color-main-background;
 	box-shadow: 0 1px 10px $color-box-shadow;
 	border-radius: 0 0 3px 3px;
 	display: none;
@@ -86,14 +86,11 @@
 	height: 45px;
 	/* header height */
 	box-sizing: border-box;
-	-ms-filter: 'progid:DXImageTransform.Microsoft.Alpha(Opacity=100)';
 	opacity: 1;
 	&:focus {
-		-ms-filter: 'progid:DXImageTransform.Microsoft.Alpha(Opacity=75)';
 		opacity: .75;
 	}
 	&:hover, &:active {
-		-ms-filter: 'progid:DXImageTransform.Microsoft.Alpha(Opacity=100)';
 		opacity: 1;
 	}
 }
@@ -156,30 +153,25 @@
 /* hover effect for app switcher label */
 
 .header-appname-container .header-appname {
-	-ms-filter: 'progid:DXImageTransform.Microsoft.Alpha(Opacity=75)';
 	opacity: .75;
 }
 
 .menutoggle {
 	.icon-caret {
-		-ms-filter: 'progid:DXImageTransform.Microsoft.Alpha(Opacity=75)';
 		opacity: .75;
 	}
 	&:hover {
 		.header-appname, .icon-caret {
-			-ms-filter: 'progid:DXImageTransform.Microsoft.Alpha(Opacity=100)';
 			opacity: 1;
 		}
 	}
 	&:focus {
 		.header-appname, .icon-caret {
-			-ms-filter: 'progid:DXImageTransform.Microsoft.Alpha(Opacity=100)';
 			opacity: 1;
 		}
 	}
 	&.active {
 		.header-appname, .icon-caret {
-			-ms-filter: 'progid:DXImageTransform.Microsoft.Alpha(Opacity=100)';
 			opacity: 1;
 		}
 	}
@@ -236,7 +228,6 @@ nav {
 }
 
 /* arrow look */
-
 #expanddiv:after {
 	bottom: 100%;
 	border: solid transparent;
@@ -245,8 +236,8 @@ nav {
 	width: 0;
 	position: absolute;
 	pointer-events: none;
-	border-color: rgba(0, 0, 0, 0);
-	border-bottom-color: rgba(255, 255, 255, .97);
+	border-color: transparent;
+	border-bottom-color: $color-main-background;
 	border-width: 10px;
 	margin-left: -10px;
 }
@@ -277,7 +268,6 @@ nav {
 		}
 		svg,
 		span {
-			-ms-filter: 'progid:DXImageTransform.Microsoft.Alpha(Opacity=70)';
 			opacity: .7;
 		}
 		svg {
@@ -287,12 +277,10 @@ nav {
 		&:focus svg,
 		&:hover span,
 		&:focus span {
-			-ms-filter: 'progid:DXImageTransform.Microsoft.Alpha(Opacity=100)';
 			opacity: 1;
 		}
 		&.active {
 			svg, span {
-				-ms-filter: 'progid:DXImageTransform.Microsoft.Alpha(Opacity=100)';
 				opacity: 1;
 			}
 		}
@@ -316,7 +304,6 @@ nav {
 		height: 16px;
 	}
 	.app-icon {
-		-ms-filter: 'progid:DXImageTransform.Microsoft.Alpha(Opacity=0)';
 		opacity: 0;
 	}
 }
@@ -357,7 +344,6 @@ nav {
 		cursor: pointer;
 	}
 	img {
-		-ms-filter: 'progid:DXImageTransform.Microsoft.Alpha(Opacity=70)';
 		opacity: .7;
 		margin-bottom: -2px;
 	}
@@ -367,7 +353,6 @@ nav {
 		color: $color-primary-text;
 		img,
 		#expandDisplayName {
-			-ms-filter: 'progid:DXImageTransform.Microsoft.Alpha(Opacity=100)';
 			opacity: 1;
 		}
 	}
@@ -406,7 +391,7 @@ nav {
 	position: absolute;
 	pointer-events: none;
 	border: 0 solid transparent;
-	border-bottom-color: white;
+	border-bottom-color: $color-main-background;
 	border-width: 10px;
 	transform: translateX(-50%);
 	left: 26px;
@@ -429,7 +414,6 @@ nav {
 		color: $color-main-text;
 		padding: 10px 12px 0;
 		box-sizing: border-box;
-		-ms-filter: 'progid:DXImageTransform.Microsoft.Alpha(Opacity=70)';
 		opacity: .7;
 		img {
 			margin-bottom: -3px;
@@ -439,7 +423,6 @@ nav {
 		&:focus,
 		&:active,
 		&.active {
-			-ms-filter: 'progid:DXImageTransform.Microsoft.Alpha(Opacity=100)';
 			opacity: 1;
 		}
 	}
@@ -491,7 +474,7 @@ nav {
 		display: none;
 		position: absolute;
 		overflow: visible;
-		background-color: rgba(255, 255, 255, .97);
+		background-color: rgba($color-main-background, .97);
 		white-space: nowrap;
 		border: none;
 		-webkit-border-radius: 3px;
@@ -500,7 +483,7 @@ nav {
 		border-top-left-radius: 0;
 		border-top-right-radius: 0;
 		margin-top: 0;
-		color: rgba(0, 0, 0, .7);
+		color: rgba($color-main-text, .7);
 		width: auto;
 		left: 50%;
 		top: 45px;
@@ -522,7 +505,7 @@ nav {
 		position: absolute;
 		pointer-events: none;
 		border: 0 solid transparent;
-		border-bottom-color: white;
+		border-bottom-color: $color-main-background;
 		border-width: 10px;
 		transform: translateX(-50%);
 		left: 50%;
diff --git a/core/css/inputs.scss b/core/css/inputs.scss
index 5a7da4f50c9c01daa38846337ec7324178fde1cf..5fe65935ec51e4fa7a8381e5c5aeae2777c91f6c 100644
--- a/core/css/inputs.scss
+++ b/core/css/inputs.scss
@@ -269,8 +269,8 @@ input {
 			}
 			&:checked + label:before {
 				box-shadow: inset 0px 0px 0px 2px $color-main-text;
-				background-color: nc-darken($color-main-background, 8%);
-				border-color: nc-darken($color-main-background, 8%)
+				background-color: $color-border;
+				border-color: $color-border
 			}
 			&:disabled + label:before {
 				background-color: nc-lighten($color-main-text, 33%) !important; /* override other status */
@@ -320,6 +320,7 @@ input {
 /* Select2 overriding. Merged to core with vendor stylesheet */
 .select2-drop {
 	margin-top: -2px;
+	background-color: $color-main-background;
 	&.select2-drop-active {
 		border-color: nc-lighten($color-main-text, 86%);
 	}
@@ -354,7 +355,7 @@ input {
 			position: relative;
 			display: list-item;
 			padding: 12px;
-			background-color: $color-main-background;
+			background-color: transparent;
 			cursor: pointer;
 			color: nc-lighten($color-main-text, 33%);
 		}
@@ -362,10 +363,10 @@ input {
 			&.select2-selected {
 				background-color: nc-darken($color-main-background, 3%);
 			}
-			&.select2-highlighted {
+		}
+		.select2-highlighted {
 				background-color: nc-darken($color-main-background, 3%);
 				color: $color-main-text;
-			}
 		}
 	}
 }
@@ -408,6 +409,9 @@ input {
 		}
 		.select2-search-field input {
 			line-height: 20px;
+			&.select2-active {
+				background: none !important;
+			}
 		}
 	}
 }
@@ -444,8 +448,8 @@ input {
 			}
 			&.select2-search-choice-focus,
 			&:hover {
-				background-color: nc-darken($color-main-background, 8%);
-				border-color: nc-darken($color-main-background, 8%);
+				background-color: $color-border;
+				border-color: $color-border;
 			}
 		}
 		.select2-arrow {
diff --git a/core/css/mobile.scss b/core/css/mobile.scss
index b0f8421345c09aa420b387d064928a4a36f30ea5..baf874db8f531c7a4ea549a47e4ca673fcd76b43 100644
--- a/core/css/mobile.scss
+++ b/core/css/mobile.scss
@@ -78,7 +78,7 @@
 #app-content {
 	width: 100% !important;
 	left: 0 !important;
-	background-color: #fff;
+	background-color: $color-main-background;
 	overflow-x: hidden !important;
 	z-index: 1000;
 }
@@ -97,7 +97,7 @@
 	width: 44px;
 	height: 44px;
 	z-index: 149;
-	background-color: rgba(255, 255, 255, .7);
+	background-color: rgba($color-main-background, .7);
 	cursor: pointer;
 	opacity: .6;
 }
diff --git a/core/css/styles.scss b/core/css/styles.scss
index 0465d137f53fab1379a95964d9888b945e37ffcb..be0b200ce358398c7ac04fb68180eec80929b011 100644
--- a/core/css/styles.scss
+++ b/core/css/styles.scss
@@ -165,7 +165,7 @@ body {
 }
 
 ::-webkit-scrollbar-thumb {
-	background: nc-lighten($color-main-text, 86%);
+	background: nc-darken($color-main-background, 14%);
 	border-radius: 3px;
 }
 
@@ -187,7 +187,6 @@ body {
 		cursor: pointer;
 		-webkit-transition: all 100ms;
 		transition: all 100ms;
-		-ms-filter: 'progid:DXImageTransform.Microsoft.Alpha(Opacity=70)';
 		opacity: .6;
 		&:focus, &:active, &:valid {
 			color: $color-primary-text;
@@ -197,7 +196,6 @@ body {
 			border: 1px solid rgba($color-primary-text, 0.5) !important;
 		}
 		&:hover, &:focus, &:active {
-			-ms-filter: 'progid:DXImageTransform.Microsoft.Alpha(Opacity=100)';
 			opacity: 1;
 		}
 		& ~ .icon-close-white {
@@ -327,7 +325,6 @@ body {
 	height: 64px;
 	width: 64px;
 	margin: 0 auto 15px;
-	-ms-filter: 'progid:DXImageTransform.Microsoft.Alpha(Opacity=40)';
 	opacity: .4;
 }
 
@@ -580,7 +577,6 @@ label.infield {
 }
 
 #show:checked + label, #dbpassword:checked + label, #personal-show:checked + label {
-	-ms-filter: 'progid:DXImageTransform.Microsoft.Alpha(Opacity=80)';
 	opacity: .8;
 }
 
@@ -591,7 +587,6 @@ label.infield {
 	background-image: url('../img/actions/toggle.svg?v=1');
 	background-repeat: no-repeat;
 	background-position: center;
-	-ms-filter: 'progid:DXImageTransform.Microsoft.Alpha(Opacity=30)';
 	opacity: .3;
 }
 
@@ -723,7 +718,6 @@ label.infield {
 	.warning {
 		margin: 0 7px 5px 4px;
 		legend {
-			-ms-filter: 'progid:DXImageTransform.Microsoft.Alpha(Opacity=100)';
 			opacity: 1;
 		}
 	}
@@ -856,7 +850,6 @@ td.avatar {
 	top: 0;
 	border-bottom-left-radius: 3px;
 	border-bottom-right-radius: 3px;
-	-ms-filter: 'progid:DXImageTransform.Microsoft.Alpha(Opacity=90)';
 	opacity: .9;
 	span {
 		cursor: pointer;
@@ -882,19 +875,16 @@ td.avatar {
 }
 
 tr .action:not(.permanent), .selectedActions a {
-	-ms-filter: 'progid:DXImageTransform.Microsoft.Alpha(Opacity=0)';
 	opacity: 0;
 }
 
 tr {
 	&:hover .action, &:focus .action, .action.permanent {
-		-ms-filter: 'progid:DXImageTransform.Microsoft.Alpha(Opacity=50)';
 		opacity: .5;
 	}
 }
 
 .selectedActions a {
-	-ms-filter: 'progid:DXImageTransform.Microsoft.Alpha(Opacity=50)';
 	opacity: .5;
 }
 
@@ -904,27 +894,23 @@ tr .action {
 }
 
 .header-action {
-	-ms-filter: 'progid:DXImageTransform.Microsoft.Alpha(Opacity=80)';
 	opacity: .8;
 }
 
 tr {
 	&:hover .action:hover, &:focus .action:focus {
-		-ms-filter: 'progid:DXImageTransform.Microsoft.Alpha(Opacity=100)';
 		opacity: 1;
 	}
 }
 
 .selectedActions a {
 	&:hover, &:focus {
-		-ms-filter: 'progid:DXImageTransform.Microsoft.Alpha(Opacity=100)';
 		opacity: 1;
 	}
 }
 
 .header-action {
 	&:hover, &:focus {
-		-ms-filter: 'progid:DXImageTransform.Microsoft.Alpha(Opacity=100)';
 		opacity: 1;
 	}
 }
@@ -1124,7 +1110,7 @@ code {
 	.filelist {
 		td {
 			padding: 14px;
-			border-bottom: 1px solid nc-darken($color-main-background, 8%);
+			border-bottom: 1px solid $color-border;
 		}
 		tr:last-child td {
 			border-bottom: none;
@@ -1213,7 +1199,7 @@ span.ui-icon {
 		position: relative;
 		align-items: center;
 		padding: 3px 3px 3px 10px;
-		border-bottom: 1px solid #eeeeee;
+		border-bottom: 1px solid $color-border;
 
 		:last-of-type {
 			border-bottom: none;
@@ -1359,7 +1345,6 @@ div.crumb {
 		top: 8px !important;
 	}
 	&:hover, &:focus, a:focus, &:active {
-		-ms-filter: 'progid:DXImageTransform.Microsoft.Alpha(Opacity=70)';
 		opacity: .7;
 	}
 }
@@ -1422,5 +1407,4 @@ fieldset {
 	width: 0;
 	height: 0;
 	opacity: 0;
-	-ms-filter: 'progid:DXImageTransform.Microsoft.Alpha(Opacity=0)';
 }
diff --git a/core/css/tooltip.scss b/core/css/tooltip.scss
index 7c6a2f8a580cb4dbd9cb8fe162967528da0e1039..dad7b95bbdf4cec4a8853a73c14f101a48adee38 100644
--- a/core/css/tooltip.scss
+++ b/core/css/tooltip.scss
@@ -31,10 +31,8 @@
 	font-size: 12px;
 	opacity: 0;
 	z-index: 100000;
-	filter: alpha(opacity = 0);
 	&.in {
 		opacity: 1;
-		filter: alpha(opacity = 100);
 	}
 
 	&.top {
diff --git a/core/css/variables.scss b/core/css/variables.scss
index 3a135f91c86ddbf0d2bc007dc9c6662a0025cb4e..26fd11a07d7178c7cbec07f17fe918d48e6042e4 100644
--- a/core/css/variables.scss
+++ b/core/css/variables.scss
@@ -20,4 +20,5 @@ $image-login-background: '../img/background.png?v=2';
 
 $color-loading: #969696;
 $color-loading-dark: #bbbbbb;
-$color-box-shadow: rgba(nc-lighten($color-main-text, 20%), 0.75);
+$color-box-shadow: rgba(nc-darken($color-main-background, 30%), 0.75);
+$color-border: nc-darken($color-main-background, 8%);
diff --git a/core/search/css/results.css b/core/search/css/results.css
index e55c2926fd7389c5c1aa5573db46c7eda65e9110..2e3791a47f07961cb306d7e20fe37b4c6584312c 100644
--- a/core/search/css/results.css
+++ b/core/search/css/results.css
@@ -88,8 +88,6 @@
 	color: #545454;
 }
 #searchresults .path {
-	-ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=50)";
-	filter: alpha(opacity=50);
 	opacity: .5;
 }
 #searchresults .text em {
diff --git a/settings/css/settings.css b/settings/css/settings.css
deleted file mode 100644
index 9bca1e19b1af272b5def58c134d1c90270bf009f..0000000000000000000000000000000000000000
--- a/settings/css/settings.css
+++ /dev/null
@@ -1,1312 +0,0 @@
-/* Copyright (c) 2011, Jan-Christoph Borchardt, http://jancborchardt.net
- This file is licensed under the Affero General Public License version 3 or later.
- See the COPYING-README file. */
-
-input#openid, input#webdav {
-	width: 20em;
-}
-
-/* PERSONAL */
-.clear {
-	clear: both;
-}
-
-.icon-federation-menu {
-	width: 16px;
-	float: right;
-}
-
-/* icons for sidebar */
-.nav-icon-personal-settings {
-	background-image: url('../img/personal.svg?v=1');
-}
-
-.nav-icon-security {
-	background-image: url('../img/toggle-filelist.svg?v=1');
-}
-
-.nav-icon-clientsbox {
-	background-image: url('../img/change.svg?v=1');
-}
-
-.nav-icon-federated-cloud {
-	background-image: url('../img/share.svg?v=1');
-}
-
-.nav-icon-second-factor-backup-codes {
-	background-image: url('../img/password.svg?v=1');
-}
-
-.nav-icon-ssl-root-certificate {
-	background-image: url('../img/password.svg?v=1');
-}
-
-#avatarform .avatardiv {
-	margin: 10px auto;
-}
-
-#avatarform .warning {
-	width: 100%;
-}
-
-#avatarform .jcrop-keymgr {
-	display: none !important;
-}
-
-#displayavatar {
-	text-align: center;
-}
-
-#displayavatar p {
-	text-align: left;
-}
-
-#uploadavatarbutton,
-#selectavatar,
-#removeavatar {
-	padding: 21px;
-}
-
-.jcrop-holder {
-	z-index: 500;
-}
-
-#cropper {
-	float: left;
-	z-index: 500;
-	/* float cropper above settings page to prevent unexpected flowing from dynamically sized element */
-	position: fixed;
-	background-color: rgba(0, 0, 0, .2);
-	box-sizing: border-box;
-	top: 45px;
-	left: 0;
-	width: 100%;
-	height: calc(100% - 45px);
-}
-
-#cropper .inner-container {
-	z-index: 2001; /* above the top bar if needed */
-	position: absolute;
-	top: 50%;
-	left: 50%;
-	transform: translate(-50%, -50%);
-	background: #fff;
-	color: #333;
-	border-radius: 3px;
-	box-shadow: 0 0 7px #888;
-	padding: 15px;
-}
-
-#cropper .inner-container .jcrop-holder {
-	box-shadow: 0 0 7px #888;
-}
-
-#cropper .inner-container .button {
-	margin-top: 15px;
-}
-
-#cropper .inner-container .primary {
-	float: right;
-}
-
-#personal-settings-avatar-container,
-#personal-settings-group-container {
-	display: inline-block;
-	vertical-align: top;
-	width: 225px;
-}
-
-.profile-settings-container,
-.personal-settings-container {
-	display: inline-block;
-	max-width: 600px;
-	margin-bottom: 20px;
-}
-
-.personal-settings-container:after {
-	clear: both;
-}
-
-.personal-settings-container > div,
-.profile-settings-container > div {
-	float: left;
-	width: 300px;
-}
-
-#avatarform > h2,
-.personal-settings-container > div h2 {
-	position: relative;
-}
-
-.personal-settings-container > div h2 {
-	margin-bottom: 5px;
-}
-
-.personal-settings-container > div h2 span[class^="icon-"],
-#personal-settings-avatar-container h2 span[class^="icon-"] {
-	padding-left: 16px;
-	background-size: 16px;
-	background-position: left 8px;
-	opacity: .3;
-	cursor: pointer;
-}
-
-.personal-show-container,
-.personal-settings-setting-box input[type="text"],
-.personal-settings-setting-box input[type="email"],
-.personal-settings-setting-box input[type="tel"],
-select#timezone,
-select#languageinput,
-input#pass1,
-input#pass2,
-input#passwordbutton {
-	width: 100%;
-}
-
-.personal-settings-container > div > form span[class^="icon-checkmark"],
-.personal-settings-container > div > form span[class^="icon-error"] {
-	position: relative;
-	right: 8px;
-	top: -28px;
-	pointer-events: none;
-	float: right;
-}
-
-/* verify accounts */
-.personal-settings-container .verify {
-	position: relative;
-	left: 100%;
-	top: 0;
-	height: 0;
-}
-
-.personal-settings-container .verify img {
-	padding: 12px 7px 6px;
-}
-
-/* only show pointer cursor when popup will be there */
-.personal-settings-container .verify-action {
-	cursor: pointer;
-}
-
-.personal-settings-container input:disabled {
-	background-color: white;
-	color: black;
-	border: none;
-	opacity: 100;
-}
-
-.verification-dialog {
-	display: none;
-	right: -9px;
-	top: 40px;
-	width: 275px;
-}
-
-.verification-dialog p {
-	padding: 10px;
-}
-
-.verification-dialog .verificationCode {
-	font-family: monospace;
-	display: block;
-	overflow-wrap: break-word;
-}
-
-.federationScopeMenu {
-	top: 44px;
-	margin: -5px 5px 0;
-}
-
-.federationScopeMenu.bubble::after {
-	right: 50%;
-	transform: translate(50%, 0);
-}
-
-.federationScopeMenu.popovermenu a.menuitem,
-.federationScopeMenu.popovermenu label.menuitem,
-.federationScopeMenu.popovermenu .menuitem {
-	font-size: 12.8px;
-	line-height: 1.6em;
-}
-
-.federationScopeMenu.popovermenu .menuitem .menuitem-text {
-	font-weight: 600;
-}
-
-.federationScopeMenu.popovermenu .menuitem .menuitem-text-detail {
-	opacity: .75;
-}
-
-#groups-groups {
-	padding-top: 5px;
-}
-
-.clientsbox img {
-	height: 60px;
-}
-
-#sslCertificate tr.expired {
-	background-color: rgba(255, 0, 0, 0.5);
-}
-
-#sslCertificate td {
-	padding: 5px;
-}
-
-#displaynameerror {
-	display: none;
-}
-
-#displaynamechanged {
-	display: none;
-}
-
-input#identity {
-	width: 20em;
-}
-
-#showWizard {
-	display: inline-block;
-}
-
-.msg.success {
-	color: #fff;
-	background-color: #47a447;
-	padding: 3px;
-}
-
-.msg.error {
-	color: #fff;
-	background-color: #d2322d;
-	padding: 3px;
-}
-
-.password-state {
-	display: inline-block;
-}
-
-table.nostyle label {
-	margin-right: 2em;
-}
-
-table.nostyle td {
-	padding: 0.2em 0;
-}
-
-#security table {
-	width: 100%;
-	min-height: 50px;
-	padding-top: 5px;
-	max-width: 580px;
-}
-
-#security table th {
-	opacity: .5;
-}
-
-#security table th,
-#security table td {
-	padding: 10px 10px 10px 0;
-}
-
-#security .token-list td.more {
-	overflow: visible;
-	position: relative;
-	width: 16px;
-}
-
-#security .token-list td {
-	border-top: 1px solid #DDD;
-	text-overflow: ellipsis;
-	max-width: 200px;
-	white-space: nowrap;
-	overflow: hidden;
-	vertical-align: top;
-	position: relative;
-}
-
-#security tr > *:nth-child(2) {
-	text-align: right;
-}
-
-#security .token-list td > a.icon {
-	opacity: 0;
-	transition: opacity 0.5s;
-}
-
-#security .token-list a.icon {
-	margin-top: 4px;
-	display: block;
-}
-
-#security .token-list tr:hover td > a.icon,
-#security .token-list tr.active td > a.icon {
-	opacity: 0.6;
-}
-
-#security .token-list td div.configure {
-	display: none;
-}
-
-#security .token-list tr.active div.configure {
-	display: block;
-	position: absolute;
-	top: 45px;
-	right: -5px;
-	padding: 10px;
-}
-
-#security .token-list div.configure:after {
-	right: 13px;
-}
-
-#security .token-list tr.active div.configure > * {
-	margin-top: 5px;
-	margin-bottom: 5px;
-	display: inline-block;
-}
-
-#security .token-list tr.active a.icon-delete {
-	background-position: left;
-	padding-left: 20px;
-}
-
-#new-app-login-name,
-#new-app-password {
-	width: 245px;
-	font-family: monospace;
-	background-color: lightyellow;
-}
-
-.app-password-row {
-	display: table-row;
-}
-
-.app-password-row .icon {
-	background-size: 16px 16px;
-	display: inline-block;
-	position: relative;
-	top: 3px;
-	margin-left: 5px;
-	margin-right: 8px;
-}
-
-.app-password-label {
-	display: table-cell;
-	padding-right: 1em;
-}
-
-.social-button {
-	padding-left: 0 !important;
-	margin-left: -10px
-}
-
-.social-button img {
-	padding: 10px;
-}
-
-/* USERS */
-#newgroup-init a span {
-	margin-left: 20px;
-}
-
-#newgroup-init a span:before {
-	position: absolute;
-	left: 12px;
-	top: -2px;
-	content: '+';
-	font-weight: bold;
-	font-size: 150%;
-}
-
-#newgroup-form {
-	height: 44px;
-}
-
-#newgroupname {
-	margin: 0;
-	width: 100%;
-	padding: 12px 40px 12px 12px;
-	box-sizing: border-box;
-	background-color: transparent;
-	border: none;
-	border-bottom: 1px solid #eee;
-	border-radius: 0;
-}
-
-#newgroup-form .button {
-	position: absolute;
-	right: 0;
-	top: 0;
-	padding: 10px 20px;
-	background-color: transparent;
-	border: none;
-	opacity: .5;
-}
-
-.isgroup .groupname {
-	width: 85%;
-	display: block;
-	overflow: hidden;
-	text-overflow: ellipsis;
-}
-
-.isgroup.active .groupname {
-	width: 65%;
-}
-
-.usercount {
-	float: left;
-	margin: 5px;
-}
-
-li.active span.utils .delete {
-	float: left;
-	position: relative;
-	opacity: 0.5;
-	top: -7px;
-	left: 7px;
-	width: 44px;
-	height: 44px;
-}
-
-li.active .rename {
-	padding: 8px 14px 20px 14px;
-	top: 0px;
-	position: absolute;
-	width: 16px;
-	height: 16px;
-	opacity: 0.5;
-	display: inline-block !important;
-}
-
-li.active span.utils .delete img {
-	margin: 14px;
-}
-
-li.active .rename {
-	opacity: 0.5;
-}
-
-li.active span.utils .delete:hover, li.active .rename:hover {
-	opacity: 1;
-}
-
-span.utils .delete, .rename {
-	display: none;
-}
-
-#app-navigation ul li.active > span.utils .delete,
-#app-navigation ul li.active > span.utils .rename {
-	display: block;
-}
-
-#usersearchform {
-	position: absolute;
-	top: 2px;
-	right: 0;
-}
-
-#usersearchform input {
-	width: 150px;
-}
-
-#usersearchform label {
-	font-weight: 700;
-}
-
-/* display table at full width */
-table.grid {
-	width: 100%;
-}
-
-table.grid th {
-	height: 2em;
-	color: #999;
-}
-
-table.grid th, table.grid td {
-	border-bottom: 1px solid #eee;
-	padding: 0 .5em;
-	padding-left: .8em;
-	text-align: left;
-	font-weight: normal;
-}
-
-td.name, td.password {
-	padding-left: .8em;
-}
-
-td.password > img, td.displayName > img, td.quota > img {
-	visibility: hidden;
-}
-
-td.password, td.quota, td.displayName {
-	width: 12em;
-	cursor: pointer;
-}
-
-td.password > span, td.quota > span {
-	margin-right: 1.2em;
-	color: #C7C7C7;
-}
-
-span.usersLastLoginTooltip {
-	white-space: nowrap;
-}
-
-/* dropdowns will be relative to this element */
-#userlist {
-	position: relative;
-}
-
-#userlist .mailAddress,
-#userlist .storageLocation,
-#userlist .userBackend,
-#userlist .lastLogin {
-	display: none;
-}
-
-/* because of accessibility the name cell is <th> - therefore we enforce the black color */
-#userlist th.name {
-	color: #000;
-}
-
-/* use same height as in files app */
-#userlist tr {
-	height: 51px;
-}
-
-#userlist .mailAddress .loading-small {
-	width: 16px;
-	height: 16px;
-	margin-left: -26px;
-	position: relative;
-	top: 3px;
-}
-
-#newuser .groups {
-	display: inline;
-}
-
-#newuser .groupsListContainer.hidden,
-#userlist .groupsListContainer.hidden {
-	display: none;
-}
-
-#userlist .bubble {
-	z-index: 1;
-	right: -6px;
-	top: auto;
-}
-
-#userlist .bubble:after {
-	right: 5px;
-}
-
-#userlist .popovermenu a.menuitem {
-	height: 20px;
-	margin: 0;
-	padding: 0;
-	line-height: initial;
-}
-
-#userlist .popovermenu {
-	margin-top: 4px;
-	border-top-right-radius: 3px;
-	right: 3px;
-	opacity: 0;
-	display: block;
-	visibility: hidden;
-	transition: opacity 0.1s, visibility 0.1s;
-}
-
-#userlist tr.active .popovermenu {
-	opacity: 1;
-	visibility: visible;
-}
-
-#userlist .popovermenu > ul.userActionsMenu {
-	right: 15px;
-}
-
-#userlist .popovermenu > ul.userActionsMenu a {
-	margin: 5px 0;
-}
-
-#userlist .popovermenu > ul.userActionsMenu a span:last-child {
-	margin-left: 5px;
-}
-
-tr:hover > td.password > span, tr:hover > td.displayName > span {
-	margin: 0;
-	cursor: pointer;
-}
-
-tr:hover > td.password > img, tr:hover > td.displayName > img, tr:hover > td.quota > img {
-	visibility: visible;
-	cursor: pointer;
-}
-
-td.userActions {
-	width: 25px;
-	text-align: center;
-}
-
-td.userActions .action {
-	position: relative;
-	top: 3px;
-}
-
-tr.active td.userActions .action {
-	opacity: 1;
-}
-
-td.userActions .action:hover {
-	cursor: pointer;
-}
-
-div.recoveryPassword {
-	left: 50em;
-	display: block;
-	position: absolute;
-	top: -1px;
-}
-
-input#recoveryPassword {
-	width: 15em;
-}
-
-#controls select.quota {
-	margin: 3px;
-	margin-right: 10px;
-	height: 37px;
-}
-
-#userlist td.quota {
-	position: relative;
-	width: 10em;
-}
-
-select.quota-user {
-	position: absolute;
-	left: 0;
-	top: 0;
-	width: 10em;
-	height: 34px;
-}
-
-select.quota.active {
-	background: #fff;
-}
-
-input.userFilter {
-	width: 200px;
-}
-
-.quota_progress_container {
-	position: absolute;
-	left: 0;
-	top: 0;
-	width: 10em;
-	margin: 3px 3px 3px 0;
-	border-radius: 3px;
-}
-
-.quota_progress {
-	background-color: #eee;
-	height: 34px;
-}
-
-/* positioning fixes */
-#newuser {
-	padding-left: 3px;
-}
-
-#newuser .multiselect {
-	min-width: 150px !important;
-}
-
-#newuser .multiselect,
-#newusergroups + input[type='submit'] {
-	position: relative;
-	top: -1px;
-}
-
-#headerGroups,
-#headerSubAdmins,
-#headerQuota {
-	padding-left: 18px;
-}
-
-#headerAvatar {
-	width: 32px;
-}
-
-/* used to highlight a user row in red */
-#userlist tr.row-warning {
-	background-color: #FDD;
-}
-
-/* APPS */
-
-/* Bundle header */
-#apps-list .apps-header {
-	display: table-row;
-	position: relative;
-}
-
-#apps-list .apps-header div {
-	display: table-cell;
-	height: 70px;
-}
-
-#apps-list .apps-header h2 {
-	display: table-cell;
-	position: absolute;
-	padding-left: 6px;
-	padding-top: 15px;
-}
-
-#apps-list .apps-header h2 .enable {
-	position: relative;
-	top: -1px;
-	margin-left: 12px;
-}
-
-#apps-list .apps-header h2 + .section {
-	margin-top: 50px;
-}
-
-#app-content > svg.app-filter {
-	float: left;
-	height: 0;
-	width: 0;
-}
-
-#app-category-app-bundles {
-	margin-bottom: 20px;
-}
-
-.appinfo {
-	margin: 1em 40px;
-}
-
-#app-navigation .appwarning {
-	background: #fcc;
-}
-
-#app-navigation.appwarning:hover {
-	background: #fbb;
-}
-
-span.version {
-	margin-left: 1em;
-	margin-right: 1em;
-	color: #555;
-}
-
-#app-navigation .app-external,
-.app-version {
-	color: rgba(85, 85, 85, .5);
-}
-
-.app-level {
-	margin-top: 8px;
-}
-
-.app-level span {
-	color: #555;
-	background-color: transparent;
-	border: 1px solid #555;
-	border-radius: 3px;
-	padding: 3px 6px;
-}
-
-.app-level a {
-	padding: 10px;
-	white-space: nowrap;
-}
-
-.app-level .official {
-	border-color: #37ce02;
-	background-position: left center;
-	background-position: 5px center;
-	padding-left: 25px;
-}
-
-.app-score {
-	position: relative;
-	top: 4px;
-	opacity: .5;
-}
-
-#apps-list {
-	position: relative;
-	height: 100%;
-	display: flex;
-	flex-wrap: wrap;
-	align-content: flex-start;
-}
-
-#apps-list.hidden {
-	display: none;
-}
-
-#apps-list .section {
-	position: relative;
-	flex: 0 0 auto;
-	margin-left: 20px;
-}
-
-#apps-list .section.apps-experimental {
-	flex-basis: 90%;
-}
-
-#apps-list .app-description p {
-	margin: 10px 0;
-}
-
-#apps-list .app-description ul {
-	list-style: disc;
-}
-
-#apps-list .app-description ol {
-	list-style: decimal;
-}
-
-#apps-list .app-description > ul,
-#apps-list .app-description > ol {
-	margin-left: 19px;
-}
-
-#apps-list .app-description ol ol,
-#apps-list .app-description ol ul,
-#apps-list .app-description ul ol,
-#apps-list .app-description ul ul {
-	padding-left: 15px;
-}
-
-@media (min-width: 1601px) {
-	#apps-list .section {
-		width: 22%;
-		box-sizing: border-box;
-	}
-
-	#apps-list .section:nth-child(4n) {
-		margin-right: 20px;
-	}
-}
-
-@media (min-width: 1201px) and (max-width: 1600px) {
-	#apps-list .section {
-		width: 30%;
-		box-sizing: border-box;
-	}
-
-	#apps-list .section:nth-child(3n) {
-		margin-right: 20px;
-	}
-}
-
-@media (min-width: 901px) and (max-width: 1200px), (min-width: 601px) and (max-width: 770px) {
-	#apps-list .section {
-		width: 40%;
-		box-sizing: border-box;
-	}
-
-	#apps-list .section:nth-child(2n) {
-		margin-right: 20px;
-	}
-}
-
-/* hide app version and level on narrower screens */
-@media only screen and (max-width: 768px) {
-	#apps-list.installed .app-version,
-	#apps-list.installed .app-level {
-		display: none !important;
-	}
-}
-
-@media only screen and (max-width: 700px) {
-	#apps-list.installed .app-groups {
-		display: none !important;
-	}
-}
-
-.section h2.app-name {
-	display: block;
-	margin: 8px 0;
-}
-
-.section {
-	padding: 10px 30px;
-	margin-bottom: 0;
-}
-
-.followupsection {
-	display: block;
-	padding: 0 30px 30px 30px;
-	color: #555;
-}
-
-.app-image {
-	position: relative;
-	height: 150px;
-	opacity: 1;
-	overflow: hidden;
-}
-
-.app-name,
-.app-version,
-.app-score,
-.app-level {
-	display: inline-block;
-}
-
-.app-description-toggle-show,
-.app-description-toggle-hide {
-	clear: both;
-	padding: 7px 0;
-	cursor: pointer;
-	-ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=50)";
-	opacity: .5;
-}
-
-.app-description-container {
-	clear: both;
-	position: relative;
-	top: 7px;
-}
-
-.app-description {
-	clear: both;
-}
-
-#apps-list .groups-enable {
-	margin-top: 8px;
-}
-
-#app-category-1 {
-	margin-bottom: 18px;
-}
-
-/* capitalize "Other" category */
-#app-category-925 {
-	text-transform: capitalize;
-}
-
-.app-dependencies {
-	color: #ce3702;
-}
-
-.missing-dependencies {
-	list-style: initial;
-	list-style-type: initial;
-	list-style-position: inside;
-}
-
-/* Transition to complete width! */
-.app:hover, .app:active {
-	max-width: inherit;
-}
-
-.appslink {
-	text-decoration: underline;
-}
-
-.score {
-	color: #666;
-	font-weight: bold;
-	font-size: 0.8em;
-}
-
-.appinfo .documentation {
-	margin-top: 1em;
-	margin-bottom: 1em;
-}
-
-#apps-list.installed {
-	display: table;
-	width: 100%;
-	height: auto;
-	margin-bottom: 100px;
-}
-
-#apps-list.installed .section {
-	display: table-row;
-	padding: 0;
-	margin: 0;
-}
-
-#apps-list.installed .section > * {
-	display: table-cell;
-	height: initial;
-	vertical-align: middle;
-	float: none;
-	border-bottom: 1px solid #eee;
-	padding: 6px;
-	box-sizing: border-box;
-}
-
-#apps-list.installed .app-image {
-	width: 44px;
-	text-align: right;
-}
-
-#apps-list.installed .app-image-icon svg {
-	margin-top: 5px;
-	width: 20px;
-	height: 20px;
-	opacity: .5;
-}
-
-#apps-list:not(.installed) .app-image-icon svg {
-	position: absolute;
-	bottom: 43px; /* position halfway vertically */
-	width: 64px;
-	height: 64px;
-	opacity: .1;
-}
-
-.installed .actions {
-	text-align: right;
-}
-
-#apps-list.installed .groups-enable {
-	margin-top: 0;
-}
-
-#apps-list.installed .groups-enable label {
-	margin-right: 3px;
-}
-
-/* LOG */
-#log {
-	white-space: normal;
-	margin-bottom: 14px;
-}
-
-#lessLog {
-	display: none;
-}
-
-table.grid td.date {
-	white-space: nowrap;
-}
-
-#log-section p {
-	margin-top: 20px;
-}
-
-/* ADMIN */
-
-/* Navigation icons */
-#app-navigation img {
-	margin-bottom: -3px;
-	margin-right: 6px;
-	width: 16px;
-}
-
-#app-navigation li span.no-icon {
-	padding-left: 32px;
-}
-
-#security-warning li {
-	list-style: initial;
-	margin: 10px 0;
-}
-
-#security-warning-state span {
-	padding-left: 25px;
-	background-position: 5px center;
-	margin-left: -5px;
-}
-
-#shareAPI p {
-	padding-bottom: 0.8em;
-}
-
-#shareAPI input#shareapiExpireAfterNDays {
-	width: 40px;
-}
-
-#shareAPI .indent {
-	padding-left: 28px;
-}
-
-#shareAPI .double-indent {
-	padding-left: 56px;
-}
-
-#fileSharingSettings h3 {
-	display: inline-block;
-}
-
-#publicShareDisclaimerText {
-	width: calc(100% - 23px); /* 20 px left margin, 3 px right margin */
-	max-width: 600px;
-	height: 150px;
-	margin-left: 20px;
-	box-sizing: border-box;
-}
-
-/* correctly display help icons next to headings */
-.icon-info {
-	padding: 11px 20px;
-	vertical-align: text-bottom;
-}
-
-#shareAPI h2,
-#encryptionAPI h2,
-#mail_general_settings h2 {
-	display: inline-block;
-}
-
-#encryptionAPI li {
-	list-style-type: initial;
-	margin-left: 20px;
-	padding: 5px 0;
-}
-
-.mail_settings p label:first-child {
-	display: inline-block;
-	width: 300px;
-	text-align: right;
-}
-
-.mail_settings p select:nth-child(2) {
-	width: 143px;
-}
-
-#mail_smtpport {
-	width: 40px;
-}
-
-.cronlog {
-	margin-left: 10px;
-}
-
-.status {
-	display: inline-block;
-	height: 16px;
-	width: 16px;
-	vertical-align: text-bottom;
-}
-
-.status.success {
-	border-radius: 50%;
-}
-
-#selectGroups select {
-	-moz-box-sizing: border-box;
-	-webkit-box-sizing: border-box;
-	box-sizing: border-box;
-	display: inline-block;
-	height: 36px;
-	padding: 7px 10px
-}
-
-#log .log-message {
-	word-break: break-all;
-	min-width: 180px;
-}
-
-span.success {
-	background: #37ce02;
-	border-radius: 3px;
-}
-
-span.error {
-	background: #ce3702;
-}
-
-span.indeterminate {
-	background: #e6db00;
-	border-radius: 40% 0;
-}
-
-/* PASSWORD */
-#passwordform .strengthify-wrapper {
-	position: absolute;
-	left: 0;
-	width: 130px;
-	margin-top: -6px;
-}
-
-/* OPERA hack for strengthify*/
-doesnotexist:-o-prefocus, .strengthify-wrapper {
-	left: 185px;
-	width: 129px;
-}
-
-.trusted-domain-warning {
-	color: #fff;
-	padding: 5px;
-	background: #ce3702;
-	border-radius: 5px;
-	font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace;
-}
-
-/* HELP */
-
-.help-includes {
-	overflow: hidden !important;
-}
-
-.help-iframe {
-	width: 100%;
-	height: 100%;
-	margin: 0;
-	padding: 0;
-	border: 0;
-	overflow: auto;
-}
-
-#postsetupchecks .loading {
-	height: 50px;
-	background-position: left center;
-}
-
-#postsetupchecks .errors,
-#postsetupchecks .warnings,
-#security-warning > ul {
-	color: #ce3702;
-}
-
-#admin-tips li {
-	list-style: initial;
-}
-
-#admin-tips li a {
-	display: inline-block;
-	padding: 3px 0;
-}
-
-#selectEncryptionModules {
-	margin-left: 30px;
-	padding: 10px;
-}
-
-#encryptionModules {
-	padding: 10px;
-}
-
-#warning {
-	color: red;
-}
-
-.settings-hint {
-	margin-top: -12px;
-	margin-bottom: 12px;
-	opacity: .7;
-}
-
-.settings-caption {
-	font-weight: bold;
-	line-height: 44px;
-	padding: 0 12px;
-	white-space: nowrap;
-	text-overflow: ellipsis;
-}
diff --git a/settings/css/settings.scss b/settings/css/settings.scss
new file mode 100644
index 0000000000000000000000000000000000000000..2ec7f5753292998260109c953d31285a36e6961c
--- /dev/null
+++ b/settings/css/settings.scss
@@ -0,0 +1,1271 @@
+/* Copyright (c) 2011, Jan-Christoph Borchardt, http://jancborchardt.net
+ This file is licensed under the Affero General Public License version 3 or later.
+ See the COPYING-README file. */
+
+input {
+	&#openid, &#webdav {
+		width: 20em;
+	}
+}
+
+/* PERSONAL */
+.clear {
+	clear: both;
+}
+
+.icon-federation-menu {
+	width: 16px;
+	float: right;
+}
+
+/* icons for sidebar */
+.nav-icon-personal-settings {
+	background-image: url('../img/personal.svg?v=1');
+}
+
+.nav-icon-security {
+	background-image: url('../img/toggle-filelist.svg?v=1');
+}
+
+.nav-icon-clientsbox {
+	background-image: url('../img/change.svg?v=1');
+}
+
+.nav-icon-federated-cloud {
+	background-image: url('../img/share.svg?v=1');
+}
+
+.nav-icon-second-factor-backup-codes, .nav-icon-ssl-root-certificate {
+	background-image: url('../img/password.svg?v=1');
+}
+
+#avatarform {
+	> h2 {
+		position: relative;
+	}
+	.avatardiv {
+		margin: 10px auto;
+	}
+	.warning {
+		width: 100%;
+	}
+	.jcrop-keymgr {
+		display: none !important;
+	}
+}
+
+#displayavatar {
+	text-align: center;
+	p {
+		text-align: left;
+	}
+}
+
+#uploadavatarbutton, #selectavatar, #removeavatar {
+	padding: 21px;
+}
+
+.jcrop-holder {
+	z-index: 500;
+}
+
+#cropper {
+	float: left;
+	z-index: 500;
+	/* float cropper above settings page to prevent unexpected flowing from dynamically sized element */
+	position: fixed;
+	background-color: rgba(0, 0, 0, 0.2);
+	box-sizing: border-box;
+	top: 45px;
+	left: 0;
+	width: 100%;
+	height: calc(100% - 45px);
+	.inner-container {
+		z-index: 2001;
+		/* above the top bar if needed */
+		position: absolute;
+		top: 50%;
+		left: 50%;
+		transform: translate(-50%, -50%);
+		background: #fff;
+		color: #333;
+		border-radius: 3px;
+		box-shadow: 0 0 7px #888;
+		padding: 15px;
+		.jcrop-holder {
+			box-shadow: 0 0 7px #888;
+		}
+		.button {
+			margin-top: 15px;
+		}
+		.primary {
+			float: right;
+		}
+	}
+}
+
+#personal-settings-avatar-container,
+#personal-settings-group-container {
+	display: inline-block;
+	vertical-align: top;
+	width: 225px;
+}
+
+.profile-settings-container {
+	display: inline-block;
+	max-width: 600px;
+	margin-bottom: 20px;
+	> div {
+		float: left;
+		width: 300px;
+	}
+}
+
+#personal-settings-avatar-container h2 span[class^="icon-"] {
+	padding-left: 16px;
+	background-size: 16px;
+	background-position: left 8px;
+	opacity: .3;
+	cursor: pointer;
+}
+
+.personal-show-container {
+	width: 100%;
+}
+
+.personal-settings-setting-box input {
+	&[type="text"], &[type="email"], &[type="tel"] {
+		width: 100%;
+	}
+}
+
+select {
+	&#timezone,
+	&#languageinput {
+		width: 100%;
+	}
+}
+
+input {
+	&#pass1,
+	&#pass2,
+	&#passwordbutton {
+		width: 100%;
+	}
+}
+
+.personal-settings-container {
+	display: inline-block;
+	max-width: 600px;
+	margin-bottom: 20px;
+	&:after {
+		clear: both;
+	}
+	> div {
+		float: left;
+		width: 300px;
+		h2 {
+			position: relative;
+			margin-bottom: 5px;
+			span[class^="icon-"] {
+				padding-left: 16px;
+				background-size: 16px;
+				background-position: left 8px;
+				opacity: .3;
+				cursor: pointer;
+			}
+		}
+		> form span {
+			&[class^="icon-checkmark"], &[class^="icon-error"] {
+				position: relative;
+				right: 8px;
+				top: -28px;
+				pointer-events: none;
+				float: right;
+			}
+		}
+	}
+	.verify {
+		position: relative;
+		left: 100%;
+		top: 0;
+		height: 0;
+		img {
+			padding: 12px 7px 6px;
+		}
+	}
+	.verify-action {
+		cursor: pointer;
+	}
+	input:disabled {
+		background-color: white;
+		color: black;
+		border: none;
+		opacity: 100;
+	}
+}
+
+/* verify accounts */
+/* only show pointer cursor when popup will be there */
+.verification-dialog {
+	display: none;
+	right: -9px;
+	top: 40px;
+	width: 275px;
+	p {
+		padding: 10px;
+	}
+	.verificationCode {
+		font-family: monospace;
+		display: block;
+		overflow-wrap: break-word;
+	}
+}
+
+.federationScopeMenu {
+	top: 44px;
+	margin: -5px 5px 0;
+	&.bubble::after {
+		right: 50%;
+		transform: translate(50%, 0);
+	}
+	&.popovermenu {
+		a.menuitem, label.menuitem {
+			font-size: 12.8px;
+			line-height: 1.6em;
+		}
+		.menuitem {
+			font-size: 12.8px;
+			line-height: 1.6em;
+			.menuitem-text {
+				font-weight: 600;
+			}
+			.menuitem-text-detail {
+				opacity: .75;
+			}
+		}
+	}
+}
+
+#groups-groups {
+	padding-top: 5px;
+}
+
+.clientsbox img {
+	height: 60px;
+}
+
+#sslCertificate {
+	tr.expired {
+		background-color: rgba(255, 0, 0, 0.5);
+	}
+	td {
+		padding: 5px;
+	}
+}
+
+#displaynameerror,
+#displaynamechanged {
+	display: none;
+}
+
+input#identity {
+	width: 20em;
+}
+
+#showWizard {
+	display: inline-block;
+}
+
+.msg {
+	&.success {
+		color: #fff;
+		background-color: #47a447;
+		padding: 3px;
+	}
+	&.error {
+		color: #fff;
+		background-color: #d2322d;
+		padding: 3px;
+	}
+}
+
+.password-state {
+	display: inline-block;
+}
+
+table.nostyle {
+	label {
+		margin-right: 2em;
+	}
+	td {
+		padding: 0.2em 0;
+	}
+}
+
+#security {
+	table {
+		width: 100%;
+		min-height: 50px;
+		padding-top: 5px;
+		max-width: 580px;
+		th {
+			opacity: .5;
+			padding: 10px 10px 10px 0;
+		}
+		td {
+			padding: 10px 10px 10px 0;
+		}
+	}
+	.token-list td {
+		&.more {
+			overflow: visible;
+			position: relative;
+			width: 16px;
+		}
+		border-top: 1px solid #DDD;
+		text-overflow: ellipsis;
+		max-width: 200px;
+		white-space: nowrap;
+		overflow: hidden;
+		vertical-align: top;
+		position: relative;
+	}
+	tr > *:nth-child(2) {
+		text-align: right;
+	}
+	.token-list {
+		td > a.icon {
+			opacity: 0;
+			transition: opacity 0.5s;
+		}
+		a.icon {
+			margin-top: 4px;
+			display: block;
+		}
+		tr {
+			&:hover td > a.icon, &.active td > a.icon {
+				opacity: 0.6;
+			}
+		}
+		td div.configure {
+			display: none;
+		}
+		tr.active div.configure {
+			display: block;
+			position: absolute;
+			top: 45px;
+			right: -5px;
+			padding: 10px;
+		}
+		div.configure:after {
+			right: 13px;
+		}
+		tr.active {
+			div.configure > * {
+				margin-top: 5px;
+				margin-bottom: 5px;
+				display: inline-block;
+			}
+			a.icon-delete {
+				background-position: left;
+				padding-left: 20px;
+			}
+		}
+	}
+}
+
+#new-app-login-name,
+#new-app-password {
+	width: 245px;
+	font-family: monospace;
+	background-color: lightyellow;
+}
+
+.app-password-row {
+	display: table-row;
+	.icon {
+		background-size: 16px 16px;
+		display: inline-block;
+		position: relative;
+		top: 3px;
+		margin-left: 5px;
+		margin-right: 8px;
+	}
+}
+
+.app-password-label {
+	display: table-cell;
+	padding-right: 1em;
+}
+
+.social-button {
+	padding-left: 0 !important;
+	margin-left: -10px;
+	img {
+		padding: 10px;
+	}
+}
+
+/* USERS */
+#newgroup-init a span {
+	margin-left: 20px;
+	&:before {
+		position: absolute;
+		left: 12px;
+		top: -2px;
+		content: '+';
+		font-weight: bold;
+		font-size: 150%;
+	}
+}
+
+#newgroup-form {
+	height: 44px;
+}
+
+#newgroupname {
+	margin: 0;
+	width: 100%;
+	padding: 12px 40px 12px 12px;
+	box-sizing: border-box;
+	background-color: transparent;
+	border: none;
+	border-bottom: 1px solid $color-border;
+	border-radius: 0;
+}
+
+#newgroup-form .button {
+	position: absolute;
+	right: 0;
+	top: 0;
+	padding: 10px 20px;
+	background-color: transparent;
+	border: none;
+	opacity: .5;
+}
+
+.isgroup {
+	.groupname {
+		width: 85%;
+		display: block;
+		overflow: hidden;
+		text-overflow: ellipsis;
+	}
+	&.active .groupname {
+		width: 65%;
+	}
+}
+
+.usercount {
+	float: left;
+	margin: 5px;
+}
+
+li.active {
+	span.utils .delete {
+		float: left;
+		position: relative;
+		opacity: 0.5;
+		top: -7px;
+		left: 7px;
+		width: 44px;
+		height: 44px;
+	}
+	.rename {
+		padding: 8px 14px 20px 14px;
+		top: 0px;
+		position: absolute;
+		width: 16px;
+		height: 16px;
+		opacity: 0.5;
+		display: inline-block !important;
+	}
+	span.utils .delete img {
+		margin: 14px;
+	}
+	.rename {
+		opacity: 0.5;
+	}
+	span.utils .delete:hover, .rename:hover {
+		opacity: 1;
+	}
+}
+
+span.utils .delete,
+.rename {
+	display: none;
+}
+
+#usersearchform {
+	position: absolute;
+	top: 2px;
+	right: 0;
+	input {
+		width: 150px;
+	}
+	label {
+		font-weight: 700;
+	}
+}
+
+/* display table at full width */
+table.grid {
+	width: 100%;
+	th {
+		height: 2em;
+		color: #999;
+		border-bottom: 1px solid $color-border;
+		padding: 0 .5em;
+		padding-left: .8em;
+		text-align: left;
+		font-weight: normal;
+	}
+	td {
+		border-bottom: 1px solid $color-border;
+		padding: 0 .5em;
+		padding-left: .8em;
+		text-align: left;
+		font-weight: normal;
+	}
+}
+
+td {
+	&.name {
+		padding-left: .8em;
+	}
+	&.password {
+		padding-left: .8em;
+		> img {
+			visibility: hidden;
+		}
+	}
+	&.displayName > img, &.quota > img {
+		visibility: hidden;
+	}
+	&.password, &.quota, &.displayName {
+		width: 12em;
+		cursor: pointer;
+	}
+	&.password > span, &.quota > span {
+		margin-right: 1.2em;
+		color: #C7C7C7;
+	}
+}
+
+span.usersLastLoginTooltip {
+	white-space: nowrap;
+}
+
+/* dropdowns will be relative to this element */
+#userlist {
+	position: relative;
+	.mailAddress, .storageLocation, .userBackend, .lastLogin {
+		display: none;
+	}
+	th.name {
+		color: #000;
+	}
+	tr {
+		height: 51px;
+	}
+	.mailAddress .loading-small {
+		width: 16px;
+		height: 16px;
+		margin-left: -26px;
+		position: relative;
+		top: 3px;
+	}
+	.groupsListContainer.hidden {
+		display: none;
+	}
+	.bubble {
+		z-index: 1;
+		right: -6px;
+		top: auto;
+		&:after {
+			right: 5px;
+		}
+	}
+	.popovermenu {
+		a.menuitem {
+			height: 20px;
+			margin: 0;
+			padding: 0;
+			line-height: initial;
+		}
+		margin-top: 4px;
+		border-top-right-radius: 3px;
+		right: 3px;
+		opacity: 0;
+		display: block;
+		visibility: hidden;
+		transition: opacity 0.1s, visibility 0.1s;
+	}
+	tr.active .popovermenu {
+		opacity: 1;
+		visibility: visible;
+	}
+	.popovermenu > ul.userActionsMenu {
+		right: 15px;
+		a {
+			margin: 5px 0;
+			span:last-child {
+				margin-left: 5px;
+			}
+		}
+	}
+}
+
+/* because of accessibility the name cell is <th> - therefore we enforce the black color */
+/* use same height as in files app */
+#newuser {
+	/* positioning fixes */
+	padding-left: 3px;
+	.groups {
+		display: inline;
+	}
+	.groupsListContainer.hidden {
+		display: none;
+	}
+	.multiselect {
+		min-width: 150px !important;
+		position: relative;
+		top: -1px;
+	}
+}
+
+tr:hover > td {
+	&.password > span, &.displayName > span {
+		margin: 0;
+		cursor: pointer;
+	}
+	&.password > img, &.displayName > img, &.quota > img {
+		visibility: visible;
+		cursor: pointer;
+	}
+}
+
+td.userActions {
+	width: 25px;
+	text-align: center;
+	.action {
+		position: relative;
+		top: 3px;
+	}
+}
+
+tr.active td.userActions .action {
+	opacity: 1;
+}
+
+td.userActions .action:hover {
+	cursor: pointer;
+}
+
+div.recoveryPassword {
+	left: 50em;
+	display: block;
+	position: absolute;
+	top: -1px;
+}
+
+input#recoveryPassword {
+	width: 15em;
+}
+
+#controls select.quota {
+	margin: 3px;
+	margin-right: 10px;
+	height: 37px;
+}
+
+#userlist td.quota {
+	position: relative;
+	width: 10em;
+}
+
+select {
+	&.quota-user {
+		position: absolute;
+		left: 0;
+		top: 0;
+		width: 10em;
+		height: 34px;
+	}
+	&.quota.active {
+		background: #fff;
+	}
+}
+
+input.userFilter {
+	width: 200px;
+}
+
+.quota_progress_container {
+	position: absolute;
+	left: 0;
+	top: 0;
+	width: 10em;
+	margin: 3px 3px 3px 0;
+	border-radius: 3px;
+}
+
+.quota_progress {
+	background-color: #eee;
+	height: 34px;
+}
+
+#newusergroups + input[type='submit'] {
+	position: relative;
+	top: -1px;
+}
+
+#headerGroups, #headerSubAdmins, #headerQuota {
+	padding-left: 18px;
+}
+
+#headerAvatar {
+	width: 32px;
+}
+
+/* used to highlight a user row in red */
+
+#userlist tr.row-warning {
+	background-color: #FDD;
+}
+
+/* APPS */
+#app-content > svg.app-filter {
+	float: left;
+	height: 0;
+	width: 0;
+}
+
+#app-category-app-bundles {
+	margin-bottom: 20px;
+}
+
+.appinfo {
+	margin: 1em 40px;
+}
+
+#app-navigation {
+	/* Navigation icons */
+	img {
+		margin-bottom: -3px;
+		margin-right: 6px;
+		width: 16px;
+	}
+	li span.no-icon {
+		padding-left: 32px;
+	}
+	ul li.active > span.utils {
+		.delete, .rename {
+			display: block;
+		}
+	}
+	.appwarning {
+		background: #fcc;
+	}
+	&.appwarning:hover {
+		background: #fbb;
+	}
+	.app-external, .app-version {
+		color: rgba(85, 85, 85, 0.5);
+	}
+}
+
+span.version {
+	margin-left: 1em;
+	margin-right: 1em;
+	color: #555;
+}
+
+.app-level {
+	margin-top: 8px;
+	span {
+		color: #555;
+		background-color: transparent;
+		border: 1px solid #555;
+		border-radius: 3px;
+		padding: 3px 6px;
+	}
+	a {
+		padding: 10px;
+		white-space: nowrap;
+	}
+	.official {
+		border-color: #37ce02;
+		background-position: left center;
+		background-position: 5px center;
+		padding-left: 25px;
+	}
+}
+
+.app-score {
+	position: relative;
+	top: 4px;
+	opacity: .5;
+}
+
+@media (min-width: 1601px) {
+	#apps-list .section {
+		width: 22%;
+		box-sizing: border-box;
+		&:nth-child(4n) {
+			margin-right: 20px;
+		}
+	}
+}
+
+@media (min-width: 1201px) and (max-width: 1600px) {
+	#apps-list .section {
+		width: 30%;
+		box-sizing: border-box;
+		&:nth-child(3n) {
+			margin-right: 20px;
+		}
+	}
+}
+
+@media (min-width: 901px) and (max-width: 1200px), (min-width: 601px) and (max-width: 770px) {
+	#apps-list .section {
+		width: 40%;
+		box-sizing: border-box;
+		&:nth-child(2n) {
+			margin-right: 20px;
+		}
+	}
+}
+
+/* hide app version and level on narrower screens */
+@media only screen and (max-width: 768px) {
+	#apps-list.installed {
+		.app-version, .app-level {
+			display: none !important;
+		}
+	}
+}
+
+@media only screen and (max-width: 700px) {
+	#apps-list.installed .app-groups {
+		display: none !important;
+	}
+}
+
+.section {
+	h2.app-name {
+		display: block;
+		margin: 8px 0;
+	}
+	padding: 10px 30px;
+	margin-bottom: 0;
+}
+
+.followupsection {
+	display: block;
+	padding: 0 30px 30px 30px;
+	color: #555;
+}
+
+.app-image {
+	position: relative;
+	height: 150px;
+	opacity: 1;
+	overflow: hidden;
+}
+
+.app-name, .app-version, .app-score, .app-level {
+	display: inline-block;
+}
+
+.app-description-toggle-show, .app-description-toggle-hide {
+	clear: both;
+	padding: 7px 0;
+	cursor: pointer;
+	opacity: .5;
+}
+
+.app-description-container {
+	clear: both;
+	position: relative;
+	top: 7px;
+}
+
+.app-description {
+	clear: both;
+}
+
+#app-category-1 {
+	margin-bottom: 18px;
+}
+
+/* capitalize "Other" category */
+
+#app-category-925 {
+	text-transform: capitalize;
+}
+
+.app-dependencies {
+	color: #ce3702;
+}
+
+.missing-dependencies {
+	list-style: initial;
+	list-style-type: initial;
+	list-style-position: inside;
+}
+
+/* Transition to complete width! */
+
+.app {
+	&:hover, &:active {
+		max-width: inherit;
+	}
+}
+
+.appslink {
+	text-decoration: underline;
+}
+
+.score {
+	color: #666;
+	font-weight: bold;
+	font-size: 0.8em;
+}
+
+.appinfo .documentation {
+	margin-top: 1em;
+	margin-bottom: 1em;
+}
+
+#apps-list {
+	&.installed {
+		display: table;
+		width: 100%;
+		height: auto;
+		margin-bottom: 100px;
+		.section {
+			display: table-row;
+			padding: 0;
+			margin: 0;
+			> * {
+				display: table-cell;
+				height: initial;
+				vertical-align: middle;
+				float: none;
+				border-bottom: 1px solid $color-border;
+				padding: 6px;
+				box-sizing: border-box;
+			}
+		}
+		.groups-enable {
+			margin-top: 0;
+			label {
+				margin-right: 3px;
+			}
+		}
+		.app-image {
+			width: 44px;
+			text-align: right;
+		}
+		.app-image-icon svg {
+			margin-top: 5px;
+			width: 20px;
+			height: 20px;
+			opacity: .5;
+		}
+	}
+	&:not(.installed) .app-image-icon svg {
+		position: absolute;
+		bottom: 43px;
+		/* position halfway vertically */
+		width: 64px;
+		height: 64px;
+		opacity: .1;
+	}
+	position: relative;
+	height: 100%;
+	display: flex;
+	flex-wrap: wrap;
+	align-content: flex-start;
+	&.hidden {
+		display: none;
+	}
+	.section {
+		position: relative;
+		flex: 0 0 auto;
+		margin-left: 20px;
+		&.apps-experimental {
+			flex-basis: 90%;
+		}
+	}
+	.app-description {
+		p {
+			margin: 10px 0;
+		}
+		ul {
+			list-style: disc;
+		}
+		ol {
+			list-style: decimal;
+			ol, ul {
+				padding-left: 15px;
+			}
+		}
+		> {
+			ul, ol {
+				margin-left: 19px;
+			}
+		}
+		ul {
+			ol, ul {
+				padding-left: 15px;
+			}
+		}
+	}
+	/* Bundle header */
+	.apps-header {
+		display: table-row;
+		position: relative;
+		div {
+			display: table-cell;
+			height: 70px;
+		}
+		h2 {
+			display: table-cell;
+			position: absolute;
+			padding-left: 6px;
+			padding-top: 15px;
+			.enable {
+				position: relative;
+				top: -1px;
+				margin-left: 12px;
+			}
+			+ .section {
+				margin-top: 50px;
+			}
+		}
+	}
+}
+
+.installed .actions {
+	text-align: right;
+}
+
+/* LOG */
+#log {
+	white-space: normal;
+	margin-bottom: 14px;
+}
+
+#lessLog {
+	display: none;
+}
+
+table.grid td.date {
+	white-space: nowrap;
+}
+
+#log-section p {
+	margin-top: 20px;
+}
+
+#security-warning li {
+	list-style: initial;
+	margin: 10px 0;
+}
+
+#security-warning-state span {
+	padding-left: 25px;
+	background-position: 5px center;
+	margin-left: -5px;
+}
+
+#shareAPI {
+	p {
+		padding-bottom: 0.8em;
+	}
+	input#shareapiExpireAfterNDays {
+		width: 40px;
+	}
+	.indent {
+		padding-left: 28px;
+	}
+	.double-indent {
+		padding-left: 56px;
+	}
+}
+
+#fileSharingSettings h3 {
+	display: inline-block;
+}
+
+#publicShareDisclaimerText {
+	width: calc(100% - 23px);
+	/* 20 px left margin, 3 px right margin */
+	max-width: 600px;
+	height: 150px;
+	margin-left: 20px;
+	box-sizing: border-box;
+}
+
+/* correctly display help icons next to headings */
+
+.icon-info {
+	padding: 11px 20px;
+	vertical-align: text-bottom;
+}
+
+#shareAPI h2, #encryptionAPI h2, #mail_general_settings h2 {
+	display: inline-block;
+}
+
+#encryptionAPI li {
+	list-style-type: initial;
+	margin-left: 20px;
+	padding: 5px 0;
+}
+
+.mail_settings p {
+	label:first-child {
+		display: inline-block;
+		width: 300px;
+		text-align: right;
+	}
+	select:nth-child(2) {
+		width: 143px;
+	}
+}
+
+#mail_smtpport {
+	width: 40px;
+}
+
+.cronlog {
+	margin-left: 10px;
+}
+
+.status {
+	display: inline-block;
+	height: 16px;
+	width: 16px;
+	vertical-align: text-bottom;
+	&.success {
+		border-radius: 50%;
+	}
+}
+
+#selectGroups select {
+	-moz-box-sizing: border-box;
+	-webkit-box-sizing: border-box;
+	box-sizing: border-box;
+	display: inline-block;
+	height: 36px;
+	padding: 7px 10px;
+}
+
+#log .log-message {
+	word-break: break-all;
+	min-width: 180px;
+}
+
+span {
+	&.success {
+		background: #37ce02;
+		border-radius: 3px;
+	}
+	&.error {
+		background: #ce3702;
+	}
+	&.indeterminate {
+		background: #e6db00;
+		border-radius: 40% 0;
+	}
+}
+
+/* PASSWORD */
+#passwordform .strengthify-wrapper {
+	position: absolute;
+	left: 0;
+	width: 130px;
+	margin-top: -6px;
+}
+
+/* OPERA hack for strengthify*/
+doesnotexist:-o-prefocus, .strengthify-wrapper {
+	left: 185px;
+	width: 129px;
+}
+
+.trusted-domain-warning {
+	color: #fff;
+	padding: 5px;
+	background: #ce3702;
+	border-radius: 5px;
+	font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace;
+}
+
+/* HELP */
+.help-includes {
+	overflow: hidden !important;
+}
+
+.help-iframe {
+	width: 100%;
+	height: 100%;
+	margin: 0;
+	padding: 0;
+	border: 0;
+	overflow: auto;
+}
+
+#postsetupchecks {
+	.loading {
+		height: 50px;
+		background-position: left center;
+	}
+	.errors, .warnings {
+		color: #ce3702;
+	}
+}
+
+#security-warning > ul {
+	color: #ce3702;
+}
+
+#admin-tips li {
+	list-style: initial;
+	a {
+		display: inline-block;
+		padding: 3px 0;
+	}
+}
+
+#selectEncryptionModules {
+	margin-left: 30px;
+	padding: 10px;
+}
+
+#encryptionModules {
+	padding: 10px;
+}
+
+#warning {
+	color: red;
+}
+
+.settings-hint {
+	margin-top: -12px;
+	margin-bottom: 12px;
+	opacity: .7;
+}
+
+.settings-caption {
+	font-weight: bold;
+	line-height: 44px;
+	padding: 0 12px;
+	white-space: nowrap;
+	text-overflow: ellipsis;
+}