diff --git a/core/includes/theme.maintenance.inc b/core/includes/theme.maintenance.inc
index 5a22dd1..1f06a06 100644
--- a/core/includes/theme.maintenance.inc
+++ b/core/includes/theme.maintenance.inc
@@ -95,7 +95,7 @@ function _drupal_maintenance_theme() {
   // These CSS files are normally added by system_page_build(), except
   // system.maintenance.css. When the database is inactive, it's not called so
   // we add them here.
-  drupal_add_library('system', 'drupal.base');
+  drupal_add_library('system', 'normalize');
 }
 
 /**
diff --git a/core/misc/drupal.base.css b/core/misc/drupal.base.css
deleted file mode 100644
index 2f081e9..0000000
--- a/core/misc/drupal.base.css
+++ /dev/null
@@ -1,89 +0,0 @@
-/**
- * @file
- * Provides a base styling for HTML elements in Drupal.
- */
-
-/**
- * Block-level HTML5 display definition.
- *
- * Provides display values for browsers that don't recognize the new elements
- * and therefore display them inline by default.
- */
-article,
-aside,
-details,
-figcaption,
-figure,
-footer,
-header,
-main,
-nav,
-section,
-summary {
-  display: block;
-}
-
-/**
- * Form elements.
- */
-form {
-  margin: 0;
-  padding: 0;
-}
-fieldset {
-  border: 1px solid #ccc;
-  margin: 1em 0;
-  padding: 0.5em;
-}
-label {
-  display: block;
-  font-weight: bold;
-}
-input {
-  /* Keep form elements from overflowing their containers. */
-  max-width: 100%;
-  -moz-box-sizing: border-box;
-  -webkit-box-sizing: border-box;
-  box-sizing: border-box;
-}
-
-/**
- * Table elements.
- */
-table {
-  border-collapse: collapse;
-  width: 100%;
-}
-caption {
-  text-align: left; /* LTR */
-}
-[dir="rtl"] caption {
-  text-align: right;
-}
-th {
-  padding-right: 1em; /* LTR */
-  text-align: left; /* LTR */
-}
-[dir="rtl"] th {
-  text-align: right;
-  padding-left: 1em;
-  padding-right: 0;
-}
-thead > tr {
-  border-bottom: 1px solid #000;
-}
-tr {
-  border-bottom: 1px solid #ccc;
-  padding: 0.1em 0.6em;
-}
-
-/**
- * Miscellaneous elements.
- */
-hr {
-  border: 1px solid gray;
-  height: 1px;
-}
-img {
-  border: 0;
-}
diff --git a/core/modules/system/css/system.theme.css b/core/modules/system/css/system.theme.css
index 0b9af42..a3087b4 100644
--- a/core/modules/system/css/system.theme.css
+++ b/core/modules/system/css/system.theme.css
@@ -77,10 +77,6 @@ h4.label {
 .form-type-checkbox .description {
   margin-left: 2.4em;
 }
-input.form-checkbox,
-input.form-radio {
-  vertical-align: middle;
-}
 .marker,
 .form-required {
   color: #e00;
diff --git a/core/modules/system/system.module b/core/modules/system/system.module
index f62f640..c637cde 100644
--- a/core/modules/system/system.module
+++ b/core/modules/system/system.module
@@ -1369,18 +1369,6 @@ function system_library_info() {
     ),
   );
 
-  // Drupal's base CSS.
-  $libraries['drupal.base'] = array(
-    'title' => 'Drupal base CSS',
-    'version' => \Drupal::VERSION,
-    'css' => array(
-      'core/misc/drupal.base.css' => array(
-        'every_page' => TRUE,
-        'weight' => CSS_BASE - 10,
-       ),
-     ),
-   );
-
   // jQuery UI.
   $libraries['jquery.ui.core'] = array(
     'title' => 'jQuery UI: Core',
@@ -2186,7 +2174,7 @@ function system_filetransfer_info() {
  */
 function system_page_build(&$page) {
   // Note: ensure the same CSS is loaded in _drupal_maintenance_theme().
-  $page['#attached']['library'][] = array('system', 'drupal.base');
+  $page['#attached']['library'][] = array('system', 'normalize');
   $path = drupal_get_path('module', 'system');
   // Adjust the weights to load these early.
   $page['#attached']['css'][$path . '/css/system.module.css'] = array('weight' => CSS_COMPONENT - 10, 'every_page' => TRUE);
diff --git a/core/modules/user/css/user.module.css b/core/modules/user/css/user.module.css
index 08dc3d9..f96703e 100644
--- a/core/modules/user/css/user.module.css
+++ b/core/modules/user/css/user.module.css
@@ -49,7 +49,7 @@
 }
 input.password-confirm,
 input.password-field {
-  width: 16em;
+  width: 13.7em;
   margin-bottom: 0.4em;
 }
 div.password-confirm {
@@ -63,7 +63,7 @@ div.password-confirm {
 div.form-item div.password-suggestions {
   padding: 0.2em 0.5em;
   margin: 0.7em 0;
-  width: 38.5em;
+  max-width: 34.7em;
   border: 1px solid #b4b4b4;
 }
 div.password-suggestions ul {
@@ -73,7 +73,7 @@ div.password-suggestions ul {
 .password-parent {
   clear: left; /* LTR */
   margin: 0;
-  width: 36.3em;
+  max-width: 33em;
 }
 [dir="rtl"] .confirm-parent,
 [dir="rtl"] .password-parent {
@@ -88,6 +88,7 @@ div.password-suggestions ul {
   div.password-confirm {
     float: none;
     width: auto;
+    max-width: 100%;
   }
   .password-indicator {
     margin-bottom: 0.4em;
@@ -96,13 +97,16 @@ div.password-suggestions ul {
   input.password-field {
     margin-bottom: 0;
     width: 100%;
+    max-width: none;
   }
   div.form-item div.password-suggestions {
     width: auto;
+    max-width: 100%;
   }
   .confirm-parent,
   .password-parent {
     clear: none;
     width: 100%;
+    max-width: none;
   }
 }
diff --git a/core/themes/bartik/css/style.css b/core/themes/bartik/css/style.css
index dab43ff..f74c184 100644
--- a/core/themes/bartik/css/style.css
+++ b/core/themes/bartik/css/style.css
@@ -43,9 +43,6 @@ p {
 del {
   text-decoration: line-through;
 }
-tr.odd {
-  background-color: #dddddd;
-}
 img {
   outline: 0;
 }
@@ -202,6 +199,19 @@ table table {
 #footer-wrapper table {
   font-size: 1em;
 }
+tr {
+  border-bottom: 1px solid #ccc;
+  padding: 0.1em 0.6em;
+  background: #efefef;
+  background: rgba(0, 0, 0, 0.063);
+}
+thead > tr {
+  border-bottom: 1px solid #000;
+}
+tr.odd {
+  background: #e4e4e4;
+  background: rgba(0, 0, 0, 0.105);
+}
 table tr th {
   background: #757575;
   background: rgba(0, 0, 0, 0.51);
@@ -231,15 +241,6 @@ tr th {
   border-color: #555;
   border-color: rgba(255, 255, 255, 0.18);
 }
-tr.odd {
-  background: #e4e4e4;
-  background: rgba(0, 0, 0, 0.105);
-}
-tr,
-tr.even {
-  background: #efefef;
-  background: rgba(0, 0, 0, 0.063);
-}
 table ul.links {
   margin: 0;
   padding: 0;
@@ -1274,6 +1275,13 @@ div.password-confirm {
 
 /* -------------- Form Elements   ------------- */
 
+form {
+  margin: 0;
+  padding: 0;
+}
+fieldset {
+  margin: 1em 0;
+}
 details,
 fieldset,
 .filter-wrapper {
@@ -1305,9 +1313,18 @@ details summary a:active {
 details .details-description {
   font-style: italic;
 }
+label {
+  display: block;
+  font-weight: bold;
+}
 input {
   margin: 2px 0;
   padding: 4px;
+  /* Keep form elements from overflowing their containers. */
+  max-width: 100%;
+  -moz-box-sizing: border-box;
+  -webkit-box-sizing: border-box;
+  box-sizing: border-box;
 }
 input,
 textarea {
diff --git a/core/themes/seven/seven.theme b/core/themes/seven/seven.theme
index bfc87e2..901d15e 100644
--- a/core/themes/seven/seven.theme
+++ b/core/themes/seven/seven.theme
@@ -31,25 +31,6 @@ function seven_library_info() {
 }
 
 /**
- * Implements hook_preprocess_HOOK() for maintenance-page.html.twig.
- */
-function seven_preprocess_maintenance_page(&$variables) {
-  // While markup for normal pages is split into page.tpl.php and html.tpl.php,
-  // the markup for the maintenance page is all in the single
-  // maintenance-page.html.twig template. So, to have what's done in
-  // seven_preprocess_html() also happen on the maintenance page, it has to be
-  // called here.
-  seven_preprocess_html($variables);
-}
-
-/**
- * Implements hook_preprocess_HOOK() for html.tpl.php.
- */
-function seven_preprocess_html(&$variables) {
-  drupal_add_library('system', 'normalize');
-}
-
-/**
  * Implements hook_preprocess_HOOK() for page.tpl.php.
  */
 function seven_preprocess_page(&$variables) {
diff --git a/core/themes/seven/style.css b/core/themes/seven/style.css
index c628c55..b0eff93 100644
--- a/core/themes/seven/style.css
+++ b/core/themes/seven/style.css
@@ -490,6 +490,12 @@ table {
   margin: 0 0 10px;
   font-size: 0.923em;
 }
+caption {
+  text-align: left; /* LTR */
+}
+[dir="rtl"] caption {
+  text-align: right;
+}
 th {
   padding: 10px 12px;
   background: #f5f5f2;
@@ -502,8 +508,12 @@ th {
 [dir="rtl"] th {
   text-align: right;
 }
-tbody tr {
+tr {
   border-bottom: 1px solid #e6e4df;
+  padding: 0.1em 0.6em;
+}
+thead > tr {
+  border-bottom: 1px solid #000;
 }
 tbody tr:hover {
   background: #f7fcff;
@@ -639,15 +649,24 @@ details summary {
 /**
  * Form elements.
  */
+form {
+  margin: 0;
+  padding: 0;
+}
+fieldset {
+  margin: 1em 0;
+}
 .form-item {
   margin: 1em 0;
 }
 .form-type-checkbox {
   padding: 0;
 }
-.form-item label {
+label {
+  display: block;
   margin: 0;
   padding: 0;
+  font-weight: bold;
 }
 .form-item label.option {
   font-size: 0.923em;
