diff --git includes/theme.maintenance.inc includes/theme.maintenance.inc
index 64b04ca..f4005d6 100644
--- includes/theme.maintenance.inc
+++ includes/theme.maintenance.inc
@@ -77,11 +77,12 @@ function _drupal_maintenance_theme() {
 
   // These are usually added from system_init() -except maintenance.css.
   // When the database is inactive it's not called so we add it here.
-  drupal_add_css(drupal_get_path('module', 'system') . '/system.css');
-  drupal_add_css(drupal_get_path('module', 'system') . '/system-behavior.css');
-  drupal_add_css(drupal_get_path('module', 'system') . '/system-menus.css');
-  drupal_add_css(drupal_get_path('module', 'system') . '/maintenance.css');
-  drupal_add_css(drupal_get_path('module', 'system') . '/admin.css');
+  $path = drupal_get_path('module', 'system');
+  drupal_add_css($path . '/system.base.css');
+  drupal_add_css($path . '/system-behavior.css');
+  drupal_add_css($path . '/system-menus.css');
+  drupal_add_css($path . '/maintenance.css');
+  drupal_add_css($path . '/system.admin.css');
 }
 
 /**
diff --git modules/filter/filter.css modules/filter/filter.css
index d8cc5a7..4cd98bb 100644
--- modules/filter/filter.css
+++ modules/filter/filter.css
@@ -44,3 +44,11 @@
 input#edit-filters-filter-html-settings-allowed-html {
   width: 100%;
 }
+
+.tips {
+  margin-top: 0;
+  margin-bottom: 0;
+  padding-top: 0;
+  padding-bottom: 0;
+  font-size: 0.9em;
+}
diff --git modules/simpletest/tests/common.test modules/simpletest/tests/common.test
index 92e11b0..810fc59 100644
--- modules/simpletest/tests/common.test
+++ modules/simpletest/tests/common.test
@@ -681,11 +681,11 @@ class CascadingStylesheetsTestCase extends DrupalWebTestCase {
     // A few system CSS files, ordered in a strange way.
     $system_path = drupal_get_path('module', 'system');
     drupal_add_css($system_path . '/system-behavior.css', array('weight' => CSS_SYSTEM));
-    drupal_add_css($system_path . '/system.css', array('weight' => CSS_SYSTEM - 10));
+    drupal_add_css($system_path . '/system.base.css', array('weight' => CSS_SYSTEM - 10));
     drupal_add_css($system_path . '/system-menus.css', array('weight' => CSS_SYSTEM));
 
     $expected = array(
-      $system_path . '/system.css',
+      $system_path . '/system.base.css',
       $system_path . '/system-behavior.css',
       $system_path . '/system-menus.css',
       drupal_get_path('module', 'simpletest') . '/simpletest.css',
@@ -709,35 +709,39 @@ class CascadingStylesheetsTestCase extends DrupalWebTestCase {
    * Test CSS override.
    */
   function testRenderOverride() {
-    drupal_add_css(drupal_get_path('module', 'system') . '/system.css');
-    drupal_add_css(drupal_get_path('module', 'simpletest') . '/tests/system.css');
+    $system = drupal_get_path('module', 'system');
+    $simpletest = drupal_get_path('module', 'simpletest');
+
+    drupal_add_css($system . '/system.base.css');
+    drupal_add_css($simpletest . '/tests/system.base.css');
 
     // The dummy stylesheet should be the only one included.
     $styles = drupal_get_css();
-    $this->assert(strpos($styles, drupal_get_path('module', 'simpletest') . '/tests/system.css') !== FALSE, t('The overriding CSS file is output.'));
-    $this->assert(strpos($styles, drupal_get_path('module', 'system') . '/system.css') === FALSE, t('The overriden CSS file is not output.'));
+    $this->assert(strpos($styles, $simpletest . '/tests/system.base.css') !== FALSE, t('The overriding CSS file is output.'));
+    $this->assert(strpos($styles, $system . '/system.base.css') === FALSE, t('The overriden CSS file is not output.'));
 
-    drupal_add_css(drupal_get_path('module', 'simpletest') . '/tests/system.css');
-    drupal_add_css(drupal_get_path('module', 'system') . '/system.css');
+    drupal_add_css($simpletest . '/tests/system.base.css');
+    drupal_add_css($system . '/system.base.css');
 
     // The standard stylesheet should be the only one included.
     $styles = drupal_get_css();
-    $this->assert(strpos($styles, drupal_get_path('module', 'system') . '/system.css') !== FALSE, t('The overriding CSS file is output.'));
-    $this->assert(strpos($styles, drupal_get_path('module', 'simpletest') . '/tests/system.css') === FALSE, t('The overriden CSS file is not output.'));
+    $this->assert(strpos($styles, $system . '/system.base.css') !== FALSE, t('The overriding CSS file is output.'));
+    $this->assert(strpos($styles, $simpletest . '/tests/system.base.css') === FALSE, t('The overriden CSS file is not output.'));
   }
 
   /**
    * Tests Locale module's CSS Alter to include RTL overrides.
    */
   function testAlter() {
-    // Switch the language to a right to left language and add system.css.
+    // Switch the language to a right to left language and add system.base.css.
     global $language;
     $language->direction = LANGUAGE_RTL;
-    drupal_add_css(drupal_get_path('module', 'system') . '/system.css');
+    $path = drupal_get_path('module', 'system');
+    drupal_add_css($path . '/system.theme.css');
 
     // Check to see if system-rtl.css was also added.
     $styles = drupal_get_css();
-    $this->assert(strpos($styles, drupal_get_path('module', 'system') . '/system-rtl.css') !== FALSE, t('CSS is alterable as right to left overrides are added.'));
+    $this->assert(strpos($styles, $path . '/system.theme-rtl.css') !== FALSE, t('CSS is alterable as right to left overrides are added.'));
 
     // Change the language back to left to right.
     $language->direction = LANGUAGE_LTR;
diff --git modules/system/admin-rtl.css modules/system/admin-rtl.css
deleted file mode 100644
index cbf6195..0000000
--- modules/system/admin-rtl.css
+++ /dev/null
@@ -1,50 +0,0 @@
-/* $Id: admin-rtl.css,v 1.7 2010/04/28 20:08:39 dries Exp $ */
-
-div.admin-panel .body {
-  padding: 0 8px 2px 4px;
-}
-
-div.admin .left {
-  float: right;
-  margin-left: 0;
-  margin-right: 1em;
-}
-div.admin .right {
-  float: left;
-  margin-left: 1em;
-  margin-right: 0;
-}
-
-div.admin .expert-link {
-  text-align: left;
-  margin-right: 0;
-  margin-left: 1em;
-  padding-right: 0;
-  padding-left: 4px;
-}
-
-table.system-status-report th,
-table.system-status-report tr.merge-up td {
-  padding-right: 30px;
-}
-
-table.system-status-report th {
-  background-position: 95% 50%;
-}
-
-table.screenshot {
-  margin-left: 1em;
-}
-
-.date-container {
-  clear: right;
-}
-.date-container .select-container,
-.date-container .custom-container {
-  float: right;
-}
-.date-container .custom-container {
-  margin-left: 0;
-  margin-right: 15px;
-}
-
diff --git modules/system/admin.css modules/system/admin.css
deleted file mode 100644
index 54df5af..0000000
--- modules/system/admin.css
+++ /dev/null
@@ -1,140 +0,0 @@
-/* $Id: admin.css,v 1.22 2010/04/28 20:08:39 dries Exp $ */
-
-/*
-** Formatting for administration page
-*/
-div.admin-panel {
-  margin: 0;
-  padding: 5px 5px 15px 5px;
-}
-
-div.admin-panel .description {
-  margin: 0 0 3px;
-  padding: 2px 0 3px 0;
-}
-
-div.admin-panel .body {
-  padding: 0 4px 2px 8px; /* LTR */
-}
-
-div.admin {
-  padding-top: 15px;
-}
-
-div.admin .left {
-  float: left; /* LTR */
-  width: 47%;
-  margin-left: 1em; /* LTR */
-}
-div.admin .right {
-  float: right; /* LTR */
-  width: 47%;
-  margin-right: 1em; /* LTR */
-}
-
-div.admin .expert-link {
-  text-align: right; /* LTR */
-  margin-right: 1em; /* LTR */
-  padding-right: 4px; /* LTR */
-}
-
-table.package {
-  width: 100%;
-}
-table.package .description {
-  width: 100%;
-}
-table.package .version {
-  direction: ltr;
-}
-div.admin-requirements,
-div.admin-required {
-  font-size: 0.9em;
-  color: #444;
-}
-span.admin-disabled {
-  color: #800;
-}
-span.admin-enabled {
-  color: #080;
-}
-span.admin-missing {
-  color: #f00;
-}
-
-/**
- * Formatting for status report
- */
-table.system-status-report th {
-  border-bottom: 1px solid #ccc;
-}
-table.system-status-report th,
-table.system-status-report tr.merge-up td {
-  padding-left: 30px; /* LTR */
-}
-table.system-status-report th {
-  background-repeat: no-repeat;
-  background-position: 5px 50%; /* LTR */
-  padding-top: 6px;
-  padding-bottom: 6px;
-}
-table.system-status-report tr.error th {
-  background-image: url(../../misc/watchdog-error.png);
-}
-table.system-status-report tr.warning th {
-  background-image: url(../../misc/watchdog-warning.png);
-}
-table.system-status-report tr.ok th {
-  background-image: url(../../misc/watchdog-ok.png);
-}
-
-/**
- * Formatting for theme configuration
- */
-.theme-settings-left {
-  float: left;
-  width: 49%;
-}
-.theme-settings-right {
-  float: right;
-  width: 49%;
-}
-.theme-settings-bottom {
-  clear: both;
-}
-
-/**
- * Formatting for theme overview
- */
-table.screenshot {
-  margin-right: 1em; /* LTR */
-}
-.theme-info h2 {
-  margin-bottom: 0;
-}
-.theme-info p {
-  margin-top: 0;
-}
-
-
-/**
- * Date and time settings page
- */
-.date-container {
-  overflow: auto;
-  clear: left; /* LTR */
-}
-.date-container .form-item {
-  margin-top: 0;
-}
-.date-container .select-container,
-.date-container .custom-container {
-  float: left; /* LTR */
-}
-.date-container .custom-container {
-  margin-left: 15px; /* LTR */
-  width: 50%;
-}
-html.js .custom-container label {
-  visibility: hidden;
-}
diff --git modules/system/system-behavior-rtl.css modules/system/system-behavior-rtl.css
index 1158f6e..ffbe001 100644
--- modules/system/system-behavior-rtl.css
+++ modules/system/system-behavior-rtl.css
@@ -1,9 +1,14 @@
 /* $Id: system-behavior-rtl.css,v 1.4 2010/06/20 17:34:51 webchick Exp $ */
 
 /**
- * Autocomplete
+ * @file
+ * RTL styles for JavaScript behaviors.
  */
- /* Animated throbber */
+
+/**
+ * Autocomplete.
+ */
+/* Animated throbber */
 html.js input.form-autocomplete {
   background-position: 0% 2px;
 }
@@ -12,7 +17,7 @@ html.js input.throbbing {
 }
 
 /**
- * Collapsing fieldsets
+ * Collapsible fieldsets.
  */
 html.js fieldset.collapsible .fieldset-legend {
   padding-left: 0;
@@ -25,7 +30,7 @@ html.js fieldset.collapsed .fieldset-legend {
 }
 
 /**
- * Progress bar
+ * Progress bar.
  */
 .progress .percentage {
   float: left;
@@ -41,25 +46,7 @@ html.js fieldset.collapsed .fieldset-legend {
 }
 
 /**
- * Password strength indicator
- */
-input.password-field {
-  margin-left: 10px;
-  margin-right: 0;
-}
-input.password-confirm {
-  margin-left: 10px;
-  margin-right: 0;
-}
-.password-strength-title {
-  float: right;
-}
-.password-parent {
-  float: right;
-}
-
-/**
- * Table drag and drop
+ * TableDrag behavior.
  */
 .draggable a.tabledrag-handle {
   float: right;
@@ -80,7 +67,7 @@ div.tree-child-last {
 }
 
 /**
- * Multiselect form
+ * Multiselect form.
  */
 dl.multiselect dt,
 dl.multiselect dd {
diff --git modules/system/system-behavior.css modules/system/system-behavior.css
index 72799d4..aaa64db 100644
--- modules/system/system-behavior.css
+++ modules/system/system-behavior.css
@@ -1,7 +1,22 @@
 /* $Id: system-behavior.css,v 1.13 2010/08/09 16:58:15 webchick Exp $ */
 
 /**
- * Autocomplete
+ * @file
+ * Styles for JavaScript behaviors.
+ */
+
+/**
+ * For anything you want to hide on page load when JS is enabled, so
+ * that you can use the JS to control visibility and avoid flicker.
+ */
+html.js .js-hide {
+  display: none;
+}
+
+/**
+ * Autocomplete.
+ *
+ * @see autocomplete.js
  */
 /* Suggestion list */
 #autocomplete {
@@ -37,7 +52,9 @@ html.js input.throbbing {
 }
 
 /**
- * Collapsing fieldsets
+ * Collapsible fieldsets.
+ *
+ * @see collapse.js
  */
 html.js fieldset.collapsed {
   border-bottom-width: 0;
@@ -69,7 +86,9 @@ html.js fieldset.collapsed .fieldset-legend {
 }
 
 /**
- * Resizable textareas
+ * Resizable textareas.
+ *
+ * @see textarea.js
  */
 .form-textarea-wrapper textarea {
   margin: 0;
@@ -89,11 +108,25 @@ html.js fieldset.collapsed .fieldset-legend {
 }
 
 /**
- * Table drag and drop
+ * TableDrag behavior.
+ *
+ * @see tabledrag.js
  */
 body.drag {
   cursor: move;
 }
+tr.drag {
+  background-color: #fffff0;
+}
+tr.drag-previous {
+  background-color: #ffd;
+}
+.tabledrag-toggle-weight {
+  font-size: 0.9em;
+}
+body div.tabledrag-changed-warning {
+  margin-bottom: 0.5em;
+}
 .draggable a.tabledrag-handle {
   cursor: move;
   float: left; /* LTR */
@@ -133,15 +166,34 @@ div.tree-child-horizontal {
 .tabledrag-toggle-weight-wrapper {
   text-align: right; /* LTR */
 }
-.tabledrag-toggle-weight {
-  font-size: 0.9em;
+
+/**
+ * TableHeader behavior.
+ *
+ * @see tableheader.js
+ */
+table.sticky-header {
+  margin-top: 0;
+  background: #fff;
 }
-body div.tabledrag-changed-warning {
-  margin-bottom: 0.5em;
+
+/**
+ * TableSelect behavior.
+ *
+ * @see tableselect.js
+ */
+tr.selected td {
+  background: #ffc;
+}
+td.checkbox,
+th.checkbox {
+  text-align: center;
 }
 
 /**
- * Progress bar
+ * Progress bar.
+ *
+ * @see progress.js
  */
 .progress {
   font-weight: bold;
@@ -183,7 +235,7 @@ tr .ajax-progress .throbber {
 }
 
 /**
- * Multiselect form
+ * Multiselect form.
  */
 dl.multiselect dd,
 dl.multiselect dd .form-item,
@@ -203,113 +255,3 @@ dl.multiselect .form-item {
   height: 1.75em;
   margin: 0;
 }
-
-/**
- * Password strength indicator
- */
-.password-strength {
-  width: 17em;
-  float: right;  /* LTR */
-  margin-top: 1.4em;
-}
-.password-strength-title {
-  display: inline;
-}
-.password-strength-text {
-  float: right; /* LTR */
-  font-weight: bold;
-}
-.password-indicator {
-  background-color: #C4C4C4;
-  height: 0.3em;
-  width: 100%;
-}
-.password-indicator div {
-  height: 100%;
-  width: 0%;
-  background-color: #47C965;
-}
-input.password-confirm,
-input.password-field {
-  width: 16em;
-  margin-bottom: 0.4em;
-}
-div.password-confirm {
-  display: inline;
-  padding-left: 1em;
-}
-div.form-item div.password-suggestions {
-  padding: 0.2em 0.5em;
-  margin: 0.7em 0;
-  width: 38.5em;
-  border: 1px solid #B4B4B4;
-}
-div.password-suggestions ul {
-  margin-bottom: 0;
-}
-.password-parent {
-  margin: 0;
-  width: 34.3em;
-}
-
-/**
- * Password confirmation checker
- */
-.confirm-parent {
-  margin: 0;
-}
-div.password-confirm {
-  visibility: hidden;
-}
-
-/**
- * Inline items (need to override above)
- */
-.container-inline div,
-.container-inline label {
-  display: inline;
-}
-/* Fieldset contents always need to be rendered as block. */
-.container-inline .fieldset-wrapper {
-  display: block;
-}
-
-.nowrap {
-  white-space: nowrap;
-}
-
-/**
- * For anything you want to hide on page load when JS is enabled, so
- * that you can use the JS to control visibility and avoid flicker.
- */
-html.js .js-hide {
-  display: none;
-}
-
-/**
- * Hide elements from all users.
- *
- * Used for elements which should not be immediately displayed to any user. An
- * example would be a collapsible fieldset that will be expanded with a click
- * from a user. The effect of this class can be toggled with the jQuery show()
- * and hide() functions.
- */
-.element-hidden {
-  display: none;
-}
-
-/**
- * Hide elements visually, but keep them available for screen-readers.
- *
- * Used for information required for screen-reader users to understand and use
- * the site where visual display is undesirable. Information provided in this
- * manner should be kept concise, to avoid unnecessary burden on the user. Must
- * not be used for focusable elements (such as links and form elements) as this
- * causes issues for keyboard only or voice recognition users. "!important" is
- * used to prevent unintentional overrides.
- */
-.element-invisible {
-  position: absolute !important;
-  clip: rect(1px 1px 1px 1px); /* IE6, IE7 */
-  clip: rect(1px, 1px, 1px, 1px);
-}
diff --git modules/system/system-menus-rtl.css modules/system/system-menus-rtl.css
index f1449af..d1dc607 100644
--- modules/system/system-menus-rtl.css
+++ modules/system/system-menus-rtl.css
@@ -1,5 +1,10 @@
 /* $Id: system-menus-rtl.css,v 1.3 2010/04/28 20:08:39 dries Exp $ */
 
+/**
+ * @file
+ * RTL styles for menus and navigation markup.
+ */
+
 ul.menu {
   text-align:right;
 }
@@ -14,3 +19,20 @@ li.collapsed,
 li.leaf {
   padding: 0.2em 0 0 0.5em;
 }
+
+/**
+ * Markup generated by theme_menu_local_tasks().
+ */
+ul.primary {
+  padding: 0 1em 0 0;
+}
+ul.primary li a {
+  margin-right: 5px;
+  margin-left: 0.5em;
+}
+ul.secondary li {
+  display: inline;
+  padding: 0 1em;
+  border-right: none;
+  border-left: 1px solid #ccc;
+}
diff --git modules/system/system-menus.css modules/system/system-menus.css
index dd7a243..f8d69a7 100644
--- modules/system/system-menus.css
+++ modules/system/system-menus.css
@@ -1,5 +1,13 @@
 /* $Id: system-menus.css,v 1.4 2010/05/18 11:56:59 dries Exp $ */
 
+/**
+ * @file
+ * Styles for menus and navigation markup.
+ */
+
+/**
+ * Markup generated by theme_menu_tree().
+ */
 ul.menu {
   list-style: none;
   border: none;
@@ -29,22 +37,69 @@ li.leaf {
 li a.active {
   color: #000;
 }
+
 td.menu-disabled {
   background: #ccc;
 }
-ul.links {
-  margin: 0;
-  padding: 0;
+
+/**
+ * Markup generated by theme_breadcrumb().
+ */
+.breadcrumb {
+  padding-bottom: .5em;
+}
+
+/**
+ * Markup generated by theme_menu_local_tasks().
+ */
+ul.primary {
+  border-collapse: collapse;
+  padding: 0 0 0 1em; /* LTR */
+  white-space: nowrap;
+  list-style: none;
+  margin: 5px;
+  height: auto;
+  line-height: normal;
+  border-bottom: 1px solid #bbb;
 }
-ul.links.inline {
+ul.primary li {
   display: inline;
 }
-ul.links li {
+ul.primary li a {
+  background-color: #ddd;
+  border-color: #bbb;
+  border-width: 1px;
+  border-style: solid solid none solid;
+  height: auto;
+  margin-right: 0.5em; /* LTR */
+  padding: 0 1em;
+  text-decoration: none;
+}
+ul.primary li.active a {
+  background-color: #fff;
+  border: 1px solid #bbb;
+  border-bottom: #fff 1px solid;
+}
+ul.primary li a:hover {
+  background-color: #eee;
+  border-color: #ccc;
+  border-bottom-color: #eee;
+}
+ul.secondary {
+  border-bottom: 1px solid #bbb;
+  padding: 0.5em 1em;
+  margin: 5px;
+}
+ul.secondary li {
   display: inline;
-  list-style-type: none;
-  padding: 0 0.5em;
+  padding: 0 1em;
+  border-right: 1px solid #ccc; /* LTR */
 }
-.block ul {
-  margin: 0;
-  padding: 0 0 0.25em 1em; /* LTR */
+ul.secondary a {
+  padding: 0;
+  text-decoration: none;
 }
+ul.secondary a.active {
+  border-bottom: 4px solid #999;
+}
+
diff --git modules/system/system-rtl.css modules/system/system-rtl.css
deleted file mode 100644
index 6d6df78..0000000
--- modules/system/system-rtl.css
+++ /dev/null
@@ -1,74 +0,0 @@
-/* $Id: system-rtl.css,v 1.19 2010/01/07 07:41:46 webchick Exp $ */
-
-th {
-  text-align: right;
-  padding-right: 0;
-  padding-left: 1em;
-}
-
-thead th {
-  text-align: right;
-  padding-left: 1em;
-  padding-right: 0.5em;
-}
-
-.item-list .icon {
-  float: left;
-  padding-left: 0;
-  padding-right: 0.25em;
-  clear: left;
-}
-.item-list ul li {
-  margin: 0 1.5em 0.25em 0;
-}
-
-.more-link {
-  text-align: left;
-}
-.more-help-link {
-  text-align: left;
-}
-.more-help-link a {
-  padding: 1px 20px 1px 0;
-  background-position: 100% 50%;
-}
-
-.block ul {
-  padding: 0 1em 0.25em 0;
-}
-
-ul.primary {
-  padding: 0 1em 0 0;
-}
-ul.primary li a {
-  margin-right: 5px;
-  margin-left: 0.5em;
-}
-ul.secondary li {
-  display: inline;
-  padding: 0 1em;
-  border-right: none;
-  border-left: 1px solid #ccc;
-}
-
-.system-themes-list-enabled .theme-selector .screenshot,
-.system-themes-list-enabled .theme-selector .no-screenshot {
-  float: right;
-  margin: 0 0 0 20px;
-}
-.system-themes-list-disabled .theme-selector {
-  float: right;
-  padding: 20px 0 20px 20px;
-}
-.theme-selector .operations li {
-  float: right;
-  border-right: none;
-  border-left: 1px solid #cdcdcd;
-}
-.theme-selector .operations li.last {
-  padding: 0 0.7em 0 0;
-  border-left: none;
-}
-.theme-selector .operations li.first {
-  padding: 0 0 0 0.7em;
-}
diff --git modules/system/system.admin-rtl.css modules/system/system.admin-rtl.css
new file mode 100644
index 0000000..84d72bc
--- /dev/null
+++ modules/system/system.admin-rtl.css
@@ -0,0 +1,69 @@
+/* $Id: admin-rtl.css,v 1.7 2010/04/28 20:08:39 dries Exp $ */
+
+/**
+ * @file
+ * RTL styles for administration pages.
+ */
+
+/**
+ * Administration blocks.
+ */
+div.admin-panel .body {
+  padding: 0 8px 2px 4px;
+}
+div.admin .left {
+  float: right;
+  margin-left: 0;
+  margin-right: 1em;
+}
+div.admin .right {
+  float: left;
+  margin-left: 1em;
+  margin-right: 0;
+}
+div.admin .expert-link {
+  text-align: left;
+  margin-right: 0;
+  margin-left: 1em;
+  padding-right: 0;
+  padding-left: 4px;
+}
+
+/**
+ * Status report.
+ */
+table.system-status-report th,
+table.system-status-report tr.merge-up td {
+  padding-right: 30px;
+}
+table.system-status-report th {
+  background-position: 95% 50%;
+}
+
+/**
+ * Appearance page.
+ */
+table.screenshot {
+  margin-left: 1em;
+}
+.system-themes-list-enabled .theme-selector .screenshot,
+.system-themes-list-enabled .theme-selector .no-screenshot {
+  float: right;
+  margin: 0 0 0 20px;
+}
+.system-themes-list-disabled .theme-selector {
+  float: right;
+  padding: 20px 0 20px 20px;
+}
+.theme-selector .operations li {
+  float: right;
+  border-right: none;
+  border-left: 1px solid #cdcdcd;
+}
+.theme-selector .operations li.last {
+  padding: 0 0.7em 0 0;
+  border-left: none;
+}
+.theme-selector .operations li.first {
+  padding: 0 0 0 0.7em;
+}
diff --git modules/system/system.admin.css modules/system/system.admin.css
new file mode 100644
index 0000000..2c0542f
--- /dev/null
+++ modules/system/system.admin.css
@@ -0,0 +1,227 @@
+/* $Id: admin.css,v 1.22 2010/04/28 20:08:39 dries Exp $ */
+
+/**
+ * @file
+ * Styles for administration pages.
+ */
+
+/**
+ * Administration blocks.
+ */
+div.admin-panel {
+  margin: 0;
+  padding: 5px 5px 15px 5px;
+}
+div.admin-panel .description {
+  margin: 0 0 3px;
+  padding: 2px 0 3px 0;
+}
+div.admin-panel .body {
+  padding: 0 4px 2px 8px; /* LTR */
+}
+div.admin {
+  padding-top: 15px;
+}
+div.admin .left {
+  float: left; /* LTR */
+  width: 47%;
+  margin-left: 1em; /* LTR */
+}
+div.admin .right {
+  float: right; /* LTR */
+  width: 47%;
+  margin-right: 1em; /* LTR */
+}
+div.admin .expert-link {
+  text-align: right; /* LTR */
+  margin-right: 1em; /* LTR */
+  padding-right: 4px; /* LTR */
+}
+
+/**
+ * Markup generated by theme_system_compact_link().
+ */
+.compact-link {
+  margin: 0 0 0.5em 0;
+}
+
+/**
+ * Modules page.
+ */
+#system-modules div.incompatible {
+  font-weight: bold;
+}
+div.admin-requirements,
+div.admin-required {
+  font-size: 0.9em;
+  color: #444;
+}
+span.admin-disabled {
+  color: #800;
+}
+span.admin-enabled {
+  color: #080;
+}
+span.admin-missing {
+  color: #f00;
+}
+a.module-link {
+  display: block;
+  padding: 1px 0 1px 20px; /* LTR */
+  white-space: nowrap;
+}
+a.module-link-help {
+  background: url(../../misc/help.png) 0 50% no-repeat; /* LTR */
+}
+a.module-link-permissions {
+  background: url(../../misc/permissions.png) 0 50% no-repeat; /* LTR */
+}
+a.module-link-configure {
+  background: url(../../misc/configure.png) 0 50% no-repeat; /* LTR */
+}
+
+/**
+ * Status report.
+ */
+table.system-status-report th {
+  border-bottom: 1px solid #ccc;
+}
+table.system-status-report th,
+table.system-status-report tr.merge-up td {
+  padding-left: 30px; /* LTR */
+}
+table.system-status-report th {
+  background-repeat: no-repeat;
+  background-position: 5px 50%; /* LTR */
+  padding-top: 6px;
+  padding-bottom: 6px;
+}
+table.system-status-report tr.error th {
+  background-image: url(../../misc/watchdog-error.png);
+}
+table.system-status-report tr.warning th {
+  background-image: url(../../misc/watchdog-warning.png);
+}
+table.system-status-report tr.ok th {
+  background-image: url(../../misc/watchdog-ok.png);
+}
+tr.merge-down,
+tr.merge-down td,
+tr.merge-down th {
+  border-bottom-width: 0 !important;
+}
+tr.merge-up,
+tr.merge-up td,
+tr.merge-up th {
+  border-top-width: 0 !important;
+}
+
+/**
+ * Appearance page.
+ */
+table.screenshot {
+  margin-right: 1em; /* LTR */
+}
+.theme-info h2 {
+  margin-bottom: 0;
+}
+.theme-info p {
+  margin-top: 0;
+}
+.system-themes-list {
+  margin-bottom: 20px;
+}
+.system-themes-list-disabled {
+  border-top: 1px solid #cdcdcd;
+  padding-top: 20px;
+}
+.system-themes-list h2 {
+  margin: 0;
+}
+.theme-selector {
+  padding-top: 20px;
+}
+.theme-selector .screenshot,
+.theme-selector .no-screenshot {
+  border: 1px solid #e0e0d8;
+  padding: 2px;
+  vertical-align: bottom;
+  width: 294px;
+  height: 219px;
+  line-height: 219px;
+  text-align: center;
+}
+.theme-default .screenshot {
+  border: 1px solid #aaa;
+}
+.system-themes-list-enabled .theme-selector .screenshot,
+.system-themes-list-enabled .theme-selector .no-screenshot {
+  float: left; /* LTR */
+  margin: 0 20px 0 0; /* LTR */
+}
+.system-themes-list-disabled .theme-selector .screenshot,
+.system-themes-list-disabled .theme-selector .no-screenshot {
+  width: 194px;
+  height: 144px;
+  line-height: 144px;
+}
+.theme-selector h3 {
+  font-weight: normal;
+}
+.theme-default h3 {
+  font-weight: bold;
+}
+.system-themes-list-enabled .theme-selector h3 {
+  margin-top: 0;
+}
+.system-themes-list-disabled .theme-selector {
+  width: 300px;
+  float: left; /* LTR */
+  padding: 20px 20px 20px 0; /* LTR */
+}
+.system-themes-list-enabled .theme-info {
+  max-width: 940px;
+}
+.system-themes-list-disabled .theme-info {
+  min-height: 170px;
+}
+.theme-selector .incompatible {
+  margin-top: 10px;
+  font-weight: bold;
+}
+.theme-selector .operations {
+  margin: 10px 0 0 0;
+  padding: 0;
+}
+.theme-selector .operations li {
+  float: left; /* LTR */
+  margin: 0;
+  padding: 0 0.7em;
+  list-style-type: none;
+  border-right: 1px solid #cdcdcd;  /* LTR */
+}
+.theme-selector .operations li.last {
+  padding: 0 0 0 0.7em; /* LTR */
+  border-right: none; /* LTR */
+}
+.theme-selector .operations li.first {
+  padding: 0 0.7em 0 0; /* LTR */
+}
+#system-themes-admin-form {
+  clear: left;
+}
+
+/**
+ * Theme settings.
+ */
+.theme-settings-left {
+  float: left;
+  width: 49%;
+}
+.theme-settings-right {
+  float: right;
+  width: 49%;
+}
+.theme-settings-bottom {
+  clear: both;
+}
diff --git modules/system/system.base.css modules/system/system.base.css
new file mode 100644
index 0000000..e8a4d81
--- /dev/null
+++ modules/system/system.base.css
@@ -0,0 +1,62 @@
+/* $Id$ */
+
+/**
+ * @file
+ * Generic theme-independent base styles.
+ */
+
+/**
+ * Prevent text wrapping.
+ */
+.nowrap {
+  white-space: nowrap;
+}
+
+/**
+ * Hide elements from all users.
+ *
+ * Used for elements which should not be immediately displayed to any user. An
+ * example would be a collapsible fieldset that will be expanded with a click
+ * from a user. The effect of this class can be toggled with the jQuery show()
+ * and hide() functions.
+ */
+.element-hidden {
+  display: none;
+}
+
+/**
+ * Hide elements visually, but keep them available for screen-readers.
+ *
+ * Used for information required for screen-reader users to understand and use
+ * the site where visual display is undesirable. Information provided in this
+ * manner should be kept concise, to avoid unnecessary burden on the user. Must
+ * not be used for focusable elements (such as links and form elements) as this
+ * causes issues for keyboard only or voice recognition users. "!important" is
+ * used to prevent unintentional overrides.
+ */
+.element-invisible {
+  position: absolute !important;
+  clip: rect(1px 1px 1px 1px); /* IE6, IE7 */
+  clip: rect(1px, 1px, 1px, 1px);
+}
+
+/**
+ * Markup free clearing.
+ *
+ * @see http://perishablepress.com/press/2009/12/06/new-clearfix-hack
+ */
+.clearfix:after {
+  content: ".";
+  display: block;
+  height: 0;
+  clear: both;
+  visibility: hidden;
+}
+/* IE6 */
+* html .clearfix {
+  height: 1%;
+}
+/* IE7 */
+*:first-child + html .clearfix {
+  min-height: 1%;
+}
diff --git modules/system/system.css modules/system/system.css
deleted file mode 100644
index a04e6d6..0000000
--- modules/system/system.css
+++ /dev/null
@@ -1,416 +0,0 @@
-/* $Id: system.css,v 1.78 2010/08/02 11:22:22 dries Exp $ */
-
-/*
-** HTML elements
-*/
-fieldset {
-  margin-bottom: 1em;
-  padding: .5em;
-}
-form {
-  margin: 0;
-  padding: 0;
-}
-hr {
-  height: 1px;
-  border: 1px solid gray;
-}
-img {
-  border: 0;
-}
-table {
-  border-collapse: collapse;
-}
-th {
-  text-align: left; /* LTR */
-  padding-right: 1em; /* LTR */
-  border-bottom: 3px solid #ccc;
-}
-th.active img {
-  display: inline;
-}
-tr.even,
-tr.odd {
-  background-color: #eee;
-  border-bottom: 1px solid #ccc;
-  padding: 0.1em 0.6em;
-}
-tr.drag {
-  background-color: #fffff0;
-}
-tr.drag-previous {
-  background-color: #ffd;
-}
-td.active {
-  background-color: #ddd;
-}
-td.checkbox,
-th.checkbox {
-  text-align: center;
-}
-tbody {
-  border-top: 1px solid #ccc;
-}
-tbody th {
-  border-bottom: 1px solid #ccc;
-}
-thead th {
-  text-align: left; /* LTR */
-  padding-right: 1em; /* LTR */
-  border-bottom: 3px solid #ccc;
-}
-
-/*
-** Other common styles
-*/
-.breadcrumb {
-  padding-bottom: .5em
-}
-.item-list .icon {
-  color: #555;
-  float: right; /* LTR */
-  padding-left: 0.25em; /* LTR */
-  clear: right; /* LTR */
-}
-.item-list .title {
-  font-weight: bold;
-}
-.item-list ul {
-  margin: 0 0 0.75em 0;
-  padding: 0;
-}
-.item-list ul li {
-  margin: 0 0 0.25em 1.5em; /* LTR */
-  padding: 0;
-  list-style: disc;
-}
-.form-item {
-  margin-top: 1em;
-  margin-bottom: 1em;
-}
-tr.odd .form-item,
-tr.even .form-item {
-  margin-top: 0;
-  margin-bottom: 0;
-  white-space: nowrap;
-}
-tr.merge-down,
-tr.merge-down td,
-tr.merge-down th {
-  border-bottom-width: 0 !important;
-}
-tr.merge-up,
-tr.merge-up td,
-tr.merge-up th {
-  border-top-width: 0 !important;
-}
-.form-item input.error,
-.form-item textarea.error,
-.form-item select.error {
-  border: 2px solid red;
-}
-.form-item .description {
-  font-size: 0.85em;
-}
-.form-item label {
-  display: block;
-  font-weight: bold;
-}
-.form-item label.option {
-  display: inline;
-  font-weight: normal;
-}
-.form-checkboxes,
-.form-radios {
-  margin: 1em 0;
-}
-.form-checkboxes .form-item,
-.form-radios .form-item {
-  margin-top: 0.4em;
-  margin-bottom: 0.4em;
-}
-.form-type-radio .description,
-.form-type-checkbox .description {
-  margin-left: 2.4em;
-}
-input.form-checkbox,
-input.form-radio {
-  vertical-align: middle;
-}
-.marker,
-.form-required {
-  color: #f00;
-}
-.more-help-link {
-  text-align: right; /* LTR */
-}
-.more-help-link a,
-a.module-link {
-  padding: 1px 0 1px 20px; /* LTR */
-}
-a.module-link {
-  display: block;
-  white-space: nowrap;
-}
-.more-help-link a,
-a.module-link-help {
-  background: url(../../misc/help.png) 0 50% no-repeat; /* LTR */
-}
-a.module-link-permissions {
-  background: url(../../misc/permissions.png) 0 50% no-repeat; /* LTR */
-}
-a.module-link-configure {
-  background: url(../../misc/configure.png) 0 50% no-repeat; /* LTR */
-}
-.more-link {
-  text-align: right; /* LTR */
-}
-.module-help {
-  margin-left: 1em; /* LTR */
-  float: right; /* LTR */
-}
-.item-list .pager {
-  clear: both;
-  text-align: center;
-}
-.item-list .pager li {
-  background-image:none;
-  display:inline;
-  list-style-type:none;
-  padding: 0.5em;
-}
-.pager-current {
-  font-weight:bold;
-}
-.tips {
-  margin-top: 0;
-  margin-bottom: 0;
-  padding-top: 0;
-  padding-bottom: 0;
-  font-size: 0.9em;
-}
-.compact-link {
-  margin: 0 0 0.5em 0;
-}
-
-/*
-** Tab navigation
-*/
-ul.primary {
-  border-collapse: collapse;
-  padding: 0 0 0 1em; /* LTR */
-  white-space: nowrap;
-  list-style: none;
-  margin: 5px;
-  height: auto;
-  line-height: normal;
-  border-bottom: 1px solid #bbb;
-}
-ul.primary li {
-  display: inline;
-}
-ul.primary li a {
-  background-color: #ddd;
-  border-color: #bbb;
-  border-width: 1px;
-  border-style: solid solid none solid;
-  height: auto;
-  margin-right: 0.5em; /* LTR */
-  padding: 0 1em;
-  text-decoration: none;
-}
-ul.primary li.active a {
-  background-color: #fff;
-  border: 1px solid #bbb;
-  border-bottom: #fff 1px solid;
-}
-ul.primary li a:hover {
-  background-color: #eee;
-  border-color: #ccc;
-  border-bottom-color: #eee;
-}
-ul.secondary {
-  border-bottom: 1px solid #bbb;
-  padding: 0.5em 1em;
-  margin: 5px;
-}
-ul.secondary li {
-  display: inline;
-  padding: 0 1em;
-  border-right: 1px solid #ccc; /* LTR */
-}
-ul.secondary a {
-  padding: 0;
-  text-decoration: none;
-}
-ul.secondary a.active {
-  border-bottom: 4px solid #999;
-}
-
-/*
-** To be used with tableselect.js
-*/
-tr.selected td {
-  background: #ffc;
-}
-
-/*
-** To be used with displace.js
-*/
-.displace-top,
-.displace-bottom {
-  position: relative;
-  width: 100%;
-}
-.displace-processed .displace-top,
-.displace-processed .displace-bottom {
-  position: fixed;
-  width: auto;
-  left: 0;
-  right: 0;
-}
-.displace-unsupported .displace-top,
-.displace-unsupported .displace-bottom {
-  position: absolute;
-}
-
-/*
-** To be used with displace.js
-*/
-.displace-top,
-.displace-bottom {
-  position: relative;
-  width: 100%;
-}
-.displace-processed .displace-top,
-.displace-processed .displace-bottom {
-  position: fixed;
-  width: auto;
-  left: 0;
-  right: 0;
-}
-.displace-unsupported .displace-top,
-.displace-unsupported .displace-bottom {
-  position: absolute;
-}
-
-/*
-** Floating header for tableheader.js
-*/
-table.sticky-header {
-  margin-top: 0;
-  background: #fff;
-}
-
-/*
-** Styles for the system modules page (admin/modules)
-*/
-#system-modules div.incompatible {
-  font-weight: bold;
-}
-
-/*
-** Styles for the system themes page (admin/appearance)
-*/
-.system-themes-list {
-  margin-bottom: 20px;
-}
-.system-themes-list-disabled {
-  border-top: 1px solid #cdcdcd;
-  padding-top: 20px;
-}
-.system-themes-list h2 {
-  margin: 0;
-}
-.theme-selector {
-  padding-top: 20px;
-}
-.theme-selector .screenshot,
-.theme-selector .no-screenshot {
-  border: 1px solid #e0e0d8;
-  padding: 2px;
-  vertical-align: bottom;
-  width: 294px;
-  height: 219px;
-  line-height: 219px;
-  text-align: center;
-}
-.theme-default .screenshot {
-  border: 1px solid #aaa;
-}
-.system-themes-list-enabled .theme-selector .screenshot,
-.system-themes-list-enabled .theme-selector .no-screenshot {
-  float: left; /* LTR */
-  margin: 0 20px 0 0; /* LTR */
-}
-.system-themes-list-disabled .theme-selector .screenshot,
-.system-themes-list-disabled .theme-selector .no-screenshot {
-  width: 194px;
-  height: 144px;
-  line-height: 144px;
-}
-.theme-selector h3 {
-  font-weight: normal;
-}
-.theme-default h3 {
-  font-weight: bold;
-}
-.system-themes-list-enabled .theme-selector h3 {
-  margin-top: 0;
-}
-.system-themes-list-disabled .theme-selector {
-  width: 300px;
-  float: left; /* LTR */
-  padding: 20px 20px 20px 0; /* LTR */
-}
-.system-themes-list-enabled .theme-info {
-  max-width: 940px;
-}
-.system-themes-list-disabled .theme-info {
-  min-height: 170px;
-}
-.theme-selector .incompatible {
-  margin-top: 10px;
-  font-weight: bold;
-}
-.theme-selector .operations {
-  margin: 10px 0 0 0;
-  padding: 0;
-}
-.theme-selector .operations li {
-  float: left; /* LTR */
-  margin: 0;
-  padding: 0 0.7em;
-  list-style-type: none;
-  border-right: 1px solid #cdcdcd;  /* LTR */
-}
-.theme-selector .operations li.last {
-  padding: 0 0 0 0.7em; /* LTR */
-  border-right: none; /* LTR */
-}
-.theme-selector .operations li.first {
-  padding: 0 0.7em 0 0; /* LTR */
-}
-#system-themes-admin-form {
-  clear: left;
-}
-
-/*
-** Markup free clearing
-** Details: http://perishablepress.com/press/2009/12/06/new-clearfix-hack
-*/
-.clearfix:after {
-  content: ".";
-  display: block;
-  height: 0;
-  clear: both;
-  visibility: hidden;
-}
-/* IE6 */
-* html .clearfix {
-  height: 1%;
-}
-/* IE7 */
-*:first-child + html .clearfix {
-  min-height: 1%;
-}
diff --git modules/system/system.module modules/system/system.module
index 7f0747e..dada0e8 100644
--- modules/system/system.module
+++ modules/system/system.module
@@ -1830,9 +1830,9 @@ function system_init() {
   $path = drupal_get_path('module', 'system');
   // Add the CSS for this module.
   if (arg(0) == 'admin' || (variable_get('node_admin_theme', '0') && arg(0) == 'node' && (arg(1) == 'add' || arg(2) == 'edit' || arg(2) == 'delete'))) {
-    drupal_add_css($path . '/admin.css', array('weight' => CSS_SYSTEM));
+    drupal_add_css($path . '/system.admin.css', array('weight' => CSS_SYSTEM));
   }
-  drupal_add_css($path . '/system.css', array('weight' => CSS_SYSTEM, 'preprocess' => TRUE));
+  drupal_add_css($path . '/system.base.css', array('weight' => CSS_SYSTEM, 'preprocess' => TRUE));
   drupal_add_css($path . '/system-behavior.css', array('weight' => CSS_SYSTEM, 'preprocess' => TRUE));
   drupal_add_css($path . '/system-menus.css', array('weight' => CSS_SYSTEM, 'preprocess' => TRUE));
   drupal_add_css($path . '/system-messages.css', array('weight' => CSS_SYSTEM, 'preprocess' => TRUE));
diff --git modules/system/system.theme-rtl.css modules/system/system.theme-rtl.css
new file mode 100644
index 0000000..28aa58f
--- /dev/null
+++ modules/system/system.theme-rtl.css
@@ -0,0 +1,45 @@
+/* $Id: system-rtl.css,v 1.19 2010/01/07 07:41:46 webchick Exp $ */
+
+/**
+ * @file
+ * RTL styles for common markup.
+ */
+
+/**
+ * HTML elements.
+ */
+th {
+  text-align: right;
+  padding-right: 0;
+  padding-left: 1em;
+}
+thead th {
+  text-align: right;
+  padding-left: 1em;
+  padding-right: 0.5em;
+}
+
+/**
+ * Markup generated by theme_item_list().
+ */
+.item-list ul li {
+  margin: 0 1.5em 0.25em 0;
+}
+
+/**
+ * Markup generated by theme_more_link().
+ */
+.more-link {
+  text-align: left;
+}
+
+/**
+ * Markup generated by theme_more_help_link().
+ */
+.more-help-link {
+  text-align: left;
+}
+.more-help-link a {
+  padding: 1px 20px 1px 0;
+  background-position: 100% 50%;
+}
diff --git modules/system/system.theme.css modules/system/system.theme.css
new file mode 100644
index 0000000..9fbc0e7
--- /dev/null
+++ modules/system/system.theme.css
@@ -0,0 +1,191 @@
+/* $Id$ */
+
+/**
+ * @file
+ * Basic styling for common markup.
+ */
+
+/**
+ * HTML elements.
+ */
+fieldset {
+  margin-bottom: 1em;
+  padding: .5em;
+}
+form {
+  margin: 0;
+  padding: 0;
+}
+hr {
+  height: 1px;
+  border: 1px solid gray;
+}
+img {
+  border: 0;
+}
+table {
+  border-collapse: collapse;
+}
+th {
+  text-align: left; /* LTR */
+  padding-right: 1em; /* LTR */
+  border-bottom: 3px solid #ccc;
+}
+thead th {
+  border-bottom: 3px solid #ccc;
+  padding-right: 1em; /* LTR */
+  text-align: left; /* LTR */
+}
+tbody {
+  border-top: 1px solid #ccc;
+}
+tr.even,
+tr.odd {
+  background-color: #eee;
+  border-bottom: 1px solid #ccc;
+  padding: 0.1em 0.6em;
+}
+
+/**
+ * Markup generated by theme_tablesort_indicator().
+ */
+th.active img {
+  display: inline;
+}
+td.active {
+  background-color: #ddd;
+}
+
+/**
+ * Markup generated by theme_item_list().
+ */
+.item-list .title {
+  font-weight: bold;
+}
+.item-list ul {
+  margin: 0 0 0.75em 0;
+  padding: 0;
+}
+.item-list ul li {
+  margin: 0 0 0.25em 1.5em; /* LTR */
+  padding: 0;
+  list-style: disc;
+}
+
+/**
+ * Markup generated by theme_links().
+ */
+ul.links {
+  margin: 0;
+  padding: 0;
+}
+ul.links.inline {
+  display: inline;
+}
+ul.links li {
+  display: inline;
+  list-style-type: none;
+  padding: 0 0.5em;
+}
+
+/**
+ * Markup generated by Form API.
+ */
+.form-item {
+  margin-top: 1em;
+  margin-bottom: 1em;
+}
+tr.odd .form-item,
+tr.even .form-item {
+  margin-top: 0;
+  margin-bottom: 0;
+  white-space: nowrap;
+}
+.form-item .description {
+  font-size: 0.85em;
+}
+.form-item label {
+  display: block;
+  font-weight: bold;
+}
+.form-item label.option {
+  display: inline;
+  font-weight: normal;
+}
+.form-checkboxes,
+.form-radios {
+  margin: 1em 0;
+}
+.form-checkboxes .form-item,
+.form-radios .form-item {
+  margin-top: 0.4em;
+  margin-bottom: 0.4em;
+}
+.form-type-radio .description,
+.form-type-checkbox .description {
+  margin-left: 2.4em;
+}
+input.form-checkbox,
+input.form-radio {
+  vertical-align: middle;
+}
+.marker,
+.form-required {
+  color: #f00;
+}
+.form-item input.error,
+.form-item textarea.error,
+.form-item select.error {
+  border: 2px solid red;
+}
+
+/**
+ * Inline items.
+ */
+.container-inline div,
+.container-inline label {
+  display: inline;
+}
+/* Fieldset contents always need to be rendered as block. */
+.container-inline .fieldset-wrapper {
+  display: block;
+}
+
+/**
+ * Markup generated by theme_more_link().
+ */
+.more-link {
+  text-align: right; /* LTR */
+}
+
+/**
+ * Markup generated by theme_more_link().
+ */
+.more-link {
+  text-align: left;
+}
+.more-help-link {
+  text-align: right; /* LTR */
+}
+.more-help-link a {
+  background: url(../../misc/help.png) 0 50% no-repeat; /* LTR */
+  padding: 1px 0 1px 20px; /* LTR */
+}
+
+/**
+ * Markup generated by theme_pager().
+ */
+.item-list .pager {
+  clear: both;
+  text-align: center;
+}
+.item-list .pager li {
+  background-image:none;
+  display:inline;
+  list-style-type:none;
+  padding: 0.5em;
+}
+.pager-current {
+  font-weight:bold;
+}
+
diff --git modules/user/user-rtl.css modules/user/user-rtl.css
index 6373a86..eee1c8f 100644
--- modules/user/user-rtl.css
+++ modules/user/user-rtl.css
@@ -16,6 +16,25 @@
   clear: left;
 }
 
+/**
+ * Password strength indicator.
+ */
+input.password-field {
+  margin-left: 10px;
+  margin-right: 0;
+}
+input.password-confirm {
+  margin-left: 10px;
+  margin-right: 0;
+}
+.password-strength-title {
+  float: right;
+}
+.password-parent {
+  float: right;
+}
+
+/* Generated by user.module but used by profile.module: */
 .profile .user-picture {
   float: left;
   margin: 0 0 1em 1em;
diff --git modules/user/user.css modules/user/user.css
index ecf6870..31d22c3 100644
--- modules/user/user.css
+++ modules/user/user.css
@@ -43,6 +43,64 @@ dl.multiselect dd .form-item {
   margin-right: 1em;
 }
 
+/**
+ * Password strength indicator.
+ */
+.password-strength {
+  width: 17em;
+  float: right;  /* LTR */
+  margin-top: 1.4em;
+}
+.password-strength-title {
+  display: inline;
+}
+.password-strength-text {
+  float: right; /* LTR */
+  font-weight: bold;
+}
+.password-indicator {
+  background-color: #C4C4C4;
+  height: 0.3em;
+  width: 100%;
+}
+.password-indicator div {
+  height: 100%;
+  width: 0%;
+  background-color: #47C965;
+}
+input.password-confirm,
+input.password-field {
+  width: 16em;
+  margin-bottom: 0.4em;
+}
+div.password-confirm {
+  display: inline;
+  padding-left: 1em;
+}
+div.form-item div.password-suggestions {
+  padding: 0.2em 0.5em;
+  margin: 0.7em 0;
+  width: 38.5em;
+  border: 1px solid #B4B4B4;
+}
+div.password-suggestions ul {
+  margin-bottom: 0;
+}
+.password-parent {
+  margin: 0;
+  width: 34.3em;
+}
+
+/**
+ * Password confirmation checker.
+ */
+.confirm-parent {
+  margin: 0;
+}
+div.password-confirm {
+  visibility: hidden;
+}
+
 /* Generated by user.module but used by profile.module: */
 .profile {
   clear: both;