diff --git a/core/modules/system/system.admin.css b/core/modules/system/system.admin.css
index a7f2cbd..6ec2849 100644
--- a/core/modules/system/system.admin.css
+++ b/core/modules/system/system.admin.css
@@ -237,24 +237,20 @@ table.screenshot {
   border: 1px solid #e0e0d8;
   padding: 2px;
   vertical-align: bottom;
-  width: 294px;
-  height: 219px;
-  line-height: 219px;
+  max-width: 100%;
+  height: auto;
   text-align: center;
 }
+.theme-selector .no-screenshot {
+  display: none;
+}
 .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;
+  max-width: 55%;
+  height: auto;
 }
 .theme-selector h3 {
   font-weight: normal;
@@ -262,20 +258,43 @@ table.screenshot {
 .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 */
+@media screen and (min-width: 40em) {
+  .system-themes-list-enabled .theme-selector .screenshot,
+  .system-themes-list-enabled .theme-selector .no-screenshot {
+    float: left; /* LTR */
+    margin: 0 20px 0 0; /* LTR */
+    width: 294px;
+  }
+  .system-themes-list-enabled .theme-selector h3 {
+    margin-top: 0;
+  }
+  .system-themes-list-disabled .theme-selector {
+    -webkit-box-sizing: border-box;
+    -moz-box-sizing: border-box;
+    box-sizing: border-box;
+    width: 31.25%;
+    float: left; /* LTR */
+    padding: 20px 20px 20px 0; /* LTR */
+  }
+  .system-themes-list-disabled .theme-info {
+    min-height: 170px;
+  }
+  .theme-selector .no-screenshot {
+    display: block;
+    padding-bottom: 57%;
+    position: relative;
+  }
+  .no-screenshot__text {
+    margin-top: -0.76em;
+    position: absolute;
+    top: 50%;
+    width: 100%;
+  }
 }
 .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;
diff --git a/core/modules/system/system.admin.inc b/core/modules/system/system.admin.inc
index e0be14f..f83944d 100644
--- a/core/modules/system/system.admin.inc
+++ b/core/modules/system/system.admin.inc
@@ -2549,7 +2549,7 @@ function theme_system_themes_page($variables) {
     foreach ($theme_groups[$state] as $theme) {
 
       // Theme the screenshot.
-      $screenshot = $theme->screenshot ? theme('image', $theme->screenshot) : '<div class="no-screenshot">' . t('no screenshot') . '</div>';
+      $screenshot = $theme->screenshot ? theme('image', $theme->screenshot) : '<div class="no-screenshot"><div class="no-screenshot__text">' . t('no screenshot') . '</div></div>';
 
       // Localize the theme description.
       $description = t($theme->info['description']);
diff --git a/core/themes/seven/style.css b/core/themes/seven/style.css
index 6e083a7..a1cf4e4 100644
--- a/core/themes/seven/style.css
+++ b/core/themes/seven/style.css
@@ -880,9 +880,6 @@ div.admin-panel h3 {
 .theme-default h3 {
   font-weight: bold;
 }
-.system-themes-list-enabled .theme-selector h3 {
-  margin-top: 0;
-}
 
 /* Update options. */
 div.admin-options {
