Bug 1449792 - Add dark theme, thumbnail debounce and bug fixes to Activity Stream. r=ursula
authorEd Lee <edilee@mozilla.com>
Thu, 29 Mar 2018 11:21:54 -0700
changeset 775156 5dc20e8d5f719b84aeb938e3a77c48fa8e89fb2c
parent 775155 fba4de2167c2e96e79d4626ad60230c369d902e0
child 775157 d964f93d4fb2e549b5d267fa720e4585d54a5d0b
push id104638
push userbmo:jlorenzo@mozilla.com
push dateFri, 30 Mar 2018 13:27:33 +0000
reviewersursula
bugs1449792
milestone61.0a1
Bug 1449792 - Add dark theme, thumbnail debounce and bug fixes to Activity Stream. r=ursula MozReview-Commit-ID: FXrgjI0f1VF
browser/extensions/activity-stream/common/Actions.jsm
browser/extensions/activity-stream/common/PrerenderData.jsm
browser/extensions/activity-stream/common/Reducers.jsm
browser/extensions/activity-stream/css/activity-stream-linux.css
browser/extensions/activity-stream/css/activity-stream-linux.css.map
browser/extensions/activity-stream/css/activity-stream-mac.css
browser/extensions/activity-stream/css/activity-stream-mac.css.map
browser/extensions/activity-stream/css/activity-stream-windows.css
browser/extensions/activity-stream/css/activity-stream-windows.css.map
browser/extensions/activity-stream/data/content/activity-stream.bundle.js
browser/extensions/activity-stream/data/content/activity-stream.bundle.js.map
browser/extensions/activity-stream/install.rdf.in
browser/extensions/activity-stream/lib/AboutPreferences.jsm
browser/extensions/activity-stream/lib/ActivityStream.jsm
browser/extensions/activity-stream/lib/ActivityStreamStorage.jsm
browser/extensions/activity-stream/lib/FaviconFeed.jsm
browser/extensions/activity-stream/lib/HighlightsFeed.jsm
browser/extensions/activity-stream/lib/ManualMigration.jsm
browser/extensions/activity-stream/lib/MessageCenterFeed.jsm
browser/extensions/activity-stream/lib/MessageCenterRouter.jsm
browser/extensions/activity-stream/lib/PlacesFeed.jsm
browser/extensions/activity-stream/lib/PrefsFeed.jsm
browser/extensions/activity-stream/lib/SectionsManager.jsm
browser/extensions/activity-stream/lib/SnippetsFeed.jsm
browser/extensions/activity-stream/lib/ThemeFeed.jsm
browser/extensions/activity-stream/lib/TopSitesFeed.jsm
browser/extensions/activity-stream/prerendered/locales/ach/activity-stream-prerendered.html
browser/extensions/activity-stream/prerendered/locales/ach/activity-stream-strings.js
browser/extensions/activity-stream/prerendered/locales/an/activity-stream-prerendered.html
browser/extensions/activity-stream/prerendered/locales/an/activity-stream-strings.js
browser/extensions/activity-stream/prerendered/locales/ar/activity-stream-prerendered.html
browser/extensions/activity-stream/prerendered/locales/ar/activity-stream-strings.js
browser/extensions/activity-stream/prerendered/locales/ast/activity-stream-prerendered.html
browser/extensions/activity-stream/prerendered/locales/ast/activity-stream-strings.js
browser/extensions/activity-stream/prerendered/locales/az/activity-stream-prerendered.html
browser/extensions/activity-stream/prerendered/locales/az/activity-stream-strings.js
browser/extensions/activity-stream/prerendered/locales/be/activity-stream-prerendered.html
browser/extensions/activity-stream/prerendered/locales/be/activity-stream-strings.js
browser/extensions/activity-stream/prerendered/locales/bg/activity-stream-prerendered.html
browser/extensions/activity-stream/prerendered/locales/bg/activity-stream-strings.js
browser/extensions/activity-stream/prerendered/locales/bn-BD/activity-stream-prerendered.html
browser/extensions/activity-stream/prerendered/locales/bn-BD/activity-stream-strings.js
browser/extensions/activity-stream/prerendered/locales/bn-IN/activity-stream-prerendered.html
browser/extensions/activity-stream/prerendered/locales/bn-IN/activity-stream-strings.js
browser/extensions/activity-stream/prerendered/locales/br/activity-stream-prerendered.html
browser/extensions/activity-stream/prerendered/locales/br/activity-stream-strings.js
browser/extensions/activity-stream/prerendered/locales/bs/activity-stream-prerendered.html
browser/extensions/activity-stream/prerendered/locales/bs/activity-stream-strings.js
browser/extensions/activity-stream/prerendered/locales/ca/activity-stream-prerendered.html
browser/extensions/activity-stream/prerendered/locales/ca/activity-stream-strings.js
browser/extensions/activity-stream/prerendered/locales/cak/activity-stream-prerendered.html
browser/extensions/activity-stream/prerendered/locales/cak/activity-stream-strings.js
browser/extensions/activity-stream/prerendered/locales/crh/activity-stream-prerendered.html
browser/extensions/activity-stream/prerendered/locales/crh/activity-stream-strings.js
browser/extensions/activity-stream/prerendered/locales/cs/activity-stream-prerendered.html
browser/extensions/activity-stream/prerendered/locales/cs/activity-stream-strings.js
browser/extensions/activity-stream/prerendered/locales/cy/activity-stream-prerendered.html
browser/extensions/activity-stream/prerendered/locales/cy/activity-stream-strings.js
browser/extensions/activity-stream/prerendered/locales/da/activity-stream-prerendered.html
browser/extensions/activity-stream/prerendered/locales/da/activity-stream-strings.js
browser/extensions/activity-stream/prerendered/locales/de/activity-stream-prerendered.html
browser/extensions/activity-stream/prerendered/locales/de/activity-stream-strings.js
browser/extensions/activity-stream/prerendered/locales/dsb/activity-stream-prerendered.html
browser/extensions/activity-stream/prerendered/locales/dsb/activity-stream-strings.js
browser/extensions/activity-stream/prerendered/locales/el/activity-stream-prerendered.html
browser/extensions/activity-stream/prerendered/locales/el/activity-stream-strings.js
browser/extensions/activity-stream/prerendered/locales/en-GB/activity-stream-prerendered.html
browser/extensions/activity-stream/prerendered/locales/en-GB/activity-stream-strings.js
browser/extensions/activity-stream/prerendered/locales/en-US/activity-stream-prerendered.html
browser/extensions/activity-stream/prerendered/locales/en-US/activity-stream-strings.js
browser/extensions/activity-stream/prerendered/locales/eo/activity-stream-prerendered.html
browser/extensions/activity-stream/prerendered/locales/eo/activity-stream-strings.js
browser/extensions/activity-stream/prerendered/locales/es-AR/activity-stream-prerendered.html
browser/extensions/activity-stream/prerendered/locales/es-AR/activity-stream-strings.js
browser/extensions/activity-stream/prerendered/locales/es-CL/activity-stream-prerendered.html
browser/extensions/activity-stream/prerendered/locales/es-CL/activity-stream-strings.js
browser/extensions/activity-stream/prerendered/locales/es-ES/activity-stream-prerendered.html
browser/extensions/activity-stream/prerendered/locales/es-ES/activity-stream-strings.js
browser/extensions/activity-stream/prerendered/locales/es-MX/activity-stream-prerendered.html
browser/extensions/activity-stream/prerendered/locales/es-MX/activity-stream-strings.js
browser/extensions/activity-stream/prerendered/locales/et/activity-stream-prerendered.html
browser/extensions/activity-stream/prerendered/locales/et/activity-stream-strings.js
browser/extensions/activity-stream/prerendered/locales/eu/activity-stream-prerendered.html
browser/extensions/activity-stream/prerendered/locales/eu/activity-stream-strings.js
browser/extensions/activity-stream/prerendered/locales/fa/activity-stream-prerendered.html
browser/extensions/activity-stream/prerendered/locales/fa/activity-stream-strings.js
browser/extensions/activity-stream/prerendered/locales/ff/activity-stream-prerendered.html
browser/extensions/activity-stream/prerendered/locales/ff/activity-stream-strings.js
browser/extensions/activity-stream/prerendered/locales/fi/activity-stream-prerendered.html
browser/extensions/activity-stream/prerendered/locales/fi/activity-stream-strings.js
browser/extensions/activity-stream/prerendered/locales/fr/activity-stream-prerendered.html
browser/extensions/activity-stream/prerendered/locales/fr/activity-stream-strings.js
browser/extensions/activity-stream/prerendered/locales/fy-NL/activity-stream-prerendered.html
browser/extensions/activity-stream/prerendered/locales/fy-NL/activity-stream-strings.js
browser/extensions/activity-stream/prerendered/locales/ga-IE/activity-stream-prerendered.html
browser/extensions/activity-stream/prerendered/locales/ga-IE/activity-stream-strings.js
browser/extensions/activity-stream/prerendered/locales/gd/activity-stream-prerendered.html
browser/extensions/activity-stream/prerendered/locales/gd/activity-stream-strings.js
browser/extensions/activity-stream/prerendered/locales/gl/activity-stream-prerendered.html
browser/extensions/activity-stream/prerendered/locales/gl/activity-stream-strings.js
browser/extensions/activity-stream/prerendered/locales/gn/activity-stream-prerendered.html
browser/extensions/activity-stream/prerendered/locales/gn/activity-stream-strings.js
browser/extensions/activity-stream/prerendered/locales/gu-IN/activity-stream-prerendered.html
browser/extensions/activity-stream/prerendered/locales/gu-IN/activity-stream-strings.js
browser/extensions/activity-stream/prerendered/locales/he/activity-stream-prerendered.html
browser/extensions/activity-stream/prerendered/locales/he/activity-stream-strings.js
browser/extensions/activity-stream/prerendered/locales/hi-IN/activity-stream-prerendered.html
browser/extensions/activity-stream/prerendered/locales/hi-IN/activity-stream-strings.js
browser/extensions/activity-stream/prerendered/locales/hr/activity-stream-prerendered.html
browser/extensions/activity-stream/prerendered/locales/hr/activity-stream-strings.js
browser/extensions/activity-stream/prerendered/locales/hsb/activity-stream-prerendered.html
browser/extensions/activity-stream/prerendered/locales/hsb/activity-stream-strings.js
browser/extensions/activity-stream/prerendered/locales/hu/activity-stream-prerendered.html
browser/extensions/activity-stream/prerendered/locales/hu/activity-stream-strings.js
browser/extensions/activity-stream/prerendered/locales/hy-AM/activity-stream-prerendered.html
browser/extensions/activity-stream/prerendered/locales/hy-AM/activity-stream-strings.js
browser/extensions/activity-stream/prerendered/locales/ia/activity-stream-prerendered.html
browser/extensions/activity-stream/prerendered/locales/ia/activity-stream-strings.js
browser/extensions/activity-stream/prerendered/locales/id/activity-stream-prerendered.html
browser/extensions/activity-stream/prerendered/locales/id/activity-stream-strings.js
browser/extensions/activity-stream/prerendered/locales/it/activity-stream-prerendered.html
browser/extensions/activity-stream/prerendered/locales/it/activity-stream-strings.js
browser/extensions/activity-stream/prerendered/locales/ja/activity-stream-prerendered.html
browser/extensions/activity-stream/prerendered/locales/ja/activity-stream-strings.js
browser/extensions/activity-stream/prerendered/locales/ka/activity-stream-prerendered.html
browser/extensions/activity-stream/prerendered/locales/ka/activity-stream-strings.js
browser/extensions/activity-stream/prerendered/locales/kab/activity-stream-prerendered.html
browser/extensions/activity-stream/prerendered/locales/kab/activity-stream-strings.js
browser/extensions/activity-stream/prerendered/locales/kk/activity-stream-prerendered.html
browser/extensions/activity-stream/prerendered/locales/kk/activity-stream-strings.js
browser/extensions/activity-stream/prerendered/locales/km/activity-stream-prerendered.html
browser/extensions/activity-stream/prerendered/locales/km/activity-stream-strings.js
browser/extensions/activity-stream/prerendered/locales/kn/activity-stream-prerendered.html
browser/extensions/activity-stream/prerendered/locales/kn/activity-stream-strings.js
browser/extensions/activity-stream/prerendered/locales/ko/activity-stream-prerendered.html
browser/extensions/activity-stream/prerendered/locales/ko/activity-stream-strings.js
browser/extensions/activity-stream/prerendered/locales/lij/activity-stream-prerendered.html
browser/extensions/activity-stream/prerendered/locales/lij/activity-stream-strings.js
browser/extensions/activity-stream/prerendered/locales/lo/activity-stream-prerendered.html
browser/extensions/activity-stream/prerendered/locales/lo/activity-stream-strings.js
browser/extensions/activity-stream/prerendered/locales/lt/activity-stream-prerendered.html
browser/extensions/activity-stream/prerendered/locales/lt/activity-stream-strings.js
browser/extensions/activity-stream/prerendered/locales/ltg/activity-stream-prerendered.html
browser/extensions/activity-stream/prerendered/locales/ltg/activity-stream-strings.js
browser/extensions/activity-stream/prerendered/locales/lv/activity-stream-prerendered.html
browser/extensions/activity-stream/prerendered/locales/lv/activity-stream-strings.js
browser/extensions/activity-stream/prerendered/locales/mk/activity-stream-prerendered.html
browser/extensions/activity-stream/prerendered/locales/mk/activity-stream-strings.js
browser/extensions/activity-stream/prerendered/locales/ml/activity-stream-prerendered.html
browser/extensions/activity-stream/prerendered/locales/ml/activity-stream-strings.js
browser/extensions/activity-stream/prerendered/locales/mr/activity-stream-prerendered.html
browser/extensions/activity-stream/prerendered/locales/mr/activity-stream-strings.js
browser/extensions/activity-stream/prerendered/locales/ms/activity-stream-prerendered.html
browser/extensions/activity-stream/prerendered/locales/ms/activity-stream-strings.js
browser/extensions/activity-stream/prerendered/locales/my/activity-stream-prerendered.html
browser/extensions/activity-stream/prerendered/locales/my/activity-stream-strings.js
browser/extensions/activity-stream/prerendered/locales/nb-NO/activity-stream-prerendered.html
browser/extensions/activity-stream/prerendered/locales/nb-NO/activity-stream-strings.js
browser/extensions/activity-stream/prerendered/locales/ne-NP/activity-stream-prerendered.html
browser/extensions/activity-stream/prerendered/locales/ne-NP/activity-stream-strings.js
browser/extensions/activity-stream/prerendered/locales/nl/activity-stream-prerendered.html
browser/extensions/activity-stream/prerendered/locales/nl/activity-stream-strings.js
browser/extensions/activity-stream/prerendered/locales/nn-NO/activity-stream-prerendered.html
browser/extensions/activity-stream/prerendered/locales/nn-NO/activity-stream-strings.js
browser/extensions/activity-stream/prerendered/locales/pa-IN/activity-stream-prerendered.html
browser/extensions/activity-stream/prerendered/locales/pa-IN/activity-stream-strings.js
browser/extensions/activity-stream/prerendered/locales/pl/activity-stream-prerendered.html
browser/extensions/activity-stream/prerendered/locales/pl/activity-stream-strings.js
browser/extensions/activity-stream/prerendered/locales/pt-BR/activity-stream-prerendered.html
browser/extensions/activity-stream/prerendered/locales/pt-BR/activity-stream-strings.js
browser/extensions/activity-stream/prerendered/locales/pt-PT/activity-stream-prerendered.html
browser/extensions/activity-stream/prerendered/locales/pt-PT/activity-stream-strings.js
browser/extensions/activity-stream/prerendered/locales/rm/activity-stream-prerendered.html
browser/extensions/activity-stream/prerendered/locales/rm/activity-stream-strings.js
browser/extensions/activity-stream/prerendered/locales/ro/activity-stream-prerendered.html
browser/extensions/activity-stream/prerendered/locales/ro/activity-stream-strings.js
browser/extensions/activity-stream/prerendered/locales/ru/activity-stream-prerendered.html
browser/extensions/activity-stream/prerendered/locales/ru/activity-stream-strings.js
browser/extensions/activity-stream/prerendered/locales/si/activity-stream-prerendered.html
browser/extensions/activity-stream/prerendered/locales/si/activity-stream-strings.js
browser/extensions/activity-stream/prerendered/locales/sk/activity-stream-prerendered.html
browser/extensions/activity-stream/prerendered/locales/sk/activity-stream-strings.js
browser/extensions/activity-stream/prerendered/locales/sl/activity-stream-prerendered.html
browser/extensions/activity-stream/prerendered/locales/sl/activity-stream-strings.js
browser/extensions/activity-stream/prerendered/locales/sq/activity-stream-prerendered.html
browser/extensions/activity-stream/prerendered/locales/sq/activity-stream-strings.js
browser/extensions/activity-stream/prerendered/locales/sr/activity-stream-prerendered.html
browser/extensions/activity-stream/prerendered/locales/sr/activity-stream-strings.js
browser/extensions/activity-stream/prerendered/locales/sv-SE/activity-stream-prerendered.html
browser/extensions/activity-stream/prerendered/locales/sv-SE/activity-stream-strings.js
browser/extensions/activity-stream/prerendered/locales/ta/activity-stream-prerendered.html
browser/extensions/activity-stream/prerendered/locales/ta/activity-stream-strings.js
browser/extensions/activity-stream/prerendered/locales/te/activity-stream-prerendered.html
browser/extensions/activity-stream/prerendered/locales/te/activity-stream-strings.js
browser/extensions/activity-stream/prerendered/locales/th/activity-stream-prerendered.html
browser/extensions/activity-stream/prerendered/locales/th/activity-stream-strings.js
browser/extensions/activity-stream/prerendered/locales/tl/activity-stream-prerendered.html
browser/extensions/activity-stream/prerendered/locales/tl/activity-stream-strings.js
browser/extensions/activity-stream/prerendered/locales/tr/activity-stream-prerendered.html
browser/extensions/activity-stream/prerendered/locales/tr/activity-stream-strings.js
browser/extensions/activity-stream/prerendered/locales/uk/activity-stream-prerendered.html
browser/extensions/activity-stream/prerendered/locales/uk/activity-stream-strings.js
browser/extensions/activity-stream/prerendered/locales/ur/activity-stream-prerendered.html
browser/extensions/activity-stream/prerendered/locales/ur/activity-stream-strings.js
browser/extensions/activity-stream/prerendered/locales/uz/activity-stream-prerendered.html
browser/extensions/activity-stream/prerendered/locales/uz/activity-stream-strings.js
browser/extensions/activity-stream/prerendered/locales/vi/activity-stream-prerendered.html
browser/extensions/activity-stream/prerendered/locales/vi/activity-stream-strings.js
browser/extensions/activity-stream/prerendered/locales/zh-CN/activity-stream-prerendered.html
browser/extensions/activity-stream/prerendered/locales/zh-CN/activity-stream-strings.js
browser/extensions/activity-stream/prerendered/locales/zh-TW/activity-stream-prerendered.html
browser/extensions/activity-stream/prerendered/locales/zh-TW/activity-stream-strings.js
browser/extensions/activity-stream/prerendered/static/activity-stream-initial-state.js
browser/extensions/activity-stream/prerendered/static/activity-stream-prerendered-debug.html
browser/extensions/activity-stream/test/unit/common/PrerenderData.test.js
browser/extensions/activity-stream/test/unit/common/Reducers.test.js
browser/extensions/activity-stream/test/unit/lib/AboutPreferences.test.js
browser/extensions/activity-stream/test/unit/lib/ActivityStream.test.js
browser/extensions/activity-stream/test/unit/lib/ActivityStreamStorage.test.js
browser/extensions/activity-stream/test/unit/lib/FaviconFeed.test.js
browser/extensions/activity-stream/test/unit/lib/HighlightsFeed.test.js
browser/extensions/activity-stream/test/unit/lib/ManualMigration.test.js
browser/extensions/activity-stream/test/unit/lib/PlacesFeed.test.js
browser/extensions/activity-stream/test/unit/lib/PrefsFeed.test.js
browser/extensions/activity-stream/test/unit/lib/SectionsManager.test.js
browser/extensions/activity-stream/test/unit/lib/SystemTickFeed.test.js
browser/extensions/activity-stream/test/unit/lib/ThemeFeed.test.js
browser/extensions/activity-stream/test/unit/lib/TopSitesFeed.test.js
browser/extensions/activity-stream/test/unit/lib/UserDomainAffinityProvider.test.js
browser/extensions/activity-stream/test/unit/message-center/MessageCenterRouter.test.js
browser/extensions/activity-stream/test/unit/message-center/constants.js
browser/extensions/activity-stream/test/unit/unit-entry.js
browser/extensions/activity-stream/test/unit/utils.js
--- a/browser/extensions/activity-stream/common/Actions.jsm
+++ b/browser/extensions/activity-stream/common/Actions.jsm
@@ -26,17 +26,16 @@ this.globalImportContext = globalImportC
 const actionTypes = {};
 for (const type of [
   "ARCHIVE_FROM_POCKET",
   "BLOCK_URL",
   "BOOKMARK_URL",
   "DELETE_BOOKMARK_BY_ID",
   "DELETE_FROM_POCKET",
   "DELETE_HISTORY_URL",
-  "DELETE_HISTORY_URL_CONFIRM",
   "DIALOG_CANCEL",
   "DIALOG_OPEN",
   "DISABLE_ONBOARDING",
   "INIT",
   "MIGRATION_CANCEL",
   "MIGRATION_COMPLETED",
   "MIGRATION_START",
   "NEW_TAB_INIT",
@@ -45,21 +44,21 @@ for (const type of [
   "NEW_TAB_REHYDRATED",
   "NEW_TAB_STATE_REQUEST",
   "NEW_TAB_UNLOAD",
   "OPEN_LINK",
   "OPEN_NEW_WINDOW",
   "OPEN_PRIVATE_WINDOW",
   "PAGE_PRERENDERED",
   "PLACES_BOOKMARK_ADDED",
-  "PLACES_BOOKMARK_CHANGED",
   "PLACES_BOOKMARK_REMOVED",
   "PLACES_HISTORY_CLEARED",
-  "PLACES_LINKS_DELETED",
+  "PLACES_LINKS_CHANGED",
   "PLACES_LINK_BLOCKED",
+  "PLACES_LINK_DELETED",
   "PLACES_SAVED_TO_POCKET",
   "PREFS_INITIAL_VALUES",
   "PREF_CHANGED",
   "PREVIEW_REQUEST",
   "PREVIEW_REQUEST_CANCEL",
   "PREVIEW_RESPONSE",
   "RICH_ICON_MISSING",
   "SAVE_SESSION_PERF_DATA",
@@ -82,25 +81,28 @@ for (const type of [
   "SNIPPETS_DATA",
   "SNIPPETS_RESET",
   "SNIPPET_BLOCKED",
   "SYSTEM_TICK",
   "TELEMETRY_IMPRESSION_STATS",
   "TELEMETRY_PERFORMANCE_EVENT",
   "TELEMETRY_UNDESIRED_EVENT",
   "TELEMETRY_USER_EVENT",
+  "THEME_UPDATE",
   "TOP_SITES_CANCEL_EDIT",
   "TOP_SITES_EDIT",
   "TOP_SITES_INSERT",
   "TOP_SITES_PIN",
+  "TOP_SITES_PREFS_UPDATED",
   "TOP_SITES_UNPIN",
   "TOP_SITES_UPDATED",
   "TOTAL_BOOKMARKS_REQUEST",
   "TOTAL_BOOKMARKS_RESPONSE",
   "UNINIT",
+  "UPDATE_SECTION_PREFS",
   "WEBEXT_CLICK",
   "WEBEXT_DISMISS"
 ]) {
   actionTypes[type] = type;
 }
 
 // Helper function for creating routed actions between content and main
 // Not intended to be used by consumers
--- a/browser/extensions/activity-stream/common/PrerenderData.jsm
+++ b/browser/extensions/activity-stream/common/PrerenderData.jsm
@@ -21,68 +21,74 @@ class _PrerenderData {
   _setValidation(value = []) {
     this._validation = value;
     this._invalidatingPrefs = value.reduce((result, next) => {
       if (typeof next === "string") {
         result.push(next);
         return result;
       } else if (next && next.oneOf) {
         return result.concat(next.oneOf);
+      } else if (next && next.indexedDB) {
+        return result.concat(next.indexedDB);
       }
       throw new Error("Your validation configuration is not properly configured");
     }, []);
   }
 
-  arePrefsValid(getPref) {
+  arePrefsValid(getPref, indexedDBPrefs) {
     for (const prefs of this.validation) {
       // {oneOf: ["foo", "bar"]}
       if (prefs && prefs.oneOf && !prefs.oneOf.some(name => getPref(name) === this.initialPrefs[name])) {
         return false;
 
-      // "foo"
+        // {indexedDB: ["foo", "bar"]}
+      } else if (indexedDBPrefs && prefs && prefs.indexedDB) {
+        const anyModifiedPrefs = prefs.indexedDB.some(prefName => indexedDBPrefs.some(pref => pref && pref[prefName]));
+        if (anyModifiedPrefs) {
+          return false;
+        }
+        // "foo"
       } else if (getPref(prefs) !== this.initialPrefs[prefs]) {
         return false;
       }
     }
     return true;
   }
 }
 
 this.PrerenderData = new _PrerenderData({
   initialPrefs: {
     "migrationExpired": true,
     "showTopSites": true,
     "showSearch": true,
     "topSitesRows": 1,
-    "collapseTopSites": false,
-    "section.highlights.collapsed": false,
-    "section.topstories.collapsed": false,
     "feeds.section.topstories": true,
     "feeds.section.highlights": true,
     "enableWideLayout": true,
-    "sectionOrder": "topsites,topstories,highlights"
+    "sectionOrder": "topsites,topstories,highlights",
+    "collapsed": false
   },
   // Prefs listed as invalidating will prevent the prerendered version
   // of AS from being used if their value is something other than what is listed
   // here. This is required because some preferences cause the page layout to be
   // too different for the prerendered version to be used. Unfortunately, this
   // will result in users who have modified some of their preferences not being
   // able to get the benefits of prerendering.
   validation: [
     "showTopSites",
     "showSearch",
     "topSitesRows",
-    "collapseTopSites",
-    "section.highlights.collapsed",
-    "section.topstories.collapsed",
     "enableWideLayout",
     "sectionOrder",
     // This means if either of these are set to their default values,
     // prerendering can be used.
-    {oneOf: ["feeds.section.topstories", "feeds.section.highlights"]}
+    {oneOf: ["feeds.section.topstories", "feeds.section.highlights"]},
+    // If any component has the following preference set to `true` it will
+    // invalidate the prerendered version.
+    {indexedDB: ["collapsed"]}
   ],
   initialSections: [
     {
       enabled: true,
       icon: "pocket",
       id: "topstories",
       order: 1,
       title: {id: "header_recommended_by", values: {provider: "Pocket"}}
--- a/browser/extensions/activity-stream/common/Reducers.jsm
+++ b/browser/extensions/activity-stream/common/Reducers.jsm
@@ -26,16 +26,17 @@ const INITIAL_STATE = {
     rows: [],
     // Used in content only to dispatch action to TopSiteForm.
     editForm: null
   },
   Prefs: {
     initialized: false,
     values: {}
   },
+  Theme: {className: ""},
   Dialog: {
     visible: false,
     data: {}
   },
   Sections: []
 };
 
 function App(prevState = INITIAL_STATE.App, action) {
@@ -80,20 +81,22 @@ function insertPinned(links, pinned) {
   return newLinks;
 }
 
 function TopSites(prevState = INITIAL_STATE.TopSites, action) {
   let hasMatch;
   let newRows;
   switch (action.type) {
     case at.TOP_SITES_UPDATED:
-      if (!action.data) {
+      if (!action.data || !action.data.links) {
         return prevState;
       }
-      return Object.assign({}, prevState, {initialized: true, rows: action.data});
+      return Object.assign({}, prevState, {initialized: true, rows: action.data.links}, action.data.pref ? {pref: action.data.pref} : {});
+    case at.TOP_SITES_PREFS_UPDATED:
+      return Object.assign({}, prevState, {pref: action.data.pref});
     case at.TOP_SITES_EDIT:
       return Object.assign({}, prevState, {
         editForm: {
           index: action.data.index,
           previewResponse: null
         }
       });
     case at.TOP_SITES_CANCEL_EDIT:
@@ -161,16 +164,22 @@ function TopSites(prevState = INITIAL_ST
           delete newSite.bookmarkGuid;
           delete newSite.bookmarkTitle;
           delete newSite.bookmarkDateCreated;
           return newSite;
         }
         return site;
       });
       return Object.assign({}, prevState, {rows: newRows});
+    case at.PLACES_LINK_DELETED:
+      if (!action.data) {
+        return prevState;
+      }
+      newRows = prevState.rows.filter(site => action.data.url !== site.url);
+      return Object.assign({}, prevState, {rows: newRows});
     default:
       return prevState;
   }
 }
 
 function Dialog(prevState = INITIAL_STATE.Dialog, action) {
   switch (action.type) {
     case at.DIALOG_OPEN:
@@ -329,20 +338,21 @@ function Sections(prevState = INITIAL_ST
             if (!newSite.type || newSite.type === "bookmark") {
               newSite.type = "history";
             }
             return newSite;
           }
           return item;
         })
       }));
-    case at.PLACES_LINKS_DELETED:
-      return prevState.map(section => Object.assign({}, section,
-        {rows: section.rows.filter(site => !action.data.includes(site.url))}));
+    case at.PLACES_LINK_DELETED:
     case at.PLACES_LINK_BLOCKED:
+      if (!action.data) {
+        return prevState;
+      }
       return prevState.map(section =>
         Object.assign({}, section, {rows: section.rows.filter(site => site.url !== action.data.url)}));
     case at.DELETE_FROM_POCKET:
     case at.ARCHIVE_FROM_POCKET:
       return prevState.map(section =>
         Object.assign({}, section, {rows: section.rows.filter(site => site.pocket_id !== action.data.pocket_id)}));
     default:
       return prevState;
@@ -359,15 +369,24 @@ function Snippets(prevState = INITIAL_ST
       return Object.assign({}, prevState, {blockList: []});
     case at.SNIPPETS_RESET:
       return INITIAL_STATE.Snippets;
     default:
       return prevState;
   }
 }
 
+function Theme(prevState = INITIAL_STATE.Theme, action) {
+  switch (action.type) {
+    case at.THEME_UPDATE:
+      return Object.assign({}, prevState, action.data);
+    default:
+      return prevState;
+  }
+}
+
 this.INITIAL_STATE = INITIAL_STATE;
 this.TOP_SITES_DEFAULT_ROWS = TOP_SITES_DEFAULT_ROWS;
 this.TOP_SITES_MAX_SITES_PER_ROW = TOP_SITES_MAX_SITES_PER_ROW;
 
-this.reducers = {TopSites, App, Snippets, Prefs, Dialog, Sections};
+this.reducers = {TopSites, App, Snippets, Prefs, Dialog, Sections, Theme};
 
 const EXPORTED_SYMBOLS = ["reducers", "INITIAL_STATE", "insertPinned", "TOP_SITES_DEFAULT_ROWS", "TOP_SITES_MAX_SITES_PER_ROW"];
--- a/browser/extensions/activity-stream/css/activity-stream-linux.css
+++ b/browser/extensions/activity-stream/css/activity-stream-linux.css
@@ -19,36 +19,102 @@ input {
   background-color: inherit;
   color: inherit;
   font-family: inherit;
   font-size: inherit; }
 
 [hidden] {
   display: none !important; }
 
+.outer-wrapper {
+  --newtab-background-color: #F9F9FA;
+  --newtab-border-primary-color: #B1B1B3;
+  --newtab-border-secondary-color: #D7D7DB;
+  --newtab-button-primary-color: #0060DF;
+  --newtab-button-secondary-color: inherit;
+  --newtab-element-active-color: rgba(237, 237, 240, 0.6);
+  --newtab-icon-primary-color: rgba(12, 12, 13, 0.8);
+  --newtab-icon-secondary-color: rgba(12, 12, 13, 0.6);
+  --newtab-icon-tertiary-color: #D7D7DB;
+  --newtab-inner-box-shadow-color: rgba(0, 0, 0, 0.1);
+  --newtab-link-primary-color: #0060DF;
+  --newtab-link-secondary-color: #008EA4;
+  --newtab-text-conditional-color: #4A4A4F;
+  --newtab-text-primary-color: #0C0C0D;
+  --newtab-text-secondary-color: #737373;
+  --newtab-textbox-border: rgba(12, 12, 13, 0.2);
+  --newtab-textbox-color: inherit;
+  --newtab-contextmenu-button-color: #FFF;
+  --newtab-modal-color: #FFF;
+  --newtab-overlay-color: #EDEDF0;
+  --newtab-section-header-text-color: #737373;
+  --newtab-section-navigation-text-color: #737373;
+  --newtab-section-active-contextmenu-color: #0C0C0D;
+  --newtab-search-background-color: #FFF;
+  --newtab-search-border-color: transparent;
+  --newtab-search-focus-border-color: #0A84FF;
+  --newtab-search-icon-color: rgba(12, 12, 13, 0.4);
+  --newtab-search-text-color: inherit;
+  --newtab-topsites-label-color: inherit;
+  --newtab-card-background-color: #FFF;
+  --newtab-card-active-outline-color: #D7D7DB; }
+
+.outer-wrapper.dark-theme {
+  --newtab-background-color: #2A2A2E;
+  --newtab-border-primary-color: rgba(249, 249, 250, 0.8);
+  --newtab-border-secondary-color: rgba(249, 249, 250, 0.2);
+  --newtab-button-primary-color: #45A1FF;
+  --newtab-button-secondary-color: #38383D;
+  --newtab-element-active-color: #4A4A4F;
+  --newtab-icon-primary-color: rgba(249, 249, 250, 0.8);
+  --newtab-icon-secondary-color: rgba(249, 249, 250, 0.4);
+  --newtab-icon-tertiary-color: rgba(249, 249, 250, 0.2);
+  --newtab-inner-box-shadow-color: rgba(249, 249, 250, 0.2);
+  --newtab-link-primary-color: #45A1FF;
+  --newtab-link-secondary-color: #50BCB6;
+  --newtab-text-conditional-color: #F9F9FA;
+  --newtab-text-primary-color: #F9F9FA;
+  --newtab-text-secondary-color: rgba(249, 249, 250, 0.4);
+  --newtab-textbox-border: rgba(249, 249, 250, 0.4);
+  --newtab-textbox-color: #2A2A2E;
+  --newtab-contextmenu-button-color: #2A2A2E;
+  --newtab-modal-color: #0C0C0D;
+  --newtab-overlay-color: #2A2A2E;
+  --newtab-section-header-text-color: rgba(249, 249, 250, 0.8);
+  --newtab-section-navigation-text-color: rgba(249, 249, 250, 0.8);
+  --newtab-section-active-contextmenu-color: #FFF;
+  --newtab-search-background-color: #4A4A4F;
+  --newtab-search-border-color: rgba(249, 249, 250, 0.4);
+  --newtab-search-focus-border-color: #45A1FF;
+  --newtab-search-icon-color: rgba(249, 249, 250, 0.6);
+  --newtab-search-text-color: rgba(249, 249, 250, 0.6);
+  --newtab-topsites-label-color: rgba(249, 249, 250, 0.8);
+  --newtab-card-background-color: #0C0C0D;
+  --newtab-card-active-outline-color: #4A4A4F; }
+
 .icon {
   background-position: center center;
   background-repeat: no-repeat;
   background-size: 16px;
   -moz-context-properties: fill;
   display: inline-block;
-  fill: rgba(12, 12, 13, 0.8);
+  fill: var(--newtab-icon-primary-color);
   height: 16px;
   vertical-align: middle;
   width: 16px; }
   .icon.icon-spacer {
     margin-inline-end: 8px; }
   .icon.icon-small-spacer {
     margin-inline-end: 6px; }
   .icon.icon-bookmark-added {
     background-image: url("chrome://browser/skin/bookmark.svg"); }
   .icon.icon-bookmark-hollow {
     background-image: url("chrome://browser/skin/bookmark-hollow.svg"); }
   .icon.icon-clear-input {
-    fill: rgba(12, 12, 13, 0.6);
+    fill: var(--newtab-icon-secondary-color);
     background-image: url("../data/content/assets/glyph-cancel-16.svg"); }
   .icon.icon-delete {
     background-image: url("../data/content/assets/glyph-delete-16.svg"); }
   .icon.icon-modal-delete {
     background-image: url("../data/content/assets/glyph-modal-delete-32.svg");
     background-size: 32px;
     height: 32px;
     width: 32px; }
@@ -120,50 +186,47 @@ input {
     transform: rotate(180deg); }
   .icon.icon-add {
     background-image: url("../data/content/assets/glyph-add-16.svg"); }
   .icon.icon-minimize {
     background-image: url("../data/content/assets/glyph-minimize-16.svg"); }
   .icon.icon-maximize {
     background-image: url("../data/content/assets/glyph-maximize-16.svg"); }
 
-html,
+html {
+  height: 100%; }
+
 body,
 #root {
-  height: 100%; }
+  min-height: 100vh; }
 
 body {
-  background: #F9F9FA;
-  color: #0C0C0D;
   font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', 'Ubuntu', 'Helvetica Neue', sans-serif;
   font-size: 16px;
   overflow-y: scroll; }
 
 h1,
 h2 {
   font-weight: normal; }
 
 a {
-  color: #0060DF;
   text-decoration: none; }
-  a:hover {
-    color: #008EA4; }
 
 .sr-only {
   border: 0;
   clip: rect(0, 0, 0, 0);
   height: 1px;
   margin: -1px;
   overflow: hidden;
   padding: 0;
   position: absolute;
   width: 1px; }
 
 .inner-border {
-  border: 1px solid #D7D7DB;
+  border: 1px solid var(--newtab-border-secondary-color);
   border-radius: 3px;
   height: 100%;
   left: 0;
   pointer-events: none;
   position: absolute;
   top: 0;
   width: 100%;
   z-index: 100; }
@@ -177,55 +240,66 @@ a {
 .show-on-init {
   opacity: 0;
   transition: opacity 0.2s ease-in; }
   .show-on-init.on {
     animation: fadeIn 0.2s;
     opacity: 1; }
 
 .actions {
-  border-top: 1px solid #D7D7DB;
+  border-top: 1px solid var(--newtab-border-secondary-color);
   display: flex;
   flex-direction: row;
   flex-wrap: wrap;
   justify-content: flex-start;
   margin: 0;
   padding: 15px 25px 0; }
-  .actions button {
-    background-color: #F9F9FA;
-    border: 1px solid #B1B1B3;
-    border-radius: 4px;
-    color: inherit;
-    cursor: pointer;
-    margin-bottom: 15px;
-    padding: 10px 30px;
-    white-space: nowrap; }
-    .actions button:hover:not(.dismiss) {
-      box-shadow: 0 0 0 5px #D7D7DB;
-      transition: box-shadow 150ms; }
-    .actions button.dismiss {
-      border: 0;
-      padding: 0;
-      text-decoration: underline; }
-    .actions button.done {
-      background: #0060DF;
-      border: solid 1px #0060DF;
-      color: #FFF;
-      margin-inline-start: auto; }
+
+.button,
+.actions button {
+  background-color: var(--newtab-button-secondary-color);
+  border: 1px solid var(--newtab-border-primary-color);
+  border-radius: 4px;
+  color: inherit;
+  cursor: pointer;
+  margin-bottom: 15px;
+  padding: 10px 30px;
+  white-space: nowrap; }
+  .button:hover:not(.dismiss),
+  .actions button:hover:not(.dismiss) {
+    box-shadow: 0 0 0 5px var(--newtab-card-active-outline-color);
+    transition: box-shadow 150ms; }
+  .button.dismiss,
+  .actions button.dismiss {
+    background-color: transparent;
+    border: 0;
+    padding: 0;
+    text-decoration: underline; }
+  .button.primary, .button.done,
+  .actions button.primary,
+  .actions button.done {
+    background-color: var(--newtab-button-primary-color);
+    border: solid 1px var(--newtab-button-primary-color);
+    color: #FFF;
+    margin-inline-start: auto; }
 
 #snippets-container {
   z-index: 1; }
 
 .outer-wrapper {
+  background-color: var(--newtab-background-color);
+  color: var(--newtab-text-primary-color);
   display: flex;
   flex-grow: 1;
-  height: 100%;
+  min-height: 100vh;
   padding: 30px 32px 32px; }
   .outer-wrapper.fixed-to-top {
-    height: auto; }
+    display: block; }
+  .outer-wrapper a {
+    color: var(--newtab-link-primary-color); }
 
 main {
   margin: auto;
   padding-bottom: 68px;
   width: 274px; }
   @media (min-width: 482px) {
     main {
       width: 402px; } }
@@ -238,29 +312,16 @@ main {
   main section {
     margin-bottom: 20px;
     position: relative; }
 
 @media (min-width: 1122px) {
   .wide-layout-enabled main {
     width: 1042px; } }
 
-.section-top-bar {
-  height: 16px;
-  margin-bottom: 16px; }
-
-.section-title {
-  font-size: 13px;
-  font-weight: bold;
-  text-transform: uppercase; }
-  .section-title span {
-    color: #737373;
-    fill: #737373;
-    vertical-align: middle; }
-
 .base-content-fallback {
   height: 100vh; }
 
 
 .body-wrapper .section-title,
 .body-wrapper .sections-list .section:last-of-type,
 .body-wrapper .topic {
   opacity: 0; }
@@ -273,40 +334,38 @@ main {
 
 .non-collapsible-section {
   padding: 0 25px; }
 
 .prefs-button button {
   background-color: transparent;
   border: 0;
   cursor: pointer;
-  fill: rgba(12, 12, 13, 0.6);
+  fill: var(--newtab-icon-primary-color);
   offset-inline-end: 15px;
   padding: 15px;
   position: fixed;
   top: 15px;
   z-index: 12001; }
-  .prefs-button button:hover {
-    background-color: #EDEDF0; }
-  .prefs-button button:active {
-    background-color: #F9F9FA; }
+  .prefs-button button:hover, .prefs-button button:focus {
+    background-color: var(--newtab-element-active-color); }
 
 .as-error-fallback {
   align-items: center;
   border-radius: 3px;
-  box-shadow: inset 0 0 0 1px rgba(0, 0, 0, 0.1);
-  color: #4A4A4F;
+  box-shadow: inset 0 0 0 1px var(--newtab-inner-box-shadow-color);
+  color: var(--newtab-text-conditional-color);
   display: flex;
   flex-direction: column;
   font-size: 12px;
   justify-content: center;
   justify-items: center;
   line-height: 1.5; }
   .as-error-fallback a {
-    color: #4A4A4F;
+    color: var(--newtab-text-conditional-color);
     text-decoration: underline; }
 
 .top-sites {
   margin-bottom: 2px; }
 
 .top-sites-list {
   list-style: none;
   margin: 0 -16px;
@@ -351,92 +410,92 @@ main {
     .top-sites-list :nth-child(6n+5) .context-menu {
       margin-inline-end: 5px;
       margin-inline-start: auto;
       offset-inline-end: 0;
       offset-inline-start: auto; } }
   .top-sites-list li {
     margin: 0 0 8px; }
   .top-sites-list:not(.dnd-active) .top-site-outer:-moz-any(.active, :focus, :hover) .tile {
-    box-shadow: inset 0 0 0 1px rgba(0, 0, 0, 0.1), 0 0 0 5px #D7D7DB;
+    box-shadow: inset 0 0 0 1px var(--newtab-inner-box-shadow-color), 0 0 0 5px var(--newtab-card-active-outline-color);
     transition: box-shadow 150ms; }
   .top-sites-list:not(.dnd-active) .top-site-outer:-moz-any(.active, :focus, :hover) .context-menu-button {
     opacity: 1;
     transform: scale(1); }
 
 .top-site-outer {
   padding: 0 16px;
   display: inline-block; }
   .top-site-outer .top-site-inner {
     position: relative; }
     .top-site-outer .top-site-inner > a {
       color: inherit;
       display: block;
       outline: none; }
       .top-site-outer .top-site-inner > a:-moz-any(.active, :focus) .tile {
-        box-shadow: inset 0 0 0 1px rgba(0, 0, 0, 0.1), 0 0 0 5px #D7D7DB;
+        box-shadow: inset 0 0 0 1px var(--newtab-inner-box-shadow-color), 0 0 0 5px var(--newtab-card-active-outline-color);
         transition: box-shadow 150ms; }
   .top-site-outer .context-menu-button {
     background-clip: padding-box;
-    background-color: #FFF;
+    background-color: var(--newtab-contextmenu-button-color);
     background-image: url("chrome://browser/skin/page-action.svg");
     background-position: 55%;
-    border: 1px solid #B1B1B3;
+    border: 1px solid var(--newtab-border-primary-color);
     border-radius: 100%;
     box-shadow: 0 2px rgba(12, 12, 13, 0.1);
     cursor: pointer;
-    fill: rgba(12, 12, 13, 0.8);
+    fill: var(--newtab-icon-primary-color);
     height: 27px;
     offset-inline-end: -13.5px;
     opacity: 0;
     position: absolute;
     top: -13.5px;
     transform: scale(0.25);
     transition-duration: 200ms;
     transition-property: transform, opacity;
     width: 27px; }
     .top-site-outer .context-menu-button:-moz-any(:active, :focus) {
       opacity: 1;
       transform: scale(1); }
   .top-site-outer .tile {
     border-radius: 6px;
-    box-shadow: inset 0 0 0 1px rgba(0, 0, 0, 0.1), 0 1px 4px 0 rgba(12, 12, 13, 0.1);
+    box-shadow: inset 0 0 0 1px var(--newtab-inner-box-shadow-color), 0 1px 4px 0 rgba(12, 12, 13, 0.1);
     height: 96px;
     position: relative;
     width: 96px;
     align-items: center;
-    color: #737373;
+    color: var(--newtab-text-secondary-color);
     display: flex;
     font-size: 32px;
     font-weight: 200;
     justify-content: center;
     text-transform: uppercase; }
     .top-site-outer .tile::before {
       content: attr(data-fallback); }
   .top-site-outer .screenshot {
     background-color: #FFF;
     background-position: top left;
     background-size: cover;
     border-radius: 6px;
-    box-shadow: inset 0 0 0 1px rgba(0, 0, 0, 0.1);
+    box-shadow: inset 0 0 0 1px var(--newtab-inner-box-shadow-color);
     height: 100%;
     left: 0;
     opacity: 0;
     position: absolute;
     top: 0;
     transition: opacity 1s;
     width: 100%; }
     .top-site-outer .screenshot.active {
       opacity: 1; }
   .top-site-outer .top-site-icon {
-    background-color: #F9F9FA;
+    background-color: var(--newtab-background-color);
     background-position: center center;
     background-repeat: no-repeat;
     border-radius: 6px;
-    box-shadow: inset 0 0 0 1px rgba(0, 0, 0, 0.1);
+    box-shadow: inset 0 0 0 1px var(--newtab-inner-box-shadow-color);
     position: absolute; }
   .top-site-outer .rich-icon {
     background-size: cover;
     height: 100%;
     offset-inline-start: 0;
     top: 0;
     width: 100%; }
   .top-site-outer .default-icon {
@@ -447,39 +506,40 @@ main {
     width: 42px;
     align-items: center;
     display: flex;
     font-size: 20px;
     justify-content: center; }
     .top-site-outer .default-icon[data-fallback]::before {
       content: attr(data-fallback); }
   .top-site-outer .title {
+    color: var(--newtab-topsites-label-color);
     font: message-box;
     height: 30px;
     line-height: 30px;
     text-align: center;
     width: 96px;
     position: relative; }
     .top-site-outer .title .icon {
-      fill: #D7D7DB;
+      fill: var(--newtab-icon-tertiary-color);
       offset-inline-start: 0;
       position: absolute;
       top: 10px; }
     .top-site-outer .title span {
       height: 30px;
       display: block;
       overflow: hidden;
       text-overflow: ellipsis;
       white-space: nowrap; }
     .top-site-outer .title.pinned span {
       padding: 0 13px; }
   .top-site-outer .edit-button {
     background-image: url("../data/content/assets/glyph-edit-16.svg"); }
   .top-site-outer.placeholder .tile {
-    box-shadow: inset 0 0 0 1px rgba(0, 0, 0, 0.1); }
+    box-shadow: inset 0 0 0 1px var(--newtab-inner-box-shadow-color); }
   .top-site-outer.placeholder .screenshot {
     display: none; }
   .top-site-outer.dragged .tile {
     background: #EDEDF0;
     box-shadow: none; }
     .top-site-outer.dragged .tile *, .top-site-outer.dragged .tile::before {
       display: none; }
   .top-site-outer.dragged .title {
@@ -561,18 +621,17 @@ main {
       direction: ltr;
       text-align: right; }
   .topsite-form .form-wrapper .enable-custom-image-input {
     display: inline-block;
     font-size: 13px;
     margin-top: 4px;
     cursor: pointer; }
     .topsite-form .form-wrapper .enable-custom-image-input:hover {
-      text-decoration: underline;
-      color: #0060DF; }
+      text-decoration: underline; }
   .topsite-form .form-wrapper .custom-image-input-container {
     margin-top: 4px; }
     .topsite-form .form-wrapper .custom-image-input-container .loading-container {
       width: 16px;
       height: 16px;
       overflow: hidden;
       position: absolute;
       transform: translateY(-50%);
@@ -591,28 +650,29 @@ main {
     transform: translateX(-960px); } }
 
 @keyframes tab-throbber-animation-rtl {
   100% {
     transform: translateX(960px); } }
       .topsite-form .form-wrapper .custom-image-input-container .loading-animation:dir(rtl) {
         animation-name: tab-throbber-animation-rtl; }
   .topsite-form .form-wrapper input[type='text'] {
-    border: solid 1px rgba(12, 12, 13, 0.2);
+    background-color: var(--newtab-textbox-color);
+    border: solid 1px var(--newtab-textbox-border);
     border-radius: 2px;
     margin: 8px 0;
     padding: 0 8px;
     height: 32px;
     width: 100%;
     font-size: 15px; }
     .topsite-form .form-wrapper input[type='text']:focus {
       border: solid 1px #0A84FF;
       box-shadow: 0 0 0 1px #0A84FF, 0 0 0 4px rgba(10, 132, 255, 0.3); }
     .topsite-form .form-wrapper input[type='text'][disabled] {
-      border: solid 1px rgba(12, 12, 13, 0.2);
+      border: solid 1px var(--newtab-textbox-border);
       box-shadow: none;
       opacity: 0.4; }
   .topsite-form .form-wrapper .invalid input[type='text'] {
     border: solid 1px #D70022;
     box-shadow: 0 0 0 1px #D70022, 0 0 0 4px rgba(215, 0, 34, 0.3); }
   .topsite-form .form-wrapper .error-tooltip {
     animation: fade-up-tt 450ms;
     background: #D70022;
@@ -677,36 +737,36 @@ main {
   @media (min-width: 866px) and (max-width: 1314px) {
     .sections-list .section-list :nth-child(3n) .context-menu {
       margin-inline-end: 5px;
       margin-inline-start: auto;
       offset-inline-end: 0;
       offset-inline-start: auto; } }
 
 .sections-list .section-empty-state {
-  border: 1px solid #D7D7DB;
+  border: 1px solid var(--newtab-border-secondary-color);
   border-radius: 3px;
   display: flex;
   height: 266px;
   width: 100%; }
   .sections-list .section-empty-state .empty-state {
     margin: auto;
     max-width: 350px; }
     .sections-list .section-empty-state .empty-state .empty-state-icon {
       background-position: center;
       background-repeat: no-repeat;
       background-size: 50px 50px;
       -moz-context-properties: fill;
       display: block;
-      fill: rgba(12, 12, 13, 0.6);
+      fill: var(--newtab-icon-secondary-color);
       height: 50px;
       margin: 0 auto;
       width: 50px; }
     .sections-list .section-empty-state .empty-state .empty-state-message {
-      color: #737373;
+      color: var(--newtab-text-primary-color);
       font-size: 13px;
       margin-bottom: 0;
       text-align: center; }
 
 @media (min-width: 1122px) and (max-width: 1570px) {
   .wide-layout-enabled .sections-list .section-list :nth-child(3n) .context-menu {
     margin-inline-end: 5px;
     margin-inline-start: auto;
@@ -716,17 +776,17 @@ main {
 @media (min-width: 1122px) {
   .wide-layout-enabled .sections-list .section-list {
     grid-template-columns: repeat(auto-fit, 309px); } }
 
 .wide-layout-enabled .section-empty-state {
   height: 370px; }
 
 .topic {
-  color: #737373;
+  color: var(--newtab-section-navigation-text-color);
   font-size: 12px;
   line-height: 1.6;
   margin-top: 12px; }
   @media (min-width: 866px) {
     .topic {
       line-height: 16px; } }
   .topic ul {
     margin: 0;
@@ -738,30 +798,30 @@ main {
   .topic ul li {
     display: inline-block; }
     .topic ul li::after {
       content: '•';
       padding: 8px; }
     .topic ul li:last-child::after {
       content: none; }
   .topic .topic-link {
-    color: #008EA4; }
+    color: var(--newtab-link-secondary-color); }
   .topic .topic-read-more {
-    color: #008EA4; }
+    color: var(--newtab-link-secondary-color); }
     @media (min-width: 866px) {
       .topic .topic-read-more {
         float: right; }
         .topic .topic-read-more:dir(rtl) {
           float: left; } }
     .topic .topic-read-more::after {
       background: url("../data/content/assets/topic-show-more-12.svg") no-repeat center center;
       content: '';
       -moz-context-properties: fill;
       display: inline-block;
-      fill: #008EA4;
+      fill: var(--newtab-link-secondary-color);
       height: 16px;
       margin-inline-start: 5px;
       vertical-align: top;
       width: 12px; }
     .topic .topic-read-more:dir(rtl)::after {
       transform: scaleX(-1); }
   .topic::after {
     clear: both;
@@ -771,61 +831,72 @@ main {
 .search-wrapper {
   cursor: default;
   display: flex;
   height: 35px;
   margin: 1px 1px 20px;
   position: relative;
   width: 100%; }
   .search-wrapper input {
-    border: 0;
+    background: var(--newtab-search-background-color);
+    border: solid 1px var(--newtab-search-border-color);
     border-radius: 3px;
     box-shadow: 0 1px 4px 0 rgba(12, 12, 13, 0.1), 0 0 0 1px rgba(0, 0, 0, 0.15);
+    color: var(--newtab-search-text-color);
     font-size: 15px;
     padding: 0;
     padding-inline-end: 36px;
     padding-inline-start: 35px;
     width: 100%; }
   .search-wrapper:hover input {
     box-shadow: 0 1px 4px 0 rgba(12, 12, 13, 0.1), 0 0 0 1px rgba(0, 0, 0, 0.25); }
   .search-wrapper:active input,
   .search-wrapper input:focus {
-    box-shadow: 0 0 0 3px #0A84FF; }
+    box-shadow: 0 0 0 3px var(--newtab-search-focus-border-color); }
   .search-wrapper .search-label {
     background: url("chrome://browser/skin/search-glass.svg") no-repeat 12px center/16px;
     -moz-context-properties: fill;
-    fill: rgba(12, 12, 13, 0.4);
+    fill: var(--newtab-search-icon-color);
     height: 100%;
     offset-inline-start: 0;
     position: absolute;
     width: 35px; }
   .search-wrapper .search-button {
     background: url("chrome://browser/skin/forward.svg") no-repeat center center;
     background-size: 16px 16px;
     border: 0;
     border-radius: 0 3px 3px 0;
     -moz-context-properties: fill;
-    fill: rgba(12, 12, 13, 0.4);
+    fill: var(--newtab-search-icon-color);
     height: 100%;
     offset-inline-end: 0;
     position: absolute;
     width: 36px; }
     .search-wrapper .search-button:focus, .search-wrapper .search-button:hover {
       background-color: rgba(12, 12, 13, 0.1);
       cursor: pointer; }
     .search-wrapper .search-button:active {
       background-color: rgba(12, 12, 13, 0.2); }
     .search-wrapper .search-button:dir(rtl) {
       transform: scaleX(-1); }
-  .search-wrapper .contentSearchSuggestionTable {
-    border: 0;
-    transform: translateY(2px); }
+
+.contentSearchSuggestionTable {
+  background-color: var(--newtab-search-background-color);
+  border: 0;
+  transform: translateY(3px); }
+  .contentSearchSuggestionTable .contentSearchHeader {
+    background-color: var(--newtab-background-color);
+    color: var(--newtab-text-secondary-color); }
+  .contentSearchSuggestionTable .contentSearchHeader, .contentSearchSuggestionTable .contentSearchSuggestionsList {
+    border-color: var(--newtab-border-primary-color); }
+  .contentSearchSuggestionTable .contentSearchSearchWithHeaderSearchText {
+    color: var(--newtab-text-primary-color); }
 
 .context-menu {
-  background: #F9F9FA;
+  background: var(--newtab-background-color);
   border-radius: 5px;
   box-shadow: 0 5px 10px rgba(0, 0, 0, 0.3), 0 0 0 1px rgba(0, 0, 0, 0.2);
   display: block;
   font-size: 14px;
   margin-inline-start: 5px;
   offset-inline-start: 100%;
   position: absolute;
   top: 6.75px;
@@ -833,29 +904,29 @@ main {
   .context-menu > ul {
     list-style: none;
     margin: 0;
     padding: 5px 0; }
     .context-menu > ul > li {
       margin: 0;
       width: 100%; }
       .context-menu > ul > li.separator {
-        border-bottom: 1px solid rgba(0, 0, 0, 0.2);
+        border-bottom: 1px solid var(--newtab-border-secondary-color);
         margin: 5px 0; }
       .context-menu > ul > li > a {
         align-items: center;
         color: inherit;
         cursor: pointer;
         display: flex;
         line-height: 16px;
         outline: none;
         padding: 3px 12px;
         white-space: nowrap; }
         .context-menu > ul > li > a:-moz-any(:focus, :hover) {
-          background: #0060DF;
+          background: var(--newtab-link-primary-color);
           color: #FFF; }
           .context-menu > ul > li > a:-moz-any(:focus, :hover) a {
             color: #0C0C0D; }
           .context-menu > ul > li > a:-moz-any(:focus, :hover) .icon {
             fill: #FFF; }
           .context-menu > ul > li > a:-moz-any(:focus, :hover):-moz-any(:focus, :hover) {
             color: #FFF; }
         .context-menu > ul > li > a.disabled {
@@ -895,93 +966,93 @@ main {
     .confirmation-dialog .actions button.done {
       margin-inline-end: 0;
       margin-inline-start: 0; }
 
 .confirmation-dialog .icon {
   margin-inline-end: 16px; }
 
 .modal-overlay {
-  background: #EDEDF0;
+  background: var(--newtab-overlay-color);
   height: 100%;
   left: 0;
   opacity: 0.8;
   position: fixed;
   top: 0;
   width: 100%;
   z-index: 11001; }
 
 .modal {
-  background: #FFF;
-  border: 1px solid #D7D7DB;
+  background: var(--newtab-modal-color);
+  border: 1px solid var(--newtab-border-secondary-color);
   border-radius: 5px;
   font-size: 15px;
   z-index: 11002; }
 
 .card-outer {
-  background: #FFF;
+  background: var(--newtab-card-background-color);
   border-radius: 3px;
   display: inline-block;
   height: 266px;
   margin-inline-end: 32px;
   position: relative;
   width: 100%; }
   .card-outer .context-menu-button {
     background-clip: padding-box;
-    background-color: #FFF;
+    background-color: var(--newtab-contextmenu-button-color);
     background-image: url("chrome://browser/skin/page-action.svg");
     background-position: 55%;
-    border: 1px solid #B1B1B3;
+    border: 1px solid var(--newtab-border-primary-color);
     border-radius: 100%;
     box-shadow: 0 2px rgba(12, 12, 13, 0.1);
     cursor: pointer;
-    fill: rgba(12, 12, 13, 0.8);
+    fill: var(--newtab-icon-primary-color);
     height: 27px;
     offset-inline-end: -13.5px;
     opacity: 0;
     position: absolute;
     top: -13.5px;
     transform: scale(0.25);
     transition-duration: 200ms;
     transition-property: transform, opacity;
     width: 27px; }
     .card-outer .context-menu-button:-moz-any(:active, :focus) {
       opacity: 1;
       transform: scale(1); }
   .card-outer.placeholder {
     background: transparent; }
     .card-outer.placeholder .card {
-      box-shadow: inset 0 0 0 1px rgba(0, 0, 0, 0.1); }
+      box-shadow: inset 0 0 0 1px var(--newtab-inner-box-shadow-color); }
   .card-outer .card {
     border-radius: 3px;
     box-shadow: 0 1px 4px 0 rgba(12, 12, 13, 0.1);
     height: 100%; }
   .card-outer > a {
     color: inherit;
     display: block;
     height: 100%;
     outline: none;
     position: absolute;
     width: 100%; }
     .card-outer > a:-moz-any(.active, :focus) .card {
-      box-shadow: 0 0 0 5px #D7D7DB;
+      box-shadow: 0 0 0 5px var(--newtab-card-active-outline-color);
       transition: box-shadow 150ms; }
     .card-outer > a:-moz-any(.active, :focus) .card-title {
-      color: #0060DF; }
+      color: var(--newtab-link-primary-color); }
   .card-outer:-moz-any(:hover, :focus, .active):not(.placeholder) {
-    box-shadow: 0 0 0 5px #D7D7DB;
+    box-shadow: 0 0 0 5px var(--newtab-card-active-outline-color);
     transition: box-shadow 150ms;
     outline: none; }
     .card-outer:-moz-any(:hover, :focus, .active):not(.placeholder) .context-menu-button {
       opacity: 1;
       transform: scale(1); }
     .card-outer:-moz-any(:hover, :focus, .active):not(.placeholder) .card-title {
-      color: #0060DF; }
+      color: var(--newtab-link-primary-color); }
   .card-outer .card-preview-image-outer {
-    background-color: #F9F9FA;
+    background-color: var(--newtab-background-color);
     border-radius: 3px 3px 0 0;
     height: 122px;
     overflow: hidden;
     position: relative; }
     .card-outer .card-preview-image-outer::after {
       border-bottom: 1px solid rgba(0, 0, 0, 0.05);
       bottom: 0;
       content: '';
@@ -1013,17 +1084,17 @@ main {
     .card-outer .card-text.no-host-name.no-context {
       max-height: 116px; }
     .card-outer .card-text.no-image.no-host-name.no-context {
       max-height: 230px; }
     .card-outer .card-text:not(.no-description) .card-title {
       max-height: 57px;
       overflow: hidden; }
   .card-outer .card-host-name {
-    color: #737373;
+    color: var(--newtab-text-secondary-color);
     font-size: 10px;
     overflow: hidden;
     padding-bottom: 4px;
     text-overflow: ellipsis;
     text-transform: uppercase; }
   .card-outer .card-title {
     font-size: 14px;
     line-height: 19px;
@@ -1032,29 +1103,30 @@ main {
   .card-outer .card-description {
     font-size: 12px;
     line-height: 19px;
     margin: 0;
     overflow: hidden;
     word-wrap: break-word; }
   .card-outer .card-context {
     bottom: 0;
-    color: #737373;
+    color: var(--newtab-text-secondary-color);
     display: flex;
     font-size: 11px;
     left: 0;
-    padding: 12px 16px 12px 14px;
+    padding: 9px 16px 9px 14px;
     position: absolute;
     right: 0; }
   .card-outer .card-context-icon {
-    fill: rgba(12, 12, 13, 0.6);
+    fill: var(--newtab-icon-secondary-color);
+    height: 22px;
     margin-inline-end: 6px; }
   .card-outer .card-context-label {
     flex-grow: 1;
-    line-height: 16px;
+    line-height: 22px;
     overflow: hidden;
     text-overflow: ellipsis;
     white-space: nowrap; }
 
 @media (min-width: 1122px) {
   .wide-layout-enabled .card-outer {
     height: 370px; }
     .wide-layout-enabled .card-outer .card-preview-image-outer {
@@ -1075,17 +1147,17 @@ main {
     .wide-layout-enabled .card-outer .card-description {
       font-size: 15px;
       line-height: 23px; }
     .wide-layout-enabled .card-outer .card-context {
       bottom: 4px;
       font-size: 14px; } }
 
 .manual-migration-container {
-  color: #4A4A4F;
+  color: var(--newtab-text-conditional-color);
   font-size: 13px;
   line-height: 15px;
   margin-bottom: 20px;
   text-align: center; }
   @media (min-width: 610px) {
     .manual-migration-container {
       display: flex;
       justify-content: space-between;
@@ -1098,17 +1170,17 @@ main {
         display: flex;
         justify-content: space-between; } }
   .manual-migration-container .icon {
     display: none; }
     @media (min-width: 610px) {
       .manual-migration-container .icon {
         align-self: center;
         display: block;
-        fill: rgba(12, 12, 13, 0.6);
+        fill: var(--newtab-icon-secondary-color);
         margin-inline-end: 6px; } }
 
 .manual-migration-actions {
   border: 0;
   display: block;
   flex-wrap: nowrap; }
   @media (min-width: 610px) {
     .manual-migration-actions {
@@ -1123,32 +1195,42 @@ main {
     padding: 0 12px; }
 
 .collapsible-section {
   padding: 10px 25px;
   transition-delay: 100ms;
   transition-duration: 100ms;
   transition-property: background-color; }
   .collapsible-section .section-title {
-    margin: 0; }
+    font-size: 13px;
+    font-weight: bold;
+    margin: 0;
+    text-transform: uppercase; }
+    .collapsible-section .section-title span {
+      color: var(--newtab-section-header-text-color);
+      display: inline-block;
+      fill: var(--newtab-section-header-text-color);
+      vertical-align: middle; }
     .collapsible-section .section-title .click-target {
       cursor: pointer;
       vertical-align: top;
       white-space: nowrap; }
     .collapsible-section .section-title .collapsible-arrow {
       margin-inline-start: 8px;
       margin-top: -1px; }
   .collapsible-section .section-top-bar {
+    height: 19px;
+    margin-bottom: 13px;
     position: relative; }
     .collapsible-section .section-top-bar .context-menu-button {
       background: url("chrome://browser/skin/page-action.svg") no-repeat right center;
       border: 0;
       cursor: pointer;
-      fill: #737373;
-      height: 20px;
+      fill: var(--newtab-section-header-text-color);
+      height: 100%;
       offset-inline-end: 0;
       opacity: 0;
       position: absolute;
       top: 0;
       transition-duration: 200ms;
       transition-property: opacity;
       width: 27px; }
       .collapsible-section .section-top-bar .context-menu-button:-moz-any(:active, :focus, :hover) {
@@ -1160,46 +1242,47 @@ main {
       .collapsible-section .section-top-bar .context-menu {
         margin-inline-end: 5px;
         margin-inline-start: auto;
         offset-inline-end: 0;
         offset-inline-start: auto; } }
   .collapsible-section:hover .section-top-bar .context-menu-button, .collapsible-section.active .section-top-bar .context-menu-button {
     opacity: 1; }
   .collapsible-section.active {
-    background: rgba(237, 237, 240, 0.6);
+    background: var(--newtab-element-active-color);
     border-radius: 4px; }
     .collapsible-section.active .section-top-bar .context-menu-button {
-      fill: #0C0C0D; }
+      fill: var(--newtab-section-active-contextmenu-color); }
   .collapsible-section .section-disclaimer {
-    color: #4A4A4F;
+    color: var(--newtab-text-conditional-color);
     font-size: 13px;
     margin-bottom: 16px;
     position: relative; }
     .collapsible-section .section-disclaimer .section-disclaimer-text {
       display: inline-block;
       min-height: 26px;
       width: calc(100% - 130px); }
       @media (max-width: 610px) {
         .collapsible-section .section-disclaimer .section-disclaimer-text {
           width: 224px; } }
     .collapsible-section .section-disclaimer a {
-      color: #008EA4;
+      color: var(--newtab-link-secondary-color);
+      font-weight: bold;
       padding-left: 3px; }
     .collapsible-section .section-disclaimer button {
-      background: #F9F9FA;
+      background: transparent;
       border: 1px solid #B1B1B3;
       border-radius: 4px;
       cursor: pointer;
       margin-top: 2px;
       max-width: 130px;
       min-height: 26px;
       offset-inline-end: 0; }
       .collapsible-section .section-disclaimer button:hover:not(.dismiss) {
-        box-shadow: 0 0 0 5px #D7D7DB;
+        box-shadow: 0 0 0 5px var(--newtab-card-active-outline-color);
         transition: box-shadow 150ms; }
       @media (min-width: 482px) {
         .collapsible-section .section-disclaimer button {
           position: absolute; } }
   .collapsible-section .section-body-fallback {
     height: 266px; }
   .collapsible-section .section-body {
     margin: 0 -7px;
@@ -1210,9 +1293,49 @@ main {
   .collapsible-section.animation-enabled .section-title .collapsible-arrow {
     transition: transform 0.5s cubic-bezier(0.07, 0.95, 0, 1); }
   .collapsible-section.animation-enabled .section-body {
     transition: max-height 0.5s cubic-bezier(0.07, 0.95, 0, 1); }
   .collapsible-section.collapsed .section-body {
     max-height: 0;
     overflow: hidden; }
 
+.messages-admin {
+  max-width: 996px;
+  margin: 0 auto;
+  font-size: 14px; }
+  .messages-admin h1 {
+    font-weight: 200;
+    font-size: 32px; }
+  .messages-admin table {
+    border-collapse: collapse;
+    width: 100%; }
+  .messages-admin .message-item:first-child td {
+    border-top: 1px solid rgba(0, 0, 0, 0.1); }
+  .messages-admin .message-item td {
+    vertical-align: top;
+    border-bottom: 1px solid rgba(0, 0, 0, 0.1);
+    padding: 8px; }
+    .messages-admin .message-item td:first-child {
+      border-left: 1px solid rgba(0, 0, 0, 0.1); }
+    .messages-admin .message-item td:last-child {
+      border-right: 1px solid rgba(0, 0, 0, 0.1); }
+  .messages-admin .message-item.current .message-id span {
+    background: #FFE900;
+    padding: 2px 5px; }
+  .messages-admin .message-item.blocked .message-id,
+  .messages-admin .message-item.blocked .message-summary {
+    opacity: 0.5; }
+  .messages-admin .message-item.blocked .message-id {
+    color: #0C0C0D; }
+  .messages-admin .message-item .message-id {
+    font-family: "SF Mono", "Monaco", "Inconsolata", "Fira Mono", "Droid Sans Mono", "Source Code Pro", monospace;
+    font-size: 12px; }
+  .messages-admin pre {
+    background: #FFF;
+    margin: 0;
+    padding: 8px;
+    font-size: 12px;
+    max-width: 750px;
+    overflow: auto;
+    font-family: "SF Mono", "Monaco", "Inconsolata", "Fira Mono", "Droid Sans Mono", "Source Code Pro", monospace; }
+
 /*# sourceMappingURL=activity-stream-linux.css.map */
\ No newline at end of file
--- a/browser/extensions/activity-stream/css/activity-stream-linux.css.map
+++ b/browser/extensions/activity-stream/css/activity-stream-linux.css.map
@@ -1,42 +1,46 @@
 {
 	"version": 3,
 	"file": "activity-stream-linux.css",
 	"sources": [
 		"../content-src/styles/activity-stream-linux.scss",
 		"../content-src/styles/_activity-stream.scss",
 		"../content-src/styles/_normalize.scss",
 		"../content-src/styles/_variables.scss",
+		"../content-src/styles/_theme.scss",
 		"../content-src/styles/_icons.scss",
 		"../content-src/components/Base/_Base.scss",
 		"../content-src/components/ErrorBoundary/_ErrorBoundary.scss",
 		"../content-src/components/TopSites/_TopSites.scss",
 		"../content-src/components/Sections/_Sections.scss",
 		"../content-src/components/Topics/_Topics.scss",
 		"../content-src/components/Search/_Search.scss",
 		"../content-src/components/ContextMenu/_ContextMenu.scss",
 		"../content-src/components/ConfirmDialog/_ConfirmDialog.scss",
 		"../content-src/components/Card/_Card.scss",
 		"../content-src/components/ManualMigration/_ManualMigration.scss",
-		"../content-src/components/CollapsibleSection/_CollapsibleSection.scss"
+		"../content-src/components/CollapsibleSection/_CollapsibleSection.scss",
+		"../content-src/components/MessageCenterAdmin/MessageCenterAdmin.scss"
 	],
 	"sourcesContent": [
 		"/* This is the linux variant */ // sass-lint:disable-line no-css-comments\n\n$os-infopanel-arrow-height: 10px;\n$os-infopanel-arrow-offset-end: 6px;\n$os-infopanel-arrow-width: 20px;\n$os-search-focus-shadow-radius: 3px;\n\n@import './activity-stream';\n",
-		"@import './normalize';\n@import './variables';\n@import './icons';\n\nhtml,\nbody,\n#root { // sass-lint:disable-line no-ids\n  height: 100%;\n}\n\nbody {\n  background: $background-primary;\n  color: $text-primary;\n  font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', 'Ubuntu', 'Helvetica Neue', sans-serif;\n  font-size: 16px;\n  overflow-y: scroll;\n}\n\nh1,\nh2 {\n  font-weight: normal;\n}\n\na {\n  color: $link-primary;\n  text-decoration: none;\n\n  &:hover {\n    color: $link-secondary;\n  }\n}\n\n// For screen readers\n.sr-only {\n  border: 0;\n  clip: rect(0, 0, 0, 0);\n  height: 1px;\n  margin: -1px;\n  overflow: hidden;\n  padding: 0;\n  position: absolute;\n  width: 1px;\n}\n\n.inner-border {\n  border: $border-secondary;\n  border-radius: $border-radius;\n  height: 100%;\n  left: 0;\n  pointer-events: none;\n  position: absolute;\n  top: 0;\n  width: 100%;\n  z-index: 100;\n}\n\n@keyframes fadeIn {\n  from {\n    opacity: 0;\n  }\n\n  to {\n    opacity: 1;\n  }\n}\n\n.show-on-init {\n  opacity: 0;\n  transition: opacity 0.2s ease-in;\n\n  &.on {\n    animation: fadeIn 0.2s;\n    opacity: 1;\n  }\n}\n\n.actions {\n  border-top: $border-secondary;\n  display: flex;\n  flex-direction: row;\n  flex-wrap: wrap;\n  justify-content: flex-start;\n  margin: 0;\n  padding: 15px 25px 0;\n\n  button {\n    background-color: $input-secondary;\n    border: $border-primary;\n    border-radius: 4px;\n    color: inherit;\n    cursor: pointer;\n    margin-bottom: 15px;\n    padding: 10px 30px;\n    white-space: nowrap;\n\n    &:hover:not(.dismiss) {\n      box-shadow: $shadow-primary;\n      transition: box-shadow 150ms;\n    }\n\n    &.dismiss {\n      border: 0;\n      padding: 0;\n      text-decoration: underline;\n    }\n\n    &.done {\n      background: $input-primary;\n      border: solid 1px $blue-60;\n      color: $white;\n      margin-inline-start: auto;\n    }\n  }\n}\n\n// Make sure snippets show up above other UI elements\n#snippets-container { // sass-lint:disable-line no-ids\n  z-index: 1;\n}\n\n// Components\n@import '../components/Base/Base';\n@import '../components/ErrorBoundary/ErrorBoundary';\n@import '../components/TopSites/TopSites';\n@import '../components/Sections/Sections';\n@import '../components/Topics/Topics';\n@import '../components/Search/Search';\n@import '../components/ContextMenu/ContextMenu';\n@import '../components/ConfirmDialog/ConfirmDialog';\n@import '../components/Card/Card';\n@import '../components/ManualMigration/ManualMigration';\n@import '../components/CollapsibleSection/CollapsibleSection';\n",
+		"@import './normalize';\n@import './variables';\n@import './theme';\n@import './icons';\n\nhtml {\n  height: 100%;\n}\n\nbody,\n#root { // sass-lint:disable-line no-ids\n  min-height: 100vh;\n}\n\nbody {\n  font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', 'Ubuntu', 'Helvetica Neue', sans-serif;\n  font-size: 16px;\n  overflow-y: scroll;\n}\n\nh1,\nh2 {\n  font-weight: normal;\n}\n\na {\n  text-decoration: none;\n}\n\n// For screen readers\n.sr-only {\n  border: 0;\n  clip: rect(0, 0, 0, 0);\n  height: 1px;\n  margin: -1px;\n  overflow: hidden;\n  padding: 0;\n  position: absolute;\n  width: 1px;\n}\n\n.inner-border {\n  border: $border-secondary;\n  border-radius: $border-radius;\n  height: 100%;\n  left: 0;\n  pointer-events: none;\n  position: absolute;\n  top: 0;\n  width: 100%;\n  z-index: 100;\n}\n\n@keyframes fadeIn {\n  from {\n    opacity: 0;\n  }\n\n  to {\n    opacity: 1;\n  }\n}\n\n.show-on-init {\n  opacity: 0;\n  transition: opacity 0.2s ease-in;\n\n  &.on {\n    animation: fadeIn 0.2s;\n    opacity: 1;\n  }\n}\n\n.actions {\n  border-top: $border-secondary;\n  display: flex;\n  flex-direction: row;\n  flex-wrap: wrap;\n  justify-content: flex-start;\n  margin: 0;\n  padding: 15px 25px 0;\n}\n\n// Default button (grey)\n.button,\n.actions button {\n  background-color: var(--newtab-button-secondary-color);\n  border: $border-primary;\n  border-radius: 4px;\n  color: inherit;\n  cursor: pointer;\n  margin-bottom: 15px;\n  padding: 10px 30px;\n  white-space: nowrap;\n\n  &:hover:not(.dismiss) {\n    box-shadow: $shadow-primary;\n    transition: box-shadow 150ms;\n  }\n\n  &.dismiss {\n    background-color: transparent;\n    border: 0;\n    padding: 0;\n    text-decoration: underline;\n  }\n\n  // Blue button\n  &.primary,\n  &.done {\n    background-color: var(--newtab-button-primary-color);\n    border: solid 1px var(--newtab-button-primary-color);\n    color: $white;\n    margin-inline-start: auto;\n  }\n}\n\n// Make sure snippets show up above other UI elements\n#snippets-container { // sass-lint:disable-line no-ids\n  z-index: 1;\n}\n\n// Components\n@import '../components/Base/Base';\n@import '../components/ErrorBoundary/ErrorBoundary';\n@import '../components/TopSites/TopSites';\n@import '../components/Sections/Sections';\n@import '../components/Topics/Topics';\n@import '../components/Search/Search';\n@import '../components/ContextMenu/ContextMenu';\n@import '../components/ConfirmDialog/ConfirmDialog';\n@import '../components/Card/Card';\n@import '../components/ManualMigration/ManualMigration';\n@import '../components/CollapsibleSection/CollapsibleSection';\n@import '../components/MessageCenterAdmin/MessageCenterAdmin';\n",
 		"html {\n  box-sizing: border-box;\n}\n\n*,\n*::before,\n*::after {\n  box-sizing: inherit;\n}\n\n*::-moz-focus-inner {\n  border: 0;\n}\n\nbody {\n  margin: 0;\n}\n\nbutton,\ninput {\n  background-color: inherit;\n  color: inherit;\n  font-family: inherit;\n  font-size: inherit;\n}\n\n[hidden] {\n  display: none !important; // sass-lint:disable-line no-important\n}\n",
-		"// Photon colors from http://design.firefox.com/photon/visuals/color.html\n$blue-50: #0A84FF;\n$blue-60: #0060DF;\n$grey-10: #F9F9FA;\n$grey-20: #EDEDF0;\n$grey-30: #D7D7DB;\n$grey-40: #B1B1B3;\n$grey-50: #737373;\n$grey-60: #4A4A4F;\n$grey-90: #0C0C0D;\n$teal-70: #008EA4;\n$red-60: #D70022;\n\n// Photon opacity from http://design.firefox.com/photon/visuals/color.html#opacity\n$grey-90-10: rgba($grey-90, 0.1);\n$grey-90-20: rgba($grey-90, 0.2);\n$grey-90-30: rgba($grey-90, 0.3);\n$grey-90-40: rgba($grey-90, 0.4);\n$grey-90-50: rgba($grey-90, 0.5);\n$grey-90-60: rgba($grey-90, 0.6);\n$grey-90-70: rgba($grey-90, 0.7);\n$grey-90-80: rgba($grey-90, 0.8);\n$grey-90-90: rgba($grey-90, 0.9);\n\n$grey-20-60: rgba($grey-20, 0.6);\n\n$black: #000;\n$black-5: rgba($black, 0.05);\n$black-10: rgba($black, 0.1);\n$black-15: rgba($black, 0.15);\n$black-20: rgba($black, 0.2);\n$black-25: rgba($black, 0.25);\n$black-30: rgba($black, 0.3);\n\n// Photon transitions from http://design.firefox.com/photon/motion/duration-and-easing.html\n$photon-easing: cubic-bezier(0.07, 0.95, 0, 1);\n\n// Aliases and derived styles based on Photon colors for common usage\n$background-primary: $grey-10;\n$background-secondary: $grey-20;\n$border-primary: 1px solid $grey-40;\n$border-secondary: 1px solid $grey-30;\n$fill-primary: $grey-90-80;\n$fill-secondary: $grey-90-60;\n$fill-tertiary: $grey-30;\n$input-primary: $blue-60;\n$input-secondary: $grey-10;\n$link-primary: $blue-60;\n$link-secondary: $teal-70;\n$shadow-primary: 0 0 0 5px $grey-30;\n$shadow-secondary: 0 1px 4px 0 $grey-90-10;\n$text-primary: $grey-90;\n$text-conditional: $grey-60;\n$text-secondary: $grey-50;\n$input-border: solid 1px $grey-90-20;\n$input-border-active: solid 1px $blue-50;\n$input-error-border: solid 1px $red-60;\n$input-error-boxshadow: 0 0 0 1px $red-60, 0 0 0 4px rgba($red-60, 0.3);\n$input-focus-boxshadow: 0 0 0 1px $blue-50, 0 0 0 4px rgba($blue-50, 0.3);\n\n$white: #FFF;\n$border-radius: 3px;\n\n$base-gutter: 32px;\n$section-horizontal-padding: 25px;\n$section-vertical-padding: 10px;\n$section-spacing: 40px - $section-vertical-padding * 2;\n$grid-unit: 96px; // 1 top site\n\n$icon-size: 16px;\n$smaller-icon-size: 12px;\n$larger-icon-size: 32px;\n\n$wrapper-default-width: $grid-unit * 2 + $base-gutter * 1 + $section-horizontal-padding * 2; // 2 top sites\n$wrapper-max-width-small: $grid-unit * 3 + $base-gutter * 2 + $section-horizontal-padding * 2; // 3 top sites\n$wrapper-max-width-medium: $grid-unit * 4 + $base-gutter * 3 + $section-horizontal-padding * 2; // 4 top sites\n$wrapper-max-width-large: $grid-unit * 6 + $base-gutter * 5 + $section-horizontal-padding * 2; // 6 top sites\n$wrapper-max-width-widest: $grid-unit * 8 + $base-gutter * 7 + $section-horizontal-padding * 2; // 8 top sites\n// For the breakpoints, we need to add space for the scrollbar to avoid weird\n// layout issues when the scrollbar is visible. 16px is wide enough to cover all\n// OSes and keeps it simpler than a per-OS value.\n$scrollbar-width: 16px;\n$break-point-small: $wrapper-max-width-small + $base-gutter * 2 + $scrollbar-width;\n$break-point-medium: $wrapper-max-width-medium + $base-gutter * 2 + $scrollbar-width;\n$break-point-large: $wrapper-max-width-large + $base-gutter * 2 + $scrollbar-width;\n$break-point-widest: $wrapper-max-width-widest + $base-gutter * 2 + $scrollbar-width;\n\n$section-title-font-size: 13px;\n\n$card-width: $grid-unit * 2 + $base-gutter;\n$card-height: 266px;\n$card-preview-image-height: 122px;\n$card-title-margin: 2px;\n$card-text-line-height: 19px;\n// Larger cards for wider screens:\n$card-width-large: 309px;\n$card-height-large: 370px;\n$card-preview-image-height-large: 155px;\n\n$topic-margin-top: 12px;\n\n$context-menu-button-size: 27px;\n$context-menu-button-boxshadow: 0 2px $grey-90-10;\n$context-menu-border-color: $black-20;\n$context-menu-shadow: 0 5px 10px $black-30, 0 0 0 1px $context-menu-border-color;\n$context-menu-font-size: 14px;\n$context-menu-border-radius: 5px;\n$context-menu-outer-padding: 5px;\n$context-menu-item-padding: 3px 12px;\n$section-context-menu-button-height: 20px;\n\n$error-fallback-font-size: 12px;\n$error-fallback-line-height: 1.5;\n\n$inner-box-shadow: 0 0 0 1px $black-10;\n\n$image-path: '../data/content/assets/';\n\n$snippets-container-height: 120px;\n\n@mixin fade-in {\n  box-shadow: inset $inner-box-shadow, $shadow-primary;\n  transition: box-shadow 150ms;\n}\n\n@mixin fade-in-card {\n  box-shadow: $shadow-primary;\n  transition: box-shadow 150ms;\n}\n\n@mixin context-menu-button {\n  .context-menu-button {\n    background-clip: padding-box;\n    background-color: $white;\n    background-image: url('chrome://browser/skin/page-action.svg');\n    background-position: 55%;\n    border: $border-primary;\n    border-radius: 100%;\n    box-shadow: $context-menu-button-boxshadow;\n    cursor: pointer;\n    fill: $fill-primary;\n    height: $context-menu-button-size;\n    offset-inline-end: -($context-menu-button-size / 2);\n    opacity: 0;\n    position: absolute;\n    top: -($context-menu-button-size / 2);\n    transform: scale(0.25);\n    transition-duration: 200ms;\n    transition-property: transform, opacity;\n    width: $context-menu-button-size;\n\n    &:-moz-any(:active, :focus) {\n      opacity: 1;\n      transform: scale(1);\n    }\n  }\n}\n\n@mixin context-menu-button-hover {\n  .context-menu-button {\n    opacity: 1;\n    transform: scale(1);\n  }\n}\n\n@mixin context-menu-open-middle {\n  .context-menu {\n    margin-inline-end: auto;\n    margin-inline-start: auto;\n    offset-inline-end: auto;\n    offset-inline-start: -$base-gutter;\n  }\n}\n\n@mixin context-menu-open-left {\n  .context-menu {\n    margin-inline-end: 5px;\n    margin-inline-start: auto;\n    offset-inline-end: 0;\n    offset-inline-start: auto;\n  }\n}\n\n@mixin flip-icon {\n  &:dir(rtl) {\n    transform: scaleX(-1);\n  }\n}\n",
-		".icon {\n  background-position: center center;\n  background-repeat: no-repeat;\n  background-size: $icon-size;\n  -moz-context-properties: fill;\n  display: inline-block;\n  fill: $fill-primary;\n  height: $icon-size;\n  vertical-align: middle;\n  width: $icon-size;\n\n  &.icon-spacer {\n    margin-inline-end: 8px;\n  }\n\n  &.icon-small-spacer {\n    margin-inline-end: 6px;\n  }\n\n  &.icon-bookmark-added {\n    background-image: url('chrome://browser/skin/bookmark.svg');\n  }\n\n  &.icon-bookmark-hollow {\n    background-image: url('chrome://browser/skin/bookmark-hollow.svg');\n  }\n\n  &.icon-clear-input {\n    fill: $fill-secondary;\n    background-image: url('#{$image-path}glyph-cancel-16.svg');\n  }\n\n  &.icon-delete {\n    background-image: url('#{$image-path}glyph-delete-16.svg');\n  }\n\n  &.icon-modal-delete {\n    background-image: url('#{$image-path}glyph-modal-delete-32.svg');\n    background-size: $larger-icon-size;\n    height: $larger-icon-size;\n    width: $larger-icon-size;\n  }\n\n  &.icon-dismiss {\n    background-image: url('#{$image-path}glyph-dismiss-16.svg');\n  }\n\n  &.icon-info {\n    background-image: url('#{$image-path}glyph-info-16.svg');\n  }\n\n  &.icon-import {\n    background-image: url('#{$image-path}glyph-import-16.svg');\n  }\n\n  &.icon-new-window {\n    @include flip-icon;\n    background-image: url('#{$image-path}glyph-newWindow-16.svg');\n  }\n\n  &.icon-new-window-private {\n    background-image: url('chrome://browser/skin/privateBrowsing.svg');\n  }\n\n  &.icon-settings {\n    background-image: url('chrome://browser/skin/settings.svg');\n  }\n\n  &.icon-pin {\n    @include flip-icon;\n    background-image: url('#{$image-path}glyph-pin-16.svg');\n  }\n\n  &.icon-unpin {\n    @include flip-icon;\n    background-image: url('#{$image-path}glyph-unpin-16.svg');\n  }\n\n  &.icon-edit {\n    background-image: url('#{$image-path}glyph-edit-16.svg');\n  }\n\n  &.icon-pocket {\n    background-image: url('#{$image-path}glyph-pocket-16.svg');\n  }\n\n  &.icon-historyItem { // sass-lint:disable-line class-name-format\n    background-image: url('#{$image-path}glyph-historyItem-16.svg');\n  }\n\n  &.icon-trending {\n    background-image: url('#{$image-path}glyph-trending-16.svg');\n    transform: translateY(2px); // trending bolt is visually top heavy\n  }\n\n  &.icon-now {\n    background-image: url('chrome://browser/skin/history.svg');\n  }\n\n  &.icon-topsites {\n    background-image: url('#{$image-path}glyph-topsites-16.svg');\n  }\n\n  &.icon-pin-small {\n    @include flip-icon;\n    background-image: url('#{$image-path}glyph-pin-12.svg');\n    background-size: $smaller-icon-size;\n    height: $smaller-icon-size;\n    width: $smaller-icon-size;\n  }\n\n  &.icon-check {\n    background-image: url('chrome://browser/skin/check.svg');\n  }\n\n  &.icon-webextension {\n    background-image: url('#{$image-path}glyph-webextension-16.svg');\n  }\n\n  &.icon-highlights {\n    background-image: url('#{$image-path}glyph-highlights-16.svg');\n  }\n\n  &.icon-arrowhead-down {\n    background-image: url('#{$image-path}glyph-arrowhead-down-16.svg');\n  }\n\n  &.icon-arrowhead-down-small {\n    background-image: url('#{$image-path}glyph-arrowhead-down-12.svg');\n    background-size: $smaller-icon-size;\n    height: $smaller-icon-size;\n    width: $smaller-icon-size;\n  }\n\n  &.icon-arrowhead-forward-small {\n    background-image: url('#{$image-path}glyph-arrowhead-down-12.svg');\n    background-size: $smaller-icon-size;\n    height: $smaller-icon-size;\n    transform: rotate(-90deg);\n    width: $smaller-icon-size;\n\n    &:dir(rtl) {\n      transform: rotate(90deg);\n    }\n  }\n\n  &.icon-arrowhead-up {\n    background-image: url('#{$image-path}glyph-arrowhead-down-16.svg');\n    transform: rotate(180deg);\n  }\n\n  &.icon-add {\n    background-image: url('#{$image-path}glyph-add-16.svg');\n  }\n\n  &.icon-minimize {\n    background-image: url('#{$image-path}glyph-minimize-16.svg');\n  }\n\n  &.icon-maximize {\n    background-image: url('#{$image-path}glyph-maximize-16.svg');\n  }\n}\n",
-		".outer-wrapper {\n  display: flex;\n  flex-grow: 1;\n  height: 100%;\n  padding: ($section-spacing + $section-vertical-padding) $base-gutter $base-gutter;\n\n  &.fixed-to-top {\n    height: auto;\n  }\n}\n\nmain {\n  margin: auto;\n  // Offset the snippets container so things at the bottom of the page are still\n  // visible when snippets / onboarding are visible. Adjust for other spacing.\n  padding-bottom: $snippets-container-height - $section-spacing - $base-gutter;\n  width: $wrapper-default-width;\n\n  @media (min-width: $break-point-small) {\n    width: $wrapper-max-width-small;\n  }\n\n  @media (min-width: $break-point-medium) {\n    width: $wrapper-max-width-medium;\n  }\n\n  @media (min-width: $break-point-large) {\n    width: $wrapper-max-width-large;\n  }\n\n  section {\n    margin-bottom: $section-spacing;\n    position: relative;\n  }\n}\n\n.wide-layout-enabled {\n  main {\n    @media (min-width: $break-point-widest) {\n      width: $wrapper-max-width-widest;\n    }\n  }\n}\n\n.section-top-bar {\n  height: 16px;\n  margin-bottom: 16px;\n}\n\n.section-title {\n  font-size: $section-title-font-size;\n  font-weight: bold;\n  text-transform: uppercase;\n\n  span {\n    color: $text-secondary;\n    fill: $text-secondary;\n    vertical-align: middle;\n  }\n}\n\n.base-content-fallback {\n  // Make the error message be centered against the viewport\n  height: 100vh;\n}\n\n.body-wrapper {\n  // Hide certain elements so the page structure is fixed, e.g., placeholders,\n  // while avoiding flashes of changing content, e.g., icons and text\n  $selectors-to-hide: '\n    .section-title,\n    .sections-list .section:last-of-type,\n    .topic\n  ';\n\n  #{$selectors-to-hide} {\n    opacity: 0;\n  }\n\n  &.on {\n    #{$selectors-to-hide} {\n      opacity: 1;\n    }\n  }\n}\n\n.non-collapsible-section {\n  padding: 0 $section-horizontal-padding;\n}\n\n.prefs-button {\n  button {\n    background-color: transparent;\n    border: 0;\n    cursor: pointer;\n    fill: $fill-secondary;\n    offset-inline-end: 15px;\n    padding: 15px;\n    position: fixed;\n    top: 15px;\n    z-index: 12001;\n\n    &:hover {\n      background-color: $background-secondary;\n    }\n\n    &:active {\n      background-color: $background-primary;\n    }\n  }\n}\n",
-		".as-error-fallback {\n  align-items: center;\n  border-radius: $border-radius;\n  box-shadow: inset $inner-box-shadow;\n  color: $text-conditional;\n  display: flex;\n  flex-direction: column;\n  font-size: $error-fallback-font-size;\n  justify-content: center;\n  justify-items: center;\n  line-height: $error-fallback-line-height;\n\n  a {\n    color: $text-conditional;\n    text-decoration: underline;\n  }\n}\n\n",
-		"$top-sites-size: $grid-unit;\n$top-sites-border-radius: 6px;\n$top-sites-title-height: 30px;\n$top-sites-vertical-space: 8px;\n$screenshot-size: cover;\n$rich-icon-size: 96px;\n$default-icon-wrapper-size: 42px;\n$default-icon-size: 32px;\n$default-icon-offset: 6px;\n$half-base-gutter: $base-gutter / 2;\n\n.top-sites {\n  // Take back the margin from the bottom row of vertical spacing as well as the\n  // extra whitespace below the title text as it's vertically centered.\n  margin-bottom: $section-spacing - ($top-sites-vertical-space + $top-sites-title-height / 3);\n}\n\n.top-sites-list {\n  list-style: none;\n  margin: 0 (-$half-base-gutter);\n  padding: 0;\n\n  // Two columns\n  @media (max-width: $break-point-small) {\n    :nth-child(2n+1) {\n      @include context-menu-open-middle;\n    }\n\n    :nth-child(2n) {\n      @include context-menu-open-left;\n    }\n  }\n\n  // Three columns\n  @media (min-width: $break-point-small) and (max-width: $break-point-medium) {\n    :nth-child(3n+2),\n    :nth-child(3n) {\n      @include context-menu-open-left;\n    }\n  }\n\n  // Four columns\n  @media (min-width: $break-point-medium) and (max-width: $break-point-large) {\n    :nth-child(4n) {\n      @include context-menu-open-left;\n    }\n  }\n  @media (min-width: $break-point-medium) and (max-width: $break-point-medium + $card-width) {\n    :nth-child(4n+3) {\n      @include context-menu-open-left;\n    }\n  }\n\n  // Six columns\n  @media (min-width: $break-point-large) and (max-width: $break-point-large + 2 * $card-width) {\n    :nth-child(6n) {\n      @include context-menu-open-left;\n    }\n  }\n  @media (min-width: $break-point-large) and (max-width: $break-point-large + $card-width) {\n    :nth-child(6n+5) {\n      @include context-menu-open-left;\n    }\n  }\n\n  li {\n    margin: 0 0 $top-sites-vertical-space;\n  }\n\n  &:not(.dnd-active) {\n    .top-site-outer:-moz-any(.active, :focus, :hover) {\n      .tile {\n        @include fade-in;\n      }\n\n      @include context-menu-button-hover;\n    }\n  }\n}\n\n// container for drop zone\n.top-site-outer {\n  padding: 0 $half-base-gutter;\n  display: inline-block;\n\n  // container for context menu\n  .top-site-inner {\n    position: relative;\n\n    > a {\n      color: inherit;\n      display: block;\n      outline: none;\n\n      &:-moz-any(.active, :focus) {\n        .tile {\n          @include fade-in;\n        }\n      }\n    }\n  }\n\n  @include context-menu-button;\n\n  .tile { // sass-lint:disable-block property-sort-order\n    border-radius: $top-sites-border-radius;\n    box-shadow: inset $inner-box-shadow, $shadow-secondary;\n    height: $top-sites-size;\n    position: relative;\n    width: $top-sites-size;\n\n    // For letter fallback\n    align-items: center;\n    color: $text-secondary;\n    display: flex;\n    font-size: 32px;\n    font-weight: 200;\n    justify-content: center;\n    text-transform: uppercase;\n\n    &::before {\n      content: attr(data-fallback);\n    }\n  }\n\n  .screenshot {\n    background-color: $white;\n    background-position: top left;\n    background-size: $screenshot-size;\n    border-radius: $top-sites-border-radius;\n    box-shadow: inset $inner-box-shadow;\n    height: 100%;\n    left: 0;\n    opacity: 0;\n    position: absolute;\n    top: 0;\n    transition: opacity 1s;\n    width: 100%;\n\n    &.active {\n      opacity: 1;\n    }\n  }\n\n  // Some common styles for all icons (rich and default) in top sites\n  .top-site-icon {\n    background-color: $background-primary;\n    background-position: center center;\n    background-repeat: no-repeat;\n    border-radius: $top-sites-border-radius;\n    box-shadow: inset $inner-box-shadow;\n    position: absolute;\n  }\n\n  .rich-icon {\n    background-size: cover;\n    height: 100%;\n    offset-inline-start: 0;\n    top: 0;\n    width: 100%;\n  }\n\n  .default-icon { // sass-lint:disable block property-sort-order\n    background-size: $default-icon-size;\n    bottom: -$default-icon-offset;\n    height: $default-icon-wrapper-size;\n    offset-inline-end: -$default-icon-offset;\n    width: $default-icon-wrapper-size;\n\n    // for corner letter fallback\n    align-items: center;\n    display: flex;\n    font-size: 20px;\n    justify-content: center;\n\n    &[data-fallback]::before {\n      content: attr(data-fallback);\n    }\n  }\n\n  .title {\n    font: message-box;\n    height: $top-sites-title-height;\n    line-height: $top-sites-title-height;\n    text-align: center;\n    width: $top-sites-size;\n    position: relative;\n\n    .icon {\n      fill: $fill-tertiary;\n      offset-inline-start: 0;\n      position: absolute;\n      top: 10px;\n    }\n\n    span {\n      height: $top-sites-title-height;\n      display: block;\n      overflow: hidden;\n      text-overflow: ellipsis;\n      white-space: nowrap;\n    }\n\n    &.pinned {\n      span {\n        padding: 0 13px;\n      }\n    }\n  }\n\n  .edit-button {\n    background-image: url('#{$image-path}glyph-edit-16.svg');\n  }\n\n  &.placeholder {\n    .tile {\n      box-shadow: inset $inner-box-shadow;\n    }\n\n    .screenshot {\n      display: none;\n    }\n  }\n\n  &.dragged {\n    .tile {\n      background: $grey-20;\n      box-shadow: none;\n\n      *,\n      &::before {\n        display: none;\n      }\n    }\n\n    .title {\n      visibility: hidden;\n    }\n  }\n}\n\n// Always hide .hide-for-narrow if wide layout is disabled\n.wide-layout-disabled {\n  .top-sites-list {\n    .hide-for-narrow {\n      display: none;\n    }\n  }\n}\n\n.wide-layout-enabled {\n  .top-sites-list {\n    // Eight columns\n    @media (min-width: $break-point-widest) and (max-width: $break-point-widest + 2 * $card-width) {\n      :nth-child(8n) {\n        @include context-menu-open-left;\n      }\n    }\n\n    @media (min-width: $break-point-widest) and (max-width: $break-point-widest + $card-width) {\n      :nth-child(8n+7) {\n        @include context-menu-open-left;\n      }\n    }\n\n    @media not all and (min-width: $break-point-widest) {\n      .hide-for-narrow {\n        display: none;\n      }\n    }\n  }\n}\n\n.edit-topsites-wrapper {\n  .modal {\n    box-shadow: $shadow-secondary;\n    left: 0;\n    margin: 0 auto;\n    position: fixed;\n    right: 0;\n    top: 40px;\n    width: $wrapper-default-width;\n\n    @media (min-width: $break-point-small) {\n      width: $wrapper-max-width-small;\n    }\n\n    @media (min-width: $break-point-medium) {\n      width: $wrapper-max-width-medium;\n    }\n\n    @media (min-width: $break-point-large) {\n      width: $wrapper-max-width-large;\n    }\n  }\n}\n\n.topsite-form {\n  $form-width: 300px;\n  $form-spacing: 32px;\n\n  .form-input-container {\n    max-width: $form-width + 3 * $form-spacing + $rich-icon-size;\n    margin: 0 auto;\n    padding: $form-spacing;\n\n    .top-site-outer {\n      padding: 0;\n      margin: 24px 0 0;\n      margin-inline-start: $form-spacing;\n      pointer-events: none;\n    }\n\n    .section-title {\n      text-transform: none;\n      font-size: 16px;\n      margin: 0 0 16px;\n    }\n  }\n\n  .fields-and-preview {\n    display: flex;\n  }\n\n  label {\n    font-size: $section-title-font-size;\n  }\n\n  .form-wrapper {\n    width: 100%;\n\n    .field {\n      position: relative;\n\n      .icon-clear-input {\n        position: absolute;\n        transform: translateY(-50%);\n        top: 50%;\n        offset-inline-end: 8px;\n      }\n    }\n\n    .url {\n      input:dir(ltr) {\n        padding-right: 32px;\n      }\n\n      input:dir(rtl) {\n        padding-left: 32px;\n\n        &:not(:placeholder-shown) {\n          direction: ltr;\n          text-align: right;\n        }\n      }\n    }\n\n    .enable-custom-image-input {\n      display: inline-block;\n      font-size: 13px;\n      margin-top: 4px;\n      cursor: pointer;\n\n      &:hover {\n        text-decoration: underline;\n        color: $blue-60;\n      }\n    }\n\n    .custom-image-input-container {\n      margin-top: 4px;\n\n      .loading-container {\n        width: 16px;\n        height: 16px;\n        overflow: hidden;\n        position: absolute;\n        transform: translateY(-50%);\n        top: 50%;\n        offset-inline-end: 8px;\n      }\n\n      // This animation is derived from Firefox's tab loading animation\n      // See https://searchfox.org/mozilla-central/rev/b29daa46443b30612415c35be0a3c9c13b9dc5f6/browser/themes/shared/tabs.inc.css#208-216\n      .loading-animation {\n        @keyframes tab-throbber-animation {\n          100% { transform: translateX(-960px); }\n        }\n\n        @keyframes tab-throbber-animation-rtl {\n          100% { transform: translateX(960px); }\n        }\n\n        width: 960px;\n        height: 16px;\n        -moz-context-properties: fill;\n        fill: $blue-50;\n        background-image: url('chrome://browser/skin/tabbrowser/loading.svg');\n        animation: tab-throbber-animation 1.05s steps(60) infinite;\n\n        &:dir(rtl) {\n          animation-name: tab-throbber-animation-rtl;\n        }\n      }\n    }\n\n    input {\n      &[type='text'] {\n        border: $input-border;\n        border-radius: 2px;\n        margin: 8px 0;\n        padding: 0 8px;\n        height: 32px;\n        width: 100%;\n        font-size: 15px;\n\n        &:focus {\n          border: $input-border-active;\n          box-shadow: $input-focus-boxshadow;\n        }\n\n        &[disabled] {\n          border: $input-border;\n          box-shadow: none;\n          opacity: 0.4;\n        }\n      }\n    }\n\n    .invalid {\n      input {\n        &[type='text'] {\n          border: $input-error-border;\n          box-shadow: $input-error-boxshadow;\n        }\n      }\n    }\n\n    .error-tooltip {\n      animation: fade-up-tt 450ms;\n      background: $red-60;\n      border-radius: 2px;\n      color: $white;\n      offset-inline-start: 3px;\n      padding: 5px 12px;\n      position: absolute;\n      top: 44px;\n      z-index: 1;\n\n      // tooltip caret\n      &::before {\n        background: $red-60;\n        bottom: -8px;\n        content: '.';\n        height: 16px;\n        offset-inline-start: 12px;\n        position: absolute;\n        text-indent: -999px;\n        top: -7px;\n        transform: rotate(45deg);\n        white-space: nowrap;\n        width: 16px;\n        z-index: -1;\n      }\n    }\n  }\n\n  .actions {\n    justify-content: flex-end;\n\n    button {\n      margin-inline-start: 10px;\n      margin-inline-end: 0;\n    }\n  }\n\n  @media (max-width: $break-point-small) {\n    .fields-and-preview {\n      flex-direction: column;\n\n      .top-site-outer {\n        margin-inline-start: 0;\n      }\n    }\n  }\n}\n\n//used for tooltips below form element\n@keyframes fade-up-tt {\n  0% {\n    opacity: 0;\n    transform: translateY(15px);\n  }\n\n  100% {\n    opacity: 1;\n    transform: translateY(0);\n  }\n}\n",
-		".sections-list {\n  .section-list {\n    display: grid;\n    grid-gap: $base-gutter;\n    grid-template-columns: repeat(auto-fit, $card-width);\n    margin: 0;\n\n    @media (max-width: $break-point-medium) {\n      @include context-menu-open-left;\n    }\n\n    @media (min-width: $break-point-medium) and (max-width: $break-point-large) {\n      :nth-child(2n) {\n        @include context-menu-open-left;\n      }\n    }\n\n    @media (min-width: $break-point-large) and (max-width: $break-point-large + 2 * $card-width) {\n      :nth-child(3n) {\n        @include context-menu-open-left;\n      }\n    }\n  }\n\n  .section-empty-state {\n    border: $border-secondary;\n    border-radius: $border-radius;\n    display: flex;\n    height: $card-height;\n    width: 100%;\n\n    .empty-state {\n      margin: auto;\n      max-width: 350px;\n\n      .empty-state-icon {\n        background-position: center;\n        background-repeat: no-repeat;\n        background-size: 50px 50px;\n        -moz-context-properties: fill;\n        display: block;\n        fill: $fill-secondary;\n        height: 50px;\n        margin: 0 auto;\n        width: 50px;\n      }\n\n      .empty-state-message {\n        color: $text-secondary;\n        font-size: 13px;\n        margin-bottom: 0;\n        text-align: center;\n      }\n    }\n  }\n}\n\n.wide-layout-enabled {\n  .sections-list {\n    .section-list {\n      @media (min-width: $break-point-widest) and (max-width: $break-point-widest + 2 * $card-width) {\n        :nth-child(3n) {\n          @include context-menu-open-left;\n        }\n      }\n\n      @media (min-width: $break-point-widest) {\n        grid-template-columns: repeat(auto-fit, $card-width-large);\n      }\n    }\n  }\n\n  .section-empty-state {\n    height: $card-height-large;\n  }\n}\n",
-		".topic {\n  color: $text-secondary;\n  font-size: 12px;\n  line-height: 1.6;\n  margin-top: $topic-margin-top;\n\n  @media (min-width: $break-point-large) {\n    line-height: 16px;\n  }\n\n  ul {\n    margin: 0;\n    padding: 0;\n    @media (min-width: $break-point-large) {\n      display: inline;\n      padding-inline-start: 12px;\n    }\n  }\n\n\n  ul li {\n    display: inline-block;\n\n    &::after {\n      content: '•';\n      padding: 8px;\n    }\n\n    &:last-child::after {\n      content: none;\n    }\n  }\n\n  .topic-link {\n    color: $link-secondary;\n  }\n\n  .topic-read-more {\n    color: $link-secondary;\n\n    @media (min-width: $break-point-large) {\n      // This is floating to accomodate a very large number of topics and/or\n      // very long topic names due to l10n.\n      float: right;\n\n      &:dir(rtl) {\n        float: left;\n      }\n    }\n\n    &::after {\n      background: url('#{$image-path}topic-show-more-12.svg') no-repeat center center;\n      content: '';\n      -moz-context-properties: fill;\n      display: inline-block;\n      fill: $link-secondary;\n      height: 16px;\n      margin-inline-start: 5px;\n      vertical-align: top;\n      width: 12px;\n    }\n\n    &:dir(rtl)::after  {\n      transform: scaleX(-1);\n    }\n  }\n\n  // This is a clearfix to for the topics-read-more link which is floating and causes\n  // some jank when we set overflow:hidden for the animation.\n  &::after {\n    clear: both;\n    content: '';\n    display: table;\n  }\n}\n",
-		".search-wrapper {\n  $search-border-radius: 3px;\n  $search-focus-color: $blue-50;\n  $search-height: 35px;\n  $search-input-left-label-width: 35px;\n  $search-button-width: 36px;\n  $search-glyph-image: url('chrome://browser/skin/search-glass.svg');\n  $glyph-forward: url('chrome://browser/skin/forward.svg');\n  $search-glyph-size: 16px;\n  $search-glyph-fill: $grey-90-40;\n  // This is positioned so it is visually (not metrically) centered. r=abenson\n  $search-glyph-left-position: 12px;\n\n  cursor: default;\n  display: flex;\n  height: $search-height;\n  // The extra 1px is to account for the box-shadow being outside of the element\n  // instead of inside. It needs to be like that to not overlap the inner background\n  // color of the hover state of the submit button.\n  margin: 1px 1px $section-spacing;\n  position: relative;\n  width: 100%;\n\n  input {\n    border: 0;\n    border-radius: $search-border-radius;\n    box-shadow: $shadow-secondary, 0 0 0 1px $black-15;\n    font-size: 15px;\n    padding: 0;\n    padding-inline-end: $search-button-width;\n    padding-inline-start: $search-input-left-label-width;\n    width: 100%;\n  }\n\n  &:hover input {\n    box-shadow: $shadow-secondary, 0 0 0 1px $black-25;\n  }\n\n  &:active input,\n  input:focus {\n    box-shadow: 0 0 0 $os-search-focus-shadow-radius $search-focus-color;\n  }\n\n  .search-label {\n    background: $search-glyph-image no-repeat $search-glyph-left-position center / $search-glyph-size;\n    -moz-context-properties: fill;\n    fill: $search-glyph-fill;\n    height: 100%;\n    offset-inline-start: 0;\n    position: absolute;\n    width: $search-input-left-label-width;\n  }\n\n  .search-button {\n    background: $glyph-forward no-repeat center center;\n    background-size: 16px 16px;\n    border: 0;\n    border-radius: 0 $border-radius $border-radius 0;\n    -moz-context-properties: fill;\n    fill: $search-glyph-fill;\n    height: 100%;\n    offset-inline-end: 0;\n    position: absolute;\n    width: $search-button-width;\n\n    &:focus,\n    &:hover {\n      background-color: $grey-90-10;\n      cursor: pointer;\n    }\n\n    &:active {\n      background-color: $grey-90-20;\n    }\n\n    &:dir(rtl) {\n      transform: scaleX(-1);\n    }\n  }\n\n  // Adjust the style of the contentSearchUI-generated table\n  .contentSearchSuggestionTable { // sass-lint:disable-line class-name-format\n    border: 0;\n    transform: translateY(2px);\n  }\n}\n",
-		".context-menu {\n  background: $background-primary;\n  border-radius: $context-menu-border-radius;\n  box-shadow: $context-menu-shadow;\n  display: block;\n  font-size: $context-menu-font-size;\n  margin-inline-start: 5px;\n  offset-inline-start: 100%;\n  position: absolute;\n  top: ($context-menu-button-size / 4);\n  z-index: 10000;\n\n  > ul {\n    list-style: none;\n    margin: 0;\n    padding: $context-menu-outer-padding 0;\n\n    > li {\n      margin: 0;\n      width: 100%;\n\n      &.separator {\n        border-bottom: 1px solid $context-menu-border-color;\n        margin: $context-menu-outer-padding 0;\n      }\n\n      > a {\n        align-items: center;\n        color: inherit;\n        cursor: pointer;\n        display: flex;\n        line-height: 16px;\n        outline: none;\n        padding: $context-menu-item-padding;\n        white-space: nowrap;\n\n        &:-moz-any(:focus, :hover) {\n          background: $input-primary;\n          color: $white;\n\n          a {\n            color: $grey-90;\n          }\n\n          .icon {\n            fill: $white;\n          }\n\n          &:-moz-any(:focus, :hover) {\n            color: $white;\n          }\n        }\n\n        &.disabled {\n          opacity: 0.4;\n          pointer-events: none;\n        }\n      }\n    }\n  }\n}\n",
-		".confirmation-dialog {\n  .modal {\n    box-shadow: 0 2px 2px 0 $black-10;\n    left: 50%;\n    margin-left: -200px;\n    position: fixed;\n    top: 20%;\n    width: 400px;\n  }\n\n  section {\n    margin: 0;\n  }\n\n  .modal-message {\n    display: flex;\n    padding: 16px;\n    padding-bottom: 0;\n\n    p {\n      margin: 0;\n      margin-bottom: 16px;\n    }\n  }\n\n  .actions {\n    border: 0;\n    display: flex;\n    flex-wrap: nowrap;\n    padding: 0 16px;\n\n    button {\n      margin-inline-end: 16px;\n      padding-inline-end: 18px;\n      padding-inline-start: 18px;\n      white-space: normal;\n      width: 50%;\n\n      &.done {\n        margin-inline-end: 0;\n        margin-inline-start: 0;\n      }\n    }\n  }\n\n  .icon {\n    margin-inline-end: 16px;\n  }\n}\n\n.modal-overlay {\n  background: $background-secondary;\n  height: 100%;\n  left: 0;\n  opacity: 0.8;\n  position: fixed;\n  top: 0;\n  width: 100%;\n  z-index: 11001;\n}\n\n.modal {\n  background: $white;\n  border: $border-secondary;\n  border-radius: 5px;\n  font-size: 15px;\n  z-index: 11002;\n}\n",
-		".card-outer {\n  @include context-menu-button;\n  background: $white;\n  border-radius: $border-radius;\n  display: inline-block;\n  height: $card-height;\n  margin-inline-end: $base-gutter;\n  position: relative;\n  width: 100%;\n\n  &.placeholder {\n    background: transparent;\n\n    .card {\n      box-shadow: inset $inner-box-shadow;\n    }\n  }\n\n  .card {\n    border-radius: $border-radius;\n    box-shadow: $shadow-secondary;\n    height: 100%;\n  }\n\n  > a {\n    color: inherit;\n    display: block;\n    height: 100%;\n    outline: none;\n    position: absolute;\n    width: 100%;\n\n    &:-moz-any(.active, :focus) {\n      .card {\n        @include fade-in-card;\n      }\n\n      .card-title {\n        color: $link-primary;\n      }\n    }\n  }\n\n  &:-moz-any(:hover, :focus, .active):not(.placeholder) {\n    @include fade-in-card;\n    @include context-menu-button-hover;\n    outline: none;\n\n    .card-title {\n      color: $link-primary;\n    }\n  }\n\n  .card-preview-image-outer {\n    background-color: $background-primary;\n    border-radius: $border-radius $border-radius 0 0;\n    height: $card-preview-image-height;\n    overflow: hidden;\n    position: relative;\n\n    &::after {\n      border-bottom: 1px solid $black-5;\n      bottom: 0;\n      content: '';\n      position: absolute;\n      width: 100%;\n    }\n\n    .card-preview-image {\n      background-position: center;\n      background-repeat: no-repeat;\n      background-size: cover;\n      height: 100%;\n      opacity: 0;\n      transition: opacity 1s $photon-easing;\n      width: 100%;\n\n      &.loaded {\n        opacity: 1;\n      }\n    }\n  }\n\n  .card-details {\n    padding: 15px 16px 12px;\n\n    &.no-image {\n      padding-top: 16px;\n    }\n  }\n\n  .card-text {\n    max-height: 4 * $card-text-line-height + $card-title-margin;\n    overflow: hidden;\n\n    &.no-image {\n      max-height: 10 * $card-text-line-height + $card-title-margin;\n    }\n\n    &.no-host-name,\n    &.no-context {\n      max-height: 5 * $card-text-line-height + $card-title-margin;\n    }\n\n    &.no-image.no-host-name,\n    &.no-image.no-context {\n      max-height: 11 * $card-text-line-height + $card-title-margin;\n    }\n\n    &.no-host-name.no-context {\n      max-height: 6 * $card-text-line-height + $card-title-margin;\n    }\n\n    &.no-image.no-host-name.no-context {\n      max-height: 12 * $card-text-line-height + $card-title-margin;\n    }\n\n    &:not(.no-description) .card-title {\n      max-height: 3 * $card-text-line-height;\n      overflow: hidden;\n    }\n  }\n\n  .card-host-name {\n    color: $text-secondary;\n    font-size: 10px;\n    overflow: hidden;\n    padding-bottom: 4px;\n    text-overflow: ellipsis;\n    text-transform: uppercase;\n  }\n\n  .card-title {\n    font-size: 14px;\n    line-height: $card-text-line-height;\n    margin: 0 0 $card-title-margin;\n    word-wrap: break-word;\n  }\n\n  .card-description {\n    font-size: 12px;\n    line-height: $card-text-line-height;\n    margin: 0;\n    overflow: hidden;\n    word-wrap: break-word;\n  }\n\n  .card-context {\n    bottom: 0;\n    color: $text-secondary;\n    display: flex;\n    font-size: 11px;\n    left: 0;\n    padding: 12px 16px 12px 14px;\n    position: absolute;\n    right: 0;\n  }\n\n  .card-context-icon {\n    fill: $fill-secondary;\n    margin-inline-end: 6px;\n  }\n\n  .card-context-label {\n    flex-grow: 1;\n    line-height: $icon-size;\n    overflow: hidden;\n    text-overflow: ellipsis;\n    white-space: nowrap;\n  }\n}\n\n.wide-layout-enabled {\n  $line-height: 23px;\n\n  .card-outer {\n    @media (min-width: $break-point-widest) {\n      height: $card-height-large;\n\n      .card-preview-image-outer {\n        height: $card-preview-image-height-large;\n      }\n\n      .card-details {\n        padding: 13px 16px 12px;\n      }\n\n      .card-text {\n        max-height: 6 * $line-height + $card-title-margin;\n      }\n\n      .card-host-name {\n        font-size: 12px;\n        padding-bottom: 5px;\n      }\n\n      .card-title {\n        font-size: 17px;\n        line-height: $line-height;\n        margin-bottom: 0;\n      }\n\n      .card-text:not(.no-description) {\n        .card-title {\n          max-height: 3 * $line-height;\n        }\n      }\n\n      .card-description {\n        font-size: 15px;\n        line-height: $line-height;\n      }\n\n      .card-context {\n        bottom: 4px;\n        font-size: 14px;\n      }\n    }\n  }\n}\n",
-		".manual-migration-container {\n  color: $text-conditional;\n  font-size: 13px;\n  line-height: 15px;\n  margin-bottom: $section-spacing;\n  text-align: center;\n\n  @media (min-width: $break-point-medium) {\n    display: flex;\n    justify-content: space-between;\n    text-align: left;\n  }\n\n  p {\n    margin: 0;\n    @media (min-width: $break-point-medium) {\n      align-self: center;\n      display: flex;\n      justify-content: space-between;\n    }\n  }\n\n  .icon {\n    display: none;\n    @media (min-width: $break-point-medium) {\n      align-self: center;\n      display: block;\n      fill: $fill-secondary;\n      margin-inline-end: 6px;\n    }\n  }\n}\n\n.manual-migration-actions {\n  border: 0;\n  display: block;\n  flex-wrap: nowrap;\n\n  @media (min-width: $break-point-medium) {\n    display: flex;\n    justify-content: space-between;\n    padding: 0;\n  }\n\n  button {\n    align-self: center;\n    height: 26px;\n    margin: 0;\n    margin-inline-start: 20px;\n    padding: 0 12px;\n  }\n}\n",
-		".collapsible-section {\n  padding: $section-vertical-padding $section-horizontal-padding;\n  transition-delay: 100ms;\n  transition-duration: 100ms;\n  transition-property: background-color;\n\n  .section-title {\n    margin: 0;\n\n    .click-target {\n      cursor: pointer;\n      vertical-align: top;\n      white-space: nowrap;\n    }\n\n    .collapsible-arrow {\n      margin-inline-start: 8px;\n      margin-top: -1px;\n    }\n  }\n\n  .section-top-bar {\n    position: relative;\n\n    .context-menu-button {\n      background: url('chrome://browser/skin/page-action.svg') no-repeat right center;\n      border: 0;\n      cursor: pointer;\n      fill: $grey-50;\n      height: $section-context-menu-button-height;\n      offset-inline-end: 0;\n      opacity: 0;\n      position: absolute;\n      top: 0;\n      transition-duration: 200ms;\n      transition-property: opacity;\n      width: $context-menu-button-size;\n\n      &:-moz-any(:active, :focus, :hover) {\n        fill: $grey-90;\n        opacity: 1;\n      }\n    }\n\n    .context-menu {\n      top: 16px;\n    }\n\n    @media (max-width: $break-point-widest + $card-width * 1.5) {\n      @include context-menu-open-left;\n    }\n  }\n\n  &:hover,\n  &.active {\n    .section-top-bar {\n      .context-menu-button {\n        opacity: 1;\n      }\n    }\n  }\n\n  &.active {\n    background: $grey-20-60;\n    border-radius: 4px;\n\n    .section-top-bar {\n      .context-menu-button {\n        fill: $grey-90;\n      }\n    }\n  }\n\n  .section-disclaimer {\n    $max-button-width: 130px;\n    $min-button-height: 26px;\n\n    color: $grey-60;\n    font-size: 13px;\n    margin-bottom: 16px;\n    position: relative;\n\n    .section-disclaimer-text {\n      display: inline-block;\n      min-height: $min-button-height;\n      width: calc(100% - #{$max-button-width});\n\n      @media (max-width: $break-point-medium) {\n        width: $card-width;\n      }\n    }\n\n    a {\n      color: $link-secondary;\n      padding-left: 3px;\n    }\n\n    button {\n      background: $grey-10;\n      border: 1px solid $grey-40;\n      border-radius: 4px;\n      cursor: pointer;\n      margin-top: 2px;\n      max-width: $max-button-width;\n      min-height: $min-button-height;\n      offset-inline-end: 0;\n\n      &:hover:not(.dismiss) {\n        box-shadow: $shadow-primary;\n        transition: box-shadow 150ms;\n      }\n\n      @media (min-width: $break-point-small) {\n        position: absolute;\n      }\n    }\n  }\n\n  .section-body-fallback {\n    height: $card-height;\n  }\n\n  .section-body {\n    // This is so the top sites favicon and card dropshadows don't get clipped during animation:\n    $horizontal-padding: 7px;\n    margin: 0 (-$horizontal-padding);\n    padding: 0 $horizontal-padding;\n\n    &.animating {\n      overflow: hidden;\n      pointer-events: none;\n    }\n  }\n\n  &.animation-enabled {\n    .section-title {\n      .collapsible-arrow {\n        transition: transform 0.5s $photon-easing;\n      }\n    }\n\n    .section-body {\n      transition: max-height 0.5s $photon-easing;\n    }\n  }\n\n  &.collapsed {\n    .section-body {\n      max-height: 0;\n      overflow: hidden;\n    }\n  }\n}\n"
+		"// Photon colors from http://design.firefox.com/photon/visuals/color.html\n$blue-40: #45A1FF;\n$blue-50: #0A84FF;\n$blue-60: #0060DF;\n$blue-70: #003EAA;\n$blue-80: #002275;\n$grey-10: #F9F9FA;\n$grey-20: #EDEDF0;\n$grey-30: #D7D7DB;\n$grey-40: #B1B1B3;\n$grey-50: #737373;\n$grey-60: #4A4A4F;\n$grey-70: #38383D;\n$grey-80: #2A2A2E;\n$grey-90: #0C0C0D;\n$teal-70: #008EA4;\n$red-60: #D70022;\n$yellow-50: #FFE900;\n\n// Photon opacity from http://design.firefox.com/photon/visuals/color.html#opacity\n$grey-10-20: rgba($grey-10, 0.2);\n$grey-10-40: rgba($grey-10, 0.4);\n$grey-10-60: rgba($grey-10, 0.6);\n$grey-10-80: rgba($grey-10, 0.8);\n$grey-20-60: rgba($grey-20, 0.6);\n$grey-90-10: rgba($grey-90, 0.1);\n$grey-90-20: rgba($grey-90, 0.2);\n$grey-90-30: rgba($grey-90, 0.3);\n$grey-90-40: rgba($grey-90, 0.4);\n$grey-90-50: rgba($grey-90, 0.5);\n$grey-90-60: rgba($grey-90, 0.6);\n$grey-90-70: rgba($grey-90, 0.7);\n$grey-90-80: rgba($grey-90, 0.8);\n$grey-90-90: rgba($grey-90, 0.9);\n\n$black: #000;\n$black-5: rgba($black, 0.05);\n$black-10: rgba($black, 0.1);\n$black-15: rgba($black, 0.15);\n$black-20: rgba($black, 0.2);\n$black-25: rgba($black, 0.25);\n$black-30: rgba($black, 0.3);\n\n// Photon transitions from http://design.firefox.com/photon/motion/duration-and-easing.html\n$photon-easing: cubic-bezier(0.07, 0.95, 0, 1);\n\n// Other colors\n$white: #FFF;\n$pocket-teal: #50BCB6;\n\n$border-radius: 3px;\n\n// Grid related styles\n$base-gutter: 32px;\n$section-horizontal-padding: 25px;\n$section-vertical-padding: 10px;\n$section-spacing: 40px - $section-vertical-padding * 2;\n$grid-unit: 96px; // 1 top site\n\n$icon-size: 16px;\n$smaller-icon-size: 12px;\n$larger-icon-size: 32px;\n\n$wrapper-default-width: $grid-unit * 2 + $base-gutter * 1 + $section-horizontal-padding * 2; // 2 top sites\n$wrapper-max-width-small: $grid-unit * 3 + $base-gutter * 2 + $section-horizontal-padding * 2; // 3 top sites\n$wrapper-max-width-medium: $grid-unit * 4 + $base-gutter * 3 + $section-horizontal-padding * 2; // 4 top sites\n$wrapper-max-width-large: $grid-unit * 6 + $base-gutter * 5 + $section-horizontal-padding * 2; // 6 top sites\n$wrapper-max-width-widest: $grid-unit * 8 + $base-gutter * 7 + $section-horizontal-padding * 2; // 8 top sites\n// For the breakpoints, we need to add space for the scrollbar to avoid weird\n// layout issues when the scrollbar is visible. 16px is wide enough to cover all\n// OSes and keeps it simpler than a per-OS value.\n$scrollbar-width: 16px;\n$break-point-small: $wrapper-max-width-small + $base-gutter * 2 + $scrollbar-width;\n$break-point-medium: $wrapper-max-width-medium + $base-gutter * 2 + $scrollbar-width;\n$break-point-large: $wrapper-max-width-large + $base-gutter * 2 + $scrollbar-width;\n$break-point-widest: $wrapper-max-width-widest + $base-gutter * 2 + $scrollbar-width;\n\n$section-title-font-size: 13px;\n\n$card-width: $grid-unit * 2 + $base-gutter;\n$card-height: 266px;\n$card-preview-image-height: 122px;\n$card-title-margin: 2px;\n$card-text-line-height: 19px;\n// Larger cards for wider screens:\n$card-width-large: 309px;\n$card-height-large: 370px;\n$card-preview-image-height-large: 155px;\n\n$topic-margin-top: 12px;\n\n$context-menu-button-size: 27px;\n$context-menu-button-boxshadow: 0 2px $grey-90-10;\n$context-menu-shadow: 0 5px 10px $black-30, 0 0 0 1px $black-20;\n$context-menu-font-size: 14px;\n$context-menu-border-radius: 5px;\n$context-menu-outer-padding: 5px;\n$context-menu-item-padding: 3px 12px;\n\n$error-fallback-font-size: 12px;\n$error-fallback-line-height: 1.5;\n\n$image-path: '../data/content/assets/';\n\n$snippets-container-height: 120px;\n\n@mixin fade-in {\n  box-shadow: inset $inner-box-shadow, $shadow-primary;\n  transition: box-shadow 150ms;\n}\n\n@mixin fade-in-card {\n  box-shadow: $shadow-primary;\n  transition: box-shadow 150ms;\n}\n\n@mixin context-menu-button {\n  .context-menu-button {\n    background-clip: padding-box;\n    background-color: var(--newtab-contextmenu-button-color);\n    background-image: url('chrome://browser/skin/page-action.svg');\n    background-position: 55%;\n    border: $border-primary;\n    border-radius: 100%;\n    box-shadow: $context-menu-button-boxshadow;\n    cursor: pointer;\n    fill: var(--newtab-icon-primary-color);\n    height: $context-menu-button-size;\n    offset-inline-end: -($context-menu-button-size / 2);\n    opacity: 0;\n    position: absolute;\n    top: -($context-menu-button-size / 2);\n    transform: scale(0.25);\n    transition-duration: 200ms;\n    transition-property: transform, opacity;\n    width: $context-menu-button-size;\n\n    &:-moz-any(:active, :focus) {\n      opacity: 1;\n      transform: scale(1);\n    }\n  }\n}\n\n@mixin context-menu-button-hover {\n  .context-menu-button {\n    opacity: 1;\n    transform: scale(1);\n  }\n}\n\n@mixin context-menu-open-middle {\n  .context-menu {\n    margin-inline-end: auto;\n    margin-inline-start: auto;\n    offset-inline-end: auto;\n    offset-inline-start: -$base-gutter;\n  }\n}\n\n@mixin context-menu-open-left {\n  .context-menu {\n    margin-inline-end: 5px;\n    margin-inline-start: auto;\n    offset-inline-end: 0;\n    offset-inline-start: auto;\n  }\n}\n\n@mixin flip-icon {\n  &:dir(rtl) {\n    transform: scaleX(-1);\n  }\n}\n",
+		"// Default theme\n.outer-wrapper {\n  // General styles\n  --newtab-background-color: $grey-10;\n  --newtab-border-primary-color: $grey-40;\n  --newtab-border-secondary-color: $grey-30;\n  --newtab-button-primary-color: $blue-60;\n  --newtab-button-secondary-color: inherit;\n  --newtab-element-active-color: $grey-20-60;\n  --newtab-icon-primary-color: $grey-90-80;\n  --newtab-icon-secondary-color: $grey-90-60;\n  --newtab-icon-tertiary-color: $grey-30;\n  --newtab-inner-box-shadow-color: $black-10;\n  --newtab-link-primary-color: $blue-60;\n  --newtab-link-secondary-color: $teal-70;\n  --newtab-text-conditional-color: $grey-60;\n  --newtab-text-primary-color: $grey-90;\n  --newtab-text-secondary-color: $grey-50;\n  --newtab-textbox-border: $grey-90-20;\n  --newtab-textbox-color: inherit;\n\n  // Context menu\n  --newtab-contextmenu-button-color: $white;\n\n  // Modal + overlay\n  --newtab-modal-color: $white;\n  --newtab-overlay-color: $grey-20;\n\n  // Sections\n  --newtab-section-header-text-color: $grey-50;\n  --newtab-section-navigation-text-color: $grey-50;\n  --newtab-section-active-contextmenu-color: $grey-90;\n\n  // Search\n  --newtab-search-background-color: $white;\n  --newtab-search-border-color: transparent;\n  --newtab-search-focus-border-color: $blue-50;\n  --newtab-search-icon-color: $grey-90-40;\n  --newtab-search-text-color: inherit;\n\n  // Top Sites\n  --newtab-topsites-label-color: inherit;\n\n  // Cards\n  --newtab-card-background-color: $white;\n  --newtab-card-active-outline-color: $grey-30;\n}\n\n// Dark theme\n.outer-wrapper.dark-theme {\n  // General styles\n  --newtab-background-color: $grey-80;\n  --newtab-border-primary-color: $grey-10-80;\n  --newtab-border-secondary-color: $grey-10-20;\n  --newtab-button-primary-color: $blue-40;\n  --newtab-button-secondary-color: $grey-70;\n  --newtab-element-active-color: $grey-60;\n  --newtab-icon-primary-color: $grey-10-80;\n  --newtab-icon-secondary-color: $grey-10-40;\n  --newtab-icon-tertiary-color: $grey-10-20;\n  --newtab-inner-box-shadow-color: $grey-10-20;\n  --newtab-link-primary-color: $blue-40;\n  --newtab-link-secondary-color: $pocket-teal;\n  --newtab-text-conditional-color: $grey-10;\n  --newtab-text-primary-color: $grey-10;\n  --newtab-text-secondary-color: $grey-10-40;\n  --newtab-textbox-border: $grey-10-40;\n  --newtab-textbox-color: $grey-80;\n\n  // Context menu\n  --newtab-contextmenu-button-color: $grey-80;\n\n  // Modal + overlay\n  --newtab-modal-color: $grey-90;\n  --newtab-overlay-color: $grey-80;\n\n  // Sections\n  --newtab-section-header-text-color: $grey-10-80;\n  --newtab-section-navigation-text-color: $grey-10-80;\n  --newtab-section-active-contextmenu-color: $white;\n\n  // Search\n  --newtab-search-background-color: $grey-60;\n  --newtab-search-border-color: $grey-10-40;\n  --newtab-search-focus-border-color: $blue-40;\n  --newtab-search-icon-color: $grey-10-60;\n  --newtab-search-text-color: $grey-10-60;\n\n  // Top Sites\n  --newtab-topsites-label-color: $grey-10-80;\n\n  // Cards\n  --newtab-card-background-color: $grey-90;\n  --newtab-card-active-outline-color: $grey-60;\n}\n\n// scss variables related to the theme.\n$border-primary: 1px solid var(--newtab-border-primary-color);\n$border-secondary: 1px solid var(--newtab-border-secondary-color);\n$input-primary: $blue-60;\n$shadow-primary: 0 0 0 5px var(--newtab-card-active-outline-color);\n$shadow-secondary: 0 1px 4px 0 $grey-90-10;\n$input-border: solid 1px var(--newtab-textbox-border);\n$input-border-active: solid 1px $blue-50;\n$input-error-border: solid 1px $red-60;\n$input-error-boxshadow: 0 0 0 1px $red-60, 0 0 0 4px rgba($red-60, 0.3);\n$input-focus-boxshadow: 0 0 0 1px $blue-50, 0 0 0 4px rgba($blue-50, 0.3);\n$inner-box-shadow: 0 0 0 1px var(--newtab-inner-box-shadow-color);\n",
+		".icon {\n  background-position: center center;\n  background-repeat: no-repeat;\n  background-size: $icon-size;\n  -moz-context-properties: fill;\n  display: inline-block;\n  fill: var(--newtab-icon-primary-color);\n  height: $icon-size;\n  vertical-align: middle;\n  width: $icon-size;\n\n  &.icon-spacer {\n    margin-inline-end: 8px;\n  }\n\n  &.icon-small-spacer {\n    margin-inline-end: 6px;\n  }\n\n  &.icon-bookmark-added {\n    background-image: url('chrome://browser/skin/bookmark.svg');\n  }\n\n  &.icon-bookmark-hollow {\n    background-image: url('chrome://browser/skin/bookmark-hollow.svg');\n  }\n\n  &.icon-clear-input {\n    fill: var(--newtab-icon-secondary-color);\n    background-image: url('#{$image-path}glyph-cancel-16.svg');\n  }\n\n  &.icon-delete {\n    background-image: url('#{$image-path}glyph-delete-16.svg');\n  }\n\n  &.icon-modal-delete {\n    background-image: url('#{$image-path}glyph-modal-delete-32.svg');\n    background-size: $larger-icon-size;\n    height: $larger-icon-size;\n    width: $larger-icon-size;\n  }\n\n  &.icon-dismiss {\n    background-image: url('#{$image-path}glyph-dismiss-16.svg');\n  }\n\n  &.icon-info {\n    background-image: url('#{$image-path}glyph-info-16.svg');\n  }\n\n  &.icon-import {\n    background-image: url('#{$image-path}glyph-import-16.svg');\n  }\n\n  &.icon-new-window {\n    @include flip-icon;\n    background-image: url('#{$image-path}glyph-newWindow-16.svg');\n  }\n\n  &.icon-new-window-private {\n    background-image: url('chrome://browser/skin/privateBrowsing.svg');\n  }\n\n  &.icon-settings {\n    background-image: url('chrome://browser/skin/settings.svg');\n  }\n\n  &.icon-pin {\n    @include flip-icon;\n    background-image: url('#{$image-path}glyph-pin-16.svg');\n  }\n\n  &.icon-unpin {\n    @include flip-icon;\n    background-image: url('#{$image-path}glyph-unpin-16.svg');\n  }\n\n  &.icon-edit {\n    background-image: url('#{$image-path}glyph-edit-16.svg');\n  }\n\n  &.icon-pocket {\n    background-image: url('#{$image-path}glyph-pocket-16.svg');\n  }\n\n  &.icon-historyItem { // sass-lint:disable-line class-name-format\n    background-image: url('#{$image-path}glyph-historyItem-16.svg');\n  }\n\n  &.icon-trending {\n    background-image: url('#{$image-path}glyph-trending-16.svg');\n    transform: translateY(2px); // trending bolt is visually top heavy\n  }\n\n  &.icon-now {\n    background-image: url('chrome://browser/skin/history.svg');\n  }\n\n  &.icon-topsites {\n    background-image: url('#{$image-path}glyph-topsites-16.svg');\n  }\n\n  &.icon-pin-small {\n    @include flip-icon;\n    background-image: url('#{$image-path}glyph-pin-12.svg');\n    background-size: $smaller-icon-size;\n    height: $smaller-icon-size;\n    width: $smaller-icon-size;\n  }\n\n  &.icon-check {\n    background-image: url('chrome://browser/skin/check.svg');\n  }\n\n  &.icon-webextension {\n    background-image: url('#{$image-path}glyph-webextension-16.svg');\n  }\n\n  &.icon-highlights {\n    background-image: url('#{$image-path}glyph-highlights-16.svg');\n  }\n\n  &.icon-arrowhead-down {\n    background-image: url('#{$image-path}glyph-arrowhead-down-16.svg');\n  }\n\n  &.icon-arrowhead-down-small {\n    background-image: url('#{$image-path}glyph-arrowhead-down-12.svg');\n    background-size: $smaller-icon-size;\n    height: $smaller-icon-size;\n    width: $smaller-icon-size;\n  }\n\n  &.icon-arrowhead-forward-small {\n    background-image: url('#{$image-path}glyph-arrowhead-down-12.svg');\n    background-size: $smaller-icon-size;\n    height: $smaller-icon-size;\n    transform: rotate(-90deg);\n    width: $smaller-icon-size;\n\n    &:dir(rtl) {\n      transform: rotate(90deg);\n    }\n  }\n\n  &.icon-arrowhead-up {\n    background-image: url('#{$image-path}glyph-arrowhead-down-16.svg');\n    transform: rotate(180deg);\n  }\n\n  &.icon-add {\n    background-image: url('#{$image-path}glyph-add-16.svg');\n  }\n\n  &.icon-minimize {\n    background-image: url('#{$image-path}glyph-minimize-16.svg');\n  }\n\n  &.icon-maximize {\n    background-image: url('#{$image-path}glyph-maximize-16.svg');\n  }\n}\n",
+		".outer-wrapper {\n  background-color: var(--newtab-background-color);\n  color: var(--newtab-text-primary-color);\n  display: flex;\n  flex-grow: 1;\n  min-height: 100vh;\n  padding: ($section-spacing + $section-vertical-padding) $base-gutter $base-gutter;\n\n  &.fixed-to-top {\n    display: block;\n  }\n\n  a {\n    color: var(--newtab-link-primary-color);\n  }\n}\n\nmain {\n  margin: auto;\n  // Offset the snippets container so things at the bottom of the page are still\n  // visible when snippets / onboarding are visible. Adjust for other spacing.\n  padding-bottom: $snippets-container-height - $section-spacing - $base-gutter;\n  width: $wrapper-default-width;\n\n  @media (min-width: $break-point-small) {\n    width: $wrapper-max-width-small;\n  }\n\n  @media (min-width: $break-point-medium) {\n    width: $wrapper-max-width-medium;\n  }\n\n  @media (min-width: $break-point-large) {\n    width: $wrapper-max-width-large;\n  }\n\n  section {\n    margin-bottom: $section-spacing;\n    position: relative;\n  }\n}\n\n.wide-layout-enabled {\n  main {\n    @media (min-width: $break-point-widest) {\n      width: $wrapper-max-width-widest;\n    }\n  }\n}\n\n.base-content-fallback {\n  // Make the error message be centered against the viewport\n  height: 100vh;\n}\n\n.body-wrapper {\n  // Hide certain elements so the page structure is fixed, e.g., placeholders,\n  // while avoiding flashes of changing content, e.g., icons and text\n  $selectors-to-hide: '\n    .section-title,\n    .sections-list .section:last-of-type,\n    .topic\n  ';\n\n  #{$selectors-to-hide} {\n    opacity: 0;\n  }\n\n  &.on {\n    #{$selectors-to-hide} {\n      opacity: 1;\n    }\n  }\n}\n\n.non-collapsible-section {\n  padding: 0 $section-horizontal-padding;\n}\n\n.prefs-button {\n  button {\n    background-color: transparent;\n    border: 0;\n    cursor: pointer;\n    fill: var(--newtab-icon-primary-color);\n    offset-inline-end: 15px;\n    padding: 15px;\n    position: fixed;\n    top: 15px;\n    z-index: 12001;\n\n    &:hover,\n    &:focus {\n      background-color: var(--newtab-element-active-color);\n    }\n  }\n}\n",
+		".as-error-fallback {\n  align-items: center;\n  border-radius: $border-radius;\n  box-shadow: inset $inner-box-shadow;\n  color: var(--newtab-text-conditional-color);\n  display: flex;\n  flex-direction: column;\n  font-size: $error-fallback-font-size;\n  justify-content: center;\n  justify-items: center;\n  line-height: $error-fallback-line-height;\n\n  a {\n    color: var(--newtab-text-conditional-color);\n    text-decoration: underline;\n  }\n}\n",
+		"$top-sites-size: $grid-unit;\n$top-sites-border-radius: 6px;\n$top-sites-title-height: 30px;\n$top-sites-vertical-space: 8px;\n$screenshot-size: cover;\n$rich-icon-size: 96px;\n$default-icon-wrapper-size: 42px;\n$default-icon-size: 32px;\n$default-icon-offset: 6px;\n$half-base-gutter: $base-gutter / 2;\n\n.top-sites {\n  // Take back the margin from the bottom row of vertical spacing as well as the\n  // extra whitespace below the title text as it's vertically centered.\n  margin-bottom: $section-spacing - ($top-sites-vertical-space + $top-sites-title-height / 3);\n}\n\n.top-sites-list {\n  list-style: none;\n  margin: 0 (-$half-base-gutter);\n  padding: 0;\n\n  // Two columns\n  @media (max-width: $break-point-small) {\n    :nth-child(2n+1) {\n      @include context-menu-open-middle;\n    }\n\n    :nth-child(2n) {\n      @include context-menu-open-left;\n    }\n  }\n\n  // Three columns\n  @media (min-width: $break-point-small) and (max-width: $break-point-medium) {\n    :nth-child(3n+2),\n    :nth-child(3n) {\n      @include context-menu-open-left;\n    }\n  }\n\n  // Four columns\n  @media (min-width: $break-point-medium) and (max-width: $break-point-large) {\n    :nth-child(4n) {\n      @include context-menu-open-left;\n    }\n  }\n  @media (min-width: $break-point-medium) and (max-width: $break-point-medium + $card-width) {\n    :nth-child(4n+3) {\n      @include context-menu-open-left;\n    }\n  }\n\n  // Six columns\n  @media (min-width: $break-point-large) and (max-width: $break-point-large + 2 * $card-width) {\n    :nth-child(6n) {\n      @include context-menu-open-left;\n    }\n  }\n  @media (min-width: $break-point-large) and (max-width: $break-point-large + $card-width) {\n    :nth-child(6n+5) {\n      @include context-menu-open-left;\n    }\n  }\n\n  li {\n    margin: 0 0 $top-sites-vertical-space;\n  }\n\n  &:not(.dnd-active) {\n    .top-site-outer:-moz-any(.active, :focus, :hover) {\n      .tile {\n        @include fade-in;\n      }\n\n      @include context-menu-button-hover;\n    }\n  }\n}\n\n// container for drop zone\n.top-site-outer {\n  padding: 0 $half-base-gutter;\n  display: inline-block;\n\n  // container for context menu\n  .top-site-inner {\n    position: relative;\n\n    > a {\n      color: inherit;\n      display: block;\n      outline: none;\n\n      &:-moz-any(.active, :focus) {\n        .tile {\n          @include fade-in;\n        }\n      }\n    }\n  }\n\n  @include context-menu-button;\n\n  .tile { // sass-lint:disable-block property-sort-order\n    border-radius: $top-sites-border-radius;\n    box-shadow: inset $inner-box-shadow, $shadow-secondary;\n    height: $top-sites-size;\n    position: relative;\n    width: $top-sites-size;\n\n    // For letter fallback\n    align-items: center;\n    color: var(--newtab-text-secondary-color);\n    display: flex;\n    font-size: 32px;\n    font-weight: 200;\n    justify-content: center;\n    text-transform: uppercase;\n\n    &::before {\n      content: attr(data-fallback);\n    }\n  }\n\n  .screenshot {\n    background-color: $white;\n    background-position: top left;\n    background-size: $screenshot-size;\n    border-radius: $top-sites-border-radius;\n    box-shadow: inset $inner-box-shadow;\n    height: 100%;\n    left: 0;\n    opacity: 0;\n    position: absolute;\n    top: 0;\n    transition: opacity 1s;\n    width: 100%;\n\n    &.active {\n      opacity: 1;\n    }\n  }\n\n  // Some common styles for all icons (rich and default) in top sites\n  .top-site-icon {\n    background-color: var(--newtab-background-color);\n    background-position: center center;\n    background-repeat: no-repeat;\n    border-radius: $top-sites-border-radius;\n    box-shadow: inset $inner-box-shadow;\n    position: absolute;\n  }\n\n  .rich-icon {\n    background-size: cover;\n    height: 100%;\n    offset-inline-start: 0;\n    top: 0;\n    width: 100%;\n  }\n\n  .default-icon { // sass-lint:disable block property-sort-order\n    background-size: $default-icon-size;\n    bottom: -$default-icon-offset;\n    height: $default-icon-wrapper-size;\n    offset-inline-end: -$default-icon-offset;\n    width: $default-icon-wrapper-size;\n\n    // for corner letter fallback\n    align-items: center;\n    display: flex;\n    font-size: 20px;\n    justify-content: center;\n\n    &[data-fallback]::before {\n      content: attr(data-fallback);\n    }\n  }\n\n  .title {\n    color: var(--newtab-topsites-label-color);\n    font: message-box;\n    height: $top-sites-title-height;\n    line-height: $top-sites-title-height;\n    text-align: center;\n    width: $top-sites-size;\n    position: relative;\n\n    .icon {\n      fill: var(--newtab-icon-tertiary-color);\n      offset-inline-start: 0;\n      position: absolute;\n      top: 10px;\n    }\n\n    span {\n      height: $top-sites-title-height;\n      display: block;\n      overflow: hidden;\n      text-overflow: ellipsis;\n      white-space: nowrap;\n    }\n\n    &.pinned {\n      span {\n        padding: 0 13px;\n      }\n    }\n  }\n\n  .edit-button {\n    background-image: url('#{$image-path}glyph-edit-16.svg');\n  }\n\n  &.placeholder {\n    .tile {\n      box-shadow: inset $inner-box-shadow;\n    }\n\n    .screenshot {\n      display: none;\n    }\n  }\n\n  &.dragged {\n    .tile {\n      background: $grey-20;\n      box-shadow: none;\n\n      *,\n      &::before {\n        display: none;\n      }\n    }\n\n    .title {\n      visibility: hidden;\n    }\n  }\n}\n\n// Always hide .hide-for-narrow if wide layout is disabled\n.wide-layout-disabled {\n  .top-sites-list {\n    .hide-for-narrow {\n      display: none;\n    }\n  }\n}\n\n.wide-layout-enabled {\n  .top-sites-list {\n    // Eight columns\n    @media (min-width: $break-point-widest) and (max-width: $break-point-widest + 2 * $card-width) {\n      :nth-child(8n) {\n        @include context-menu-open-left;\n      }\n    }\n\n    @media (min-width: $break-point-widest) and (max-width: $break-point-widest + $card-width) {\n      :nth-child(8n+7) {\n        @include context-menu-open-left;\n      }\n    }\n\n    @media not all and (min-width: $break-point-widest) {\n      .hide-for-narrow {\n        display: none;\n      }\n    }\n  }\n}\n\n.edit-topsites-wrapper {\n  .modal {\n    box-shadow: $shadow-secondary;\n    left: 0;\n    margin: 0 auto;\n    position: fixed;\n    right: 0;\n    top: 40px;\n    width: $wrapper-default-width;\n\n    @media (min-width: $break-point-small) {\n      width: $wrapper-max-width-small;\n    }\n\n    @media (min-width: $break-point-medium) {\n      width: $wrapper-max-width-medium;\n    }\n\n    @media (min-width: $break-point-large) {\n      width: $wrapper-max-width-large;\n    }\n  }\n}\n\n.topsite-form {\n  $form-width: 300px;\n  $form-spacing: 32px;\n\n  .form-input-container {\n    max-width: $form-width + 3 * $form-spacing + $rich-icon-size;\n    margin: 0 auto;\n    padding: $form-spacing;\n\n    .top-site-outer {\n      padding: 0;\n      margin: 24px 0 0;\n      margin-inline-start: $form-spacing;\n      pointer-events: none;\n    }\n\n    .section-title {\n      text-transform: none;\n      font-size: 16px;\n      margin: 0 0 16px;\n    }\n  }\n\n  .fields-and-preview {\n    display: flex;\n  }\n\n  label {\n    font-size: $section-title-font-size;\n  }\n\n  .form-wrapper {\n    width: 100%;\n\n    .field {\n      position: relative;\n\n      .icon-clear-input {\n        position: absolute;\n        transform: translateY(-50%);\n        top: 50%;\n        offset-inline-end: 8px;\n      }\n    }\n\n    .url {\n      input:dir(ltr) {\n        padding-right: 32px;\n      }\n\n      input:dir(rtl) {\n        padding-left: 32px;\n\n        &:not(:placeholder-shown) {\n          direction: ltr;\n          text-align: right;\n        }\n      }\n    }\n\n    .enable-custom-image-input {\n      display: inline-block;\n      font-size: 13px;\n      margin-top: 4px;\n      cursor: pointer;\n\n      &:hover {\n        text-decoration: underline;\n      }\n    }\n\n    .custom-image-input-container {\n      margin-top: 4px;\n\n      .loading-container {\n        width: 16px;\n        height: 16px;\n        overflow: hidden;\n        position: absolute;\n        transform: translateY(-50%);\n        top: 50%;\n        offset-inline-end: 8px;\n      }\n\n      // This animation is derived from Firefox's tab loading animation\n      // See https://searchfox.org/mozilla-central/rev/b29daa46443b30612415c35be0a3c9c13b9dc5f6/browser/themes/shared/tabs.inc.css#208-216\n      .loading-animation {\n        @keyframes tab-throbber-animation {\n          100% { transform: translateX(-960px); }\n        }\n\n        @keyframes tab-throbber-animation-rtl {\n          100% { transform: translateX(960px); }\n        }\n\n        width: 960px;\n        height: 16px;\n        -moz-context-properties: fill;\n        fill: $blue-50;\n        background-image: url('chrome://browser/skin/tabbrowser/loading.svg');\n        animation: tab-throbber-animation 1.05s steps(60) infinite;\n\n        &:dir(rtl) {\n          animation-name: tab-throbber-animation-rtl;\n        }\n      }\n    }\n\n    input {\n      &[type='text'] {\n        background-color: var(--newtab-textbox-color);\n        border: $input-border;\n        border-radius: 2px;\n        margin: 8px 0;\n        padding: 0 8px;\n        height: 32px;\n        width: 100%;\n        font-size: 15px;\n\n        &:focus {\n          border: $input-border-active;\n          box-shadow: $input-focus-boxshadow;\n        }\n\n        &[disabled] {\n          border: $input-border;\n          box-shadow: none;\n          opacity: 0.4;\n        }\n      }\n    }\n\n    .invalid {\n      input {\n        &[type='text'] {\n          border: $input-error-border;\n          box-shadow: $input-error-boxshadow;\n        }\n      }\n    }\n\n    .error-tooltip {\n      animation: fade-up-tt 450ms;\n      background: $red-60;\n      border-radius: 2px;\n      color: $white;\n      offset-inline-start: 3px;\n      padding: 5px 12px;\n      position: absolute;\n      top: 44px;\n      z-index: 1;\n\n      // tooltip caret\n      &::before {\n        background: $red-60;\n        bottom: -8px;\n        content: '.';\n        height: 16px;\n        offset-inline-start: 12px;\n        position: absolute;\n        text-indent: -999px;\n        top: -7px;\n        transform: rotate(45deg);\n        white-space: nowrap;\n        width: 16px;\n        z-index: -1;\n      }\n    }\n  }\n\n  .actions {\n    justify-content: flex-end;\n\n    button {\n      margin-inline-start: 10px;\n      margin-inline-end: 0;\n    }\n  }\n\n  @media (max-width: $break-point-small) {\n    .fields-and-preview {\n      flex-direction: column;\n\n      .top-site-outer {\n        margin-inline-start: 0;\n      }\n    }\n  }\n}\n\n//used for tooltips below form element\n@keyframes fade-up-tt {\n  0% {\n    opacity: 0;\n    transform: translateY(15px);\n  }\n\n  100% {\n    opacity: 1;\n    transform: translateY(0);\n  }\n}\n",
+		".sections-list {\n  .section-list {\n    display: grid;\n    grid-gap: $base-gutter;\n    grid-template-columns: repeat(auto-fit, $card-width);\n    margin: 0;\n\n    @media (max-width: $break-point-medium) {\n      @include context-menu-open-left;\n    }\n\n    @media (min-width: $break-point-medium) and (max-width: $break-point-large) {\n      :nth-child(2n) {\n        @include context-menu-open-left;\n      }\n    }\n\n    @media (min-width: $break-point-large) and (max-width: $break-point-large + 2 * $card-width) {\n      :nth-child(3n) {\n        @include context-menu-open-left;\n      }\n    }\n  }\n\n  .section-empty-state {\n    border: $border-secondary;\n    border-radius: $border-radius;\n    display: flex;\n    height: $card-height;\n    width: 100%;\n\n    .empty-state {\n      margin: auto;\n      max-width: 350px;\n\n      .empty-state-icon {\n        background-position: center;\n        background-repeat: no-repeat;\n        background-size: 50px 50px;\n        -moz-context-properties: fill;\n        display: block;\n        fill: var(--newtab-icon-secondary-color);\n        height: 50px;\n        margin: 0 auto;\n        width: 50px;\n      }\n\n      .empty-state-message {\n        color: var(--newtab-text-primary-color);\n        font-size: 13px;\n        margin-bottom: 0;\n        text-align: center;\n      }\n    }\n  }\n}\n\n.wide-layout-enabled {\n  .sections-list {\n    .section-list {\n      @media (min-width: $break-point-widest) and (max-width: $break-point-widest + 2 * $card-width) {\n        :nth-child(3n) {\n          @include context-menu-open-left;\n        }\n      }\n\n      @media (min-width: $break-point-widest) {\n        grid-template-columns: repeat(auto-fit, $card-width-large);\n      }\n    }\n  }\n\n  .section-empty-state {\n    height: $card-height-large;\n  }\n}\n",
+		".topic {\n  color: var(--newtab-section-navigation-text-color);\n  font-size: 12px;\n  line-height: 1.6;\n  margin-top: $topic-margin-top;\n\n  @media (min-width: $break-point-large) {\n    line-height: 16px;\n  }\n\n  ul {\n    margin: 0;\n    padding: 0;\n    @media (min-width: $break-point-large) {\n      display: inline;\n      padding-inline-start: 12px;\n    }\n  }\n\n\n  ul li {\n    display: inline-block;\n\n    &::after {\n      content: '•';\n      padding: 8px;\n    }\n\n    &:last-child::after {\n      content: none;\n    }\n  }\n\n  .topic-link {\n    color: var(--newtab-link-secondary-color);\n  }\n\n  .topic-read-more {\n    color: var(--newtab-link-secondary-color);\n\n    @media (min-width: $break-point-large) {\n      // This is floating to accomodate a very large number of topics and/or\n      // very long topic names due to l10n.\n      float: right;\n\n      &:dir(rtl) {\n        float: left;\n      }\n    }\n\n    &::after {\n      background: url('#{$image-path}topic-show-more-12.svg') no-repeat center center;\n      content: '';\n      -moz-context-properties: fill;\n      display: inline-block;\n      fill: var(--newtab-link-secondary-color);\n      height: 16px;\n      margin-inline-start: 5px;\n      vertical-align: top;\n      width: 12px;\n    }\n\n    &:dir(rtl)::after  {\n      transform: scaleX(-1);\n    }\n  }\n\n  // This is a clearfix to for the topics-read-more link which is floating and causes\n  // some jank when we set overflow:hidden for the animation.\n  &::after {\n    clear: both;\n    content: '';\n    display: table;\n  }\n}\n",
+		".search-wrapper {\n  $search-border-radius: 3px;\n  $search-focus-color: var(--newtab-search-focus-border-color);\n  $search-height: 35px;\n  $search-input-left-label-width: 35px;\n  $search-button-width: 36px;\n  $search-glyph-image: url('chrome://browser/skin/search-glass.svg');\n  $glyph-forward: url('chrome://browser/skin/forward.svg');\n  $search-glyph-size: 16px;\n  // This is positioned so it is visually (not metrically) centered. r=abenson\n  $search-glyph-left-position: 12px;\n\n  cursor: default;\n  display: flex;\n  height: $search-height;\n  // The extra 1px is to account for the box-shadow being outside of the element\n  // instead of inside. It needs to be like that to not overlap the inner background\n  // color of the hover state of the submit button.\n  margin: 1px 1px $section-spacing;\n  position: relative;\n  width: 100%;\n\n  input {\n    background: var(--newtab-search-background-color);\n    border: solid 1px var(--newtab-search-border-color);\n    border-radius: $search-border-radius;\n    box-shadow: $shadow-secondary, 0 0 0 1px $black-15;\n    color: var(--newtab-search-text-color);\n    font-size: 15px;\n    padding: 0;\n    padding-inline-end: $search-button-width;\n    padding-inline-start: $search-input-left-label-width;\n    width: 100%;\n  }\n\n  &:hover input {\n    box-shadow: $shadow-secondary, 0 0 0 1px $black-25;\n  }\n\n  &:active input,\n  input:focus {\n    box-shadow: 0 0 0 $os-search-focus-shadow-radius $search-focus-color;\n  }\n\n  .search-label {\n    background: $search-glyph-image no-repeat $search-glyph-left-position center / $search-glyph-size;\n    -moz-context-properties: fill;\n    fill: var(--newtab-search-icon-color);\n    height: 100%;\n    offset-inline-start: 0;\n    position: absolute;\n    width: $search-input-left-label-width;\n  }\n\n  .search-button {\n    background: $glyph-forward no-repeat center center;\n    background-size: 16px 16px;\n    border: 0;\n    border-radius: 0 $border-radius $border-radius 0;\n    -moz-context-properties: fill;\n    fill: var(--newtab-search-icon-color);\n    height: 100%;\n    offset-inline-end: 0;\n    position: absolute;\n    width: $search-button-width;\n\n    &:focus,\n    &:hover {\n      background-color: $grey-90-10;\n      cursor: pointer;\n    }\n\n    &:active {\n      background-color: $grey-90-20;\n    }\n\n    &:dir(rtl) {\n      transform: scaleX(-1);\n    }\n  }\n}\n\n@at-root {\n  // Adjust the style of the contentSearchUI-generated table\n  // sass-lint:disable-block class-name-format\n  .contentSearchSuggestionTable {\n    background-color: var(--newtab-search-background-color);\n    border: 0;\n    transform: translateY(3px);\n\n    .contentSearchHeader {\n      background-color: var(--newtab-background-color);\n      color: var(--newtab-text-secondary-color);\n    }\n\n    .contentSearchHeader,\n    .contentSearchSuggestionsList {\n      border-color: var(--newtab-border-primary-color);\n    }\n\n    .contentSearchSearchWithHeaderSearchText {\n      color: var(--newtab-text-primary-color);\n    }\n  }\n}\n",
+		".context-menu {\n  background: var(--newtab-background-color);\n  border-radius: $context-menu-border-radius;\n  box-shadow: $context-menu-shadow;\n  display: block;\n  font-size: $context-menu-font-size;\n  margin-inline-start: 5px;\n  offset-inline-start: 100%;\n  position: absolute;\n  top: ($context-menu-button-size / 4);\n  z-index: 10000;\n\n  > ul {\n    list-style: none;\n    margin: 0;\n    padding: $context-menu-outer-padding 0;\n\n    > li {\n      margin: 0;\n      width: 100%;\n\n      &.separator {\n        border-bottom: $border-secondary;\n        margin: $context-menu-outer-padding 0;\n      }\n\n      > a {\n        align-items: center;\n        color: inherit;\n        cursor: pointer;\n        display: flex;\n        line-height: 16px;\n        outline: none;\n        padding: $context-menu-item-padding;\n        white-space: nowrap;\n\n        &:-moz-any(:focus, :hover) {\n          background: var(--newtab-link-primary-color);\n          color: $white;\n\n          a {\n            color: $grey-90;\n          }\n\n          .icon {\n            fill: $white;\n          }\n\n          &:-moz-any(:focus, :hover) {\n            color: $white;\n          }\n        }\n\n        &.disabled {\n          opacity: 0.4;\n          pointer-events: none;\n        }\n      }\n    }\n  }\n}\n",
+		".confirmation-dialog {\n  .modal {\n    box-shadow: 0 2px 2px 0 $black-10;\n    left: 50%;\n    margin-left: -200px;\n    position: fixed;\n    top: 20%;\n    width: 400px;\n  }\n\n  section {\n    margin: 0;\n  }\n\n  .modal-message {\n    display: flex;\n    padding: 16px;\n    padding-bottom: 0;\n\n    p {\n      margin: 0;\n      margin-bottom: 16px;\n    }\n  }\n\n  .actions {\n    border: 0;\n    display: flex;\n    flex-wrap: nowrap;\n    padding: 0 16px;\n\n    button {\n      margin-inline-end: 16px;\n      padding-inline-end: 18px;\n      padding-inline-start: 18px;\n      white-space: normal;\n      width: 50%;\n\n      &.done {\n        margin-inline-end: 0;\n        margin-inline-start: 0;\n      }\n    }\n  }\n\n  .icon {\n    margin-inline-end: 16px;\n  }\n}\n\n.modal-overlay {\n  background: var(--newtab-overlay-color);\n  height: 100%;\n  left: 0;\n  opacity: 0.8;\n  position: fixed;\n  top: 0;\n  width: 100%;\n  z-index: 11001;\n}\n\n.modal {\n  background: var(--newtab-modal-color);\n  border: $border-secondary;\n  border-radius: 5px;\n  font-size: 15px;\n  z-index: 11002;\n}\n",
+		".card-outer {\n  @include context-menu-button;\n  background: var(--newtab-card-background-color);\n  border-radius: $border-radius;\n  display: inline-block;\n  height: $card-height;\n  margin-inline-end: $base-gutter;\n  position: relative;\n  width: 100%;\n\n  &.placeholder {\n    background: transparent;\n\n    .card {\n      box-shadow: inset $inner-box-shadow;\n    }\n  }\n\n  .card {\n    border-radius: $border-radius;\n    box-shadow: $shadow-secondary;\n    height: 100%;\n  }\n\n  > a {\n    color: inherit;\n    display: block;\n    height: 100%;\n    outline: none;\n    position: absolute;\n    width: 100%;\n\n    &:-moz-any(.active, :focus) {\n      .card {\n        @include fade-in-card;\n      }\n\n      .card-title {\n        color: var(--newtab-link-primary-color);\n      }\n    }\n  }\n\n  &:-moz-any(:hover, :focus, .active):not(.placeholder) {\n    @include fade-in-card;\n    @include context-menu-button-hover;\n    outline: none;\n\n    .card-title {\n      color: var(--newtab-link-primary-color);\n    }\n  }\n\n  .card-preview-image-outer {\n    background-color: var(--newtab-background-color);\n    border-radius: $border-radius $border-radius 0 0;\n    height: $card-preview-image-height;\n    overflow: hidden;\n    position: relative;\n\n    &::after {\n      border-bottom: 1px solid $black-5;\n      bottom: 0;\n      content: '';\n      position: absolute;\n      width: 100%;\n    }\n\n    .card-preview-image {\n      background-position: center;\n      background-repeat: no-repeat;\n      background-size: cover;\n      height: 100%;\n      opacity: 0;\n      transition: opacity 1s $photon-easing;\n      width: 100%;\n\n      &.loaded {\n        opacity: 1;\n      }\n    }\n  }\n\n  .card-details {\n    padding: 15px 16px 12px;\n\n    &.no-image {\n      padding-top: 16px;\n    }\n  }\n\n  .card-text {\n    max-height: 4 * $card-text-line-height + $card-title-margin;\n    overflow: hidden;\n\n    &.no-image {\n      max-height: 10 * $card-text-line-height + $card-title-margin;\n    }\n\n    &.no-host-name,\n    &.no-context {\n      max-height: 5 * $card-text-line-height + $card-title-margin;\n    }\n\n    &.no-image.no-host-name,\n    &.no-image.no-context {\n      max-height: 11 * $card-text-line-height + $card-title-margin;\n    }\n\n    &.no-host-name.no-context {\n      max-height: 6 * $card-text-line-height + $card-title-margin;\n    }\n\n    &.no-image.no-host-name.no-context {\n      max-height: 12 * $card-text-line-height + $card-title-margin;\n    }\n\n    &:not(.no-description) .card-title {\n      max-height: 3 * $card-text-line-height;\n      overflow: hidden;\n    }\n  }\n\n  .card-host-name {\n    color: var(--newtab-text-secondary-color);\n    font-size: 10px;\n    overflow: hidden;\n    padding-bottom: 4px;\n    text-overflow: ellipsis;\n    text-transform: uppercase;\n  }\n\n  .card-title {\n    font-size: 14px;\n    line-height: $card-text-line-height;\n    margin: 0 0 $card-title-margin;\n    word-wrap: break-word;\n  }\n\n  .card-description {\n    font-size: 12px;\n    line-height: $card-text-line-height;\n    margin: 0;\n    overflow: hidden;\n    word-wrap: break-word;\n  }\n\n  .card-context {\n    bottom: 0;\n    color: var(--newtab-text-secondary-color);\n    display: flex;\n    font-size: 11px;\n    left: 0;\n    padding: 9px 16px 9px 14px;\n    position: absolute;\n    right: 0;\n  }\n\n  .card-context-icon {\n    fill: var(--newtab-icon-secondary-color);\n    height: 22px;\n    margin-inline-end: 6px;\n  }\n\n  .card-context-label {\n    flex-grow: 1;\n    line-height: 22px;\n    overflow: hidden;\n    text-overflow: ellipsis;\n    white-space: nowrap;\n  }\n}\n\n.wide-layout-enabled {\n  $line-height: 23px;\n\n  .card-outer {\n    @media (min-width: $break-point-widest) {\n      height: $card-height-large;\n\n      .card-preview-image-outer {\n        height: $card-preview-image-height-large;\n      }\n\n      .card-details {\n        padding: 13px 16px 12px;\n      }\n\n      .card-text {\n        max-height: 6 * $line-height + $card-title-margin;\n      }\n\n      .card-host-name {\n        font-size: 12px;\n        padding-bottom: 5px;\n      }\n\n      .card-title {\n        font-size: 17px;\n        line-height: $line-height;\n        margin-bottom: 0;\n      }\n\n      .card-text:not(.no-description) {\n        .card-title {\n          max-height: 3 * $line-height;\n        }\n      }\n\n      .card-description {\n        font-size: 15px;\n        line-height: $line-height;\n      }\n\n      .card-context {\n        bottom: 4px;\n        font-size: 14px;\n      }\n    }\n  }\n}\n",
+		".manual-migration-container {\n  color: var(--newtab-text-conditional-color);\n  font-size: 13px;\n  line-height: 15px;\n  margin-bottom: $section-spacing;\n  text-align: center;\n\n  @media (min-width: $break-point-medium) {\n    display: flex;\n    justify-content: space-between;\n    text-align: left;\n  }\n\n  p {\n    margin: 0;\n    @media (min-width: $break-point-medium) {\n      align-self: center;\n      display: flex;\n      justify-content: space-between;\n    }\n  }\n\n  .icon {\n    display: none;\n    @media (min-width: $break-point-medium) {\n      align-self: center;\n      display: block;\n      fill: var(--newtab-icon-secondary-color);\n      margin-inline-end: 6px;\n    }\n  }\n}\n\n.manual-migration-actions {\n  border: 0;\n  display: block;\n  flex-wrap: nowrap;\n\n  @media (min-width: $break-point-medium) {\n    display: flex;\n    justify-content: space-between;\n    padding: 0;\n  }\n\n  button {\n    align-self: center;\n    height: 26px;\n    margin: 0;\n    margin-inline-start: 20px;\n    padding: 0 12px;\n  }\n}\n",
+		".collapsible-section {\n  padding: $section-vertical-padding $section-horizontal-padding;\n  transition-delay: 100ms;\n  transition-duration: 100ms;\n  transition-property: background-color;\n\n  .section-title {\n    font-size: $section-title-font-size;\n    font-weight: bold;\n    margin: 0;\n    text-transform: uppercase;\n\n    span {\n      color: var(--newtab-section-header-text-color);\n      display: inline-block;\n      fill: var(--newtab-section-header-text-color);\n      vertical-align: middle;\n    }\n\n    .click-target {\n      cursor: pointer;\n      vertical-align: top;\n      white-space: nowrap;\n    }\n\n    .collapsible-arrow {\n      margin-inline-start: 8px;\n      margin-top: -1px;\n    }\n  }\n\n  .section-top-bar {\n    height: 19px;\n    margin-bottom: 13px;\n    position: relative;\n\n    .context-menu-button {\n      background: url('chrome://browser/skin/page-action.svg') no-repeat right center;\n      border: 0;\n      cursor: pointer;\n      fill: var(--newtab-section-header-text-color);\n      height: 100%;\n      offset-inline-end: 0;\n      opacity: 0;\n      position: absolute;\n      top: 0;\n      transition-duration: 200ms;\n      transition-property: opacity;\n      width: $context-menu-button-size;\n\n      &:-moz-any(:active, :focus, :hover) {\n        fill: $grey-90;\n        opacity: 1;\n      }\n    }\n\n    .context-menu {\n      top: 16px;\n    }\n\n    @media (max-width: $break-point-widest + $card-width * 1.5) {\n      @include context-menu-open-left;\n    }\n  }\n\n  &:hover,\n  &.active {\n    .section-top-bar {\n      .context-menu-button {\n        opacity: 1;\n      }\n    }\n  }\n\n  &.active {\n    background: var(--newtab-element-active-color);\n    border-radius: 4px;\n\n    .section-top-bar {\n      .context-menu-button {\n        fill: var(--newtab-section-active-contextmenu-color);\n      }\n    }\n  }\n\n  .section-disclaimer {\n    $max-button-width: 130px;\n    $min-button-height: 26px;\n\n    color: var(--newtab-text-conditional-color);\n    font-size: 13px;\n    margin-bottom: 16px;\n    position: relative;\n\n    .section-disclaimer-text {\n      display: inline-block;\n      min-height: $min-button-height;\n      width: calc(100% - #{$max-button-width});\n\n      @media (max-width: $break-point-medium) {\n        width: $card-width;\n      }\n    }\n\n    a {\n      color: var(--newtab-link-secondary-color);\n      font-weight: bold;\n      padding-left: 3px;\n    }\n\n    button {\n      background: transparent;\n      border: 1px solid $grey-40;\n      border-radius: 4px;\n      cursor: pointer;\n      margin-top: 2px;\n      max-width: $max-button-width;\n      min-height: $min-button-height;\n      offset-inline-end: 0;\n\n      &:hover:not(.dismiss) {\n        box-shadow: $shadow-primary;\n        transition: box-shadow 150ms;\n      }\n\n      @media (min-width: $break-point-small) {\n        position: absolute;\n      }\n    }\n  }\n\n  .section-body-fallback {\n    height: $card-height;\n  }\n\n  .section-body {\n    // This is so the top sites favicon and card dropshadows don't get clipped during animation:\n    $horizontal-padding: 7px;\n    margin: 0 (-$horizontal-padding);\n    padding: 0 $horizontal-padding;\n\n    &.animating {\n      overflow: hidden;\n      pointer-events: none;\n    }\n  }\n\n  &.animation-enabled {\n    .section-title {\n      .collapsible-arrow {\n        transition: transform 0.5s $photon-easing;\n      }\n    }\n\n    .section-body {\n      transition: max-height 0.5s $photon-easing;\n    }\n  }\n\n  &.collapsed {\n    .section-body {\n      max-height: 0;\n      overflow: hidden;\n    }\n  }\n}\n",
+		"\n.messages-admin {\n  $monospace: 'SF Mono', 'Monaco', 'Inconsolata', 'Fira Mono', 'Droid Sans Mono', 'Source Code Pro', monospace;\n  max-width: 996px;\n  margin: 0 auto;\n  font-size: 14px;\n\n  h1 {\n    font-weight: 200;\n    font-size: 32px;\n  }\n\n  table {\n    border-collapse: collapse;\n    width: 100%;\n  }\n\n  .message-item {\n    &:first-child td {\n      border-top: 1px solid $black-10;\n    }\n\n    td {\n      vertical-align: top;\n      border-bottom: 1px solid $black-10;\n      padding: 8px;\n\n      &:first-child {\n        border-left: 1px solid $black-10;\n      }\n\n      &:last-child {\n        border-right: 1px solid $black-10;\n      }\n    }\n\n    &.current {\n      .message-id span {\n        background: $yellow-50;\n        padding: 2px 5px;\n      }\n    }\n\n    &.blocked {\n      .message-id,\n      .message-summary {\n        opacity: 0.5;\n      }\n\n      .message-id {\n        color: $grey-90;\n      }\n    }\n\n    .message-id {\n      font-family: $monospace;\n      font-size: 12px;\n    }\n  }\n\n  pre {\n    background: $white;\n    margin: 0;\n    padding: 8px;\n    font-size: 12px;\n    max-width: 750px;\n    overflow: auto;\n    font-family: $monospace;\n  }\n}\n"
 	],
 	"names": [],
-	"mappings": "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"
+	"mappings": "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"
 }
\ No newline at end of file
--- a/browser/extensions/activity-stream/css/activity-stream-mac.css
+++ b/browser/extensions/activity-stream/css/activity-stream-mac.css
@@ -19,36 +19,102 @@ input {
   background-color: inherit;
   color: inherit;
   font-family: inherit;
   font-size: inherit; }
 
 [hidden] {
   display: none !important; }
 
+.outer-wrapper {
+  --newtab-background-color: #F9F9FA;
+  --newtab-border-primary-color: #B1B1B3;
+  --newtab-border-secondary-color: #D7D7DB;
+  --newtab-button-primary-color: #0060DF;
+  --newtab-button-secondary-color: inherit;
+  --newtab-element-active-color: rgba(237, 237, 240, 0.6);
+  --newtab-icon-primary-color: rgba(12, 12, 13, 0.8);
+  --newtab-icon-secondary-color: rgba(12, 12, 13, 0.6);
+  --newtab-icon-tertiary-color: #D7D7DB;
+  --newtab-inner-box-shadow-color: rgba(0, 0, 0, 0.1);
+  --newtab-link-primary-color: #0060DF;
+  --newtab-link-secondary-color: #008EA4;
+  --newtab-text-conditional-color: #4A4A4F;
+  --newtab-text-primary-color: #0C0C0D;
+  --newtab-text-secondary-color: #737373;
+  --newtab-textbox-border: rgba(12, 12, 13, 0.2);
+  --newtab-textbox-color: inherit;
+  --newtab-contextmenu-button-color: #FFF;
+  --newtab-modal-color: #FFF;
+  --newtab-overlay-color: #EDEDF0;
+  --newtab-section-header-text-color: #737373;
+  --newtab-section-navigation-text-color: #737373;
+  --newtab-section-active-contextmenu-color: #0C0C0D;
+  --newtab-search-background-color: #FFF;
+  --newtab-search-border-color: transparent;
+  --newtab-search-focus-border-color: #0A84FF;
+  --newtab-search-icon-color: rgba(12, 12, 13, 0.4);
+  --newtab-search-text-color: inherit;
+  --newtab-topsites-label-color: inherit;
+  --newtab-card-background-color: #FFF;
+  --newtab-card-active-outline-color: #D7D7DB; }
+
+.outer-wrapper.dark-theme {
+  --newtab-background-color: #2A2A2E;
+  --newtab-border-primary-color: rgba(249, 249, 250, 0.8);
+  --newtab-border-secondary-color: rgba(249, 249, 250, 0.2);
+  --newtab-button-primary-color: #45A1FF;
+  --newtab-button-secondary-color: #38383D;
+  --newtab-element-active-color: #4A4A4F;
+  --newtab-icon-primary-color: rgba(249, 249, 250, 0.8);
+  --newtab-icon-secondary-color: rgba(249, 249, 250, 0.4);
+  --newtab-icon-tertiary-color: rgba(249, 249, 250, 0.2);
+  --newtab-inner-box-shadow-color: rgba(249, 249, 250, 0.2);
+  --newtab-link-primary-color: #45A1FF;
+  --newtab-link-secondary-color: #50BCB6;
+  --newtab-text-conditional-color: #F9F9FA;
+  --newtab-text-primary-color: #F9F9FA;
+  --newtab-text-secondary-color: rgba(249, 249, 250, 0.4);
+  --newtab-textbox-border: rgba(249, 249, 250, 0.4);
+  --newtab-textbox-color: #2A2A2E;
+  --newtab-contextmenu-button-color: #2A2A2E;
+  --newtab-modal-color: #0C0C0D;
+  --newtab-overlay-color: #2A2A2E;
+  --newtab-section-header-text-color: rgba(249, 249, 250, 0.8);
+  --newtab-section-navigation-text-color: rgba(249, 249, 250, 0.8);
+  --newtab-section-active-contextmenu-color: #FFF;
+  --newtab-search-background-color: #4A4A4F;
+  --newtab-search-border-color: rgba(249, 249, 250, 0.4);
+  --newtab-search-focus-border-color: #45A1FF;
+  --newtab-search-icon-color: rgba(249, 249, 250, 0.6);
+  --newtab-search-text-color: rgba(249, 249, 250, 0.6);
+  --newtab-topsites-label-color: rgba(249, 249, 250, 0.8);
+  --newtab-card-background-color: #0C0C0D;
+  --newtab-card-active-outline-color: #4A4A4F; }
+
 .icon {
   background-position: center center;
   background-repeat: no-repeat;
   background-size: 16px;
   -moz-context-properties: fill;
   display: inline-block;
-  fill: rgba(12, 12, 13, 0.8);
+  fill: var(--newtab-icon-primary-color);
   height: 16px;
   vertical-align: middle;
   width: 16px; }
   .icon.icon-spacer {
     margin-inline-end: 8px; }
   .icon.icon-small-spacer {
     margin-inline-end: 6px; }
   .icon.icon-bookmark-added {
     background-image: url("chrome://browser/skin/bookmark.svg"); }
   .icon.icon-bookmark-hollow {
     background-image: url("chrome://browser/skin/bookmark-hollow.svg"); }
   .icon.icon-clear-input {
-    fill: rgba(12, 12, 13, 0.6);
+    fill: var(--newtab-icon-secondary-color);
     background-image: url("../data/content/assets/glyph-cancel-16.svg"); }
   .icon.icon-delete {
     background-image: url("../data/content/assets/glyph-delete-16.svg"); }
   .icon.icon-modal-delete {
     background-image: url("../data/content/assets/glyph-modal-delete-32.svg");
     background-size: 32px;
     height: 32px;
     width: 32px; }
@@ -120,50 +186,47 @@ input {
     transform: rotate(180deg); }
   .icon.icon-add {
     background-image: url("../data/content/assets/glyph-add-16.svg"); }
   .icon.icon-minimize {
     background-image: url("../data/content/assets/glyph-minimize-16.svg"); }
   .icon.icon-maximize {
     background-image: url("../data/content/assets/glyph-maximize-16.svg"); }
 
-html,
+html {
+  height: 100%; }
+
 body,
 #root {
-  height: 100%; }
+  min-height: 100vh; }
 
 body {
-  background: #F9F9FA;
-  color: #0C0C0D;
   font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', 'Ubuntu', 'Helvetica Neue', sans-serif;
   font-size: 16px;
   overflow-y: scroll; }
 
 h1,
 h2 {
   font-weight: normal; }
 
 a {
-  color: #0060DF;
   text-decoration: none; }
-  a:hover {
-    color: #008EA4; }
 
 .sr-only {
   border: 0;
   clip: rect(0, 0, 0, 0);
   height: 1px;
   margin: -1px;
   overflow: hidden;
   padding: 0;
   position: absolute;
   width: 1px; }
 
 .inner-border {
-  border: 1px solid #D7D7DB;
+  border: 1px solid var(--newtab-border-secondary-color);
   border-radius: 3px;
   height: 100%;
   left: 0;
   pointer-events: none;
   position: absolute;
   top: 0;
   width: 100%;
   z-index: 100; }
@@ -177,55 +240,66 @@ a {
 .show-on-init {
   opacity: 0;
   transition: opacity 0.2s ease-in; }
   .show-on-init.on {
     animation: fadeIn 0.2s;
     opacity: 1; }
 
 .actions {
-  border-top: 1px solid #D7D7DB;
+  border-top: 1px solid var(--newtab-border-secondary-color);
   display: flex;
   flex-direction: row;
   flex-wrap: wrap;
   justify-content: flex-start;
   margin: 0;
   padding: 15px 25px 0; }
-  .actions button {
-    background-color: #F9F9FA;
-    border: 1px solid #B1B1B3;
-    border-radius: 4px;
-    color: inherit;
-    cursor: pointer;
-    margin-bottom: 15px;
-    padding: 10px 30px;
-    white-space: nowrap; }
-    .actions button:hover:not(.dismiss) {
-      box-shadow: 0 0 0 5px #D7D7DB;
-      transition: box-shadow 150ms; }
-    .actions button.dismiss {
-      border: 0;
-      padding: 0;
-      text-decoration: underline; }
-    .actions button.done {
-      background: #0060DF;
-      border: solid 1px #0060DF;
-      color: #FFF;
-      margin-inline-start: auto; }
+
+.button,
+.actions button {
+  background-color: var(--newtab-button-secondary-color);
+  border: 1px solid var(--newtab-border-primary-color);
+  border-radius: 4px;
+  color: inherit;
+  cursor: pointer;
+  margin-bottom: 15px;
+  padding: 10px 30px;
+  white-space: nowrap; }
+  .button:hover:not(.dismiss),
+  .actions button:hover:not(.dismiss) {
+    box-shadow: 0 0 0 5px var(--newtab-card-active-outline-color);
+    transition: box-shadow 150ms; }
+  .button.dismiss,
+  .actions button.dismiss {
+    background-color: transparent;
+    border: 0;
+    padding: 0;
+    text-decoration: underline; }
+  .button.primary, .button.done,
+  .actions button.primary,
+  .actions button.done {
+    background-color: var(--newtab-button-primary-color);
+    border: solid 1px var(--newtab-button-primary-color);
+    color: #FFF;
+    margin-inline-start: auto; }
 
 #snippets-container {
   z-index: 1; }
 
 .outer-wrapper {
+  background-color: var(--newtab-background-color);
+  color: var(--newtab-text-primary-color);
   display: flex;
   flex-grow: 1;
-  height: 100%;
+  min-height: 100vh;
   padding: 30px 32px 32px; }
   .outer-wrapper.fixed-to-top {
-    height: auto; }
+    display: block; }
+  .outer-wrapper a {
+    color: var(--newtab-link-primary-color); }
 
 main {
   margin: auto;
   padding-bottom: 68px;
   width: 274px; }
   @media (min-width: 482px) {
     main {
       width: 402px; } }
@@ -238,29 +312,16 @@ main {
   main section {
     margin-bottom: 20px;
     position: relative; }
 
 @media (min-width: 1122px) {
   .wide-layout-enabled main {
     width: 1042px; } }
 
-.section-top-bar {
-  height: 16px;
-  margin-bottom: 16px; }
-
-.section-title {
-  font-size: 13px;
-  font-weight: bold;
-  text-transform: uppercase; }
-  .section-title span {
-    color: #737373;
-    fill: #737373;
-    vertical-align: middle; }
-
 .base-content-fallback {
   height: 100vh; }
 
 
 .body-wrapper .section-title,
 .body-wrapper .sections-list .section:last-of-type,
 .body-wrapper .topic {
   opacity: 0; }
@@ -273,40 +334,38 @@ main {
 
 .non-collapsible-section {
   padding: 0 25px; }
 
 .prefs-button button {
   background-color: transparent;
   border: 0;
   cursor: pointer;
-  fill: rgba(12, 12, 13, 0.6);
+  fill: var(--newtab-icon-primary-color);
   offset-inline-end: 15px;
   padding: 15px;
   position: fixed;
   top: 15px;
   z-index: 12001; }
-  .prefs-button button:hover {
-    background-color: #EDEDF0; }
-  .prefs-button button:active {
-    background-color: #F9F9FA; }
+  .prefs-button button:hover, .prefs-button button:focus {
+    background-color: var(--newtab-element-active-color); }
 
 .as-error-fallback {
   align-items: center;
   border-radius: 3px;
-  box-shadow: inset 0 0 0 1px rgba(0, 0, 0, 0.1);
-  color: #4A4A4F;
+  box-shadow: inset 0 0 0 1px var(--newtab-inner-box-shadow-color);
+  color: var(--newtab-text-conditional-color);
   display: flex;
   flex-direction: column;
   font-size: 12px;
   justify-content: center;
   justify-items: center;
   line-height: 1.5; }
   .as-error-fallback a {
-    color: #4A4A4F;
+    color: var(--newtab-text-conditional-color);
     text-decoration: underline; }
 
 .top-sites {
   margin-bottom: 2px; }
 
 .top-sites-list {
   list-style: none;
   margin: 0 -16px;
@@ -351,92 +410,92 @@ main {
     .top-sites-list :nth-child(6n+5) .context-menu {
       margin-inline-end: 5px;
       margin-inline-start: auto;
       offset-inline-end: 0;
       offset-inline-start: auto; } }
   .top-sites-list li {
     margin: 0 0 8px; }
   .top-sites-list:not(.dnd-active) .top-site-outer:-moz-any(.active, :focus, :hover) .tile {
-    box-shadow: inset 0 0 0 1px rgba(0, 0, 0, 0.1), 0 0 0 5px #D7D7DB;
+    box-shadow: inset 0 0 0 1px var(--newtab-inner-box-shadow-color), 0 0 0 5px var(--newtab-card-active-outline-color);
     transition: box-shadow 150ms; }
   .top-sites-list:not(.dnd-active) .top-site-outer:-moz-any(.active, :focus, :hover) .context-menu-button {
     opacity: 1;
     transform: scale(1); }
 
 .top-site-outer {
   padding: 0 16px;
   display: inline-block; }
   .top-site-outer .top-site-inner {
     position: relative; }
     .top-site-outer .top-site-inner > a {
       color: inherit;
       display: block;
       outline: none; }
       .top-site-outer .top-site-inner > a:-moz-any(.active, :focus) .tile {
-        box-shadow: inset 0 0 0 1px rgba(0, 0, 0, 0.1), 0 0 0 5px #D7D7DB;
+        box-shadow: inset 0 0 0 1px var(--newtab-inner-box-shadow-color), 0 0 0 5px var(--newtab-card-active-outline-color);
         transition: box-shadow 150ms; }
   .top-site-outer .context-menu-button {
     background-clip: padding-box;
-    background-color: #FFF;
+    background-color: var(--newtab-contextmenu-button-color);
     background-image: url("chrome://browser/skin/page-action.svg");
     background-position: 55%;
-    border: 1px solid #B1B1B3;
+    border: 1px solid var(--newtab-border-primary-color);
     border-radius: 100%;
     box-shadow: 0 2px rgba(12, 12, 13, 0.1);
     cursor: pointer;
-    fill: rgba(12, 12, 13, 0.8);
+    fill: var(--newtab-icon-primary-color);
     height: 27px;
     offset-inline-end: -13.5px;
     opacity: 0;
     position: absolute;
     top: -13.5px;
     transform: scale(0.25);
     transition-duration: 200ms;
     transition-property: transform, opacity;
     width: 27px; }
     .top-site-outer .context-menu-button:-moz-any(:active, :focus) {
       opacity: 1;
       transform: scale(1); }
   .top-site-outer .tile {
     border-radius: 6px;
-    box-shadow: inset 0 0 0 1px rgba(0, 0, 0, 0.1), 0 1px 4px 0 rgba(12, 12, 13, 0.1);
+    box-shadow: inset 0 0 0 1px var(--newtab-inner-box-shadow-color), 0 1px 4px 0 rgba(12, 12, 13, 0.1);
     height: 96px;
     position: relative;
     width: 96px;
     align-items: center;
-    color: #737373;
+    color: var(--newtab-text-secondary-color);
     display: flex;
     font-size: 32px;
     font-weight: 200;
     justify-content: center;
     text-transform: uppercase; }
     .top-site-outer .tile::before {
       content: attr(data-fallback); }
   .top-site-outer .screenshot {
     background-color: #FFF;
     background-position: top left;
     background-size: cover;
     border-radius: 6px;
-    box-shadow: inset 0 0 0 1px rgba(0, 0, 0, 0.1);
+    box-shadow: inset 0 0 0 1px var(--newtab-inner-box-shadow-color);
     height: 100%;
     left: 0;
     opacity: 0;
     position: absolute;
     top: 0;
     transition: opacity 1s;
     width: 100%; }
     .top-site-outer .screenshot.active {
       opacity: 1; }
   .top-site-outer .top-site-icon {
-    background-color: #F9F9FA;
+    background-color: var(--newtab-background-color);
     background-position: center center;
     background-repeat: no-repeat;
     border-radius: 6px;
-    box-shadow: inset 0 0 0 1px rgba(0, 0, 0, 0.1);
+    box-shadow: inset 0 0 0 1px var(--newtab-inner-box-shadow-color);
     position: absolute; }
   .top-site-outer .rich-icon {
     background-size: cover;
     height: 100%;
     offset-inline-start: 0;
     top: 0;
     width: 100%; }
   .top-site-outer .default-icon {
@@ -447,39 +506,40 @@ main {
     width: 42px;
     align-items: center;
     display: flex;
     font-size: 20px;
     justify-content: center; }
     .top-site-outer .default-icon[data-fallback]::before {
       content: attr(data-fallback); }
   .top-site-outer .title {
+    color: var(--newtab-topsites-label-color);
     font: message-box;
     height: 30px;
     line-height: 30px;
     text-align: center;
     width: 96px;
     position: relative; }
     .top-site-outer .title .icon {
-      fill: #D7D7DB;
+      fill: var(--newtab-icon-tertiary-color);
       offset-inline-start: 0;
       position: absolute;
       top: 10px; }
     .top-site-outer .title span {
       height: 30px;
       display: block;
       overflow: hidden;
       text-overflow: ellipsis;
       white-space: nowrap; }
     .top-site-outer .title.pinned span {
       padding: 0 13px; }
   .top-site-outer .edit-button {
     background-image: url("../data/content/assets/glyph-edit-16.svg"); }
   .top-site-outer.placeholder .tile {
-    box-shadow: inset 0 0 0 1px rgba(0, 0, 0, 0.1); }
+    box-shadow: inset 0 0 0 1px var(--newtab-inner-box-shadow-color); }
   .top-site-outer.placeholder .screenshot {
     display: none; }
   .top-site-outer.dragged .tile {
     background: #EDEDF0;
     box-shadow: none; }
     .top-site-outer.dragged .tile *, .top-site-outer.dragged .tile::before {
       display: none; }
   .top-site-outer.dragged .title {
@@ -561,18 +621,17 @@ main {
       direction: ltr;
       text-align: right; }
   .topsite-form .form-wrapper .enable-custom-image-input {
     display: inline-block;
     font-size: 13px;
     margin-top: 4px;
     cursor: pointer; }
     .topsite-form .form-wrapper .enable-custom-image-input:hover {
-      text-decoration: underline;
-      color: #0060DF; }
+      text-decoration: underline; }
   .topsite-form .form-wrapper .custom-image-input-container {
     margin-top: 4px; }
     .topsite-form .form-wrapper .custom-image-input-container .loading-container {
       width: 16px;
       height: 16px;
       overflow: hidden;
       position: absolute;
       transform: translateY(-50%);
@@ -591,28 +650,29 @@ main {
     transform: translateX(-960px); } }
 
 @keyframes tab-throbber-animation-rtl {
   100% {
     transform: translateX(960px); } }
       .topsite-form .form-wrapper .custom-image-input-container .loading-animation:dir(rtl) {
         animation-name: tab-throbber-animation-rtl; }
   .topsite-form .form-wrapper input[type='text'] {
-    border: solid 1px rgba(12, 12, 13, 0.2);
+    background-color: var(--newtab-textbox-color);
+    border: solid 1px var(--newtab-textbox-border);
     border-radius: 2px;
     margin: 8px 0;
     padding: 0 8px;
     height: 32px;
     width: 100%;
     font-size: 15px; }
     .topsite-form .form-wrapper input[type='text']:focus {
       border: solid 1px #0A84FF;
       box-shadow: 0 0 0 1px #0A84FF, 0 0 0 4px rgba(10, 132, 255, 0.3); }
     .topsite-form .form-wrapper input[type='text'][disabled] {
-      border: solid 1px rgba(12, 12, 13, 0.2);
+      border: solid 1px var(--newtab-textbox-border);
       box-shadow: none;
       opacity: 0.4; }
   .topsite-form .form-wrapper .invalid input[type='text'] {
     border: solid 1px #D70022;
     box-shadow: 0 0 0 1px #D70022, 0 0 0 4px rgba(215, 0, 34, 0.3); }
   .topsite-form .form-wrapper .error-tooltip {
     animation: fade-up-tt 450ms;
     background: #D70022;
@@ -677,36 +737,36 @@ main {
   @media (min-width: 866px) and (max-width: 1314px) {
     .sections-list .section-list :nth-child(3n) .context-menu {
       margin-inline-end: 5px;
       margin-inline-start: auto;
       offset-inline-end: 0;
       offset-inline-start: auto; } }
 
 .sections-list .section-empty-state {
-  border: 1px solid #D7D7DB;
+  border: 1px solid var(--newtab-border-secondary-color);
   border-radius: 3px;
   display: flex;
   height: 266px;
   width: 100%; }
   .sections-list .section-empty-state .empty-state {
     margin: auto;
     max-width: 350px; }
     .sections-list .section-empty-state .empty-state .empty-state-icon {
       background-position: center;
       background-repeat: no-repeat;
       background-size: 50px 50px;
       -moz-context-properties: fill;
       display: block;
-      fill: rgba(12, 12, 13, 0.6);
+      fill: var(--newtab-icon-secondary-color);
       height: 50px;
       margin: 0 auto;
       width: 50px; }
     .sections-list .section-empty-state .empty-state .empty-state-message {
-      color: #737373;
+      color: var(--newtab-text-primary-color);
       font-size: 13px;
       margin-bottom: 0;
       text-align: center; }
 
 @media (min-width: 1122px) and (max-width: 1570px) {
   .wide-layout-enabled .sections-list .section-list :nth-child(3n) .context-menu {
     margin-inline-end: 5px;
     margin-inline-start: auto;
@@ -716,17 +776,17 @@ main {
 @media (min-width: 1122px) {
   .wide-layout-enabled .sections-list .section-list {
     grid-template-columns: repeat(auto-fit, 309px); } }
 
 .wide-layout-enabled .section-empty-state {
   height: 370px; }
 
 .topic {
-  color: #737373;
+  color: var(--newtab-section-navigation-text-color);
   font-size: 12px;
   line-height: 1.6;
   margin-top: 12px; }
   @media (min-width: 866px) {
     .topic {
       line-height: 16px; } }
   .topic ul {
     margin: 0;
@@ -738,30 +798,30 @@ main {
   .topic ul li {
     display: inline-block; }
     .topic ul li::after {
       content: '•';
       padding: 8px; }
     .topic ul li:last-child::after {
       content: none; }
   .topic .topic-link {
-    color: #008EA4; }
+    color: var(--newtab-link-secondary-color); }
   .topic .topic-read-more {
-    color: #008EA4; }
+    color: var(--newtab-link-secondary-color); }
     @media (min-width: 866px) {
       .topic .topic-read-more {
         float: right; }
         .topic .topic-read-more:dir(rtl) {
           float: left; } }
     .topic .topic-read-more::after {
       background: url("../data/content/assets/topic-show-more-12.svg") no-repeat center center;
       content: '';
       -moz-context-properties: fill;
       display: inline-block;
-      fill: #008EA4;
+      fill: var(--newtab-link-secondary-color);
       height: 16px;
       margin-inline-start: 5px;
       vertical-align: top;
       width: 12px; }
     .topic .topic-read-more:dir(rtl)::after {
       transform: scaleX(-1); }
   .topic::after {
     clear: both;
@@ -771,61 +831,72 @@ main {
 .search-wrapper {
   cursor: default;
   display: flex;
   height: 35px;
   margin: 1px 1px 20px;
   position: relative;
   width: 100%; }
   .search-wrapper input {
-    border: 0;
+    background: var(--newtab-search-background-color);
+    border: solid 1px var(--newtab-search-border-color);
     border-radius: 3px;
     box-shadow: 0 1px 4px 0 rgba(12, 12, 13, 0.1), 0 0 0 1px rgba(0, 0, 0, 0.15);
+    color: var(--newtab-search-text-color);
     font-size: 15px;
     padding: 0;
     padding-inline-end: 36px;
     padding-inline-start: 35px;
     width: 100%; }
   .search-wrapper:hover input {
     box-shadow: 0 1px 4px 0 rgba(12, 12, 13, 0.1), 0 0 0 1px rgba(0, 0, 0, 0.25); }
   .search-wrapper:active input,
   .search-wrapper input:focus {
-    box-shadow: 0 0 0 3px #0A84FF; }
+    box-shadow: 0 0 0 3px var(--newtab-search-focus-border-color); }
   .search-wrapper .search-label {
     background: url("chrome://browser/skin/search-glass.svg") no-repeat 12px center/16px;
     -moz-context-properties: fill;
-    fill: rgba(12, 12, 13, 0.4);
+    fill: var(--newtab-search-icon-color);
     height: 100%;
     offset-inline-start: 0;
     position: absolute;
     width: 35px; }
   .search-wrapper .search-button {
     background: url("chrome://browser/skin/forward.svg") no-repeat center center;
     background-size: 16px 16px;
     border: 0;
     border-radius: 0 3px 3px 0;
     -moz-context-properties: fill;
-    fill: rgba(12, 12, 13, 0.4);
+    fill: var(--newtab-search-icon-color);
     height: 100%;
     offset-inline-end: 0;
     position: absolute;
     width: 36px; }
     .search-wrapper .search-button:focus, .search-wrapper .search-button:hover {
       background-color: rgba(12, 12, 13, 0.1);
       cursor: pointer; }
     .search-wrapper .search-button:active {
       background-color: rgba(12, 12, 13, 0.2); }
     .search-wrapper .search-button:dir(rtl) {
       transform: scaleX(-1); }
-  .search-wrapper .contentSearchSuggestionTable {
-    border: 0;
-    transform: translateY(2px); }
+
+.contentSearchSuggestionTable {
+  background-color: var(--newtab-search-background-color);
+  border: 0;
+  transform: translateY(3px); }
+  .contentSearchSuggestionTable .contentSearchHeader {
+    background-color: var(--newtab-background-color);
+    color: var(--newtab-text-secondary-color); }
+  .contentSearchSuggestionTable .contentSearchHeader, .contentSearchSuggestionTable .contentSearchSuggestionsList {
+    border-color: var(--newtab-border-primary-color); }
+  .contentSearchSuggestionTable .contentSearchSearchWithHeaderSearchText {
+    color: var(--newtab-text-primary-color); }
 
 .context-menu {
-  background: #F9F9FA;
+  background: var(--newtab-background-color);
   border-radius: 5px;
   box-shadow: 0 5px 10px rgba(0, 0, 0, 0.3), 0 0 0 1px rgba(0, 0, 0, 0.2);
   display: block;
   font-size: 14px;
   margin-inline-start: 5px;
   offset-inline-start: 100%;
   position: absolute;
   top: 6.75px;
@@ -833,29 +904,29 @@ main {
   .context-menu > ul {
     list-style: none;
     margin: 0;
     padding: 5px 0; }
     .context-menu > ul > li {
       margin: 0;
       width: 100%; }
       .context-menu > ul > li.separator {
-        border-bottom: 1px solid rgba(0, 0, 0, 0.2);
+        border-bottom: 1px solid var(--newtab-border-secondary-color);
         margin: 5px 0; }
       .context-menu > ul > li > a {
         align-items: center;
         color: inherit;
         cursor: pointer;
         display: flex;
         line-height: 16px;
         outline: none;
         padding: 3px 12px;
         white-space: nowrap; }
         .context-menu > ul > li > a:-moz-any(:focus, :hover) {
-          background: #0060DF;
+          background: var(--newtab-link-primary-color);
           color: #FFF; }
           .context-menu > ul > li > a:-moz-any(:focus, :hover) a {
             color: #0C0C0D; }
           .context-menu > ul > li > a:-moz-any(:focus, :hover) .icon {
             fill: #FFF; }
           .context-menu > ul > li > a:-moz-any(:focus, :hover):-moz-any(:focus, :hover) {
             color: #FFF; }
         .context-menu > ul > li > a.disabled {
@@ -895,93 +966,93 @@ main {
     .confirmation-dialog .actions button.done {
       margin-inline-end: 0;
       margin-inline-start: 0; }
 
 .confirmation-dialog .icon {
   margin-inline-end: 16px; }
 
 .modal-overlay {
-  background: #EDEDF0;
+  background: var(--newtab-overlay-color);
   height: 100%;
   left: 0;
   opacity: 0.8;
   position: fixed;
   top: 0;
   width: 100%;
   z-index: 11001; }
 
 .modal {
-  background: #FFF;
-  border: 1px solid #D7D7DB;
+  background: var(--newtab-modal-color);
+  border: 1px solid var(--newtab-border-secondary-color);
   border-radius: 5px;
   font-size: 15px;
   z-index: 11002; }
 
 .card-outer {
-  background: #FFF;
+  background: var(--newtab-card-background-color);
   border-radius: 3px;
   display: inline-block;
   height: 266px;
   margin-inline-end: 32px;
   position: relative;
   width: 100%; }
   .card-outer .context-menu-button {
     background-clip: padding-box;
-    background-color: #FFF;
+    background-color: var(--newtab-contextmenu-button-color);
     background-image: url("chrome://browser/skin/page-action.svg");
     background-position: 55%;
-    border: 1px solid #B1B1B3;
+    border: 1px solid var(--newtab-border-primary-color);
     border-radius: 100%;
     box-shadow: 0 2px rgba(12, 12, 13, 0.1);
     cursor: pointer;
-    fill: rgba(12, 12, 13, 0.8);
+    fill: var(--newtab-icon-primary-color);
     height: 27px;
     offset-inline-end: -13.5px;
     opacity: 0;
     position: absolute;
     top: -13.5px;
     transform: scale(0.25);
     transition-duration: 200ms;
     transition-property: transform, opacity;
     width: 27px; }
     .card-outer .context-menu-button:-moz-any(:active, :focus) {
       opacity: 1;
       transform: scale(1); }
   .card-outer.placeholder {
     background: transparent; }
     .card-outer.placeholder .card {
-      box-shadow: inset 0 0 0 1px rgba(0, 0, 0, 0.1); }
+      box-shadow: inset 0 0 0 1px var(--newtab-inner-box-shadow-color); }
   .card-outer .card {
     border-radius: 3px;
     box-shadow: 0 1px 4px 0 rgba(12, 12, 13, 0.1);
     height: 100%; }
   .card-outer > a {
     color: inherit;
     display: block;
     height: 100%;
     outline: none;
     position: absolute;
     width: 100%; }
     .card-outer > a:-moz-any(.active, :focus) .card {
-      box-shadow: 0 0 0 5px #D7D7DB;
+      box-shadow: 0 0 0 5px var(--newtab-card-active-outline-color);
       transition: box-shadow 150ms; }
     .card-outer > a:-moz-any(.active, :focus) .card-title {
-      color: #0060DF; }
+      color: var(--newtab-link-primary-color); }
   .card-outer:-moz-any(:hover, :focus, .active):not(.placeholder) {
-    box-shadow: 0 0 0 5px #D7D7DB;
+    box-shadow: 0 0 0 5px var(--newtab-card-active-outline-color);
     transition: box-shadow 150ms;
     outline: none; }
     .card-outer:-moz-any(:hover, :focus, .active):not(.placeholder) .context-menu-button {
       opacity: 1;
       transform: scale(1); }
     .card-outer:-moz-any(:hover, :focus, .active):not(.placeholder) .card-title {
-      color: #0060DF; }
+      color: var(--newtab-link-primary-color); }
   .card-outer .card-preview-image-outer {
-    background-color: #F9F9FA;
+    background-color: var(--newtab-background-color);
     border-radius: 3px 3px 0 0;
     height: 122px;
     overflow: hidden;
     position: relative; }
     .card-outer .card-preview-image-outer::after {
       border-bottom: 1px solid rgba(0, 0, 0, 0.05);
       bottom: 0;
       content: '';
@@ -1013,17 +1084,17 @@ main {
     .card-outer .card-text.no-host-name.no-context {
       max-height: 116px; }
     .card-outer .card-text.no-image.no-host-name.no-context {
       max-height: 230px; }
     .card-outer .card-text:not(.no-description) .card-title {
       max-height: 57px;
       overflow: hidden; }
   .card-outer .card-host-name {
-    color: #737373;
+    color: var(--newtab-text-secondary-color);
     font-size: 10px;
     overflow: hidden;
     padding-bottom: 4px;
     text-overflow: ellipsis;
     text-transform: uppercase; }
   .card-outer .card-title {
     font-size: 14px;
     line-height: 19px;
@@ -1032,29 +1103,30 @@ main {
   .card-outer .card-description {
     font-size: 12px;
     line-height: 19px;
     margin: 0;
     overflow: hidden;
     word-wrap: break-word; }
   .card-outer .card-context {
     bottom: 0;
-    color: #737373;
+    color: var(--newtab-text-secondary-color);
     display: flex;
     font-size: 11px;
     left: 0;
-    padding: 12px 16px 12px 14px;
+    padding: 9px 16px 9px 14px;
     position: absolute;
     right: 0; }
   .card-outer .card-context-icon {
-    fill: rgba(12, 12, 13, 0.6);
+    fill: var(--newtab-icon-secondary-color);
+    height: 22px;
     margin-inline-end: 6px; }
   .card-outer .card-context-label {
     flex-grow: 1;
-    line-height: 16px;
+    line-height: 22px;
     overflow: hidden;
     text-overflow: ellipsis;
     white-space: nowrap; }
 
 @media (min-width: 1122px) {
   .wide-layout-enabled .card-outer {
     height: 370px; }
     .wide-layout-enabled .card-outer .card-preview-image-outer {
@@ -1075,17 +1147,17 @@ main {
     .wide-layout-enabled .card-outer .card-description {
       font-size: 15px;
       line-height: 23px; }
     .wide-layout-enabled .card-outer .card-context {
       bottom: 4px;
       font-size: 14px; } }
 
 .manual-migration-container {
-  color: #4A4A4F;
+  color: var(--newtab-text-conditional-color);
   font-size: 13px;
   line-height: 15px;
   margin-bottom: 20px;
   text-align: center; }
   @media (min-width: 610px) {
     .manual-migration-container {
       display: flex;
       justify-content: space-between;
@@ -1098,17 +1170,17 @@ main {
         display: flex;
         justify-content: space-between; } }
   .manual-migration-container .icon {
     display: none; }
     @media (min-width: 610px) {
       .manual-migration-container .icon {
         align-self: center;
         display: block;
-        fill: rgba(12, 12, 13, 0.6);
+        fill: var(--newtab-icon-secondary-color);
         margin-inline-end: 6px; } }
 
 .manual-migration-actions {
   border: 0;
   display: block;
   flex-wrap: nowrap; }
   @media (min-width: 610px) {
     .manual-migration-actions {
@@ -1123,32 +1195,42 @@ main {
     padding: 0 12px; }
 
 .collapsible-section {
   padding: 10px 25px;
   transition-delay: 100ms;
   transition-duration: 100ms;
   transition-property: background-color; }
   .collapsible-section .section-title {
-    margin: 0; }
+    font-size: 13px;
+    font-weight: bold;
+    margin: 0;
+    text-transform: uppercase; }
+    .collapsible-section .section-title span {
+      color: var(--newtab-section-header-text-color);
+      display: inline-block;
+      fill: var(--newtab-section-header-text-color);
+      vertical-align: middle; }
     .collapsible-section .section-title .click-target {
       cursor: pointer;
       vertical-align: top;
       white-space: nowrap; }
     .collapsible-section .section-title .collapsible-arrow {
       margin-inline-start: 8px;
       margin-top: -1px; }
   .collapsible-section .section-top-bar {
+    height: 19px;
+    margin-bottom: 13px;
     position: relative; }
     .collapsible-section .section-top-bar .context-menu-button {
       background: url("chrome://browser/skin/page-action.svg") no-repeat right center;
       border: 0;
       cursor: pointer;
-      fill: #737373;
-      height: 20px;
+      fill: var(--newtab-section-header-text-color);
+      height: 100%;
       offset-inline-end: 0;
       opacity: 0;
       position: absolute;
       top: 0;
       transition-duration: 200ms;
       transition-property: opacity;
       width: 27px; }
       .collapsible-section .section-top-bar .context-menu-button:-moz-any(:active, :focus, :hover) {
@@ -1160,46 +1242,47 @@ main {
       .collapsible-section .section-top-bar .context-menu {
         margin-inline-end: 5px;
         margin-inline-start: auto;
         offset-inline-end: 0;
         offset-inline-start: auto; } }
   .collapsible-section:hover .section-top-bar .context-menu-button, .collapsible-section.active .section-top-bar .context-menu-button {
     opacity: 1; }
   .collapsible-section.active {
-    background: rgba(237, 237, 240, 0.6);
+    background: var(--newtab-element-active-color);
     border-radius: 4px; }
     .collapsible-section.active .section-top-bar .context-menu-button {
-      fill: #0C0C0D; }
+      fill: var(--newtab-section-active-contextmenu-color); }
   .collapsible-section .section-disclaimer {
-    color: #4A4A4F;
+    color: var(--newtab-text-conditional-color);
     font-size: 13px;
     margin-bottom: 16px;
     position: relative; }
     .collapsible-section .section-disclaimer .section-disclaimer-text {
       display: inline-block;
       min-height: 26px;
       width: calc(100% - 130px); }
       @media (max-width: 610px) {
         .collapsible-section .section-disclaimer .section-disclaimer-text {
           width: 224px; } }
     .collapsible-section .section-disclaimer a {
-      color: #008EA4;
+      color: var(--newtab-link-secondary-color);
+      font-weight: bold;
       padding-left: 3px; }
     .collapsible-section .section-disclaimer button {
-      background: #F9F9FA;
+      background: transparent;
       border: 1px solid #B1B1B3;
       border-radius: 4px;
       cursor: pointer;
       margin-top: 2px;
       max-width: 130px;
       min-height: 26px;
       offset-inline-end: 0; }
       .collapsible-section .section-disclaimer button:hover:not(.dismiss) {
-        box-shadow: 0 0 0 5px #D7D7DB;
+        box-shadow: 0 0 0 5px var(--newtab-card-active-outline-color);
         transition: box-shadow 150ms; }
       @media (min-width: 482px) {
         .collapsible-section .section-disclaimer button {
           position: absolute; } }
   .collapsible-section .section-body-fallback {
     height: 266px; }
   .collapsible-section .section-body {
     margin: 0 -7px;
@@ -1210,9 +1293,49 @@ main {
   .collapsible-section.animation-enabled .section-title .collapsible-arrow {
     transition: transform 0.5s cubic-bezier(0.07, 0.95, 0, 1); }
   .collapsible-section.animation-enabled .section-body {
     transition: max-height 0.5s cubic-bezier(0.07, 0.95, 0, 1); }
   .collapsible-section.collapsed .section-body {
     max-height: 0;
     overflow: hidden; }
 
+.messages-admin {
+  max-width: 996px;
+  margin: 0 auto;
+  font-size: 14px; }
+  .messages-admin h1 {
+    font-weight: 200;
+    font-size: 32px; }
+  .messages-admin table {
+    border-collapse: collapse;
+    width: 100%; }
+  .messages-admin .message-item:first-child td {
+    border-top: 1px solid rgba(0, 0, 0, 0.1); }
+  .messages-admin .message-item td {
+    vertical-align: top;
+    border-bottom: 1px solid rgba(0, 0, 0, 0.1);
+    padding: 8px; }
+    .messages-admin .message-item td:first-child {
+      border-left: 1px solid rgba(0, 0, 0, 0.1); }
+    .messages-admin .message-item td:last-child {
+      border-right: 1px solid rgba(0, 0, 0, 0.1); }
+  .messages-admin .message-item.current .message-id span {
+    background: #FFE900;
+    padding: 2px 5px; }
+  .messages-admin .message-item.blocked .message-id,
+  .messages-admin .message-item.blocked .message-summary {
+    opacity: 0.5; }
+  .messages-admin .message-item.blocked .message-id {
+    color: #0C0C0D; }
+  .messages-admin .message-item .message-id {
+    font-family: "SF Mono", "Monaco", "Inconsolata", "Fira Mono", "Droid Sans Mono", "Source Code Pro", monospace;
+    font-size: 12px; }
+  .messages-admin pre {
+    background: #FFF;
+    margin: 0;
+    padding: 8px;
+    font-size: 12px;
+    max-width: 750px;
+    overflow: auto;
+    font-family: "SF Mono", "Monaco", "Inconsolata", "Fira Mono", "Droid Sans Mono", "Source Code Pro", monospace; }
+
 /*# sourceMappingURL=activity-stream-mac.css.map */
\ No newline at end of file
--- a/browser/extensions/activity-stream/css/activity-stream-mac.css.map
+++ b/browser/extensions/activity-stream/css/activity-stream-mac.css.map
@@ -1,42 +1,46 @@
 {
 	"version": 3,
 	"file": "activity-stream-mac.css",
 	"sources": [
 		"../content-src/styles/activity-stream-mac.scss",
 		"../content-src/styles/_activity-stream.scss",
 		"../content-src/styles/_normalize.scss",
 		"../content-src/styles/_variables.scss",
+		"../content-src/styles/_theme.scss",
 		"../content-src/styles/_icons.scss",
 		"../content-src/components/Base/_Base.scss",
 		"../content-src/components/ErrorBoundary/_ErrorBoundary.scss",
 		"../content-src/components/TopSites/_TopSites.scss",
 		"../content-src/components/Sections/_Sections.scss",
 		"../content-src/components/Topics/_Topics.scss",
 		"../content-src/components/Search/_Search.scss",
 		"../content-src/components/ContextMenu/_ContextMenu.scss",
 		"../content-src/components/ConfirmDialog/_ConfirmDialog.scss",
 		"../content-src/components/Card/_Card.scss",
 		"../content-src/components/ManualMigration/_ManualMigration.scss",
-		"../content-src/components/CollapsibleSection/_CollapsibleSection.scss"
+		"../content-src/components/CollapsibleSection/_CollapsibleSection.scss",
+		"../content-src/components/MessageCenterAdmin/MessageCenterAdmin.scss"
 	],
 	"sourcesContent": [
 		"/* This is the mac variant */ // sass-lint:disable-line no-css-comments\n\n$os-infopanel-arrow-height: 10px;\n$os-infopanel-arrow-offset-end: 7px;\n$os-infopanel-arrow-width: 18px;\n$os-search-focus-shadow-radius: 3px;\n\n@import './activity-stream';\n",
-		"@import './normalize';\n@import './variables';\n@import './icons';\n\nhtml,\nbody,\n#root { // sass-lint:disable-line no-ids\n  height: 100%;\n}\n\nbody {\n  background: $background-primary;\n  color: $text-primary;\n  font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', 'Ubuntu', 'Helvetica Neue', sans-serif;\n  font-size: 16px;\n  overflow-y: scroll;\n}\n\nh1,\nh2 {\n  font-weight: normal;\n}\n\na {\n  color: $link-primary;\n  text-decoration: none;\n\n  &:hover {\n    color: $link-secondary;\n  }\n}\n\n// For screen readers\n.sr-only {\n  border: 0;\n  clip: rect(0, 0, 0, 0);\n  height: 1px;\n  margin: -1px;\n  overflow: hidden;\n  padding: 0;\n  position: absolute;\n  width: 1px;\n}\n\n.inner-border {\n  border: $border-secondary;\n  border-radius: $border-radius;\n  height: 100%;\n  left: 0;\n  pointer-events: none;\n  position: absolute;\n  top: 0;\n  width: 100%;\n  z-index: 100;\n}\n\n@keyframes fadeIn {\n  from {\n    opacity: 0;\n  }\n\n  to {\n    opacity: 1;\n  }\n}\n\n.show-on-init {\n  opacity: 0;\n  transition: opacity 0.2s ease-in;\n\n  &.on {\n    animation: fadeIn 0.2s;\n    opacity: 1;\n  }\n}\n\n.actions {\n  border-top: $border-secondary;\n  display: flex;\n  flex-direction: row;\n  flex-wrap: wrap;\n  justify-content: flex-start;\n  margin: 0;\n  padding: 15px 25px 0;\n\n  button {\n    background-color: $input-secondary;\n    border: $border-primary;\n    border-radius: 4px;\n    color: inherit;\n    cursor: pointer;\n    margin-bottom: 15px;\n    padding: 10px 30px;\n    white-space: nowrap;\n\n    &:hover:not(.dismiss) {\n      box-shadow: $shadow-primary;\n      transition: box-shadow 150ms;\n    }\n\n    &.dismiss {\n      border: 0;\n      padding: 0;\n      text-decoration: underline;\n    }\n\n    &.done {\n      background: $input-primary;\n      border: solid 1px $blue-60;\n      color: $white;\n      margin-inline-start: auto;\n    }\n  }\n}\n\n// Make sure snippets show up above other UI elements\n#snippets-container { // sass-lint:disable-line no-ids\n  z-index: 1;\n}\n\n// Components\n@import '../components/Base/Base';\n@import '../components/ErrorBoundary/ErrorBoundary';\n@import '../components/TopSites/TopSites';\n@import '../components/Sections/Sections';\n@import '../components/Topics/Topics';\n@import '../components/Search/Search';\n@import '../components/ContextMenu/ContextMenu';\n@import '../components/ConfirmDialog/ConfirmDialog';\n@import '../components/Card/Card';\n@import '../components/ManualMigration/ManualMigration';\n@import '../components/CollapsibleSection/CollapsibleSection';\n",
+		"@import './normalize';\n@import './variables';\n@import './theme';\n@import './icons';\n\nhtml {\n  height: 100%;\n}\n\nbody,\n#root { // sass-lint:disable-line no-ids\n  min-height: 100vh;\n}\n\nbody {\n  font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', 'Ubuntu', 'Helvetica Neue', sans-serif;\n  font-size: 16px;\n  overflow-y: scroll;\n}\n\nh1,\nh2 {\n  font-weight: normal;\n}\n\na {\n  text-decoration: none;\n}\n\n// For screen readers\n.sr-only {\n  border: 0;\n  clip: rect(0, 0, 0, 0);\n  height: 1px;\n  margin: -1px;\n  overflow: hidden;\n  padding: 0;\n  position: absolute;\n  width: 1px;\n}\n\n.inner-border {\n  border: $border-secondary;\n  border-radius: $border-radius;\n  height: 100%;\n  left: 0;\n  pointer-events: none;\n  position: absolute;\n  top: 0;\n  width: 100%;\n  z-index: 100;\n}\n\n@keyframes fadeIn {\n  from {\n    opacity: 0;\n  }\n\n  to {\n    opacity: 1;\n  }\n}\n\n.show-on-init {\n  opacity: 0;\n  transition: opacity 0.2s ease-in;\n\n  &.on {\n    animation: fadeIn 0.2s;\n    opacity: 1;\n  }\n}\n\n.actions {\n  border-top: $border-secondary;\n  display: flex;\n  flex-direction: row;\n  flex-wrap: wrap;\n  justify-content: flex-start;\n  margin: 0;\n  padding: 15px 25px 0;\n}\n\n// Default button (grey)\n.button,\n.actions button {\n  background-color: var(--newtab-button-secondary-color);\n  border: $border-primary;\n  border-radius: 4px;\n  color: inherit;\n  cursor: pointer;\n  margin-bottom: 15px;\n  padding: 10px 30px;\n  white-space: nowrap;\n\n  &:hover:not(.dismiss) {\n    box-shadow: $shadow-primary;\n    transition: box-shadow 150ms;\n  }\n\n  &.dismiss {\n    background-color: transparent;\n    border: 0;\n    padding: 0;\n    text-decoration: underline;\n  }\n\n  // Blue button\n  &.primary,\n  &.done {\n    background-color: var(--newtab-button-primary-color);\n    border: solid 1px var(--newtab-button-primary-color);\n    color: $white;\n    margin-inline-start: auto;\n  }\n}\n\n// Make sure snippets show up above other UI elements\n#snippets-container { // sass-lint:disable-line no-ids\n  z-index: 1;\n}\n\n// Components\n@import '../components/Base/Base';\n@import '../components/ErrorBoundary/ErrorBoundary';\n@import '../components/TopSites/TopSites';\n@import '../components/Sections/Sections';\n@import '../components/Topics/Topics';\n@import '../components/Search/Search';\n@import '../components/ContextMenu/ContextMenu';\n@import '../components/ConfirmDialog/ConfirmDialog';\n@import '../components/Card/Card';\n@import '../components/ManualMigration/ManualMigration';\n@import '../components/CollapsibleSection/CollapsibleSection';\n@import '../components/MessageCenterAdmin/MessageCenterAdmin';\n",
 		"html {\n  box-sizing: border-box;\n}\n\n*,\n*::before,\n*::after {\n  box-sizing: inherit;\n}\n\n*::-moz-focus-inner {\n  border: 0;\n}\n\nbody {\n  margin: 0;\n}\n\nbutton,\ninput {\n  background-color: inherit;\n  color: inherit;\n  font-family: inherit;\n  font-size: inherit;\n}\n\n[hidden] {\n  display: none !important; // sass-lint:disable-line no-important\n}\n",
-		"// Photon colors from http://design.firefox.com/photon/visuals/color.html\n$blue-50: #0A84FF;\n$blue-60: #0060DF;\n$grey-10: #F9F9FA;\n$grey-20: #EDEDF0;\n$grey-30: #D7D7DB;\n$grey-40: #B1B1B3;\n$grey-50: #737373;\n$grey-60: #4A4A4F;\n$grey-90: #0C0C0D;\n$teal-70: #008EA4;\n$red-60: #D70022;\n\n// Photon opacity from http://design.firefox.com/photon/visuals/color.html#opacity\n$grey-90-10: rgba($grey-90, 0.1);\n$grey-90-20: rgba($grey-90, 0.2);\n$grey-90-30: rgba($grey-90, 0.3);\n$grey-90-40: rgba($grey-90, 0.4);\n$grey-90-50: rgba($grey-90, 0.5);\n$grey-90-60: rgba($grey-90, 0.6);\n$grey-90-70: rgba($grey-90, 0.7);\n$grey-90-80: rgba($grey-90, 0.8);\n$grey-90-90: rgba($grey-90, 0.9);\n\n$grey-20-60: rgba($grey-20, 0.6);\n\n$black: #000;\n$black-5: rgba($black, 0.05);\n$black-10: rgba($black, 0.1);\n$black-15: rgba($black, 0.15);\n$black-20: rgba($black, 0.2);\n$black-25: rgba($black, 0.25);\n$black-30: rgba($black, 0.3);\n\n// Photon transitions from http://design.firefox.com/photon/motion/duration-and-easing.html\n$photon-easing: cubic-bezier(0.07, 0.95, 0, 1);\n\n// Aliases and derived styles based on Photon colors for common usage\n$background-primary: $grey-10;\n$background-secondary: $grey-20;\n$border-primary: 1px solid $grey-40;\n$border-secondary: 1px solid $grey-30;\n$fill-primary: $grey-90-80;\n$fill-secondary: $grey-90-60;\n$fill-tertiary: $grey-30;\n$input-primary: $blue-60;\n$input-secondary: $grey-10;\n$link-primary: $blue-60;\n$link-secondary: $teal-70;\n$shadow-primary: 0 0 0 5px $grey-30;\n$shadow-secondary: 0 1px 4px 0 $grey-90-10;\n$text-primary: $grey-90;\n$text-conditional: $grey-60;\n$text-secondary: $grey-50;\n$input-border: solid 1px $grey-90-20;\n$input-border-active: solid 1px $blue-50;\n$input-error-border: solid 1px $red-60;\n$input-error-boxshadow: 0 0 0 1px $red-60, 0 0 0 4px rgba($red-60, 0.3);\n$input-focus-boxshadow: 0 0 0 1px $blue-50, 0 0 0 4px rgba($blue-50, 0.3);\n\n$white: #FFF;\n$border-radius: 3px;\n\n$base-gutter: 32px;\n$section-horizontal-padding: 25px;\n$section-vertical-padding: 10px;\n$section-spacing: 40px - $section-vertical-padding * 2;\n$grid-unit: 96px; // 1 top site\n\n$icon-size: 16px;\n$smaller-icon-size: 12px;\n$larger-icon-size: 32px;\n\n$wrapper-default-width: $grid-unit * 2 + $base-gutter * 1 + $section-horizontal-padding * 2; // 2 top sites\n$wrapper-max-width-small: $grid-unit * 3 + $base-gutter * 2 + $section-horizontal-padding * 2; // 3 top sites\n$wrapper-max-width-medium: $grid-unit * 4 + $base-gutter * 3 + $section-horizontal-padding * 2; // 4 top sites\n$wrapper-max-width-large: $grid-unit * 6 + $base-gutter * 5 + $section-horizontal-padding * 2; // 6 top sites\n$wrapper-max-width-widest: $grid-unit * 8 + $base-gutter * 7 + $section-horizontal-padding * 2; // 8 top sites\n// For the breakpoints, we need to add space for the scrollbar to avoid weird\n// layout issues when the scrollbar is visible. 16px is wide enough to cover all\n// OSes and keeps it simpler than a per-OS value.\n$scrollbar-width: 16px;\n$break-point-small: $wrapper-max-width-small + $base-gutter * 2 + $scrollbar-width;\n$break-point-medium: $wrapper-max-width-medium + $base-gutter * 2 + $scrollbar-width;\n$break-point-large: $wrapper-max-width-large + $base-gutter * 2 + $scrollbar-width;\n$break-point-widest: $wrapper-max-width-widest + $base-gutter * 2 + $scrollbar-width;\n\n$section-title-font-size: 13px;\n\n$card-width: $grid-unit * 2 + $base-gutter;\n$card-height: 266px;\n$card-preview-image-height: 122px;\n$card-title-margin: 2px;\n$card-text-line-height: 19px;\n// Larger cards for wider screens:\n$card-width-large: 309px;\n$card-height-large: 370px;\n$card-preview-image-height-large: 155px;\n\n$topic-margin-top: 12px;\n\n$context-menu-button-size: 27px;\n$context-menu-button-boxshadow: 0 2px $grey-90-10;\n$context-menu-border-color: $black-20;\n$context-menu-shadow: 0 5px 10px $black-30, 0 0 0 1px $context-menu-border-color;\n$context-menu-font-size: 14px;\n$context-menu-border-radius: 5px;\n$context-menu-outer-padding: 5px;\n$context-menu-item-padding: 3px 12px;\n$section-context-menu-button-height: 20px;\n\n$error-fallback-font-size: 12px;\n$error-fallback-line-height: 1.5;\n\n$inner-box-shadow: 0 0 0 1px $black-10;\n\n$image-path: '../data/content/assets/';\n\n$snippets-container-height: 120px;\n\n@mixin fade-in {\n  box-shadow: inset $inner-box-shadow, $shadow-primary;\n  transition: box-shadow 150ms;\n}\n\n@mixin fade-in-card {\n  box-shadow: $shadow-primary;\n  transition: box-shadow 150ms;\n}\n\n@mixin context-menu-button {\n  .context-menu-button {\n    background-clip: padding-box;\n    background-color: $white;\n    background-image: url('chrome://browser/skin/page-action.svg');\n    background-position: 55%;\n    border: $border-primary;\n    border-radius: 100%;\n    box-shadow: $context-menu-button-boxshadow;\n    cursor: pointer;\n    fill: $fill-primary;\n    height: $context-menu-button-size;\n    offset-inline-end: -($context-menu-button-size / 2);\n    opacity: 0;\n    position: absolute;\n    top: -($context-menu-button-size / 2);\n    transform: scale(0.25);\n    transition-duration: 200ms;\n    transition-property: transform, opacity;\n    width: $context-menu-button-size;\n\n    &:-moz-any(:active, :focus) {\n      opacity: 1;\n      transform: scale(1);\n    }\n  }\n}\n\n@mixin context-menu-button-hover {\n  .context-menu-button {\n    opacity: 1;\n    transform: scale(1);\n  }\n}\n\n@mixin context-menu-open-middle {\n  .context-menu {\n    margin-inline-end: auto;\n    margin-inline-start: auto;\n    offset-inline-end: auto;\n    offset-inline-start: -$base-gutter;\n  }\n}\n\n@mixin context-menu-open-left {\n  .context-menu {\n    margin-inline-end: 5px;\n    margin-inline-start: auto;\n    offset-inline-end: 0;\n    offset-inline-start: auto;\n  }\n}\n\n@mixin flip-icon {\n  &:dir(rtl) {\n    transform: scaleX(-1);\n  }\n}\n",
-		".icon {\n  background-position: center center;\n  background-repeat: no-repeat;\n  background-size: $icon-size;\n  -moz-context-properties: fill;\n  display: inline-block;\n  fill: $fill-primary;\n  height: $icon-size;\n  vertical-align: middle;\n  width: $icon-size;\n\n  &.icon-spacer {\n    margin-inline-end: 8px;\n  }\n\n  &.icon-small-spacer {\n    margin-inline-end: 6px;\n  }\n\n  &.icon-bookmark-added {\n    background-image: url('chrome://browser/skin/bookmark.svg');\n  }\n\n  &.icon-bookmark-hollow {\n    background-image: url('chrome://browser/skin/bookmark-hollow.svg');\n  }\n\n  &.icon-clear-input {\n    fill: $fill-secondary;\n    background-image: url('#{$image-path}glyph-cancel-16.svg');\n  }\n\n  &.icon-delete {\n    background-image: url('#{$image-path}glyph-delete-16.svg');\n  }\n\n  &.icon-modal-delete {\n    background-image: url('#{$image-path}glyph-modal-delete-32.svg');\n    background-size: $larger-icon-size;\n    height: $larger-icon-size;\n    width: $larger-icon-size;\n  }\n\n  &.icon-dismiss {\n    background-image: url('#{$image-path}glyph-dismiss-16.svg');\n  }\n\n  &.icon-info {\n    background-image: url('#{$image-path}glyph-info-16.svg');\n  }\n\n  &.icon-import {\n    background-image: url('#{$image-path}glyph-import-16.svg');\n  }\n\n  &.icon-new-window {\n    @include flip-icon;\n    background-image: url('#{$image-path}glyph-newWindow-16.svg');\n  }\n\n  &.icon-new-window-private {\n    background-image: url('chrome://browser/skin/privateBrowsing.svg');\n  }\n\n  &.icon-settings {\n    background-image: url('chrome://browser/skin/settings.svg');\n  }\n\n  &.icon-pin {\n    @include flip-icon;\n    background-image: url('#{$image-path}glyph-pin-16.svg');\n  }\n\n  &.icon-unpin {\n    @include flip-icon;\n    background-image: url('#{$image-path}glyph-unpin-16.svg');\n  }\n\n  &.icon-edit {\n    background-image: url('#{$image-path}glyph-edit-16.svg');\n  }\n\n  &.icon-pocket {\n    background-image: url('#{$image-path}glyph-pocket-16.svg');\n  }\n\n  &.icon-historyItem { // sass-lint:disable-line class-name-format\n    background-image: url('#{$image-path}glyph-historyItem-16.svg');\n  }\n\n  &.icon-trending {\n    background-image: url('#{$image-path}glyph-trending-16.svg');\n    transform: translateY(2px); // trending bolt is visually top heavy\n  }\n\n  &.icon-now {\n    background-image: url('chrome://browser/skin/history.svg');\n  }\n\n  &.icon-topsites {\n    background-image: url('#{$image-path}glyph-topsites-16.svg');\n  }\n\n  &.icon-pin-small {\n    @include flip-icon;\n    background-image: url('#{$image-path}glyph-pin-12.svg');\n    background-size: $smaller-icon-size;\n    height: $smaller-icon-size;\n    width: $smaller-icon-size;\n  }\n\n  &.icon-check {\n    background-image: url('chrome://browser/skin/check.svg');\n  }\n\n  &.icon-webextension {\n    background-image: url('#{$image-path}glyph-webextension-16.svg');\n  }\n\n  &.icon-highlights {\n    background-image: url('#{$image-path}glyph-highlights-16.svg');\n  }\n\n  &.icon-arrowhead-down {\n    background-image: url('#{$image-path}glyph-arrowhead-down-16.svg');\n  }\n\n  &.icon-arrowhead-down-small {\n    background-image: url('#{$image-path}glyph-arrowhead-down-12.svg');\n    background-size: $smaller-icon-size;\n    height: $smaller-icon-size;\n    width: $smaller-icon-size;\n  }\n\n  &.icon-arrowhead-forward-small {\n    background-image: url('#{$image-path}glyph-arrowhead-down-12.svg');\n    background-size: $smaller-icon-size;\n    height: $smaller-icon-size;\n    transform: rotate(-90deg);\n    width: $smaller-icon-size;\n\n    &:dir(rtl) {\n      transform: rotate(90deg);\n    }\n  }\n\n  &.icon-arrowhead-up {\n    background-image: url('#{$image-path}glyph-arrowhead-down-16.svg');\n    transform: rotate(180deg);\n  }\n\n  &.icon-add {\n    background-image: url('#{$image-path}glyph-add-16.svg');\n  }\n\n  &.icon-minimize {\n    background-image: url('#{$image-path}glyph-minimize-16.svg');\n  }\n\n  &.icon-maximize {\n    background-image: url('#{$image-path}glyph-maximize-16.svg');\n  }\n}\n",
-		".outer-wrapper {\n  display: flex;\n  flex-grow: 1;\n  height: 100%;\n  padding: ($section-spacing + $section-vertical-padding) $base-gutter $base-gutter;\n\n  &.fixed-to-top {\n    height: auto;\n  }\n}\n\nmain {\n  margin: auto;\n  // Offset the snippets container so things at the bottom of the page are still\n  // visible when snippets / onboarding are visible. Adjust for other spacing.\n  padding-bottom: $snippets-container-height - $section-spacing - $base-gutter;\n  width: $wrapper-default-width;\n\n  @media (min-width: $break-point-small) {\n    width: $wrapper-max-width-small;\n  }\n\n  @media (min-width: $break-point-medium) {\n    width: $wrapper-max-width-medium;\n  }\n\n  @media (min-width: $break-point-large) {\n    width: $wrapper-max-width-large;\n  }\n\n  section {\n    margin-bottom: $section-spacing;\n    position: relative;\n  }\n}\n\n.wide-layout-enabled {\n  main {\n    @media (min-width: $break-point-widest) {\n      width: $wrapper-max-width-widest;\n    }\n  }\n}\n\n.section-top-bar {\n  height: 16px;\n  margin-bottom: 16px;\n}\n\n.section-title {\n  font-size: $section-title-font-size;\n  font-weight: bold;\n  text-transform: uppercase;\n\n  span {\n    color: $text-secondary;\n    fill: $text-secondary;\n    vertical-align: middle;\n  }\n}\n\n.base-content-fallback {\n  // Make the error message be centered against the viewport\n  height: 100vh;\n}\n\n.body-wrapper {\n  // Hide certain elements so the page structure is fixed, e.g., placeholders,\n  // while avoiding flashes of changing content, e.g., icons and text\n  $selectors-to-hide: '\n    .section-title,\n    .sections-list .section:last-of-type,\n    .topic\n  ';\n\n  #{$selectors-to-hide} {\n    opacity: 0;\n  }\n\n  &.on {\n    #{$selectors-to-hide} {\n      opacity: 1;\n    }\n  }\n}\n\n.non-collapsible-section {\n  padding: 0 $section-horizontal-padding;\n}\n\n.prefs-button {\n  button {\n    background-color: transparent;\n    border: 0;\n    cursor: pointer;\n    fill: $fill-secondary;\n    offset-inline-end: 15px;\n    padding: 15px;\n    position: fixed;\n    top: 15px;\n    z-index: 12001;\n\n    &:hover {\n      background-color: $background-secondary;\n    }\n\n    &:active {\n      background-color: $background-primary;\n    }\n  }\n}\n",
-		".as-error-fallback {\n  align-items: center;\n  border-radius: $border-radius;\n  box-shadow: inset $inner-box-shadow;\n  color: $text-conditional;\n  display: flex;\n  flex-direction: column;\n  font-size: $error-fallback-font-size;\n  justify-content: center;\n  justify-items: center;\n  line-height: $error-fallback-line-height;\n\n  a {\n    color: $text-conditional;\n    text-decoration: underline;\n  }\n}\n\n",
-		"$top-sites-size: $grid-unit;\n$top-sites-border-radius: 6px;\n$top-sites-title-height: 30px;\n$top-sites-vertical-space: 8px;\n$screenshot-size: cover;\n$rich-icon-size: 96px;\n$default-icon-wrapper-size: 42px;\n$default-icon-size: 32px;\n$default-icon-offset: 6px;\n$half-base-gutter: $base-gutter / 2;\n\n.top-sites {\n  // Take back the margin from the bottom row of vertical spacing as well as the\n  // extra whitespace below the title text as it's vertically centered.\n  margin-bottom: $section-spacing - ($top-sites-vertical-space + $top-sites-title-height / 3);\n}\n\n.top-sites-list {\n  list-style: none;\n  margin: 0 (-$half-base-gutter);\n  padding: 0;\n\n  // Two columns\n  @media (max-width: $break-point-small) {\n    :nth-child(2n+1) {\n      @include context-menu-open-middle;\n    }\n\n    :nth-child(2n) {\n      @include context-menu-open-left;\n    }\n  }\n\n  // Three columns\n  @media (min-width: $break-point-small) and (max-width: $break-point-medium) {\n    :nth-child(3n+2),\n    :nth-child(3n) {\n      @include context-menu-open-left;\n    }\n  }\n\n  // Four columns\n  @media (min-width: $break-point-medium) and (max-width: $break-point-large) {\n    :nth-child(4n) {\n      @include context-menu-open-left;\n    }\n  }\n  @media (min-width: $break-point-medium) and (max-width: $break-point-medium + $card-width) {\n    :nth-child(4n+3) {\n      @include context-menu-open-left;\n    }\n  }\n\n  // Six columns\n  @media (min-width: $break-point-large) and (max-width: $break-point-large + 2 * $card-width) {\n    :nth-child(6n) {\n      @include context-menu-open-left;\n    }\n  }\n  @media (min-width: $break-point-large) and (max-width: $break-point-large + $card-width) {\n    :nth-child(6n+5) {\n      @include context-menu-open-left;\n    }\n  }\n\n  li {\n    margin: 0 0 $top-sites-vertical-space;\n  }\n\n  &:not(.dnd-active) {\n    .top-site-outer:-moz-any(.active, :focus, :hover) {\n      .tile {\n        @include fade-in;\n      }\n\n      @include context-menu-button-hover;\n    }\n  }\n}\n\n// container for drop zone\n.top-site-outer {\n  padding: 0 $half-base-gutter;\n  display: inline-block;\n\n  // container for context menu\n  .top-site-inner {\n    position: relative;\n\n    > a {\n      color: inherit;\n      display: block;\n      outline: none;\n\n      &:-moz-any(.active, :focus) {\n        .tile {\n          @include fade-in;\n        }\n      }\n    }\n  }\n\n  @include context-menu-button;\n\n  .tile { // sass-lint:disable-block property-sort-order\n    border-radius: $top-sites-border-radius;\n    box-shadow: inset $inner-box-shadow, $shadow-secondary;\n    height: $top-sites-size;\n    position: relative;\n    width: $top-sites-size;\n\n    // For letter fallback\n    align-items: center;\n    color: $text-secondary;\n    display: flex;\n    font-size: 32px;\n    font-weight: 200;\n    justify-content: center;\n    text-transform: uppercase;\n\n    &::before {\n      content: attr(data-fallback);\n    }\n  }\n\n  .screenshot {\n    background-color: $white;\n    background-position: top left;\n    background-size: $screenshot-size;\n    border-radius: $top-sites-border-radius;\n    box-shadow: inset $inner-box-shadow;\n    height: 100%;\n    left: 0;\n    opacity: 0;\n    position: absolute;\n    top: 0;\n    transition: opacity 1s;\n    width: 100%;\n\n    &.active {\n      opacity: 1;\n    }\n  }\n\n  // Some common styles for all icons (rich and default) in top sites\n  .top-site-icon {\n    background-color: $background-primary;\n    background-position: center center;\n    background-repeat: no-repeat;\n    border-radius: $top-sites-border-radius;\n    box-shadow: inset $inner-box-shadow;\n    position: absolute;\n  }\n\n  .rich-icon {\n    background-size: cover;\n    height: 100%;\n    offset-inline-start: 0;\n    top: 0;\n    width: 100%;\n  }\n\n  .default-icon { // sass-lint:disable block property-sort-order\n    background-size: $default-icon-size;\n    bottom: -$default-icon-offset;\n    height: $default-icon-wrapper-size;\n    offset-inline-end: -$default-icon-offset;\n    width: $default-icon-wrapper-size;\n\n    // for corner letter fallback\n    align-items: center;\n    display: flex;\n    font-size: 20px;\n    justify-content: center;\n\n    &[data-fallback]::before {\n      content: attr(data-fallback);\n    }\n  }\n\n  .title {\n    font: message-box;\n    height: $top-sites-title-height;\n    line-height: $top-sites-title-height;\n    text-align: center;\n    width: $top-sites-size;\n    position: relative;\n\n    .icon {\n      fill: $fill-tertiary;\n      offset-inline-start: 0;\n      position: absolute;\n      top: 10px;\n    }\n\n    span {\n      height: $top-sites-title-height;\n      display: block;\n      overflow: hidden;\n      text-overflow: ellipsis;\n      white-space: nowrap;\n    }\n\n    &.pinned {\n      span {\n        padding: 0 13px;\n      }\n    }\n  }\n\n  .edit-button {\n    background-image: url('#{$image-path}glyph-edit-16.svg');\n  }\n\n  &.placeholder {\n    .tile {\n      box-shadow: inset $inner-box-shadow;\n    }\n\n    .screenshot {\n      display: none;\n    }\n  }\n\n  &.dragged {\n    .tile {\n      background: $grey-20;\n      box-shadow: none;\n\n      *,\n      &::before {\n        display: none;\n      }\n    }\n\n    .title {\n      visibility: hidden;\n    }\n  }\n}\n\n// Always hide .hide-for-narrow if wide layout is disabled\n.wide-layout-disabled {\n  .top-sites-list {\n    .hide-for-narrow {\n      display: none;\n    }\n  }\n}\n\n.wide-layout-enabled {\n  .top-sites-list {\n    // Eight columns\n    @media (min-width: $break-point-widest) and (max-width: $break-point-widest + 2 * $card-width) {\n      :nth-child(8n) {\n        @include context-menu-open-left;\n      }\n    }\n\n    @media (min-width: $break-point-widest) and (max-width: $break-point-widest + $card-width) {\n      :nth-child(8n+7) {\n        @include context-menu-open-left;\n      }\n    }\n\n    @media not all and (min-width: $break-point-widest) {\n      .hide-for-narrow {\n        display: none;\n      }\n    }\n  }\n}\n\n.edit-topsites-wrapper {\n  .modal {\n    box-shadow: $shadow-secondary;\n    left: 0;\n    margin: 0 auto;\n    position: fixed;\n    right: 0;\n    top: 40px;\n    width: $wrapper-default-width;\n\n    @media (min-width: $break-point-small) {\n      width: $wrapper-max-width-small;\n    }\n\n    @media (min-width: $break-point-medium) {\n      width: $wrapper-max-width-medium;\n    }\n\n    @media (min-width: $break-point-large) {\n      width: $wrapper-max-width-large;\n    }\n  }\n}\n\n.topsite-form {\n  $form-width: 300px;\n  $form-spacing: 32px;\n\n  .form-input-container {\n    max-width: $form-width + 3 * $form-spacing + $rich-icon-size;\n    margin: 0 auto;\n    padding: $form-spacing;\n\n    .top-site-outer {\n      padding: 0;\n      margin: 24px 0 0;\n      margin-inline-start: $form-spacing;\n      pointer-events: none;\n    }\n\n    .section-title {\n      text-transform: none;\n      font-size: 16px;\n      margin: 0 0 16px;\n    }\n  }\n\n  .fields-and-preview {\n    display: flex;\n  }\n\n  label {\n    font-size: $section-title-font-size;\n  }\n\n  .form-wrapper {\n    width: 100%;\n\n    .field {\n      position: relative;\n\n      .icon-clear-input {\n        position: absolute;\n        transform: translateY(-50%);\n        top: 50%;\n        offset-inline-end: 8px;\n      }\n    }\n\n    .url {\n      input:dir(ltr) {\n        padding-right: 32px;\n      }\n\n      input:dir(rtl) {\n        padding-left: 32px;\n\n        &:not(:placeholder-shown) {\n          direction: ltr;\n          text-align: right;\n        }\n      }\n    }\n\n    .enable-custom-image-input {\n      display: inline-block;\n      font-size: 13px;\n      margin-top: 4px;\n      cursor: pointer;\n\n      &:hover {\n        text-decoration: underline;\n        color: $blue-60;\n      }\n    }\n\n    .custom-image-input-container {\n      margin-top: 4px;\n\n      .loading-container {\n        width: 16px;\n        height: 16px;\n        overflow: hidden;\n        position: absolute;\n        transform: translateY(-50%);\n        top: 50%;\n        offset-inline-end: 8px;\n      }\n\n      // This animation is derived from Firefox's tab loading animation\n      // See https://searchfox.org/mozilla-central/rev/b29daa46443b30612415c35be0a3c9c13b9dc5f6/browser/themes/shared/tabs.inc.css#208-216\n      .loading-animation {\n        @keyframes tab-throbber-animation {\n          100% { transform: translateX(-960px); }\n        }\n\n        @keyframes tab-throbber-animation-rtl {\n          100% { transform: translateX(960px); }\n        }\n\n        width: 960px;\n        height: 16px;\n        -moz-context-properties: fill;\n        fill: $blue-50;\n        background-image: url('chrome://browser/skin/tabbrowser/loading.svg');\n        animation: tab-throbber-animation 1.05s steps(60) infinite;\n\n        &:dir(rtl) {\n          animation-name: tab-throbber-animation-rtl;\n        }\n      }\n    }\n\n    input {\n      &[type='text'] {\n        border: $input-border;\n        border-radius: 2px;\n        margin: 8px 0;\n        padding: 0 8px;\n        height: 32px;\n        width: 100%;\n        font-size: 15px;\n\n        &:focus {\n          border: $input-border-active;\n          box-shadow: $input-focus-boxshadow;\n        }\n\n        &[disabled] {\n          border: $input-border;\n          box-shadow: none;\n          opacity: 0.4;\n        }\n      }\n    }\n\n    .invalid {\n      input {\n        &[type='text'] {\n          border: $input-error-border;\n          box-shadow: $input-error-boxshadow;\n        }\n      }\n    }\n\n    .error-tooltip {\n      animation: fade-up-tt 450ms;\n      background: $red-60;\n      border-radius: 2px;\n      color: $white;\n      offset-inline-start: 3px;\n      padding: 5px 12px;\n      position: absolute;\n      top: 44px;\n      z-index: 1;\n\n      // tooltip caret\n      &::before {\n        background: $red-60;\n        bottom: -8px;\n        content: '.';\n        height: 16px;\n        offset-inline-start: 12px;\n        position: absolute;\n        text-indent: -999px;\n        top: -7px;\n        transform: rotate(45deg);\n        white-space: nowrap;\n        width: 16px;\n        z-index: -1;\n      }\n    }\n  }\n\n  .actions {\n    justify-content: flex-end;\n\n    button {\n      margin-inline-start: 10px;\n      margin-inline-end: 0;\n    }\n  }\n\n  @media (max-width: $break-point-small) {\n    .fields-and-preview {\n      flex-direction: column;\n\n      .top-site-outer {\n        margin-inline-start: 0;\n      }\n    }\n  }\n}\n\n//used for tooltips below form element\n@keyframes fade-up-tt {\n  0% {\n    opacity: 0;\n    transform: translateY(15px);\n  }\n\n  100% {\n    opacity: 1;\n    transform: translateY(0);\n  }\n}\n",
-		".sections-list {\n  .section-list {\n    display: grid;\n    grid-gap: $base-gutter;\n    grid-template-columns: repeat(auto-fit, $card-width);\n    margin: 0;\n\n    @media (max-width: $break-point-medium) {\n      @include context-menu-open-left;\n    }\n\n    @media (min-width: $break-point-medium) and (max-width: $break-point-large) {\n      :nth-child(2n) {\n        @include context-menu-open-left;\n      }\n    }\n\n    @media (min-width: $break-point-large) and (max-width: $break-point-large + 2 * $card-width) {\n      :nth-child(3n) {\n        @include context-menu-open-left;\n      }\n    }\n  }\n\n  .section-empty-state {\n    border: $border-secondary;\n    border-radius: $border-radius;\n    display: flex;\n    height: $card-height;\n    width: 100%;\n\n    .empty-state {\n      margin: auto;\n      max-width: 350px;\n\n      .empty-state-icon {\n        background-position: center;\n        background-repeat: no-repeat;\n        background-size: 50px 50px;\n        -moz-context-properties: fill;\n        display: block;\n        fill: $fill-secondary;\n        height: 50px;\n        margin: 0 auto;\n        width: 50px;\n      }\n\n      .empty-state-message {\n        color: $text-secondary;\n        font-size: 13px;\n        margin-bottom: 0;\n        text-align: center;\n      }\n    }\n  }\n}\n\n.wide-layout-enabled {\n  .sections-list {\n    .section-list {\n      @media (min-width: $break-point-widest) and (max-width: $break-point-widest + 2 * $card-width) {\n        :nth-child(3n) {\n          @include context-menu-open-left;\n        }\n      }\n\n      @media (min-width: $break-point-widest) {\n        grid-template-columns: repeat(auto-fit, $card-width-large);\n      }\n    }\n  }\n\n  .section-empty-state {\n    height: $card-height-large;\n  }\n}\n",
-		".topic {\n  color: $text-secondary;\n  font-size: 12px;\n  line-height: 1.6;\n  margin-top: $topic-margin-top;\n\n  @media (min-width: $break-point-large) {\n    line-height: 16px;\n  }\n\n  ul {\n    margin: 0;\n    padding: 0;\n    @media (min-width: $break-point-large) {\n      display: inline;\n      padding-inline-start: 12px;\n    }\n  }\n\n\n  ul li {\n    display: inline-block;\n\n    &::after {\n      content: '•';\n      padding: 8px;\n    }\n\n    &:last-child::after {\n      content: none;\n    }\n  }\n\n  .topic-link {\n    color: $link-secondary;\n  }\n\n  .topic-read-more {\n    color: $link-secondary;\n\n    @media (min-width: $break-point-large) {\n      // This is floating to accomodate a very large number of topics and/or\n      // very long topic names due to l10n.\n      float: right;\n\n      &:dir(rtl) {\n        float: left;\n      }\n    }\n\n    &::after {\n      background: url('#{$image-path}topic-show-more-12.svg') no-repeat center center;\n      content: '';\n      -moz-context-properties: fill;\n      display: inline-block;\n      fill: $link-secondary;\n      height: 16px;\n      margin-inline-start: 5px;\n      vertical-align: top;\n      width: 12px;\n    }\n\n    &:dir(rtl)::after  {\n      transform: scaleX(-1);\n    }\n  }\n\n  // This is a clearfix to for the topics-read-more link which is floating and causes\n  // some jank when we set overflow:hidden for the animation.\n  &::after {\n    clear: both;\n    content: '';\n    display: table;\n  }\n}\n",
-		".search-wrapper {\n  $search-border-radius: 3px;\n  $search-focus-color: $blue-50;\n  $search-height: 35px;\n  $search-input-left-label-width: 35px;\n  $search-button-width: 36px;\n  $search-glyph-image: url('chrome://browser/skin/search-glass.svg');\n  $glyph-forward: url('chrome://browser/skin/forward.svg');\n  $search-glyph-size: 16px;\n  $search-glyph-fill: $grey-90-40;\n  // This is positioned so it is visually (not metrically) centered. r=abenson\n  $search-glyph-left-position: 12px;\n\n  cursor: default;\n  display: flex;\n  height: $search-height;\n  // The extra 1px is to account for the box-shadow being outside of the element\n  // instead of inside. It needs to be like that to not overlap the inner background\n  // color of the hover state of the submit button.\n  margin: 1px 1px $section-spacing;\n  position: relative;\n  width: 100%;\n\n  input {\n    border: 0;\n    border-radius: $search-border-radius;\n    box-shadow: $shadow-secondary, 0 0 0 1px $black-15;\n    font-size: 15px;\n    padding: 0;\n    padding-inline-end: $search-button-width;\n    padding-inline-start: $search-input-left-label-width;\n    width: 100%;\n  }\n\n  &:hover input {\n    box-shadow: $shadow-secondary, 0 0 0 1px $black-25;\n  }\n\n  &:active input,\n  input:focus {\n    box-shadow: 0 0 0 $os-search-focus-shadow-radius $search-focus-color;\n  }\n\n  .search-label {\n    background: $search-glyph-image no-repeat $search-glyph-left-position center / $search-glyph-size;\n    -moz-context-properties: fill;\n    fill: $search-glyph-fill;\n    height: 100%;\n    offset-inline-start: 0;\n    position: absolute;\n    width: $search-input-left-label-width;\n  }\n\n  .search-button {\n    background: $glyph-forward no-repeat center center;\n    background-size: 16px 16px;\n    border: 0;\n    border-radius: 0 $border-radius $border-radius 0;\n    -moz-context-properties: fill;\n    fill: $search-glyph-fill;\n    height: 100%;\n    offset-inline-end: 0;\n    position: absolute;\n    width: $search-button-width;\n\n    &:focus,\n    &:hover {\n      background-color: $grey-90-10;\n      cursor: pointer;\n    }\n\n    &:active {\n      background-color: $grey-90-20;\n    }\n\n    &:dir(rtl) {\n      transform: scaleX(-1);\n    }\n  }\n\n  // Adjust the style of the contentSearchUI-generated table\n  .contentSearchSuggestionTable { // sass-lint:disable-line class-name-format\n    border: 0;\n    transform: translateY(2px);\n  }\n}\n",
-		".context-menu {\n  background: $background-primary;\n  border-radius: $context-menu-border-radius;\n  box-shadow: $context-menu-shadow;\n  display: block;\n  font-size: $context-menu-font-size;\n  margin-inline-start: 5px;\n  offset-inline-start: 100%;\n  position: absolute;\n  top: ($context-menu-button-size / 4);\n  z-index: 10000;\n\n  > ul {\n    list-style: none;\n    margin: 0;\n    padding: $context-menu-outer-padding 0;\n\n    > li {\n      margin: 0;\n      width: 100%;\n\n      &.separator {\n        border-bottom: 1px solid $context-menu-border-color;\n        margin: $context-menu-outer-padding 0;\n      }\n\n      > a {\n        align-items: center;\n        color: inherit;\n        cursor: pointer;\n        display: flex;\n        line-height: 16px;\n        outline: none;\n        padding: $context-menu-item-padding;\n        white-space: nowrap;\n\n        &:-moz-any(:focus, :hover) {\n          background: $input-primary;\n          color: $white;\n\n          a {\n            color: $grey-90;\n          }\n\n          .icon {\n            fill: $white;\n          }\n\n          &:-moz-any(:focus, :hover) {\n            color: $white;\n          }\n        }\n\n        &.disabled {\n          opacity: 0.4;\n          pointer-events: none;\n        }\n      }\n    }\n  }\n}\n",
-		".confirmation-dialog {\n  .modal {\n    box-shadow: 0 2px 2px 0 $black-10;\n    left: 50%;\n    margin-left: -200px;\n    position: fixed;\n    top: 20%;\n    width: 400px;\n  }\n\n  section {\n    margin: 0;\n  }\n\n  .modal-message {\n    display: flex;\n    padding: 16px;\n    padding-bottom: 0;\n\n    p {\n      margin: 0;\n      margin-bottom: 16px;\n    }\n  }\n\n  .actions {\n    border: 0;\n    display: flex;\n    flex-wrap: nowrap;\n    padding: 0 16px;\n\n    button {\n      margin-inline-end: 16px;\n      padding-inline-end: 18px;\n      padding-inline-start: 18px;\n      white-space: normal;\n      width: 50%;\n\n      &.done {\n        margin-inline-end: 0;\n        margin-inline-start: 0;\n      }\n    }\n  }\n\n  .icon {\n    margin-inline-end: 16px;\n  }\n}\n\n.modal-overlay {\n  background: $background-secondary;\n  height: 100%;\n  left: 0;\n  opacity: 0.8;\n  position: fixed;\n  top: 0;\n  width: 100%;\n  z-index: 11001;\n}\n\n.modal {\n  background: $white;\n  border: $border-secondary;\n  border-radius: 5px;\n  font-size: 15px;\n  z-index: 11002;\n}\n",
-		".card-outer {\n  @include context-menu-button;\n  background: $white;\n  border-radius: $border-radius;\n  display: inline-block;\n  height: $card-height;\n  margin-inline-end: $base-gutter;\n  position: relative;\n  width: 100%;\n\n  &.placeholder {\n    background: transparent;\n\n    .card {\n      box-shadow: inset $inner-box-shadow;\n    }\n  }\n\n  .card {\n    border-radius: $border-radius;\n    box-shadow: $shadow-secondary;\n    height: 100%;\n  }\n\n  > a {\n    color: inherit;\n    display: block;\n    height: 100%;\n    outline: none;\n    position: absolute;\n    width: 100%;\n\n    &:-moz-any(.active, :focus) {\n      .card {\n        @include fade-in-card;\n      }\n\n      .card-title {\n        color: $link-primary;\n      }\n    }\n  }\n\n  &:-moz-any(:hover, :focus, .active):not(.placeholder) {\n    @include fade-in-card;\n    @include context-menu-button-hover;\n    outline: none;\n\n    .card-title {\n      color: $link-primary;\n    }\n  }\n\n  .card-preview-image-outer {\n    background-color: $background-primary;\n    border-radius: $border-radius $border-radius 0 0;\n    height: $card-preview-image-height;\n    overflow: hidden;\n    position: relative;\n\n    &::after {\n      border-bottom: 1px solid $black-5;\n      bottom: 0;\n      content: '';\n      position: absolute;\n      width: 100%;\n    }\n\n    .card-preview-image {\n      background-position: center;\n      background-repeat: no-repeat;\n      background-size: cover;\n      height: 100%;\n      opacity: 0;\n      transition: opacity 1s $photon-easing;\n      width: 100%;\n\n      &.loaded {\n        opacity: 1;\n      }\n    }\n  }\n\n  .card-details {\n    padding: 15px 16px 12px;\n\n    &.no-image {\n      padding-top: 16px;\n    }\n  }\n\n  .card-text {\n    max-height: 4 * $card-text-line-height + $card-title-margin;\n    overflow: hidden;\n\n    &.no-image {\n      max-height: 10 * $card-text-line-height + $card-title-margin;\n    }\n\n    &.no-host-name,\n    &.no-context {\n      max-height: 5 * $card-text-line-height + $card-title-margin;\n    }\n\n    &.no-image.no-host-name,\n    &.no-image.no-context {\n      max-height: 11 * $card-text-line-height + $card-title-margin;\n    }\n\n    &.no-host-name.no-context {\n      max-height: 6 * $card-text-line-height + $card-title-margin;\n    }\n\n    &.no-image.no-host-name.no-context {\n      max-height: 12 * $card-text-line-height + $card-title-margin;\n    }\n\n    &:not(.no-description) .card-title {\n      max-height: 3 * $card-text-line-height;\n      overflow: hidden;\n    }\n  }\n\n  .card-host-name {\n    color: $text-secondary;\n    font-size: 10px;\n    overflow: hidden;\n    padding-bottom: 4px;\n    text-overflow: ellipsis;\n    text-transform: uppercase;\n  }\n\n  .card-title {\n    font-size: 14px;\n    line-height: $card-text-line-height;\n    margin: 0 0 $card-title-margin;\n    word-wrap: break-word;\n  }\n\n  .card-description {\n    font-size: 12px;\n    line-height: $card-text-line-height;\n    margin: 0;\n    overflow: hidden;\n    word-wrap: break-word;\n  }\n\n  .card-context {\n    bottom: 0;\n    color: $text-secondary;\n    display: flex;\n    font-size: 11px;\n    left: 0;\n    padding: 12px 16px 12px 14px;\n    position: absolute;\n    right: 0;\n  }\n\n  .card-context-icon {\n    fill: $fill-secondary;\n    margin-inline-end: 6px;\n  }\n\n  .card-context-label {\n    flex-grow: 1;\n    line-height: $icon-size;\n    overflow: hidden;\n    text-overflow: ellipsis;\n    white-space: nowrap;\n  }\n}\n\n.wide-layout-enabled {\n  $line-height: 23px;\n\n  .card-outer {\n    @media (min-width: $break-point-widest) {\n      height: $card-height-large;\n\n      .card-preview-image-outer {\n        height: $card-preview-image-height-large;\n      }\n\n      .card-details {\n        padding: 13px 16px 12px;\n      }\n\n      .card-text {\n        max-height: 6 * $line-height + $card-title-margin;\n      }\n\n      .card-host-name {\n        font-size: 12px;\n        padding-bottom: 5px;\n      }\n\n      .card-title {\n        font-size: 17px;\n        line-height: $line-height;\n        margin-bottom: 0;\n      }\n\n      .card-text:not(.no-description) {\n        .card-title {\n          max-height: 3 * $line-height;\n        }\n      }\n\n      .card-description {\n        font-size: 15px;\n        line-height: $line-height;\n      }\n\n      .card-context {\n        bottom: 4px;\n        font-size: 14px;\n      }\n    }\n  }\n}\n",
-		".manual-migration-container {\n  color: $text-conditional;\n  font-size: 13px;\n  line-height: 15px;\n  margin-bottom: $section-spacing;\n  text-align: center;\n\n  @media (min-width: $break-point-medium) {\n    display: flex;\n    justify-content: space-between;\n    text-align: left;\n  }\n\n  p {\n    margin: 0;\n    @media (min-width: $break-point-medium) {\n      align-self: center;\n      display: flex;\n      justify-content: space-between;\n    }\n  }\n\n  .icon {\n    display: none;\n    @media (min-width: $break-point-medium) {\n      align-self: center;\n      display: block;\n      fill: $fill-secondary;\n      margin-inline-end: 6px;\n    }\n  }\n}\n\n.manual-migration-actions {\n  border: 0;\n  display: block;\n  flex-wrap: nowrap;\n\n  @media (min-width: $break-point-medium) {\n    display: flex;\n    justify-content: space-between;\n    padding: 0;\n  }\n\n  button {\n    align-self: center;\n    height: 26px;\n    margin: 0;\n    margin-inline-start: 20px;\n    padding: 0 12px;\n  }\n}\n",
-		".collapsible-section {\n  padding: $section-vertical-padding $section-horizontal-padding;\n  transition-delay: 100ms;\n  transition-duration: 100ms;\n  transition-property: background-color;\n\n  .section-title {\n    margin: 0;\n\n    .click-target {\n      cursor: pointer;\n      vertical-align: top;\n      white-space: nowrap;\n    }\n\n    .collapsible-arrow {\n      margin-inline-start: 8px;\n      margin-top: -1px;\n    }\n  }\n\n  .section-top-bar {\n    position: relative;\n\n    .context-menu-button {\n      background: url('chrome://browser/skin/page-action.svg') no-repeat right center;\n      border: 0;\n      cursor: pointer;\n      fill: $grey-50;\n      height: $section-context-menu-button-height;\n      offset-inline-end: 0;\n      opacity: 0;\n      position: absolute;\n      top: 0;\n      transition-duration: 200ms;\n      transition-property: opacity;\n      width: $context-menu-button-size;\n\n      &:-moz-any(:active, :focus, :hover) {\n        fill: $grey-90;\n        opacity: 1;\n      }\n    }\n\n    .context-menu {\n      top: 16px;\n    }\n\n    @media (max-width: $break-point-widest + $card-width * 1.5) {\n      @include context-menu-open-left;\n    }\n  }\n\n  &:hover,\n  &.active {\n    .section-top-bar {\n      .context-menu-button {\n        opacity: 1;\n      }\n    }\n  }\n\n  &.active {\n    background: $grey-20-60;\n    border-radius: 4px;\n\n    .section-top-bar {\n      .context-menu-button {\n        fill: $grey-90;\n      }\n    }\n  }\n\n  .section-disclaimer {\n    $max-button-width: 130px;\n    $min-button-height: 26px;\n\n    color: $grey-60;\n    font-size: 13px;\n    margin-bottom: 16px;\n    position: relative;\n\n    .section-disclaimer-text {\n      display: inline-block;\n      min-height: $min-button-height;\n      width: calc(100% - #{$max-button-width});\n\n      @media (max-width: $break-point-medium) {\n        width: $card-width;\n      }\n    }\n\n    a {\n      color: $link-secondary;\n      padding-left: 3px;\n    }\n\n    button {\n      background: $grey-10;\n      border: 1px solid $grey-40;\n      border-radius: 4px;\n      cursor: pointer;\n      margin-top: 2px;\n      max-width: $max-button-width;\n      min-height: $min-button-height;\n      offset-inline-end: 0;\n\n      &:hover:not(.dismiss) {\n        box-shadow: $shadow-primary;\n        transition: box-shadow 150ms;\n      }\n\n      @media (min-width: $break-point-small) {\n        position: absolute;\n      }\n    }\n  }\n\n  .section-body-fallback {\n    height: $card-height;\n  }\n\n  .section-body {\n    // This is so the top sites favicon and card dropshadows don't get clipped during animation:\n    $horizontal-padding: 7px;\n    margin: 0 (-$horizontal-padding);\n    padding: 0 $horizontal-padding;\n\n    &.animating {\n      overflow: hidden;\n      pointer-events: none;\n    }\n  }\n\n  &.animation-enabled {\n    .section-title {\n      .collapsible-arrow {\n        transition: transform 0.5s $photon-easing;\n      }\n    }\n\n    .section-body {\n      transition: max-height 0.5s $photon-easing;\n    }\n  }\n\n  &.collapsed {\n    .section-body {\n      max-height: 0;\n      overflow: hidden;\n    }\n  }\n}\n"
+		"// Photon colors from http://design.firefox.com/photon/visuals/color.html\n$blue-40: #45A1FF;\n$blue-50: #0A84FF;\n$blue-60: #0060DF;\n$blue-70: #003EAA;\n$blue-80: #002275;\n$grey-10: #F9F9FA;\n$grey-20: #EDEDF0;\n$grey-30: #D7D7DB;\n$grey-40: #B1B1B3;\n$grey-50: #737373;\n$grey-60: #4A4A4F;\n$grey-70: #38383D;\n$grey-80: #2A2A2E;\n$grey-90: #0C0C0D;\n$teal-70: #008EA4;\n$red-60: #D70022;\n$yellow-50: #FFE900;\n\n// Photon opacity from http://design.firefox.com/photon/visuals/color.html#opacity\n$grey-10-20: rgba($grey-10, 0.2);\n$grey-10-40: rgba($grey-10, 0.4);\n$grey-10-60: rgba($grey-10, 0.6);\n$grey-10-80: rgba($grey-10, 0.8);\n$grey-20-60: rgba($grey-20, 0.6);\n$grey-90-10: rgba($grey-90, 0.1);\n$grey-90-20: rgba($grey-90, 0.2);\n$grey-90-30: rgba($grey-90, 0.3);\n$grey-90-40: rgba($grey-90, 0.4);\n$grey-90-50: rgba($grey-90, 0.5);\n$grey-90-60: rgba($grey-90, 0.6);\n$grey-90-70: rgba($grey-90, 0.7);\n$grey-90-80: rgba($grey-90, 0.8);\n$grey-90-90: rgba($grey-90, 0.9);\n\n$black: #000;\n$black-5: rgba($black, 0.05);\n$black-10: rgba($black, 0.1);\n$black-15: rgba($black, 0.15);\n$black-20: rgba($black, 0.2);\n$black-25: rgba($black, 0.25);\n$black-30: rgba($black, 0.3);\n\n// Photon transitions from http://design.firefox.com/photon/motion/duration-and-easing.html\n$photon-easing: cubic-bezier(0.07, 0.95, 0, 1);\n\n// Other colors\n$white: #FFF;\n$pocket-teal: #50BCB6;\n\n$border-radius: 3px;\n\n// Grid related styles\n$base-gutter: 32px;\n$section-horizontal-padding: 25px;\n$section-vertical-padding: 10px;\n$section-spacing: 40px - $section-vertical-padding * 2;\n$grid-unit: 96px; // 1 top site\n\n$icon-size: 16px;\n$smaller-icon-size: 12px;\n$larger-icon-size: 32px;\n\n$wrapper-default-width: $grid-unit * 2 + $base-gutter * 1 + $section-horizontal-padding * 2; // 2 top sites\n$wrapper-max-width-small: $grid-unit * 3 + $base-gutter * 2 + $section-horizontal-padding * 2; // 3 top sites\n$wrapper-max-width-medium: $grid-unit * 4 + $base-gutter * 3 + $section-horizontal-padding * 2; // 4 top sites\n$wrapper-max-width-large: $grid-unit * 6 + $base-gutter * 5 + $section-horizontal-padding * 2; // 6 top sites\n$wrapper-max-width-widest: $grid-unit * 8 + $base-gutter * 7 + $section-horizontal-padding * 2; // 8 top sites\n// For the breakpoints, we need to add space for the scrollbar to avoid weird\n// layout issues when the scrollbar is visible. 16px is wide enough to cover all\n// OSes and keeps it simpler than a per-OS value.\n$scrollbar-width: 16px;\n$break-point-small: $wrapper-max-width-small + $base-gutter * 2 + $scrollbar-width;\n$break-point-medium: $wrapper-max-width-medium + $base-gutter * 2 + $scrollbar-width;\n$break-point-large: $wrapper-max-width-large + $base-gutter * 2 + $scrollbar-width;\n$break-point-widest: $wrapper-max-width-widest + $base-gutter * 2 + $scrollbar-width;\n\n$section-title-font-size: 13px;\n\n$card-width: $grid-unit * 2 + $base-gutter;\n$card-height: 266px;\n$card-preview-image-height: 122px;\n$card-title-margin: 2px;\n$card-text-line-height: 19px;\n// Larger cards for wider screens:\n$card-width-large: 309px;\n$card-height-large: 370px;\n$card-preview-image-height-large: 155px;\n\n$topic-margin-top: 12px;\n\n$context-menu-button-size: 27px;\n$context-menu-button-boxshadow: 0 2px $grey-90-10;\n$context-menu-shadow: 0 5px 10px $black-30, 0 0 0 1px $black-20;\n$context-menu-font-size: 14px;\n$context-menu-border-radius: 5px;\n$context-menu-outer-padding: 5px;\n$context-menu-item-padding: 3px 12px;\n\n$error-fallback-font-size: 12px;\n$error-fallback-line-height: 1.5;\n\n$image-path: '../data/content/assets/';\n\n$snippets-container-height: 120px;\n\n@mixin fade-in {\n  box-shadow: inset $inner-box-shadow, $shadow-primary;\n  transition: box-shadow 150ms;\n}\n\n@mixin fade-in-card {\n  box-shadow: $shadow-primary;\n  transition: box-shadow 150ms;\n}\n\n@mixin context-menu-button {\n  .context-menu-button {\n    background-clip: padding-box;\n    background-color: var(--newtab-contextmenu-button-color);\n    background-image: url('chrome://browser/skin/page-action.svg');\n    background-position: 55%;\n    border: $border-primary;\n    border-radius: 100%;\n    box-shadow: $context-menu-button-boxshadow;\n    cursor: pointer;\n    fill: var(--newtab-icon-primary-color);\n    height: $context-menu-button-size;\n    offset-inline-end: -($context-menu-button-size / 2);\n    opacity: 0;\n    position: absolute;\n    top: -($context-menu-button-size / 2);\n    transform: scale(0.25);\n    transition-duration: 200ms;\n    transition-property: transform, opacity;\n    width: $context-menu-button-size;\n\n    &:-moz-any(:active, :focus) {\n      opacity: 1;\n      transform: scale(1);\n    }\n  }\n}\n\n@mixin context-menu-button-hover {\n  .context-menu-button {\n    opacity: 1;\n    transform: scale(1);\n  }\n}\n\n@mixin context-menu-open-middle {\n  .context-menu {\n    margin-inline-end: auto;\n    margin-inline-start: auto;\n    offset-inline-end: auto;\n    offset-inline-start: -$base-gutter;\n  }\n}\n\n@mixin context-menu-open-left {\n  .context-menu {\n    margin-inline-end: 5px;\n    margin-inline-start: auto;\n    offset-inline-end: 0;\n    offset-inline-start: auto;\n  }\n}\n\n@mixin flip-icon {\n  &:dir(rtl) {\n    transform: scaleX(-1);\n  }\n}\n",
+		"// Default theme\n.outer-wrapper {\n  // General styles\n  --newtab-background-color: $grey-10;\n  --newtab-border-primary-color: $grey-40;\n  --newtab-border-secondary-color: $grey-30;\n  --newtab-button-primary-color: $blue-60;\n  --newtab-button-secondary-color: inherit;\n  --newtab-element-active-color: $grey-20-60;\n  --newtab-icon-primary-color: $grey-90-80;\n  --newtab-icon-secondary-color: $grey-90-60;\n  --newtab-icon-tertiary-color: $grey-30;\n  --newtab-inner-box-shadow-color: $black-10;\n  --newtab-link-primary-color: $blue-60;\n  --newtab-link-secondary-color: $teal-70;\n  --newtab-text-conditional-color: $grey-60;\n  --newtab-text-primary-color: $grey-90;\n  --newtab-text-secondary-color: $grey-50;\n  --newtab-textbox-border: $grey-90-20;\n  --newtab-textbox-color: inherit;\n\n  // Context menu\n  --newtab-contextmenu-button-color: $white;\n\n  // Modal + overlay\n  --newtab-modal-color: $white;\n  --newtab-overlay-color: $grey-20;\n\n  // Sections\n  --newtab-section-header-text-color: $grey-50;\n  --newtab-section-navigation-text-color: $grey-50;\n  --newtab-section-active-contextmenu-color: $grey-90;\n\n  // Search\n  --newtab-search-background-color: $white;\n  --newtab-search-border-color: transparent;\n  --newtab-search-focus-border-color: $blue-50;\n  --newtab-search-icon-color: $grey-90-40;\n  --newtab-search-text-color: inherit;\n\n  // Top Sites\n  --newtab-topsites-label-color: inherit;\n\n  // Cards\n  --newtab-card-background-color: $white;\n  --newtab-card-active-outline-color: $grey-30;\n}\n\n// Dark theme\n.outer-wrapper.dark-theme {\n  // General styles\n  --newtab-background-color: $grey-80;\n  --newtab-border-primary-color: $grey-10-80;\n  --newtab-border-secondary-color: $grey-10-20;\n  --newtab-button-primary-color: $blue-40;\n  --newtab-button-secondary-color: $grey-70;\n  --newtab-element-active-color: $grey-60;\n  --newtab-icon-primary-color: $grey-10-80;\n  --newtab-icon-secondary-color: $grey-10-40;\n  --newtab-icon-tertiary-color: $grey-10-20;\n  --newtab-inner-box-shadow-color: $grey-10-20;\n  --newtab-link-primary-color: $blue-40;\n  --newtab-link-secondary-color: $pocket-teal;\n  --newtab-text-conditional-color: $grey-10;\n  --newtab-text-primary-color: $grey-10;\n  --newtab-text-secondary-color: $grey-10-40;\n  --newtab-textbox-border: $grey-10-40;\n  --newtab-textbox-color: $grey-80;\n\n  // Context menu\n  --newtab-contextmenu-button-color: $grey-80;\n\n  // Modal + overlay\n  --newtab-modal-color: $grey-90;\n  --newtab-overlay-color: $grey-80;\n\n  // Sections\n  --newtab-section-header-text-color: $grey-10-80;\n  --newtab-section-navigation-text-color: $grey-10-80;\n  --newtab-section-active-contextmenu-color: $white;\n\n  // Search\n  --newtab-search-background-color: $grey-60;\n  --newtab-search-border-color: $grey-10-40;\n  --newtab-search-focus-border-color: $blue-40;\n  --newtab-search-icon-color: $grey-10-60;\n  --newtab-search-text-color: $grey-10-60;\n\n  // Top Sites\n  --newtab-topsites-label-color: $grey-10-80;\n\n  // Cards\n  --newtab-card-background-color: $grey-90;\n  --newtab-card-active-outline-color: $grey-60;\n}\n\n// scss variables related to the theme.\n$border-primary: 1px solid var(--newtab-border-primary-color);\n$border-secondary: 1px solid var(--newtab-border-secondary-color);\n$input-primary: $blue-60;\n$shadow-primary: 0 0 0 5px var(--newtab-card-active-outline-color);\n$shadow-secondary: 0 1px 4px 0 $grey-90-10;\n$input-border: solid 1px var(--newtab-textbox-border);\n$input-border-active: solid 1px $blue-50;\n$input-error-border: solid 1px $red-60;\n$input-error-boxshadow: 0 0 0 1px $red-60, 0 0 0 4px rgba($red-60, 0.3);\n$input-focus-boxshadow: 0 0 0 1px $blue-50, 0 0 0 4px rgba($blue-50, 0.3);\n$inner-box-shadow: 0 0 0 1px var(--newtab-inner-box-shadow-color);\n",
+		".icon {\n  background-position: center center;\n  background-repeat: no-repeat;\n  background-size: $icon-size;\n  -moz-context-properties: fill;\n  display: inline-block;\n  fill: var(--newtab-icon-primary-color);\n  height: $icon-size;\n  vertical-align: middle;\n  width: $icon-size;\n\n  &.icon-spacer {\n    margin-inline-end: 8px;\n  }\n\n  &.icon-small-spacer {\n    margin-inline-end: 6px;\n  }\n\n  &.icon-bookmark-added {\n    background-image: url('chrome://browser/skin/bookmark.svg');\n  }\n\n  &.icon-bookmark-hollow {\n    background-image: url('chrome://browser/skin/bookmark-hollow.svg');\n  }\n\n  &.icon-clear-input {\n    fill: var(--newtab-icon-secondary-color);\n    background-image: url('#{$image-path}glyph-cancel-16.svg');\n  }\n\n  &.icon-delete {\n    background-image: url('#{$image-path}glyph-delete-16.svg');\n  }\n\n  &.icon-modal-delete {\n    background-image: url('#{$image-path}glyph-modal-delete-32.svg');\n    background-size: $larger-icon-size;\n    height: $larger-icon-size;\n    width: $larger-icon-size;\n  }\n\n  &.icon-dismiss {\n    background-image: url('#{$image-path}glyph-dismiss-16.svg');\n  }\n\n  &.icon-info {\n    background-image: url('#{$image-path}glyph-info-16.svg');\n  }\n\n  &.icon-import {\n    background-image: url('#{$image-path}glyph-import-16.svg');\n  }\n\n  &.icon-new-window {\n    @include flip-icon;\n    background-image: url('#{$image-path}glyph-newWindow-16.svg');\n  }\n\n  &.icon-new-window-private {\n    background-image: url('chrome://browser/skin/privateBrowsing.svg');\n  }\n\n  &.icon-settings {\n    background-image: url('chrome://browser/skin/settings.svg');\n  }\n\n  &.icon-pin {\n    @include flip-icon;\n    background-image: url('#{$image-path}glyph-pin-16.svg');\n  }\n\n  &.icon-unpin {\n    @include flip-icon;\n    background-image: url('#{$image-path}glyph-unpin-16.svg');\n  }\n\n  &.icon-edit {\n    background-image: url('#{$image-path}glyph-edit-16.svg');\n  }\n\n  &.icon-pocket {\n    background-image: url('#{$image-path}glyph-pocket-16.svg');\n  }\n\n  &.icon-historyItem { // sass-lint:disable-line class-name-format\n    background-image: url('#{$image-path}glyph-historyItem-16.svg');\n  }\n\n  &.icon-trending {\n    background-image: url('#{$image-path}glyph-trending-16.svg');\n    transform: translateY(2px); // trending bolt is visually top heavy\n  }\n\n  &.icon-now {\n    background-image: url('chrome://browser/skin/history.svg');\n  }\n\n  &.icon-topsites {\n    background-image: url('#{$image-path}glyph-topsites-16.svg');\n  }\n\n  &.icon-pin-small {\n    @include flip-icon;\n    background-image: url('#{$image-path}glyph-pin-12.svg');\n    background-size: $smaller-icon-size;\n    height: $smaller-icon-size;\n    width: $smaller-icon-size;\n  }\n\n  &.icon-check {\n    background-image: url('chrome://browser/skin/check.svg');\n  }\n\n  &.icon-webextension {\n    background-image: url('#{$image-path}glyph-webextension-16.svg');\n  }\n\n  &.icon-highlights {\n    background-image: url('#{$image-path}glyph-highlights-16.svg');\n  }\n\n  &.icon-arrowhead-down {\n    background-image: url('#{$image-path}glyph-arrowhead-down-16.svg');\n  }\n\n  &.icon-arrowhead-down-small {\n    background-image: url('#{$image-path}glyph-arrowhead-down-12.svg');\n    background-size: $smaller-icon-size;\n    height: $smaller-icon-size;\n    width: $smaller-icon-size;\n  }\n\n  &.icon-arrowhead-forward-small {\n    background-image: url('#{$image-path}glyph-arrowhead-down-12.svg');\n    background-size: $smaller-icon-size;\n    height: $smaller-icon-size;\n    transform: rotate(-90deg);\n    width: $smaller-icon-size;\n\n    &:dir(rtl) {\n      transform: rotate(90deg);\n    }\n  }\n\n  &.icon-arrowhead-up {\n    background-image: url('#{$image-path}glyph-arrowhead-down-16.svg');\n    transform: rotate(180deg);\n  }\n\n  &.icon-add {\n    background-image: url('#{$image-path}glyph-add-16.svg');\n  }\n\n  &.icon-minimize {\n    background-image: url('#{$image-path}glyph-minimize-16.svg');\n  }\n\n  &.icon-maximize {\n    background-image: url('#{$image-path}glyph-maximize-16.svg');\n  }\n}\n",
+		".outer-wrapper {\n  background-color: var(--newtab-background-color);\n  color: var(--newtab-text-primary-color);\n  display: flex;\n  flex-grow: 1;\n  min-height: 100vh;\n  padding: ($section-spacing + $section-vertical-padding) $base-gutter $base-gutter;\n\n  &.fixed-to-top {\n    display: block;\n  }\n\n  a {\n    color: var(--newtab-link-primary-color);\n  }\n}\n\nmain {\n  margin: auto;\n  // Offset the snippets container so things at the bottom of the page are still\n  // visible when snippets / onboarding are visible. Adjust for other spacing.\n  padding-bottom: $snippets-container-height - $section-spacing - $base-gutter;\n  width: $wrapper-default-width;\n\n  @media (min-width: $break-point-small) {\n    width: $wrapper-max-width-small;\n  }\n\n  @media (min-width: $break-point-medium) {\n    width: $wrapper-max-width-medium;\n  }\n\n  @media (min-width: $break-point-large) {\n    width: $wrapper-max-width-large;\n  }\n\n  section {\n    margin-bottom: $section-spacing;\n    position: relative;\n  }\n}\n\n.wide-layout-enabled {\n  main {\n    @media (min-width: $break-point-widest) {\n      width: $wrapper-max-width-widest;\n    }\n  }\n}\n\n.base-content-fallback {\n  // Make the error message be centered against the viewport\n  height: 100vh;\n}\n\n.body-wrapper {\n  // Hide certain elements so the page structure is fixed, e.g., placeholders,\n  // while avoiding flashes of changing content, e.g., icons and text\n  $selectors-to-hide: '\n    .section-title,\n    .sections-list .section:last-of-type,\n    .topic\n  ';\n\n  #{$selectors-to-hide} {\n    opacity: 0;\n  }\n\n  &.on {\n    #{$selectors-to-hide} {\n      opacity: 1;\n    }\n  }\n}\n\n.non-collapsible-section {\n  padding: 0 $section-horizontal-padding;\n}\n\n.prefs-button {\n  button {\n    background-color: transparent;\n    border: 0;\n    cursor: pointer;\n    fill: var(--newtab-icon-primary-color);\n    offset-inline-end: 15px;\n    padding: 15px;\n    position: fixed;\n    top: 15px;\n    z-index: 12001;\n\n    &:hover,\n    &:focus {\n      background-color: var(--newtab-element-active-color);\n    }\n  }\n}\n",
+		".as-error-fallback {\n  align-items: center;\n  border-radius: $border-radius;\n  box-shadow: inset $inner-box-shadow;\n  color: var(--newtab-text-conditional-color);\n  display: flex;\n  flex-direction: column;\n  font-size: $error-fallback-font-size;\n  justify-content: center;\n  justify-items: center;\n  line-height: $error-fallback-line-height;\n\n  a {\n    color: var(--newtab-text-conditional-color);\n    text-decoration: underline;\n  }\n}\n",
+		"$top-sites-size: $grid-unit;\n$top-sites-border-radius: 6px;\n$top-sites-title-height: 30px;\n$top-sites-vertical-space: 8px;\n$screenshot-size: cover;\n$rich-icon-size: 96px;\n$default-icon-wrapper-size: 42px;\n$default-icon-size: 32px;\n$default-icon-offset: 6px;\n$half-base-gutter: $base-gutter / 2;\n\n.top-sites {\n  // Take back the margin from the bottom row of vertical spacing as well as the\n  // extra whitespace below the title text as it's vertically centered.\n  margin-bottom: $section-spacing - ($top-sites-vertical-space + $top-sites-title-height / 3);\n}\n\n.top-sites-list {\n  list-style: none;\n  margin: 0 (-$half-base-gutter);\n  padding: 0;\n\n  // Two columns\n  @media (max-width: $break-point-small) {\n    :nth-child(2n+1) {\n      @include context-menu-open-middle;\n    }\n\n    :nth-child(2n) {\n      @include context-menu-open-left;\n    }\n  }\n\n  // Three columns\n  @media (min-width: $break-point-small) and (max-width: $break-point-medium) {\n    :nth-child(3n+2),\n    :nth-child(3n) {\n      @include context-menu-open-left;\n    }\n  }\n\n  // Four columns\n  @media (min-width: $break-point-medium) and (max-width: $break-point-large) {\n    :nth-child(4n) {\n      @include context-menu-open-left;\n    }\n  }\n  @media (min-width: $break-point-medium) and (max-width: $break-point-medium + $card-width) {\n    :nth-child(4n+3) {\n      @include context-menu-open-left;\n    }\n  }\n\n  // Six columns\n  @media (min-width: $break-point-large) and (max-width: $break-point-large + 2 * $card-width) {\n    :nth-child(6n) {\n      @include context-menu-open-left;\n    }\n  }\n  @media (min-width: $break-point-large) and (max-width: $break-point-large + $card-width) {\n    :nth-child(6n+5) {\n      @include context-menu-open-left;\n    }\n  }\n\n  li {\n    margin: 0 0 $top-sites-vertical-space;\n  }\n\n  &:not(.dnd-active) {\n    .top-site-outer:-moz-any(.active, :focus, :hover) {\n      .tile {\n        @include fade-in;\n      }\n\n      @include context-menu-button-hover;\n    }\n  }\n}\n\n// container for drop zone\n.top-site-outer {\n  padding: 0 $half-base-gutter;\n  display: inline-block;\n\n  // container for context menu\n  .top-site-inner {\n    position: relative;\n\n    > a {\n      color: inherit;\n      display: block;\n      outline: none;\n\n      &:-moz-any(.active, :focus) {\n        .tile {\n          @include fade-in;\n        }\n      }\n    }\n  }\n\n  @include context-menu-button;\n\n  .tile { // sass-lint:disable-block property-sort-order\n    border-radius: $top-sites-border-radius;\n    box-shadow: inset $inner-box-shadow, $shadow-secondary;\n    height: $top-sites-size;\n    position: relative;\n    width: $top-sites-size;\n\n    // For letter fallback\n    align-items: center;\n    color: var(--newtab-text-secondary-color);\n    display: flex;\n    font-size: 32px;\n    font-weight: 200;\n    justify-content: center;\n    text-transform: uppercase;\n\n    &::before {\n      content: attr(data-fallback);\n    }\n  }\n\n  .screenshot {\n    background-color: $white;\n    background-position: top left;\n    background-size: $screenshot-size;\n    border-radius: $top-sites-border-radius;\n    box-shadow: inset $inner-box-shadow;\n    height: 100%;\n    left: 0;\n    opacity: 0;\n    position: absolute;\n    top: 0;\n    transition: opacity 1s;\n    width: 100%;\n\n    &.active {\n      opacity: 1;\n    }\n  }\n\n  // Some common styles for all icons (rich and default) in top sites\n  .top-site-icon {\n    background-color: var(--newtab-background-color);\n    background-position: center center;\n    background-repeat: no-repeat;\n    border-radius: $top-sites-border-radius;\n    box-shadow: inset $inner-box-shadow;\n    position: absolute;\n  }\n\n  .rich-icon {\n    background-size: cover;\n    height: 100%;\n    offset-inline-start: 0;\n    top: 0;\n    width: 100%;\n  }\n\n  .default-icon { // sass-lint:disable block property-sort-order\n    background-size: $default-icon-size;\n    bottom: -$default-icon-offset;\n    height: $default-icon-wrapper-size;\n    offset-inline-end: -$default-icon-offset;\n    width: $default-icon-wrapper-size;\n\n    // for corner letter fallback\n    align-items: center;\n    display: flex;\n    font-size: 20px;\n    justify-content: center;\n\n    &[data-fallback]::before {\n      content: attr(data-fallback);\n    }\n  }\n\n  .title {\n    color: var(--newtab-topsites-label-color);\n    font: message-box;\n    height: $top-sites-title-height;\n    line-height: $top-sites-title-height;\n    text-align: center;\n    width: $top-sites-size;\n    position: relative;\n\n    .icon {\n      fill: var(--newtab-icon-tertiary-color);\n      offset-inline-start: 0;\n      position: absolute;\n      top: 10px;\n    }\n\n    span {\n      height: $top-sites-title-height;\n      display: block;\n      overflow: hidden;\n      text-overflow: ellipsis;\n      white-space: nowrap;\n    }\n\n    &.pinned {\n      span {\n        padding: 0 13px;\n      }\n    }\n  }\n\n  .edit-button {\n    background-image: url('#{$image-path}glyph-edit-16.svg');\n  }\n\n  &.placeholder {\n    .tile {\n      box-shadow: inset $inner-box-shadow;\n    }\n\n    .screenshot {\n      display: none;\n    }\n  }\n\n  &.dragged {\n    .tile {\n      background: $grey-20;\n      box-shadow: none;\n\n      *,\n      &::before {\n        display: none;\n      }\n    }\n\n    .title {\n      visibility: hidden;\n    }\n  }\n}\n\n// Always hide .hide-for-narrow if wide layout is disabled\n.wide-layout-disabled {\n  .top-sites-list {\n    .hide-for-narrow {\n      display: none;\n    }\n  }\n}\n\n.wide-layout-enabled {\n  .top-sites-list {\n    // Eight columns\n    @media (min-width: $break-point-widest) and (max-width: $break-point-widest + 2 * $card-width) {\n      :nth-child(8n) {\n        @include context-menu-open-left;\n      }\n    }\n\n    @media (min-width: $break-point-widest) and (max-width: $break-point-widest + $card-width) {\n      :nth-child(8n+7) {\n        @include context-menu-open-left;\n      }\n    }\n\n    @media not all and (min-width: $break-point-widest) {\n      .hide-for-narrow {\n        display: none;\n      }\n    }\n  }\n}\n\n.edit-topsites-wrapper {\n  .modal {\n    box-shadow: $shadow-secondary;\n    left: 0;\n    margin: 0 auto;\n    position: fixed;\n    right: 0;\n    top: 40px;\n    width: $wrapper-default-width;\n\n    @media (min-width: $break-point-small) {\n      width: $wrapper-max-width-small;\n    }\n\n    @media (min-width: $break-point-medium) {\n      width: $wrapper-max-width-medium;\n    }\n\n    @media (min-width: $break-point-large) {\n      width: $wrapper-max-width-large;\n    }\n  }\n}\n\n.topsite-form {\n  $form-width: 300px;\n  $form-spacing: 32px;\n\n  .form-input-container {\n    max-width: $form-width + 3 * $form-spacing + $rich-icon-size;\n    margin: 0 auto;\n    padding: $form-spacing;\n\n    .top-site-outer {\n      padding: 0;\n      margin: 24px 0 0;\n      margin-inline-start: $form-spacing;\n      pointer-events: none;\n    }\n\n    .section-title {\n      text-transform: none;\n      font-size: 16px;\n      margin: 0 0 16px;\n    }\n  }\n\n  .fields-and-preview {\n    display: flex;\n  }\n\n  label {\n    font-size: $section-title-font-size;\n  }\n\n  .form-wrapper {\n    width: 100%;\n\n    .field {\n      position: relative;\n\n      .icon-clear-input {\n        position: absolute;\n        transform: translateY(-50%);\n        top: 50%;\n        offset-inline-end: 8px;\n      }\n    }\n\n    .url {\n      input:dir(ltr) {\n        padding-right: 32px;\n      }\n\n      input:dir(rtl) {\n        padding-left: 32px;\n\n        &:not(:placeholder-shown) {\n          direction: ltr;\n          text-align: right;\n        }\n      }\n    }\n\n    .enable-custom-image-input {\n      display: inline-block;\n      font-size: 13px;\n      margin-top: 4px;\n      cursor: pointer;\n\n      &:hover {\n        text-decoration: underline;\n      }\n    }\n\n    .custom-image-input-container {\n      margin-top: 4px;\n\n      .loading-container {\n        width: 16px;\n        height: 16px;\n        overflow: hidden;\n        position: absolute;\n        transform: translateY(-50%);\n        top: 50%;\n        offset-inline-end: 8px;\n      }\n\n      // This animation is derived from Firefox's tab loading animation\n      // See https://searchfox.org/mozilla-central/rev/b29daa46443b30612415c35be0a3c9c13b9dc5f6/browser/themes/shared/tabs.inc.css#208-216\n      .loading-animation {\n        @keyframes tab-throbber-animation {\n          100% { transform: translateX(-960px); }\n        }\n\n        @keyframes tab-throbber-animation-rtl {\n          100% { transform: translateX(960px); }\n        }\n\n        width: 960px;\n        height: 16px;\n        -moz-context-properties: fill;\n        fill: $blue-50;\n        background-image: url('chrome://browser/skin/tabbrowser/loading.svg');\n        animation: tab-throbber-animation 1.05s steps(60) infinite;\n\n        &:dir(rtl) {\n          animation-name: tab-throbber-animation-rtl;\n        }\n      }\n    }\n\n    input {\n      &[type='text'] {\n        background-color: var(--newtab-textbox-color);\n        border: $input-border;\n        border-radius: 2px;\n        margin: 8px 0;\n        padding: 0 8px;\n        height: 32px;\n        width: 100%;\n        font-size: 15px;\n\n        &:focus {\n          border: $input-border-active;\n          box-shadow: $input-focus-boxshadow;\n        }\n\n        &[disabled] {\n          border: $input-border;\n          box-shadow: none;\n          opacity: 0.4;\n        }\n      }\n    }\n\n    .invalid {\n      input {\n        &[type='text'] {\n          border: $input-error-border;\n          box-shadow: $input-error-boxshadow;\n        }\n      }\n    }\n\n    .error-tooltip {\n      animation: fade-up-tt 450ms;\n      background: $red-60;\n      border-radius: 2px;\n      color: $white;\n      offset-inline-start: 3px;\n      padding: 5px 12px;\n      position: absolute;\n      top: 44px;\n      z-index: 1;\n\n      // tooltip caret\n      &::before {\n        background: $red-60;\n        bottom: -8px;\n        content: '.';\n        height: 16px;\n        offset-inline-start: 12px;\n        position: absolute;\n        text-indent: -999px;\n        top: -7px;\n        transform: rotate(45deg);\n        white-space: nowrap;\n        width: 16px;\n        z-index: -1;\n      }\n    }\n  }\n\n  .actions {\n    justify-content: flex-end;\n\n    button {\n      margin-inline-start: 10px;\n      margin-inline-end: 0;\n    }\n  }\n\n  @media (max-width: $break-point-small) {\n    .fields-and-preview {\n      flex-direction: column;\n\n      .top-site-outer {\n        margin-inline-start: 0;\n      }\n    }\n  }\n}\n\n//used for tooltips below form element\n@keyframes fade-up-tt {\n  0% {\n    opacity: 0;\n    transform: translateY(15px);\n  }\n\n  100% {\n    opacity: 1;\n    transform: translateY(0);\n  }\n}\n",
+		".sections-list {\n  .section-list {\n    display: grid;\n    grid-gap: $base-gutter;\n    grid-template-columns: repeat(auto-fit, $card-width);\n    margin: 0;\n\n    @media (max-width: $break-point-medium) {\n      @include context-menu-open-left;\n    }\n\n    @media (min-width: $break-point-medium) and (max-width: $break-point-large) {\n      :nth-child(2n) {\n        @include context-menu-open-left;\n      }\n    }\n\n    @media (min-width: $break-point-large) and (max-width: $break-point-large + 2 * $card-width) {\n      :nth-child(3n) {\n        @include context-menu-open-left;\n      }\n    }\n  }\n\n  .section-empty-state {\n    border: $border-secondary;\n    border-radius: $border-radius;\n    display: flex;\n    height: $card-height;\n    width: 100%;\n\n    .empty-state {\n      margin: auto;\n      max-width: 350px;\n\n      .empty-state-icon {\n        background-position: center;\n        background-repeat: no-repeat;\n        background-size: 50px 50px;\n        -moz-context-properties: fill;\n        display: block;\n        fill: var(--newtab-icon-secondary-color);\n        height: 50px;\n        margin: 0 auto;\n        width: 50px;\n      }\n\n      .empty-state-message {\n        color: var(--newtab-text-primary-color);\n        font-size: 13px;\n        margin-bottom: 0;\n        text-align: center;\n      }\n    }\n  }\n}\n\n.wide-layout-enabled {\n  .sections-list {\n    .section-list {\n      @media (min-width: $break-point-widest) and (max-width: $break-point-widest + 2 * $card-width) {\n        :nth-child(3n) {\n          @include context-menu-open-left;\n        }\n      }\n\n      @media (min-width: $break-point-widest) {\n        grid-template-columns: repeat(auto-fit, $card-width-large);\n      }\n    }\n  }\n\n  .section-empty-state {\n    height: $card-height-large;\n  }\n}\n",
+		".topic {\n  color: var(--newtab-section-navigation-text-color);\n  font-size: 12px;\n  line-height: 1.6;\n  margin-top: $topic-margin-top;\n\n  @media (min-width: $break-point-large) {\n    line-height: 16px;\n  }\n\n  ul {\n    margin: 0;\n    padding: 0;\n    @media (min-width: $break-point-large) {\n      display: inline;\n      padding-inline-start: 12px;\n    }\n  }\n\n\n  ul li {\n    display: inline-block;\n\n    &::after {\n      content: '•';\n      padding: 8px;\n    }\n\n    &:last-child::after {\n      content: none;\n    }\n  }\n\n  .topic-link {\n    color: var(--newtab-link-secondary-color);\n  }\n\n  .topic-read-more {\n    color: var(--newtab-link-secondary-color);\n\n    @media (min-width: $break-point-large) {\n      // This is floating to accomodate a very large number of topics and/or\n      // very long topic names due to l10n.\n      float: right;\n\n      &:dir(rtl) {\n        float: left;\n      }\n    }\n\n    &::after {\n      background: url('#{$image-path}topic-show-more-12.svg') no-repeat center center;\n      content: '';\n      -moz-context-properties: fill;\n      display: inline-block;\n      fill: var(--newtab-link-secondary-color);\n      height: 16px;\n      margin-inline-start: 5px;\n      vertical-align: top;\n      width: 12px;\n    }\n\n    &:dir(rtl)::after  {\n      transform: scaleX(-1);\n    }\n  }\n\n  // This is a clearfix to for the topics-read-more link which is floating and causes\n  // some jank when we set overflow:hidden for the animation.\n  &::after {\n    clear: both;\n    content: '';\n    display: table;\n  }\n}\n",
+		".search-wrapper {\n  $search-border-radius: 3px;\n  $search-focus-color: var(--newtab-search-focus-border-color);\n  $search-height: 35px;\n  $search-input-left-label-width: 35px;\n  $search-button-width: 36px;\n  $search-glyph-image: url('chrome://browser/skin/search-glass.svg');\n  $glyph-forward: url('chrome://browser/skin/forward.svg');\n  $search-glyph-size: 16px;\n  // This is positioned so it is visually (not metrically) centered. r=abenson\n  $search-glyph-left-position: 12px;\n\n  cursor: default;\n  display: flex;\n  height: $search-height;\n  // The extra 1px is to account for the box-shadow being outside of the element\n  // instead of inside. It needs to be like that to not overlap the inner background\n  // color of the hover state of the submit button.\n  margin: 1px 1px $section-spacing;\n  position: relative;\n  width: 100%;\n\n  input {\n    background: var(--newtab-search-background-color);\n    border: solid 1px var(--newtab-search-border-color);\n    border-radius: $search-border-radius;\n    box-shadow: $shadow-secondary, 0 0 0 1px $black-15;\n    color: var(--newtab-search-text-color);\n    font-size: 15px;\n    padding: 0;\n    padding-inline-end: $search-button-width;\n    padding-inline-start: $search-input-left-label-width;\n    width: 100%;\n  }\n\n  &:hover input {\n    box-shadow: $shadow-secondary, 0 0 0 1px $black-25;\n  }\n\n  &:active input,\n  input:focus {\n    box-shadow: 0 0 0 $os-search-focus-shadow-radius $search-focus-color;\n  }\n\n  .search-label {\n    background: $search-glyph-image no-repeat $search-glyph-left-position center / $search-glyph-size;\n    -moz-context-properties: fill;\n    fill: var(--newtab-search-icon-color);\n    height: 100%;\n    offset-inline-start: 0;\n    position: absolute;\n    width: $search-input-left-label-width;\n  }\n\n  .search-button {\n    background: $glyph-forward no-repeat center center;\n    background-size: 16px 16px;\n    border: 0;\n    border-radius: 0 $border-radius $border-radius 0;\n    -moz-context-properties: fill;\n    fill: var(--newtab-search-icon-color);\n    height: 100%;\n    offset-inline-end: 0;\n    position: absolute;\n    width: $search-button-width;\n\n    &:focus,\n    &:hover {\n      background-color: $grey-90-10;\n      cursor: pointer;\n    }\n\n    &:active {\n      background-color: $grey-90-20;\n    }\n\n    &:dir(rtl) {\n      transform: scaleX(-1);\n    }\n  }\n}\n\n@at-root {\n  // Adjust the style of the contentSearchUI-generated table\n  // sass-lint:disable-block class-name-format\n  .contentSearchSuggestionTable {\n    background-color: var(--newtab-search-background-color);\n    border: 0;\n    transform: translateY(3px);\n\n    .contentSearchHeader {\n      background-color: var(--newtab-background-color);\n      color: var(--newtab-text-secondary-color);\n    }\n\n    .contentSearchHeader,\n    .contentSearchSuggestionsList {\n      border-color: var(--newtab-border-primary-color);\n    }\n\n    .contentSearchSearchWithHeaderSearchText {\n      color: var(--newtab-text-primary-color);\n    }\n  }\n}\n",
+		".context-menu {\n  background: var(--newtab-background-color);\n  border-radius: $context-menu-border-radius;\n  box-shadow: $context-menu-shadow;\n  display: block;\n  font-size: $context-menu-font-size;\n  margin-inline-start: 5px;\n  offset-inline-start: 100%;\n  position: absolute;\n  top: ($context-menu-button-size / 4);\n  z-index: 10000;\n\n  > ul {\n    list-style: none;\n    margin: 0;\n    padding: $context-menu-outer-padding 0;\n\n    > li {\n      margin: 0;\n      width: 100%;\n\n      &.separator {\n        border-bottom: $border-secondary;\n        margin: $context-menu-outer-padding 0;\n      }\n\n      > a {\n        align-items: center;\n        color: inherit;\n        cursor: pointer;\n        display: flex;\n        line-height: 16px;\n        outline: none;\n        padding: $context-menu-item-padding;\n        white-space: nowrap;\n\n        &:-moz-any(:focus, :hover) {\n          background: var(--newtab-link-primary-color);\n          color: $white;\n\n          a {\n            color: $grey-90;\n          }\n\n          .icon {\n            fill: $white;\n          }\n\n          &:-moz-any(:focus, :hover) {\n            color: $white;\n          }\n        }\n\n        &.disabled {\n          opacity: 0.4;\n          pointer-events: none;\n        }\n      }\n    }\n  }\n}\n",
+		".confirmation-dialog {\n  .modal {\n    box-shadow: 0 2px 2px 0 $black-10;\n    left: 50%;\n    margin-left: -200px;\n    position: fixed;\n    top: 20%;\n    width: 400px;\n  }\n\n  section {\n    margin: 0;\n  }\n\n  .modal-message {\n    display: flex;\n    padding: 16px;\n    padding-bottom: 0;\n\n    p {\n      margin: 0;\n      margin-bottom: 16px;\n    }\n  }\n\n  .actions {\n    border: 0;\n    display: flex;\n    flex-wrap: nowrap;\n    padding: 0 16px;\n\n    button {\n      margin-inline-end: 16px;\n      padding-inline-end: 18px;\n      padding-inline-start: 18px;\n      white-space: normal;\n      width: 50%;\n\n      &.done {\n        margin-inline-end: 0;\n        margin-inline-start: 0;\n      }\n    }\n  }\n\n  .icon {\n    margin-inline-end: 16px;\n  }\n}\n\n.modal-overlay {\n  background: var(--newtab-overlay-color);\n  height: 100%;\n  left: 0;\n  opacity: 0.8;\n  position: fixed;\n  top: 0;\n  width: 100%;\n  z-index: 11001;\n}\n\n.modal {\n  background: var(--newtab-modal-color);\n  border: $border-secondary;\n  border-radius: 5px;\n  font-size: 15px;\n  z-index: 11002;\n}\n",
+		".card-outer {\n  @include context-menu-button;\n  background: var(--newtab-card-background-color);\n  border-radius: $border-radius;\n  display: inline-block;\n  height: $card-height;\n  margin-inline-end: $base-gutter;\n  position: relative;\n  width: 100%;\n\n  &.placeholder {\n    background: transparent;\n\n    .card {\n      box-shadow: inset $inner-box-shadow;\n    }\n  }\n\n  .card {\n    border-radius: $border-radius;\n    box-shadow: $shadow-secondary;\n    height: 100%;\n  }\n\n  > a {\n    color: inherit;\n    display: block;\n    height: 100%;\n    outline: none;\n    position: absolute;\n    width: 100%;\n\n    &:-moz-any(.active, :focus) {\n      .card {\n        @include fade-in-card;\n      }\n\n      .card-title {\n        color: var(--newtab-link-primary-color);\n      }\n    }\n  }\n\n  &:-moz-any(:hover, :focus, .active):not(.placeholder) {\n    @include fade-in-card;\n    @include context-menu-button-hover;\n    outline: none;\n\n    .card-title {\n      color: var(--newtab-link-primary-color);\n    }\n  }\n\n  .card-preview-image-outer {\n    background-color: var(--newtab-background-color);\n    border-radius: $border-radius $border-radius 0 0;\n    height: $card-preview-image-height;\n    overflow: hidden;\n    position: relative;\n\n    &::after {\n      border-bottom: 1px solid $black-5;\n      bottom: 0;\n      content: '';\n      position: absolute;\n      width: 100%;\n    }\n\n    .card-preview-image {\n      background-position: center;\n      background-repeat: no-repeat;\n      background-size: cover;\n      height: 100%;\n      opacity: 0;\n      transition: opacity 1s $photon-easing;\n      width: 100%;\n\n      &.loaded {\n        opacity: 1;\n      }\n    }\n  }\n\n  .card-details {\n    padding: 15px 16px 12px;\n\n    &.no-image {\n      padding-top: 16px;\n    }\n  }\n\n  .card-text {\n    max-height: 4 * $card-text-line-height + $card-title-margin;\n    overflow: hidden;\n\n    &.no-image {\n      max-height: 10 * $card-text-line-height + $card-title-margin;\n    }\n\n    &.no-host-name,\n    &.no-context {\n      max-height: 5 * $card-text-line-height + $card-title-margin;\n    }\n\n    &.no-image.no-host-name,\n    &.no-image.no-context {\n      max-height: 11 * $card-text-line-height + $card-title-margin;\n    }\n\n    &.no-host-name.no-context {\n      max-height: 6 * $card-text-line-height + $card-title-margin;\n    }\n\n    &.no-image.no-host-name.no-context {\n      max-height: 12 * $card-text-line-height + $card-title-margin;\n    }\n\n    &:not(.no-description) .card-title {\n      max-height: 3 * $card-text-line-height;\n      overflow: hidden;\n    }\n  }\n\n  .card-host-name {\n    color: var(--newtab-text-secondary-color);\n    font-size: 10px;\n    overflow: hidden;\n    padding-bottom: 4px;\n    text-overflow: ellipsis;\n    text-transform: uppercase;\n  }\n\n  .card-title {\n    font-size: 14px;\n    line-height: $card-text-line-height;\n    margin: 0 0 $card-title-margin;\n    word-wrap: break-word;\n  }\n\n  .card-description {\n    font-size: 12px;\n    line-height: $card-text-line-height;\n    margin: 0;\n    overflow: hidden;\n    word-wrap: break-word;\n  }\n\n  .card-context {\n    bottom: 0;\n    color: var(--newtab-text-secondary-color);\n    display: flex;\n    font-size: 11px;\n    left: 0;\n    padding: 9px 16px 9px 14px;\n    position: absolute;\n    right: 0;\n  }\n\n  .card-context-icon {\n    fill: var(--newtab-icon-secondary-color);\n    height: 22px;\n    margin-inline-end: 6px;\n  }\n\n  .card-context-label {\n    flex-grow: 1;\n    line-height: 22px;\n    overflow: hidden;\n    text-overflow: ellipsis;\n    white-space: nowrap;\n  }\n}\n\n.wide-layout-enabled {\n  $line-height: 23px;\n\n  .card-outer {\n    @media (min-width: $break-point-widest) {\n      height: $card-height-large;\n\n      .card-preview-image-outer {\n        height: $card-preview-image-height-large;\n      }\n\n      .card-details {\n        padding: 13px 16px 12px;\n      }\n\n      .card-text {\n        max-height: 6 * $line-height + $card-title-margin;\n      }\n\n      .card-host-name {\n        font-size: 12px;\n        padding-bottom: 5px;\n      }\n\n      .card-title {\n        font-size: 17px;\n        line-height: $line-height;\n        margin-bottom: 0;\n      }\n\n      .card-text:not(.no-description) {\n        .card-title {\n          max-height: 3 * $line-height;\n        }\n      }\n\n      .card-description {\n        font-size: 15px;\n        line-height: $line-height;\n      }\n\n      .card-context {\n        bottom: 4px;\n        font-size: 14px;\n      }\n    }\n  }\n}\n",
+		".manual-migration-container {\n  color: var(--newtab-text-conditional-color);\n  font-size: 13px;\n  line-height: 15px;\n  margin-bottom: $section-spacing;\n  text-align: center;\n\n  @media (min-width: $break-point-medium) {\n    display: flex;\n    justify-content: space-between;\n    text-align: left;\n  }\n\n  p {\n    margin: 0;\n    @media (min-width: $break-point-medium) {\n      align-self: center;\n      display: flex;\n      justify-content: space-between;\n    }\n  }\n\n  .icon {\n    display: none;\n    @media (min-width: $break-point-medium) {\n      align-self: center;\n      display: block;\n      fill: var(--newtab-icon-secondary-color);\n      margin-inline-end: 6px;\n    }\n  }\n}\n\n.manual-migration-actions {\n  border: 0;\n  display: block;\n  flex-wrap: nowrap;\n\n  @media (min-width: $break-point-medium) {\n    display: flex;\n    justify-content: space-between;\n    padding: 0;\n  }\n\n  button {\n    align-self: center;\n    height: 26px;\n    margin: 0;\n    margin-inline-start: 20px;\n    padding: 0 12px;\n  }\n}\n",
+		".collapsible-section {\n  padding: $section-vertical-padding $section-horizontal-padding;\n  transition-delay: 100ms;\n  transition-duration: 100ms;\n  transition-property: background-color;\n\n  .section-title {\n    font-size: $section-title-font-size;\n    font-weight: bold;\n    margin: 0;\n    text-transform: uppercase;\n\n    span {\n      color: var(--newtab-section-header-text-color);\n      display: inline-block;\n      fill: var(--newtab-section-header-text-color);\n      vertical-align: middle;\n    }\n\n    .click-target {\n      cursor: pointer;\n      vertical-align: top;\n      white-space: nowrap;\n    }\n\n    .collapsible-arrow {\n      margin-inline-start: 8px;\n      margin-top: -1px;\n    }\n  }\n\n  .section-top-bar {\n    height: 19px;\n    margin-bottom: 13px;\n    position: relative;\n\n    .context-menu-button {\n      background: url('chrome://browser/skin/page-action.svg') no-repeat right center;\n      border: 0;\n      cursor: pointer;\n      fill: var(--newtab-section-header-text-color);\n      height: 100%;\n      offset-inline-end: 0;\n      opacity: 0;\n      position: absolute;\n      top: 0;\n      transition-duration: 200ms;\n      transition-property: opacity;\n      width: $context-menu-button-size;\n\n      &:-moz-any(:active, :focus, :hover) {\n        fill: $grey-90;\n        opacity: 1;\n      }\n    }\n\n    .context-menu {\n      top: 16px;\n    }\n\n    @media (max-width: $break-point-widest + $card-width * 1.5) {\n      @include context-menu-open-left;\n    }\n  }\n\n  &:hover,\n  &.active {\n    .section-top-bar {\n      .context-menu-button {\n        opacity: 1;\n      }\n    }\n  }\n\n  &.active {\n    background: var(--newtab-element-active-color);\n    border-radius: 4px;\n\n    .section-top-bar {\n      .context-menu-button {\n        fill: var(--newtab-section-active-contextmenu-color);\n      }\n    }\n  }\n\n  .section-disclaimer {\n    $max-button-width: 130px;\n    $min-button-height: 26px;\n\n    color: var(--newtab-text-conditional-color);\n    font-size: 13px;\n    margin-bottom: 16px;\n    position: relative;\n\n    .section-disclaimer-text {\n      display: inline-block;\n      min-height: $min-button-height;\n      width: calc(100% - #{$max-button-width});\n\n      @media (max-width: $break-point-medium) {\n        width: $card-width;\n      }\n    }\n\n    a {\n      color: var(--newtab-link-secondary-color);\n      font-weight: bold;\n      padding-left: 3px;\n    }\n\n    button {\n      background: transparent;\n      border: 1px solid $grey-40;\n      border-radius: 4px;\n      cursor: pointer;\n      margin-top: 2px;\n      max-width: $max-button-width;\n      min-height: $min-button-height;\n      offset-inline-end: 0;\n\n      &:hover:not(.dismiss) {\n        box-shadow: $shadow-primary;\n        transition: box-shadow 150ms;\n      }\n\n      @media (min-width: $break-point-small) {\n        position: absolute;\n      }\n    }\n  }\n\n  .section-body-fallback {\n    height: $card-height;\n  }\n\n  .section-body {\n    // This is so the top sites favicon and card dropshadows don't get clipped during animation:\n    $horizontal-padding: 7px;\n    margin: 0 (-$horizontal-padding);\n    padding: 0 $horizontal-padding;\n\n    &.animating {\n      overflow: hidden;\n      pointer-events: none;\n    }\n  }\n\n  &.animation-enabled {\n    .section-title {\n      .collapsible-arrow {\n        transition: transform 0.5s $photon-easing;\n      }\n    }\n\n    .section-body {\n      transition: max-height 0.5s $photon-easing;\n    }\n  }\n\n  &.collapsed {\n    .section-body {\n      max-height: 0;\n      overflow: hidden;\n    }\n  }\n}\n",
+		"\n.messages-admin {\n  $monospace: 'SF Mono', 'Monaco', 'Inconsolata', 'Fira Mono', 'Droid Sans Mono', 'Source Code Pro', monospace;\n  max-width: 996px;\n  margin: 0 auto;\n  font-size: 14px;\n\n  h1 {\n    font-weight: 200;\n    font-size: 32px;\n  }\n\n  table {\n    border-collapse: collapse;\n    width: 100%;\n  }\n\n  .message-item {\n    &:first-child td {\n      border-top: 1px solid $black-10;\n    }\n\n    td {\n      vertical-align: top;\n      border-bottom: 1px solid $black-10;\n      padding: 8px;\n\n      &:first-child {\n        border-left: 1px solid $black-10;\n      }\n\n      &:last-child {\n        border-right: 1px solid $black-10;\n      }\n    }\n\n    &.current {\n      .message-id span {\n        background: $yellow-50;\n        padding: 2px 5px;\n      }\n    }\n\n    &.blocked {\n      .message-id,\n      .message-summary {\n        opacity: 0.5;\n      }\n\n      .message-id {\n        color: $grey-90;\n      }\n    }\n\n    .message-id {\n      font-family: $monospace;\n      font-size: 12px;\n    }\n  }\n\n  pre {\n    background: $white;\n    margin: 0;\n    padding: 8px;\n    font-size: 12px;\n    max-width: 750px;\n    overflow: auto;\n    font-family: $monospace;\n  }\n}\n"
 	],
 	"names": [],
-	"mappings": "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"
+	"mappings": "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"
 }
\ No newline at end of file
--- a/browser/extensions/activity-stream/css/activity-stream-windows.css
+++ b/browser/extensions/activity-stream/css/activity-stream-windows.css
@@ -19,36 +19,102 @@ input {
   background-color: inherit;
   color: inherit;
   font-family: inherit;
   font-size: inherit; }
 
 [hidden] {
   display: none !important; }
 
+.outer-wrapper {
+  --newtab-background-color: #F9F9FA;
+  --newtab-border-primary-color: #B1B1B3;
+  --newtab-border-secondary-color: #D7D7DB;
+  --newtab-button-primary-color: #0060DF;
+  --newtab-button-secondary-color: inherit;
+  --newtab-element-active-color: rgba(237, 237, 240, 0.6);
+  --newtab-icon-primary-color: rgba(12, 12, 13, 0.8);
+  --newtab-icon-secondary-color: rgba(12, 12, 13, 0.6);
+  --newtab-icon-tertiary-color: #D7D7DB;
+  --newtab-inner-box-shadow-color: rgba(0, 0, 0, 0.1);
+  --newtab-link-primary-color: #0060DF;
+  --newtab-link-secondary-color: #008EA4;
+  --newtab-text-conditional-color: #4A4A4F;
+  --newtab-text-primary-color: #0C0C0D;
+  --newtab-text-secondary-color: #737373;
+  --newtab-textbox-border: rgba(12, 12, 13, 0.2);
+  --newtab-textbox-color: inherit;
+  --newtab-contextmenu-button-color: #FFF;
+  --newtab-modal-color: #FFF;
+  --newtab-overlay-color: #EDEDF0;
+  --newtab-section-header-text-color: #737373;
+  --newtab-section-navigation-text-color: #737373;
+  --newtab-section-active-contextmenu-color: #0C0C0D;
+  --newtab-search-background-color: #FFF;
+  --newtab-search-border-color: transparent;
+  --newtab-search-focus-border-color: #0A84FF;
+  --newtab-search-icon-color: rgba(12, 12, 13, 0.4);
+  --newtab-search-text-color: inherit;
+  --newtab-topsites-label-color: inherit;
+  --newtab-card-background-color: #FFF;
+  --newtab-card-active-outline-color: #D7D7DB; }
+
+.outer-wrapper.dark-theme {
+  --newtab-background-color: #2A2A2E;
+  --newtab-border-primary-color: rgba(249, 249, 250, 0.8);
+  --newtab-border-secondary-color: rgba(249, 249, 250, 0.2);
+  --newtab-button-primary-color: #45A1FF;
+  --newtab-button-secondary-color: #38383D;
+  --newtab-element-active-color: #4A4A4F;
+  --newtab-icon-primary-color: rgba(249, 249, 250, 0.8);
+  --newtab-icon-secondary-color: rgba(249, 249, 250, 0.4);
+  --newtab-icon-tertiary-color: rgba(249, 249, 250, 0.2);
+  --newtab-inner-box-shadow-color: rgba(249, 249, 250, 0.2);
+  --newtab-link-primary-color: #45A1FF;
+  --newtab-link-secondary-color: #50BCB6;
+  --newtab-text-conditional-color: #F9F9FA;
+  --newtab-text-primary-color: #F9F9FA;
+  --newtab-text-secondary-color: rgba(249, 249, 250, 0.4);
+  --newtab-textbox-border: rgba(249, 249, 250, 0.4);
+  --newtab-textbox-color: #2A2A2E;
+  --newtab-contextmenu-button-color: #2A2A2E;
+  --newtab-modal-color: #0C0C0D;
+  --newtab-overlay-color: #2A2A2E;
+  --newtab-section-header-text-color: rgba(249, 249, 250, 0.8);
+  --newtab-section-navigation-text-color: rgba(249, 249, 250, 0.8);
+  --newtab-section-active-contextmenu-color: #FFF;
+  --newtab-search-background-color: #4A4A4F;
+  --newtab-search-border-color: rgba(249, 249, 250, 0.4);
+  --newtab-search-focus-border-color: #45A1FF;
+  --newtab-search-icon-color: rgba(249, 249, 250, 0.6);
+  --newtab-search-text-color: rgba(249, 249, 250, 0.6);
+  --newtab-topsites-label-color: rgba(249, 249, 250, 0.8);
+  --newtab-card-background-color: #0C0C0D;
+  --newtab-card-active-outline-color: #4A4A4F; }
+
 .icon {
   background-position: center center;
   background-repeat: no-repeat;
   background-size: 16px;
   -moz-context-properties: fill;
   display: inline-block;
-  fill: rgba(12, 12, 13, 0.8);
+  fill: var(--newtab-icon-primary-color);
   height: 16px;
   vertical-align: middle;
   width: 16px; }
   .icon.icon-spacer {
     margin-inline-end: 8px; }
   .icon.icon-small-spacer {
     margin-inline-end: 6px; }
   .icon.icon-bookmark-added {
     background-image: url("chrome://browser/skin/bookmark.svg"); }
   .icon.icon-bookmark-hollow {
     background-image: url("chrome://browser/skin/bookmark-hollow.svg"); }
   .icon.icon-clear-input {
-    fill: rgba(12, 12, 13, 0.6);
+    fill: var(--newtab-icon-secondary-color);
     background-image: url("../data/content/assets/glyph-cancel-16.svg"); }
   .icon.icon-delete {
     background-image: url("../data/content/assets/glyph-delete-16.svg"); }
   .icon.icon-modal-delete {
     background-image: url("../data/content/assets/glyph-modal-delete-32.svg");
     background-size: 32px;
     height: 32px;
     width: 32px; }
@@ -120,50 +186,47 @@ input {
     transform: rotate(180deg); }
   .icon.icon-add {
     background-image: url("../data/content/assets/glyph-add-16.svg"); }
   .icon.icon-minimize {
     background-image: url("../data/content/assets/glyph-minimize-16.svg"); }
   .icon.icon-maximize {
     background-image: url("../data/content/assets/glyph-maximize-16.svg"); }
 
-html,
+html {
+  height: 100%; }
+
 body,
 #root {
-  height: 100%; }
+  min-height: 100vh; }
 
 body {
-  background: #F9F9FA;
-  color: #0C0C0D;
   font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', 'Ubuntu', 'Helvetica Neue', sans-serif;
   font-size: 16px;
   overflow-y: scroll; }
 
 h1,
 h2 {
   font-weight: normal; }
 
 a {
-  color: #0060DF;
   text-decoration: none; }
-  a:hover {
-    color: #008EA4; }
 
 .sr-only {
   border: 0;
   clip: rect(0, 0, 0, 0);
   height: 1px;
   margin: -1px;
   overflow: hidden;
   padding: 0;
   position: absolute;
   width: 1px; }
 
 .inner-border {
-  border: 1px solid #D7D7DB;
+  border: 1px solid var(--newtab-border-secondary-color);
   border-radius: 3px;
   height: 100%;
   left: 0;
   pointer-events: none;
   position: absolute;
   top: 0;
   width: 100%;
   z-index: 100; }
@@ -177,55 +240,66 @@ a {
 .show-on-init {
   opacity: 0;
   transition: opacity 0.2s ease-in; }
   .show-on-init.on {
     animation: fadeIn 0.2s;
     opacity: 1; }
 
 .actions {
-  border-top: 1px solid #D7D7DB;
+  border-top: 1px solid var(--newtab-border-secondary-color);
   display: flex;
   flex-direction: row;
   flex-wrap: wrap;
   justify-content: flex-start;
   margin: 0;
   padding: 15px 25px 0; }
-  .actions button {
-    background-color: #F9F9FA;
-    border: 1px solid #B1B1B3;
-    border-radius: 4px;
-    color: inherit;
-    cursor: pointer;
-    margin-bottom: 15px;
-    padding: 10px 30px;
-    white-space: nowrap; }
-    .actions button:hover:not(.dismiss) {
-      box-shadow: 0 0 0 5px #D7D7DB;
-      transition: box-shadow 150ms; }
-    .actions button.dismiss {
-      border: 0;
-      padding: 0;
-      text-decoration: underline; }
-    .actions button.done {
-      background: #0060DF;
-      border: solid 1px #0060DF;
-      color: #FFF;
-      margin-inline-start: auto; }
+
+.button,
+.actions button {
+  background-color: var(--newtab-button-secondary-color);
+  border: 1px solid var(--newtab-border-primary-color);
+  border-radius: 4px;
+  color: inherit;
+  cursor: pointer;
+  margin-bottom: 15px;
+  padding: 10px 30px;
+  white-space: nowrap; }
+  .button:hover:not(.dismiss),
+  .actions button:hover:not(.dismiss) {
+    box-shadow: 0 0 0 5px var(--newtab-card-active-outline-color);
+    transition: box-shadow 150ms; }
+  .button.dismiss,
+  .actions button.dismiss {
+    background-color: transparent;
+    border: 0;
+    padding: 0;
+    text-decoration: underline; }
+  .button.primary, .button.done,
+  .actions button.primary,
+  .actions button.done {
+    background-color: var(--newtab-button-primary-color);
+    border: solid 1px var(--newtab-button-primary-color);
+    color: #FFF;
+    margin-inline-start: auto; }
 
 #snippets-container {
   z-index: 1; }
 
 .outer-wrapper {
+  background-color: var(--newtab-background-color);
+  color: var(--newtab-text-primary-color);
   display: flex;
   flex-grow: 1;
-  height: 100%;
+  min-height: 100vh;
   padding: 30px 32px 32px; }
   .outer-wrapper.fixed-to-top {
-    height: auto; }
+    display: block; }
+  .outer-wrapper a {
+    color: var(--newtab-link-primary-color); }
 
 main {
   margin: auto;
   padding-bottom: 68px;
   width: 274px; }
   @media (min-width: 482px) {
     main {
       width: 402px; } }
@@ -238,29 +312,16 @@ main {
   main section {
     margin-bottom: 20px;
     position: relative; }
 
 @media (min-width: 1122px) {
   .wide-layout-enabled main {
     width: 1042px; } }
 
-.section-top-bar {
-  height: 16px;
-  margin-bottom: 16px; }
-
-.section-title {
-  font-size: 13px;
-  font-weight: bold;
-  text-transform: uppercase; }
-  .section-title span {
-    color: #737373;
-    fill: #737373;
-    vertical-align: middle; }
-
 .base-content-fallback {
   height: 100vh; }
 
 
 .body-wrapper .section-title,
 .body-wrapper .sections-list .section:last-of-type,
 .body-wrapper .topic {
   opacity: 0; }
@@ -273,40 +334,38 @@ main {
 
 .non-collapsible-section {
   padding: 0 25px; }
 
 .prefs-button button {
   background-color: transparent;
   border: 0;
   cursor: pointer;
-  fill: rgba(12, 12, 13, 0.6);
+  fill: var(--newtab-icon-primary-color);
   offset-inline-end: 15px;
   padding: 15px;
   position: fixed;
   top: 15px;
   z-index: 12001; }
-  .prefs-button button:hover {
-    background-color: #EDEDF0; }
-  .prefs-button button:active {
-    background-color: #F9F9FA; }
+  .prefs-button button:hover, .prefs-button button:focus {
+    background-color: var(--newtab-element-active-color); }
 
 .as-error-fallback {
   align-items: center;
   border-radius: 3px;
-  box-shadow: inset 0 0 0 1px rgba(0, 0, 0, 0.1);
-  color: #4A4A4F;
+  box-shadow: inset 0 0 0 1px var(--newtab-inner-box-shadow-color);
+  color: var(--newtab-text-conditional-color);
   display: flex;
   flex-direction: column;
   font-size: 12px;
   justify-content: center;
   justify-items: center;
   line-height: 1.5; }
   .as-error-fallback a {
-    color: #4A4A4F;
+    color: var(--newtab-text-conditional-color);
     text-decoration: underline; }
 
 .top-sites {
   margin-bottom: 2px; }
 
 .top-sites-list {
   list-style: none;
   margin: 0 -16px;
@@ -351,92 +410,92 @@ main {
     .top-sites-list :nth-child(6n+5) .context-menu {
       margin-inline-end: 5px;
       margin-inline-start: auto;
       offset-inline-end: 0;
       offset-inline-start: auto; } }
   .top-sites-list li {
     margin: 0 0 8px; }
   .top-sites-list:not(.dnd-active) .top-site-outer:-moz-any(.active, :focus, :hover) .tile {
-    box-shadow: inset 0 0 0 1px rgba(0, 0, 0, 0.1), 0 0 0 5px #D7D7DB;
+    box-shadow: inset 0 0 0 1px var(--newtab-inner-box-shadow-color), 0 0 0 5px var(--newtab-card-active-outline-color);
     transition: box-shadow 150ms; }
   .top-sites-list:not(.dnd-active) .top-site-outer:-moz-any(.active, :focus, :hover) .context-menu-button {
     opacity: 1;
     transform: scale(1); }
 
 .top-site-outer {
   padding: 0 16px;
   display: inline-block; }
   .top-site-outer .top-site-inner {
     position: relative; }
     .top-site-outer .top-site-inner > a {
       color: inherit;
       display: block;
       outline: none; }
       .top-site-outer .top-site-inner > a:-moz-any(.active, :focus) .tile {
-        box-shadow: inset 0 0 0 1px rgba(0, 0, 0, 0.1), 0 0 0 5px #D7D7DB;
+        box-shadow: inset 0 0 0 1px var(--newtab-inner-box-shadow-color), 0 0 0 5px var(--newtab-card-active-outline-color);
         transition: box-shadow 150ms; }
   .top-site-outer .context-menu-button {
     background-clip: padding-box;
-    background-color: #FFF;
+    background-color: var(--newtab-contextmenu-button-color);
     background-image: url("chrome://browser/skin/page-action.svg");
     background-position: 55%;
-    border: 1px solid #B1B1B3;
+    border: 1px solid var(--newtab-border-primary-color);
     border-radius: 100%;
     box-shadow: 0 2px rgba(12, 12, 13, 0.1);
     cursor: pointer;
-    fill: rgba(12, 12, 13, 0.8);
+    fill: var(--newtab-icon-primary-color);
     height: 27px;
     offset-inline-end: -13.5px;
     opacity: 0;
     position: absolute;
     top: -13.5px;
     transform: scale(0.25);
     transition-duration: 200ms;
     transition-property: transform, opacity;
     width: 27px; }
     .top-site-outer .context-menu-button:-moz-any(:active, :focus) {
       opacity: 1;
       transform: scale(1); }
   .top-site-outer .tile {
     border-radius: 6px;
-    box-shadow: inset 0 0 0 1px rgba(0, 0, 0, 0.1), 0 1px 4px 0 rgba(12, 12, 13, 0.1);
+    box-shadow: inset 0 0 0 1px var(--newtab-inner-box-shadow-color), 0 1px 4px 0 rgba(12, 12, 13, 0.1);
     height: 96px;
     position: relative;
     width: 96px;
     align-items: center;
-    color: #737373;
+    color: var(--newtab-text-secondary-color);
     display: flex;
     font-size: 32px;
     font-weight: 200;
     justify-content: center;
     text-transform: uppercase; }
     .top-site-outer .tile::before {
       content: attr(data-fallback); }
   .top-site-outer .screenshot {
     background-color: #FFF;
     background-position: top left;
     background-size: cover;
     border-radius: 6px;
-    box-shadow: inset 0 0 0 1px rgba(0, 0, 0, 0.1);
+    box-shadow: inset 0 0 0 1px var(--newtab-inner-box-shadow-color);
     height: 100%;
     left: 0;
     opacity: 0;
     position: absolute;
     top: 0;
     transition: opacity 1s;
     width: 100%; }
     .top-site-outer .screenshot.active {
       opacity: 1; }
   .top-site-outer .top-site-icon {
-    background-color: #F9F9FA;
+    background-color: var(--newtab-background-color);
     background-position: center center;
     background-repeat: no-repeat;
     border-radius: 6px;
-    box-shadow: inset 0 0 0 1px rgba(0, 0, 0, 0.1);
+    box-shadow: inset 0 0 0 1px var(--newtab-inner-box-shadow-color);
     position: absolute; }
   .top-site-outer .rich-icon {
     background-size: cover;
     height: 100%;
     offset-inline-start: 0;
     top: 0;
     width: 100%; }
   .top-site-outer .default-icon {
@@ -447,39 +506,40 @@ main {
     width: 42px;
     align-items: center;
     display: flex;
     font-size: 20px;
     justify-content: center; }
     .top-site-outer .default-icon[data-fallback]::before {
       content: attr(data-fallback); }
   .top-site-outer .title {
+    color: var(--newtab-topsites-label-color);
     font: message-box;
     height: 30px;
     line-height: 30px;
     text-align: center;
     width: 96px;
     position: relative; }
     .top-site-outer .title .icon {
-      fill: #D7D7DB;
+      fill: var(--newtab-icon-tertiary-color);
       offset-inline-start: 0;
       position: absolute;
       top: 10px; }
     .top-site-outer .title span {
       height: 30px;
       display: block;
       overflow: hidden;
       text-overflow: ellipsis;
       white-space: nowrap; }
     .top-site-outer .title.pinned span {
       padding: 0 13px; }
   .top-site-outer .edit-button {
     background-image: url("../data/content/assets/glyph-edit-16.svg"); }
   .top-site-outer.placeholder .tile {
-    box-shadow: inset 0 0 0 1px rgba(0, 0, 0, 0.1); }
+    box-shadow: inset 0 0 0 1px var(--newtab-inner-box-shadow-color); }
   .top-site-outer.placeholder .screenshot {
     display: none; }
   .top-site-outer.dragged .tile {
     background: #EDEDF0;
     box-shadow: none; }
     .top-site-outer.dragged .tile *, .top-site-outer.dragged .tile::before {
       display: none; }
   .top-site-outer.dragged .title {
@@ -561,18 +621,17 @@ main {
       direction: ltr;
       text-align: right; }
   .topsite-form .form-wrapper .enable-custom-image-input {
     display: inline-block;
     font-size: 13px;
     margin-top: 4px;
     cursor: pointer; }
     .topsite-form .form-wrapper .enable-custom-image-input:hover {
-      text-decoration: underline;
-      color: #0060DF; }
+      text-decoration: underline; }
   .topsite-form .form-wrapper .custom-image-input-container {
     margin-top: 4px; }
     .topsite-form .form-wrapper .custom-image-input-container .loading-container {
       width: 16px;
       height: 16px;
       overflow: hidden;
       position: absolute;
       transform: translateY(-50%);
@@ -591,28 +650,29 @@ main {
     transform: translateX(-960px); } }
 
 @keyframes tab-throbber-animation-rtl {
   100% {
     transform: translateX(960px); } }
       .topsite-form .form-wrapper .custom-image-input-container .loading-animation:dir(rtl) {
         animation-name: tab-throbber-animation-rtl; }
   .topsite-form .form-wrapper input[type='text'] {
-    border: solid 1px rgba(12, 12, 13, 0.2);
+    background-color: var(--newtab-textbox-color);
+    border: solid 1px var(--newtab-textbox-border);
     border-radius: 2px;
     margin: 8px 0;
     padding: 0 8px;
     height: 32px;
     width: 100%;
     font-size: 15px; }
     .topsite-form .form-wrapper input[type='text']:focus {
       border: solid 1px #0A84FF;
       box-shadow: 0 0 0 1px #0A84FF, 0 0 0 4px rgba(10, 132, 255, 0.3); }
     .topsite-form .form-wrapper input[type='text'][disabled] {
-      border: solid 1px rgba(12, 12, 13, 0.2);
+      border: solid 1px var(--newtab-textbox-border);
       box-shadow: none;
       opacity: 0.4; }
   .topsite-form .form-wrapper .invalid input[type='text'] {
     border: solid 1px #D70022;
     box-shadow: 0 0 0 1px #D70022, 0 0 0 4px rgba(215, 0, 34, 0.3); }
   .topsite-form .form-wrapper .error-tooltip {
     animation: fade-up-tt 450ms;
     background: #D70022;
@@ -677,36 +737,36 @@ main {
   @media (min-width: 866px) and (max-width: 1314px) {
     .sections-list .section-list :nth-child(3n) .context-menu {
       margin-inline-end: 5px;
       margin-inline-start: auto;
       offset-inline-end: 0;
       offset-inline-start: auto; } }
 
 .sections-list .section-empty-state {
-  border: 1px solid #D7D7DB;
+  border: 1px solid var(--newtab-border-secondary-color);
   border-radius: 3px;
   display: flex;
   height: 266px;
   width: 100%; }
   .sections-list .section-empty-state .empty-state {
     margin: auto;
     max-width: 350px; }
     .sections-list .section-empty-state .empty-state .empty-state-icon {
       background-position: center;
       background-repeat: no-repeat;
       background-size: 50px 50px;
       -moz-context-properties: fill;
       display: block;
-      fill: rgba(12, 12, 13, 0.6);
+      fill: var(--newtab-icon-secondary-color);
       height: 50px;
       margin: 0 auto;
       width: 50px; }
     .sections-list .section-empty-state .empty-state .empty-state-message {
-      color: #737373;
+      color: var(--newtab-text-primary-color);
       font-size: 13px;
       margin-bottom: 0;
       text-align: center; }
 
 @media (min-width: 1122px) and (max-width: 1570px) {
   .wide-layout-enabled .sections-list .section-list :nth-child(3n) .context-menu {
     margin-inline-end: 5px;
     margin-inline-start: auto;
@@ -716,17 +776,17 @@ main {
 @media (min-width: 1122px) {
   .wide-layout-enabled .sections-list .section-list {
     grid-template-columns: repeat(auto-fit, 309px); } }
 
 .wide-layout-enabled .section-empty-state {
   height: 370px; }
 
 .topic {
-  color: #737373;
+  color: var(--newtab-section-navigation-text-color);
   font-size: 12px;
   line-height: 1.6;
   margin-top: 12px; }
   @media (min-width: 866px) {
     .topic {
       line-height: 16px; } }
   .topic ul {
     margin: 0;
@@ -738,30 +798,30 @@ main {
   .topic ul li {
     display: inline-block; }
     .topic ul li::after {
       content: '•';
       padding: 8px; }
     .topic ul li:last-child::after {
       content: none; }
   .topic .topic-link {
-    color: #008EA4; }
+    color: var(--newtab-link-secondary-color); }
   .topic .topic-read-more {
-    color: #008EA4; }
+    color: var(--newtab-link-secondary-color); }
     @media (min-width: 866px) {
       .topic .topic-read-more {
         float: right; }
         .topic .topic-read-more:dir(rtl) {
           float: left; } }
     .topic .topic-read-more::after {
       background: url("../data/content/assets/topic-show-more-12.svg") no-repeat center center;
       content: '';
       -moz-context-properties: fill;
       display: inline-block;
-      fill: #008EA4;
+      fill: var(--newtab-link-secondary-color);
       height: 16px;
       margin-inline-start: 5px;
       vertical-align: top;
       width: 12px; }
     .topic .topic-read-more:dir(rtl)::after {
       transform: scaleX(-1); }
   .topic::after {
     clear: both;
@@ -771,61 +831,72 @@ main {
 .search-wrapper {
   cursor: default;
   display: flex;
   height: 35px;
   margin: 1px 1px 20px;
   position: relative;
   width: 100%; }
   .search-wrapper input {
-    border: 0;
+    background: var(--newtab-search-background-color);
+    border: solid 1px var(--newtab-search-border-color);
     border-radius: 3px;
     box-shadow: 0 1px 4px 0 rgba(12, 12, 13, 0.1), 0 0 0 1px rgba(0, 0, 0, 0.15);
+    color: var(--newtab-search-text-color);
     font-size: 15px;
     padding: 0;
     padding-inline-end: 36px;
     padding-inline-start: 35px;
     width: 100%; }
   .search-wrapper:hover input {
     box-shadow: 0 1px 4px 0 rgba(12, 12, 13, 0.1), 0 0 0 1px rgba(0, 0, 0, 0.25); }
   .search-wrapper:active input,
   .search-wrapper input:focus {
-    box-shadow: 0 0 0 1px #0A84FF; }
+    box-shadow: 0 0 0 1px var(--newtab-search-focus-border-color); }
   .search-wrapper .search-label {
     background: url("chrome://browser/skin/search-glass.svg") no-repeat 12px center/16px;
     -moz-context-properties: fill;
-    fill: rgba(12, 12, 13, 0.4);
+    fill: var(--newtab-search-icon-color);
     height: 100%;
     offset-inline-start: 0;
     position: absolute;
     width: 35px; }
   .search-wrapper .search-button {
     background: url("chrome://browser/skin/forward.svg") no-repeat center center;
     background-size: 16px 16px;
     border: 0;
     border-radius: 0 3px 3px 0;
     -moz-context-properties: fill;
-    fill: rgba(12, 12, 13, 0.4);
+    fill: var(--newtab-search-icon-color);
     height: 100%;
     offset-inline-end: 0;
     position: absolute;
     width: 36px; }
     .search-wrapper .search-button:focus, .search-wrapper .search-button:hover {
       background-color: rgba(12, 12, 13, 0.1);
       cursor: pointer; }
     .search-wrapper .search-button:active {
       background-color: rgba(12, 12, 13, 0.2); }
     .search-wrapper .search-button:dir(rtl) {
       transform: scaleX(-1); }
-  .search-wrapper .contentSearchSuggestionTable {
-    border: 0;
-    transform: translateY(2px); }
+
+.contentSearchSuggestionTable {
+  background-color: var(--newtab-search-background-color);
+  border: 0;
+  transform: translateY(3px); }
+  .contentSearchSuggestionTable .contentSearchHeader {
+    background-color: var(--newtab-background-color);
+    color: var(--newtab-text-secondary-color); }
+  .contentSearchSuggestionTable .contentSearchHeader, .contentSearchSuggestionTable .contentSearchSuggestionsList {
+    border-color: var(--newtab-border-primary-color); }
+  .contentSearchSuggestionTable .contentSearchSearchWithHeaderSearchText {
+    color: var(--newtab-text-primary-color); }
 
 .context-menu {
-  background: #F9F9FA;
+  background: var(--newtab-background-color);
   border-radius: 5px;
   box-shadow: 0 5px 10px rgba(0, 0, 0, 0.3), 0 0 0 1px rgba(0, 0, 0, 0.2);
   display: block;
   font-size: 14px;
   margin-inline-start: 5px;
   offset-inline-start: 100%;
   position: absolute;
   top: 6.75px;
@@ -833,29 +904,29 @@ main {
   .context-menu > ul {
     list-style: none;
     margin: 0;
     padding: 5px 0; }
     .context-menu > ul > li {
       margin: 0;
       width: 100%; }
       .context-menu > ul > li.separator {
-        border-bottom: 1px solid rgba(0, 0, 0, 0.2);
+        border-bottom: 1px solid var(--newtab-border-secondary-color);
         margin: 5px 0; }
       .context-menu > ul > li > a {
         align-items: center;
         color: inherit;
         cursor: pointer;
         display: flex;
         line-height: 16px;
         outline: none;
         padding: 3px 12px;
         white-space: nowrap; }
         .context-menu > ul > li > a:-moz-any(:focus, :hover) {
-          background: #0060DF;
+          background: var(--newtab-link-primary-color);
           color: #FFF; }
           .context-menu > ul > li > a:-moz-any(:focus, :hover) a {
             color: #0C0C0D; }
           .context-menu > ul > li > a:-moz-any(:focus, :hover) .icon {
             fill: #FFF; }
           .context-menu > ul > li > a:-moz-any(:focus, :hover):-moz-any(:focus, :hover) {
             color: #FFF; }
         .context-menu > ul > li > a.disabled {
@@ -895,93 +966,93 @@ main {
     .confirmation-dialog .actions button.done {
       margin-inline-end: 0;
       margin-inline-start: 0; }
 
 .confirmation-dialog .icon {
   margin-inline-end: 16px; }
 
 .modal-overlay {
-  background: #EDEDF0;
+  background: var(--newtab-overlay-color);
   height: 100%;
   left: 0;
   opacity: 0.8;
   position: fixed;
   top: 0;
   width: 100%;
   z-index: 11001; }
 
 .modal {
-  background: #FFF;
-  border: 1px solid #D7D7DB;
+  background: var(--newtab-modal-color);
+  border: 1px solid var(--newtab-border-secondary-color);
   border-radius: 5px;
   font-size: 15px;
   z-index: 11002; }
 
 .card-outer {
-  background: #FFF;
+  background: var(--newtab-card-background-color);
   border-radius: 3px;
   display: inline-block;
   height: 266px;
   margin-inline-end: 32px;
   position: relative;
   width: 100%; }
   .card-outer .context-menu-button {
     background-clip: padding-box;
-    background-color: #FFF;
+    background-color: var(--newtab-contextmenu-button-color);
     background-image: url("chrome://browser/skin/page-action.svg");
     background-position: 55%;
-    border: 1px solid #B1B1B3;
+    border: 1px solid var(--newtab-border-primary-color);
     border-radius: 100%;
     box-shadow: 0 2px rgba(12, 12, 13, 0.1);
     cursor: pointer;
-    fill: rgba(12, 12, 13, 0.8);
+    fill: var(--newtab-icon-primary-color);
     height: 27px;
     offset-inline-end: -13.5px;
     opacity: 0;
     position: absolute;
     top: -13.5px;
     transform: scale(0.25);
     transition-duration: 200ms;
     transition-property: transform, opacity;
     width: 27px; }
     .card-outer .context-menu-button:-moz-any(:active, :focus) {
       opacity: 1;
       transform: scale(1); }
   .card-outer.placeholder {
     background: transparent; }
     .card-outer.placeholder .card {
-      box-shadow: inset 0 0 0 1px rgba(0, 0, 0, 0.1); }
+      box-shadow: inset 0 0 0 1px var(--newtab-inner-box-shadow-color); }
   .card-outer .card {
     border-radius: 3px;
     box-shadow: 0 1px 4px 0 rgba(12, 12, 13, 0.1);
     height: 100%; }
   .card-outer > a {
     color: inherit;
     display: block;
     height: 100%;
     outline: none;
     position: absolute;
     width: 100%; }
     .card-outer > a:-moz-any(.active, :focus) .card {
-      box-shadow: 0 0 0 5px #D7D7DB;
+      box-shadow: 0 0 0 5px var(--newtab-card-active-outline-color);
       transition: box-shadow 150ms; }
     .card-outer > a:-moz-any(.active, :focus) .card-title {
-      color: #0060DF; }
+      color: var(--newtab-link-primary-color); }
   .card-outer:-moz-any(:hover, :focus, .active):not(.placeholder) {
-    box-shadow: 0 0 0 5px #D7D7DB;
+    box-shadow: 0 0 0 5px var(--newtab-card-active-outline-color);
     transition: box-shadow 150ms;
     outline: none; }
     .card-outer:-moz-any(:hover, :focus, .active):not(.placeholder) .context-menu-button {
       opacity: 1;
       transform: scale(1); }
     .card-outer:-moz-any(:hover, :focus, .active):not(.placeholder) .card-title {
-      color: #0060DF; }
+      color: var(--newtab-link-primary-color); }
   .card-outer .card-preview-image-outer {
-    background-color: #F9F9FA;
+    background-color: var(--newtab-background-color);
     border-radius: 3px 3px 0 0;
     height: 122px;
     overflow: hidden;
     position: relative; }
     .card-outer .card-preview-image-outer::after {
       border-bottom: 1px solid rgba(0, 0, 0, 0.05);
       bottom: 0;
       content: '';
@@ -1013,17 +1084,17 @@ main {
     .card-outer .card-text.no-host-name.no-context {
       max-height: 116px; }
     .card-outer .card-text.no-image.no-host-name.no-context {
       max-height: 230px; }
     .card-outer .card-text:not(.no-description) .card-title {
       max-height: 57px;
       overflow: hidden; }
   .card-outer .card-host-name {
-    color: #737373;
+    color: var(--newtab-text-secondary-color);
     font-size: 10px;
     overflow: hidden;
     padding-bottom: 4px;
     text-overflow: ellipsis;
     text-transform: uppercase; }
   .card-outer .card-title {
     font-size: 14px;
     line-height: 19px;
@@ -1032,29 +1103,30 @@ main {
   .card-outer .card-description {
     font-size: 12px;
     line-height: 19px;
     margin: 0;
     overflow: hidden;
     word-wrap: break-word; }
   .card-outer .card-context {
     bottom: 0;
-    color: #737373;
+    color: var(--newtab-text-secondary-color);
     display: flex;
     font-size: 11px;
     left: 0;
-    padding: 12px 16px 12px 14px;
+    padding: 9px 16px 9px 14px;
     position: absolute;
     right: 0; }
   .card-outer .card-context-icon {
-    fill: rgba(12, 12, 13, 0.6);
+    fill: var(--newtab-icon-secondary-color);
+    height: 22px;
     margin-inline-end: 6px; }
   .card-outer .card-context-label {
     flex-grow: 1;
-    line-height: 16px;
+    line-height: 22px;
     overflow: hidden;
     text-overflow: ellipsis;
     white-space: nowrap; }
 
 @media (min-width: 1122px) {
   .wide-layout-enabled .card-outer {
     height: 370px; }
     .wide-layout-enabled .card-outer .card-preview-image-outer {
@@ -1075,17 +1147,17 @@ main {
     .wide-layout-enabled .card-outer .card-description {
       font-size: 15px;
       line-height: 23px; }
     .wide-layout-enabled .card-outer .card-context {
       bottom: 4px;
       font-size: 14px; } }
 
 .manual-migration-container {
-  color: #4A4A4F;
+  color: var(--newtab-text-conditional-color);
   font-size: 13px;
   line-height: 15px;
   margin-bottom: 20px;
   text-align: center; }
   @media (min-width: 610px) {
     .manual-migration-container {
       display: flex;
       justify-content: space-between;
@@ -1098,17 +1170,17 @@ main {
         display: flex;
         justify-content: space-between; } }
   .manual-migration-container .icon {
     display: none; }
     @media (min-width: 610px) {
       .manual-migration-container .icon {
         align-self: center;
         display: block;
-        fill: rgba(12, 12, 13, 0.6);
+        fill: var(--newtab-icon-secondary-color);
         margin-inline-end: 6px; } }
 
 .manual-migration-actions {
   border: 0;
   display: block;
   flex-wrap: nowrap; }
   @media (min-width: 610px) {
     .manual-migration-actions {
@@ -1123,32 +1195,42 @@ main {
     padding: 0 12px; }
 
 .collapsible-section {
   padding: 10px 25px;
   transition-delay: 100ms;
   transition-duration: 100ms;
   transition-property: background-color; }
   .collapsible-section .section-title {
-    margin: 0; }
+    font-size: 13px;
+    font-weight: bold;
+    margin: 0;
+    text-transform: uppercase; }
+    .collapsible-section .section-title span {
+      color: var(--newtab-section-header-text-color);
+      display: inline-block;
+      fill: var(--newtab-section-header-text-color);
+      vertical-align: middle; }
     .collapsible-section .section-title .click-target {
       cursor: pointer;
       vertical-align: top;
       white-space: nowrap; }
     .collapsible-section .section-title .collapsible-arrow {
       margin-inline-start: 8px;
       margin-top: -1px; }
   .collapsible-section .section-top-bar {
+    height: 19px;
+    margin-bottom: 13px;
     position: relative; }
     .collapsible-section .section-top-bar .context-menu-button {
       background: url("chrome://browser/skin/page-action.svg") no-repeat right center;
       border: 0;
       cursor: pointer;
-      fill: #737373;
-      height: 20px;
+      fill: var(--newtab-section-header-text-color);
+      height: 100%;
       offset-inline-end: 0;
       opacity: 0;
       position: absolute;
       top: 0;
       transition-duration: 200ms;
       transition-property: opacity;
       width: 27px; }
       .collapsible-section .section-top-bar .context-menu-button:-moz-any(:active, :focus, :hover) {
@@ -1160,46 +1242,47 @@ main {
       .collapsible-section .section-top-bar .context-menu {
         margin-inline-end: 5px;
         margin-inline-start: auto;
         offset-inline-end: 0;
         offset-inline-start: auto; } }
   .collapsible-section:hover .section-top-bar .context-menu-button, .collapsible-section.active .section-top-bar .context-menu-button {
     opacity: 1; }
   .collapsible-section.active {
-    background: rgba(237, 237, 240, 0.6);
+    background: var(--newtab-element-active-color);
     border-radius: 4px; }
     .collapsible-section.active .section-top-bar .context-menu-button {
-      fill: #0C0C0D; }
+      fill: var(--newtab-section-active-contextmenu-color); }
   .collapsible-section .section-disclaimer {
-    color: #4A4A4F;
+    color: var(--newtab-text-conditional-color);
     font-size: 13px;
     margin-bottom: 16px;
     position: relative; }
     .collapsible-section .section-disclaimer .section-disclaimer-text {
       display: inline-block;
       min-height: 26px;
       width: calc(100% - 130px); }
       @media (max-width: 610px) {
         .collapsible-section .section-disclaimer .section-disclaimer-text {
           width: 224px; } }
     .collapsible-section .section-disclaimer a {
-      color: #008EA4;
+      color: var(--newtab-link-secondary-color);
+      font-weight: bold;
       padding-left: 3px; }
     .collapsible-section .section-disclaimer button {
-      background: #F9F9FA;
+      background: transparent;
       border: 1px solid #B1B1B3;
       border-radius: 4px;
       cursor: pointer;
       margin-top: 2px;
       max-width: 130px;
       min-height: 26px;
       offset-inline-end: 0; }
       .collapsible-section .section-disclaimer button:hover:not(.dismiss) {
-        box-shadow: 0 0 0 5px #D7D7DB;
+        box-shadow: 0 0 0 5px var(--newtab-card-active-outline-color);
         transition: box-shadow 150ms; }
       @media (min-width: 482px) {
         .collapsible-section .section-disclaimer button {
           position: absolute; } }
   .collapsible-section .section-body-fallback {
     height: 266px; }
   .collapsible-section .section-body {
     margin: 0 -7px;
@@ -1210,9 +1293,49 @@ main {
   .collapsible-section.animation-enabled .section-title .collapsible-arrow {
     transition: transform 0.5s cubic-bezier(0.07, 0.95, 0, 1); }
   .collapsible-section.animation-enabled .section-body {
     transition: max-height 0.5s cubic-bezier(0.07, 0.95, 0, 1); }
   .collapsible-section.collapsed .section-body {
     max-height: 0;
     overflow: hidden; }
 
+.messages-admin {
+  max-width: 996px;
+  margin: 0 auto;
+  font-size: 14px; }
+  .messages-admin h1 {
+    font-weight: 200;
+    font-size: 32px; }
+  .messages-admin table {
+    border-collapse: collapse;
+    width: 100%; }
+  .messages-admin .message-item:first-child td {
+    border-top: 1px solid rgba(0, 0, 0, 0.1); }
+  .messages-admin .message-item td {
+    vertical-align: top;
+    border-bottom: 1px solid rgba(0, 0, 0, 0.1);
+    padding: 8px; }
+    .messages-admin .message-item td:first-child {
+      border-left: 1px solid rgba(0, 0, 0, 0.1); }
+    .messages-admin .message-item td:last-child {
+      border-right: 1px solid rgba(0, 0, 0, 0.1); }
+  .messages-admin .message-item.current .message-id span {
+    background: #FFE900;
+    padding: 2px 5px; }
+  .messages-admin .message-item.blocked .message-id,
+  .messages-admin .message-item.blocked .message-summary {
+    opacity: 0.5; }
+  .messages-admin .message-item.blocked .message-id {
+    color: #0C0C0D; }
+  .messages-admin .message-item .message-id {
+    font-family: "SF Mono", "Monaco", "Inconsolata", "Fira Mono", "Droid Sans Mono", "Source Code Pro", monospace;
+    font-size: 12px; }
+  .messages-admin pre {
+    background: #FFF;
+    margin: 0;
+    padding: 8px;
+    font-size: 12px;
+    max-width: 750px;
+    overflow: auto;
+    font-family: "SF Mono", "Monaco", "Inconsolata", "Fira Mono", "Droid Sans Mono", "Source Code Pro", monospace; }
+
 /*# sourceMappingURL=activity-stream-windows.css.map */
\ No newline at end of file
--- a/browser/extensions/activity-stream/css/activity-stream-windows.css.map
+++ b/browser/extensions/activity-stream/css/activity-stream-windows.css.map
@@ -1,42 +1,46 @@
 {
 	"version": 3,
 	"file": "activity-stream-windows.css",
 	"sources": [
 		"../content-src/styles/activity-stream-windows.scss",
 		"../content-src/styles/_activity-stream.scss",
 		"../content-src/styles/_normalize.scss",
 		"../content-src/styles/_variables.scss",
+		"../content-src/styles/_theme.scss",
 		"../content-src/styles/_icons.scss",
 		"../content-src/components/Base/_Base.scss",
 		"../content-src/components/ErrorBoundary/_ErrorBoundary.scss",
 		"../content-src/components/TopSites/_TopSites.scss",
 		"../content-src/components/Sections/_Sections.scss",
 		"../content-src/components/Topics/_Topics.scss",
 		"../content-src/components/Search/_Search.scss",
 		"../content-src/components/ContextMenu/_ContextMenu.scss",
 		"../content-src/components/ConfirmDialog/_ConfirmDialog.scss",
 		"../content-src/components/Card/_Card.scss",
 		"../content-src/components/ManualMigration/_ManualMigration.scss",
-		"../content-src/components/CollapsibleSection/_CollapsibleSection.scss"
+		"../content-src/components/CollapsibleSection/_CollapsibleSection.scss",
+		"../content-src/components/MessageCenterAdmin/MessageCenterAdmin.scss"
 	],
 	"sourcesContent": [
 		"/* This is the windows variant */ // sass-lint:disable-line no-css-comments\n\n$os-infopanel-arrow-height: 10px;\n$os-infopanel-arrow-offset-end: 6px;\n$os-infopanel-arrow-width: 20px;\n$os-search-focus-shadow-radius: 1px;\n\n@import './activity-stream';\n",
-		"@import './normalize';\n@import './variables';\n@import './icons';\n\nhtml,\nbody,\n#root { // sass-lint:disable-line no-ids\n  height: 100%;\n}\n\nbody {\n  background: $background-primary;\n  color: $text-primary;\n  font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', 'Ubuntu', 'Helvetica Neue', sans-serif;\n  font-size: 16px;\n  overflow-y: scroll;\n}\n\nh1,\nh2 {\n  font-weight: normal;\n}\n\na {\n  color: $link-primary;\n  text-decoration: none;\n\n  &:hover {\n    color: $link-secondary;\n  }\n}\n\n// For screen readers\n.sr-only {\n  border: 0;\n  clip: rect(0, 0, 0, 0);\n  height: 1px;\n  margin: -1px;\n  overflow: hidden;\n  padding: 0;\n  position: absolute;\n  width: 1px;\n}\n\n.inner-border {\n  border: $border-secondary;\n  border-radius: $border-radius;\n  height: 100%;\n  left: 0;\n  pointer-events: none;\n  position: absolute;\n  top: 0;\n  width: 100%;\n  z-index: 100;\n}\n\n@keyframes fadeIn {\n  from {\n    opacity: 0;\n  }\n\n  to {\n    opacity: 1;\n  }\n}\n\n.show-on-init {\n  opacity: 0;\n  transition: opacity 0.2s ease-in;\n\n  &.on {\n    animation: fadeIn 0.2s;\n    opacity: 1;\n  }\n}\n\n.actions {\n  border-top: $border-secondary;\n  display: flex;\n  flex-direction: row;\n  flex-wrap: wrap;\n  justify-content: flex-start;\n  margin: 0;\n  padding: 15px 25px 0;\n\n  button {\n    background-color: $input-secondary;\n    border: $border-primary;\n    border-radius: 4px;\n    color: inherit;\n    cursor: pointer;\n    margin-bottom: 15px;\n    padding: 10px 30px;\n    white-space: nowrap;\n\n    &:hover:not(.dismiss) {\n      box-shadow: $shadow-primary;\n      transition: box-shadow 150ms;\n    }\n\n    &.dismiss {\n      border: 0;\n      padding: 0;\n      text-decoration: underline;\n    }\n\n    &.done {\n      background: $input-primary;\n      border: solid 1px $blue-60;\n      color: $white;\n      margin-inline-start: auto;\n    }\n  }\n}\n\n// Make sure snippets show up above other UI elements\n#snippets-container { // sass-lint:disable-line no-ids\n  z-index: 1;\n}\n\n// Components\n@import '../components/Base/Base';\n@import '../components/ErrorBoundary/ErrorBoundary';\n@import '../components/TopSites/TopSites';\n@import '../components/Sections/Sections';\n@import '../components/Topics/Topics';\n@import '../components/Search/Search';\n@import '../components/ContextMenu/ContextMenu';\n@import '../components/ConfirmDialog/ConfirmDialog';\n@import '../components/Card/Card';\n@import '../components/ManualMigration/ManualMigration';\n@import '../components/CollapsibleSection/CollapsibleSection';\n",
+		"@import './normalize';\n@import './variables';\n@import './theme';\n@import './icons';\n\nhtml {\n  height: 100%;\n}\n\nbody,\n#root { // sass-lint:disable-line no-ids\n  min-height: 100vh;\n}\n\nbody {\n  font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', 'Ubuntu', 'Helvetica Neue', sans-serif;\n  font-size: 16px;\n  overflow-y: scroll;\n}\n\nh1,\nh2 {\n  font-weight: normal;\n}\n\na {\n  text-decoration: none;\n}\n\n// For screen readers\n.sr-only {\n  border: 0;\n  clip: rect(0, 0, 0, 0);\n  height: 1px;\n  margin: -1px;\n  overflow: hidden;\n  padding: 0;\n  position: absolute;\n  width: 1px;\n}\n\n.inner-border {\n  border: $border-secondary;\n  border-radius: $border-radius;\n  height: 100%;\n  left: 0;\n  pointer-events: none;\n  position: absolute;\n  top: 0;\n  width: 100%;\n  z-index: 100;\n}\n\n@keyframes fadeIn {\n  from {\n    opacity: 0;\n  }\n\n  to {\n    opacity: 1;\n  }\n}\n\n.show-on-init {\n  opacity: 0;\n  transition: opacity 0.2s ease-in;\n\n  &.on {\n    animation: fadeIn 0.2s;\n    opacity: 1;\n  }\n}\n\n.actions {\n  border-top: $border-secondary;\n  display: flex;\n  flex-direction: row;\n  flex-wrap: wrap;\n  justify-content: flex-start;\n  margin: 0;\n  padding: 15px 25px 0;\n}\n\n// Default button (grey)\n.button,\n.actions button {\n  background-color: var(--newtab-button-secondary-color);\n  border: $border-primary;\n  border-radius: 4px;\n  color: inherit;\n  cursor: pointer;\n  margin-bottom: 15px;\n  padding: 10px 30px;\n  white-space: nowrap;\n\n  &:hover:not(.dismiss) {\n    box-shadow: $shadow-primary;\n    transition: box-shadow 150ms;\n  }\n\n  &.dismiss {\n    background-color: transparent;\n    border: 0;\n    padding: 0;\n    text-decoration: underline;\n  }\n\n  // Blue button\n  &.primary,\n  &.done {\n    background-color: var(--newtab-button-primary-color);\n    border: solid 1px var(--newtab-button-primary-color);\n    color: $white;\n    margin-inline-start: auto;\n  }\n}\n\n// Make sure snippets show up above other UI elements\n#snippets-container { // sass-lint:disable-line no-ids\n  z-index: 1;\n}\n\n// Components\n@import '../components/Base/Base';\n@import '../components/ErrorBoundary/ErrorBoundary';\n@import '../components/TopSites/TopSites';\n@import '../components/Sections/Sections';\n@import '../components/Topics/Topics';\n@import '../components/Search/Search';\n@import '../components/ContextMenu/ContextMenu';\n@import '../components/ConfirmDialog/ConfirmDialog';\n@import '../components/Card/Card';\n@import '../components/ManualMigration/ManualMigration';\n@import '../components/CollapsibleSection/CollapsibleSection';\n@import '../components/MessageCenterAdmin/MessageCenterAdmin';\n",
 		"html {\n  box-sizing: border-box;\n}\n\n*,\n*::before,\n*::after {\n  box-sizing: inherit;\n}\n\n*::-moz-focus-inner {\n  border: 0;\n}\n\nbody {\n  margin: 0;\n}\n\nbutton,\ninput {\n  background-color: inherit;\n  color: inherit;\n  font-family: inherit;\n  font-size: inherit;\n}\n\n[hidden] {\n  display: none !important; // sass-lint:disable-line no-important\n}\n",
-		"// Photon colors from http://design.firefox.com/photon/visuals/color.html\n$blue-50: #0A84FF;\n$blue-60: #0060DF;\n$grey-10: #F9F9FA;\n$grey-20: #EDEDF0;\n$grey-30: #D7D7DB;\n$grey-40: #B1B1B3;\n$grey-50: #737373;\n$grey-60: #4A4A4F;\n$grey-90: #0C0C0D;\n$teal-70: #008EA4;\n$red-60: #D70022;\n\n// Photon opacity from http://design.firefox.com/photon/visuals/color.html#opacity\n$grey-90-10: rgba($grey-90, 0.1);\n$grey-90-20: rgba($grey-90, 0.2);\n$grey-90-30: rgba($grey-90, 0.3);\n$grey-90-40: rgba($grey-90, 0.4);\n$grey-90-50: rgba($grey-90, 0.5);\n$grey-90-60: rgba($grey-90, 0.6);\n$grey-90-70: rgba($grey-90, 0.7);\n$grey-90-80: rgba($grey-90, 0.8);\n$grey-90-90: rgba($grey-90, 0.9);\n\n$grey-20-60: rgba($grey-20, 0.6);\n\n$black: #000;\n$black-5: rgba($black, 0.05);\n$black-10: rgba($black, 0.1);\n$black-15: rgba($black, 0.15);\n$black-20: rgba($black, 0.2);\n$black-25: rgba($black, 0.25);\n$black-30: rgba($black, 0.3);\n\n// Photon transitions from http://design.firefox.com/photon/motion/duration-and-easing.html\n$photon-easing: cubic-bezier(0.07, 0.95, 0, 1);\n\n// Aliases and derived styles based on Photon colors for common usage\n$background-primary: $grey-10;\n$background-secondary: $grey-20;\n$border-primary: 1px solid $grey-40;\n$border-secondary: 1px solid $grey-30;\n$fill-primary: $grey-90-80;\n$fill-secondary: $grey-90-60;\n$fill-tertiary: $grey-30;\n$input-primary: $blue-60;\n$input-secondary: $grey-10;\n$link-primary: $blue-60;\n$link-secondary: $teal-70;\n$shadow-primary: 0 0 0 5px $grey-30;\n$shadow-secondary: 0 1px 4px 0 $grey-90-10;\n$text-primary: $grey-90;\n$text-conditional: $grey-60;\n$text-secondary: $grey-50;\n$input-border: solid 1px $grey-90-20;\n$input-border-active: solid 1px $blue-50;\n$input-error-border: solid 1px $red-60;\n$input-error-boxshadow: 0 0 0 1px $red-60, 0 0 0 4px rgba($red-60, 0.3);\n$input-focus-boxshadow: 0 0 0 1px $blue-50, 0 0 0 4px rgba($blue-50, 0.3);\n\n$white: #FFF;\n$border-radius: 3px;\n\n$base-gutter: 32px;\n$section-horizontal-padding: 25px;\n$section-vertical-padding: 10px;\n$section-spacing: 40px - $section-vertical-padding * 2;\n$grid-unit: 96px; // 1 top site\n\n$icon-size: 16px;\n$smaller-icon-size: 12px;\n$larger-icon-size: 32px;\n\n$wrapper-default-width: $grid-unit * 2 + $base-gutter * 1 + $section-horizontal-padding * 2; // 2 top sites\n$wrapper-max-width-small: $grid-unit * 3 + $base-gutter * 2 + $section-horizontal-padding * 2; // 3 top sites\n$wrapper-max-width-medium: $grid-unit * 4 + $base-gutter * 3 + $section-horizontal-padding * 2; // 4 top sites\n$wrapper-max-width-large: $grid-unit * 6 + $base-gutter * 5 + $section-horizontal-padding * 2; // 6 top sites\n$wrapper-max-width-widest: $grid-unit * 8 + $base-gutter * 7 + $section-horizontal-padding * 2; // 8 top sites\n// For the breakpoints, we need to add space for the scrollbar to avoid weird\n// layout issues when the scrollbar is visible. 16px is wide enough to cover all\n// OSes and keeps it simpler than a per-OS value.\n$scrollbar-width: 16px;\n$break-point-small: $wrapper-max-width-small + $base-gutter * 2 + $scrollbar-width;\n$break-point-medium: $wrapper-max-width-medium + $base-gutter * 2 + $scrollbar-width;\n$break-point-large: $wrapper-max-width-large + $base-gutter * 2 + $scrollbar-width;\n$break-point-widest: $wrapper-max-width-widest + $base-gutter * 2 + $scrollbar-width;\n\n$section-title-font-size: 13px;\n\n$card-width: $grid-unit * 2 + $base-gutter;\n$card-height: 266px;\n$card-preview-image-height: 122px;\n$card-title-margin: 2px;\n$card-text-line-height: 19px;\n// Larger cards for wider screens:\n$card-width-large: 309px;\n$card-height-large: 370px;\n$card-preview-image-height-large: 155px;\n\n$topic-margin-top: 12px;\n\n$context-menu-button-size: 27px;\n$context-menu-button-boxshadow: 0 2px $grey-90-10;\n$context-menu-border-color: $black-20;\n$context-menu-shadow: 0 5px 10px $black-30, 0 0 0 1px $context-menu-border-color;\n$context-menu-font-size: 14px;\n$context-menu-border-radius: 5px;\n$context-menu-outer-padding: 5px;\n$context-menu-item-padding: 3px 12px;\n$section-context-menu-button-height: 20px;\n\n$error-fallback-font-size: 12px;\n$error-fallback-line-height: 1.5;\n\n$inner-box-shadow: 0 0 0 1px $black-10;\n\n$image-path: '../data/content/assets/';\n\n$snippets-container-height: 120px;\n\n@mixin fade-in {\n  box-shadow: inset $inner-box-shadow, $shadow-primary;\n  transition: box-shadow 150ms;\n}\n\n@mixin fade-in-card {\n  box-shadow: $shadow-primary;\n  transition: box-shadow 150ms;\n}\n\n@mixin context-menu-button {\n  .context-menu-button {\n    background-clip: padding-box;\n    background-color: $white;\n    background-image: url('chrome://browser/skin/page-action.svg');\n    background-position: 55%;\n    border: $border-primary;\n    border-radius: 100%;\n    box-shadow: $context-menu-button-boxshadow;\n    cursor: pointer;\n    fill: $fill-primary;\n    height: $context-menu-button-size;\n    offset-inline-end: -($context-menu-button-size / 2);\n    opacity: 0;\n    position: absolute;\n    top: -($context-menu-button-size / 2);\n    transform: scale(0.25);\n    transition-duration: 200ms;\n    transition-property: transform, opacity;\n    width: $context-menu-button-size;\n\n    &:-moz-any(:active, :focus) {\n      opacity: 1;\n      transform: scale(1);\n    }\n  }\n}\n\n@mixin context-menu-button-hover {\n  .context-menu-button {\n    opacity: 1;\n    transform: scale(1);\n  }\n}\n\n@mixin context-menu-open-middle {\n  .context-menu {\n    margin-inline-end: auto;\n    margin-inline-start: auto;\n    offset-inline-end: auto;\n    offset-inline-start: -$base-gutter;\n  }\n}\n\n@mixin context-menu-open-left {\n  .context-menu {\n    margin-inline-end: 5px;\n    margin-inline-start: auto;\n    offset-inline-end: 0;\n    offset-inline-start: auto;\n  }\n}\n\n@mixin flip-icon {\n  &:dir(rtl) {\n    transform: scaleX(-1);\n  }\n}\n",
-		".icon {\n  background-position: center center;\n  background-repeat: no-repeat;\n  background-size: $icon-size;\n  -moz-context-properties: fill;\n  display: inline-block;\n  fill: $fill-primary;\n  height: $icon-size;\n  vertical-align: middle;\n  width: $icon-size;\n\n  &.icon-spacer {\n    margin-inline-end: 8px;\n  }\n\n  &.icon-small-spacer {\n    margin-inline-end: 6px;\n  }\n\n  &.icon-bookmark-added {\n    background-image: url('chrome://browser/skin/bookmark.svg');\n  }\n\n  &.icon-bookmark-hollow {\n    background-image: url('chrome://browser/skin/bookmark-hollow.svg');\n  }\n\n  &.icon-clear-input {\n    fill: $fill-secondary;\n    background-image: url('#{$image-path}glyph-cancel-16.svg');\n  }\n\n  &.icon-delete {\n    background-image: url('#{$image-path}glyph-delete-16.svg');\n  }\n\n  &.icon-modal-delete {\n    background-image: url('#{$image-path}glyph-modal-delete-32.svg');\n    background-size: $larger-icon-size;\n    height: $larger-icon-size;\n    width: $larger-icon-size;\n  }\n\n  &.icon-dismiss {\n    background-image: url('#{$image-path}glyph-dismiss-16.svg');\n  }\n\n  &.icon-info {\n    background-image: url('#{$image-path}glyph-info-16.svg');\n  }\n\n  &.icon-import {\n    background-image: url('#{$image-path}glyph-import-16.svg');\n  }\n\n  &.icon-new-window {\n    @include flip-icon;\n    background-image: url('#{$image-path}glyph-newWindow-16.svg');\n  }\n\n  &.icon-new-window-private {\n    background-image: url('chrome://browser/skin/privateBrowsing.svg');\n  }\n\n  &.icon-settings {\n    background-image: url('chrome://browser/skin/settings.svg');\n  }\n\n  &.icon-pin {\n    @include flip-icon;\n    background-image: url('#{$image-path}glyph-pin-16.svg');\n  }\n\n  &.icon-unpin {\n    @include flip-icon;\n    background-image: url('#{$image-path}glyph-unpin-16.svg');\n  }\n\n  &.icon-edit {\n    background-image: url('#{$image-path}glyph-edit-16.svg');\n  }\n\n  &.icon-pocket {\n    background-image: url('#{$image-path}glyph-pocket-16.svg');\n  }\n\n  &.icon-historyItem { // sass-lint:disable-line class-name-format\n    background-image: url('#{$image-path}glyph-historyItem-16.svg');\n  }\n\n  &.icon-trending {\n    background-image: url('#{$image-path}glyph-trending-16.svg');\n    transform: translateY(2px); // trending bolt is visually top heavy\n  }\n\n  &.icon-now {\n    background-image: url('chrome://browser/skin/history.svg');\n  }\n\n  &.icon-topsites {\n    background-image: url('#{$image-path}glyph-topsites-16.svg');\n  }\n\n  &.icon-pin-small {\n    @include flip-icon;\n    background-image: url('#{$image-path}glyph-pin-12.svg');\n    background-size: $smaller-icon-size;\n    height: $smaller-icon-size;\n    width: $smaller-icon-size;\n  }\n\n  &.icon-check {\n    background-image: url('chrome://browser/skin/check.svg');\n  }\n\n  &.icon-webextension {\n    background-image: url('#{$image-path}glyph-webextension-16.svg');\n  }\n\n  &.icon-highlights {\n    background-image: url('#{$image-path}glyph-highlights-16.svg');\n  }\n\n  &.icon-arrowhead-down {\n    background-image: url('#{$image-path}glyph-arrowhead-down-16.svg');\n  }\n\n  &.icon-arrowhead-down-small {\n    background-image: url('#{$image-path}glyph-arrowhead-down-12.svg');\n    background-size: $smaller-icon-size;\n    height: $smaller-icon-size;\n    width: $smaller-icon-size;\n  }\n\n  &.icon-arrowhead-forward-small {\n    background-image: url('#{$image-path}glyph-arrowhead-down-12.svg');\n    background-size: $smaller-icon-size;\n    height: $smaller-icon-size;\n    transform: rotate(-90deg);\n    width: $smaller-icon-size;\n\n    &:dir(rtl) {\n      transform: rotate(90deg);\n    }\n  }\n\n  &.icon-arrowhead-up {\n    background-image: url('#{$image-path}glyph-arrowhead-down-16.svg');\n    transform: rotate(180deg);\n  }\n\n  &.icon-add {\n    background-image: url('#{$image-path}glyph-add-16.svg');\n  }\n\n  &.icon-minimize {\n    background-image: url('#{$image-path}glyph-minimize-16.svg');\n  }\n\n  &.icon-maximize {\n    background-image: url('#{$image-path}glyph-maximize-16.svg');\n  }\n}\n",
-		".outer-wrapper {\n  display: flex;\n  flex-grow: 1;\n  height: 100%;\n  padding: ($section-spacing + $section-vertical-padding) $base-gutter $base-gutter;\n\n  &.fixed-to-top {\n    height: auto;\n  }\n}\n\nmain {\n  margin: auto;\n  // Offset the snippets container so things at the bottom of the page are still\n  // visible when snippets / onboarding are visible. Adjust for other spacing.\n  padding-bottom: $snippets-container-height - $section-spacing - $base-gutter;\n  width: $wrapper-default-width;\n\n  @media (min-width: $break-point-small) {\n    width: $wrapper-max-width-small;\n  }\n\n  @media (min-width: $break-point-medium) {\n    width: $wrapper-max-width-medium;\n  }\n\n  @media (min-width: $break-point-large) {\n    width: $wrapper-max-width-large;\n  }\n\n  section {\n    margin-bottom: $section-spacing;\n    position: relative;\n  }\n}\n\n.wide-layout-enabled {\n  main {\n    @media (min-width: $break-point-widest) {\n      width: $wrapper-max-width-widest;\n    }\n  }\n}\n\n.section-top-bar {\n  height: 16px;\n  margin-bottom: 16px;\n}\n\n.section-title {\n  font-size: $section-title-font-size;\n  font-weight: bold;\n  text-transform: uppercase;\n\n  span {\n    color: $text-secondary;\n    fill: $text-secondary;\n    vertical-align: middle;\n  }\n}\n\n.base-content-fallback {\n  // Make the error message be centered against the viewport\n  height: 100vh;\n}\n\n.body-wrapper {\n  // Hide certain elements so the page structure is fixed, e.g., placeholders,\n  // while avoiding flashes of changing content, e.g., icons and text\n  $selectors-to-hide: '\n    .section-title,\n    .sections-list .section:last-of-type,\n    .topic\n  ';\n\n  #{$selectors-to-hide} {\n    opacity: 0;\n  }\n\n  &.on {\n    #{$selectors-to-hide} {\n      opacity: 1;\n    }\n  }\n}\n\n.non-collapsible-section {\n  padding: 0 $section-horizontal-padding;\n}\n\n.prefs-button {\n  button {\n    background-color: transparent;\n    border: 0;\n    cursor: pointer;\n    fill: $fill-secondary;\n    offset-inline-end: 15px;\n    padding: 15px;\n    position: fixed;\n    top: 15px;\n    z-index: 12001;\n\n    &:hover {\n      background-color: $background-secondary;\n    }\n\n    &:active {\n      background-color: $background-primary;\n    }\n  }\n}\n",
-		".as-error-fallback {\n  align-items: center;\n  border-radius: $border-radius;\n  box-shadow: inset $inner-box-shadow;\n  color: $text-conditional;\n  display: flex;\n  flex-direction: column;\n  font-size: $error-fallback-font-size;\n  justify-content: center;\n  justify-items: center;\n  line-height: $error-fallback-line-height;\n\n  a {\n    color: $text-conditional;\n    text-decoration: underline;\n  }\n}\n\n",
-		"$top-sites-size: $grid-unit;\n$top-sites-border-radius: 6px;\n$top-sites-title-height: 30px;\n$top-sites-vertical-space: 8px;\n$screenshot-size: cover;\n$rich-icon-size: 96px;\n$default-icon-wrapper-size: 42px;\n$default-icon-size: 32px;\n$default-icon-offset: 6px;\n$half-base-gutter: $base-gutter / 2;\n\n.top-sites {\n  // Take back the margin from the bottom row of vertical spacing as well as the\n  // extra whitespace below the title text as it's vertically centered.\n  margin-bottom: $section-spacing - ($top-sites-vertical-space + $top-sites-title-height / 3);\n}\n\n.top-sites-list {\n  list-style: none;\n  margin: 0 (-$half-base-gutter);\n  padding: 0;\n\n  // Two columns\n  @media (max-width: $break-point-small) {\n    :nth-child(2n+1) {\n      @include context-menu-open-middle;\n    }\n\n    :nth-child(2n) {\n      @include context-menu-open-left;\n    }\n  }\n\n  // Three columns\n  @media (min-width: $break-point-small) and (max-width: $break-point-medium) {\n    :nth-child(3n+2),\n    :nth-child(3n) {\n      @include context-menu-open-left;\n    }\n  }\n\n  // Four columns\n  @media (min-width: $break-point-medium) and (max-width: $break-point-large) {\n    :nth-child(4n) {\n      @include context-menu-open-left;\n    }\n  }\n  @media (min-width: $break-point-medium) and (max-width: $break-point-medium + $card-width) {\n    :nth-child(4n+3) {\n      @include context-menu-open-left;\n    }\n  }\n\n  // Six columns\n  @media (min-width: $break-point-large) and (max-width: $break-point-large + 2 * $card-width) {\n    :nth-child(6n) {\n      @include context-menu-open-left;\n    }\n  }\n  @media (min-width: $break-point-large) and (max-width: $break-point-large + $card-width) {\n    :nth-child(6n+5) {\n      @include context-menu-open-left;\n    }\n  }\n\n  li {\n    margin: 0 0 $top-sites-vertical-space;\n  }\n\n  &:not(.dnd-active) {\n    .top-site-outer:-moz-any(.active, :focus, :hover) {\n      .tile {\n        @include fade-in;\n      }\n\n      @include context-menu-button-hover;\n    }\n  }\n}\n\n// container for drop zone\n.top-site-outer {\n  padding: 0 $half-base-gutter;\n  display: inline-block;\n\n  // container for context menu\n  .top-site-inner {\n    position: relative;\n\n    > a {\n      color: inherit;\n      display: block;\n      outline: none;\n\n      &:-moz-any(.active, :focus) {\n        .tile {\n          @include fade-in;\n        }\n      }\n    }\n  }\n\n  @include context-menu-button;\n\n  .tile { // sass-lint:disable-block property-sort-order\n    border-radius: $top-sites-border-radius;\n    box-shadow: inset $inner-box-shadow, $shadow-secondary;\n    height: $top-sites-size;\n    position: relative;\n    width: $top-sites-size;\n\n    // For letter fallback\n    align-items: center;\n    color: $text-secondary;\n    display: flex;\n    font-size: 32px;\n    font-weight: 200;\n    justify-content: center;\n    text-transform: uppercase;\n\n    &::before {\n      content: attr(data-fallback);\n    }\n  }\n\n  .screenshot {\n    background-color: $white;\n    background-position: top left;\n    background-size: $screenshot-size;\n    border-radius: $top-sites-border-radius;\n    box-shadow: inset $inner-box-shadow;\n    height: 100%;\n    left: 0;\n    opacity: 0;\n    position: absolute;\n    top: 0;\n    transition: opacity 1s;\n    width: 100%;\n\n    &.active {\n      opacity: 1;\n    }\n  }\n\n  // Some common styles for all icons (rich and default) in top sites\n  .top-site-icon {\n    background-color: $background-primary;\n    background-position: center center;\n    background-repeat: no-repeat;\n    border-radius: $top-sites-border-radius;\n    box-shadow: inset $inner-box-shadow;\n    position: absolute;\n  }\n\n  .rich-icon {\n    background-size: cover;\n    height: 100%;\n    offset-inline-start: 0;\n    top: 0;\n    width: 100%;\n  }\n\n  .default-icon { // sass-lint:disable block property-sort-order\n    background-size: $default-icon-size;\n    bottom: -$default-icon-offset;\n    height: $default-icon-wrapper-size;\n    offset-inline-end: -$default-icon-offset;\n    width: $default-icon-wrapper-size;\n\n    // for corner letter fallback\n    align-items: center;\n    display: flex;\n    font-size: 20px;\n    justify-content: center;\n\n    &[data-fallback]::before {\n      content: attr(data-fallback);\n    }\n  }\n\n  .title {\n    font: message-box;\n    height: $top-sites-title-height;\n    line-height: $top-sites-title-height;\n    text-align: center;\n    width: $top-sites-size;\n    position: relative;\n\n    .icon {\n      fill: $fill-tertiary;\n      offset-inline-start: 0;\n      position: absolute;\n      top: 10px;\n    }\n\n    span {\n      height: $top-sites-title-height;\n      display: block;\n      overflow: hidden;\n      text-overflow: ellipsis;\n      white-space: nowrap;\n    }\n\n    &.pinned {\n      span {\n        padding: 0 13px;\n      }\n    }\n  }\n\n  .edit-button {\n    background-image: url('#{$image-path}glyph-edit-16.svg');\n  }\n\n  &.placeholder {\n    .tile {\n      box-shadow: inset $inner-box-shadow;\n    }\n\n    .screenshot {\n      display: none;\n    }\n  }\n\n  &.dragged {\n    .tile {\n      background: $grey-20;\n      box-shadow: none;\n\n      *,\n      &::before {\n        display: none;\n      }\n    }\n\n    .title {\n      visibility: hidden;\n    }\n  }\n}\n\n// Always hide .hide-for-narrow if wide layout is disabled\n.wide-layout-disabled {\n  .top-sites-list {\n    .hide-for-narrow {\n      display: none;\n    }\n  }\n}\n\n.wide-layout-enabled {\n  .top-sites-list {\n    // Eight columns\n    @media (min-width: $break-point-widest) and (max-width: $break-point-widest + 2 * $card-width) {\n      :nth-child(8n) {\n        @include context-menu-open-left;\n      }\n    }\n\n    @media (min-width: $break-point-widest) and (max-width: $break-point-widest + $card-width) {\n      :nth-child(8n+7) {\n        @include context-menu-open-left;\n      }\n    }\n\n    @media not all and (min-width: $break-point-widest) {\n      .hide-for-narrow {\n        display: none;\n      }\n    }\n  }\n}\n\n.edit-topsites-wrapper {\n  .modal {\n    box-shadow: $shadow-secondary;\n    left: 0;\n    margin: 0 auto;\n    position: fixed;\n    right: 0;\n    top: 40px;\n    width: $wrapper-default-width;\n\n    @media (min-width: $break-point-small) {\n      width: $wrapper-max-width-small;\n    }\n\n    @media (min-width: $break-point-medium) {\n      width: $wrapper-max-width-medium;\n    }\n\n    @media (min-width: $break-point-large) {\n      width: $wrapper-max-width-large;\n    }\n  }\n}\n\n.topsite-form {\n  $form-width: 300px;\n  $form-spacing: 32px;\n\n  .form-input-container {\n    max-width: $form-width + 3 * $form-spacing + $rich-icon-size;\n    margin: 0 auto;\n    padding: $form-spacing;\n\n    .top-site-outer {\n      padding: 0;\n      margin: 24px 0 0;\n      margin-inline-start: $form-spacing;\n      pointer-events: none;\n    }\n\n    .section-title {\n      text-transform: none;\n      font-size: 16px;\n      margin: 0 0 16px;\n    }\n  }\n\n  .fields-and-preview {\n    display: flex;\n  }\n\n  label {\n    font-size: $section-title-font-size;\n  }\n\n  .form-wrapper {\n    width: 100%;\n\n    .field {\n      position: relative;\n\n      .icon-clear-input {\n        position: absolute;\n        transform: translateY(-50%);\n        top: 50%;\n        offset-inline-end: 8px;\n      }\n    }\n\n    .url {\n      input:dir(ltr) {\n        padding-right: 32px;\n      }\n\n      input:dir(rtl) {\n        padding-left: 32px;\n\n        &:not(:placeholder-shown) {\n          direction: ltr;\n          text-align: right;\n        }\n      }\n    }\n\n    .enable-custom-image-input {\n      display: inline-block;\n      font-size: 13px;\n      margin-top: 4px;\n      cursor: pointer;\n\n      &:hover {\n        text-decoration: underline;\n        color: $blue-60;\n      }\n    }\n\n    .custom-image-input-container {\n      margin-top: 4px;\n\n      .loading-container {\n        width: 16px;\n        height: 16px;\n        overflow: hidden;\n        position: absolute;\n        transform: translateY(-50%);\n        top: 50%;\n        offset-inline-end: 8px;\n      }\n\n      // This animation is derived from Firefox's tab loading animation\n      // See https://searchfox.org/mozilla-central/rev/b29daa46443b30612415c35be0a3c9c13b9dc5f6/browser/themes/shared/tabs.inc.css#208-216\n      .loading-animation {\n        @keyframes tab-throbber-animation {\n          100% { transform: translateX(-960px); }\n        }\n\n        @keyframes tab-throbber-animation-rtl {\n          100% { transform: translateX(960px); }\n        }\n\n        width: 960px;\n        height: 16px;\n        -moz-context-properties: fill;\n        fill: $blue-50;\n        background-image: url('chrome://browser/skin/tabbrowser/loading.svg');\n        animation: tab-throbber-animation 1.05s steps(60) infinite;\n\n        &:dir(rtl) {\n          animation-name: tab-throbber-animation-rtl;\n        }\n      }\n    }\n\n    input {\n      &[type='text'] {\n        border: $input-border;\n        border-radius: 2px;\n        margin: 8px 0;\n        padding: 0 8px;\n        height: 32px;\n        width: 100%;\n        font-size: 15px;\n\n        &:focus {\n          border: $input-border-active;\n          box-shadow: $input-focus-boxshadow;\n        }\n\n        &[disabled] {\n          border: $input-border;\n          box-shadow: none;\n          opacity: 0.4;\n        }\n      }\n    }\n\n    .invalid {\n      input {\n        &[type='text'] {\n          border: $input-error-border;\n          box-shadow: $input-error-boxshadow;\n        }\n      }\n    }\n\n    .error-tooltip {\n      animation: fade-up-tt 450ms;\n      background: $red-60;\n      border-radius: 2px;\n      color: $white;\n      offset-inline-start: 3px;\n      padding: 5px 12px;\n      position: absolute;\n      top: 44px;\n      z-index: 1;\n\n      // tooltip caret\n      &::before {\n        background: $red-60;\n        bottom: -8px;\n        content: '.';\n        height: 16px;\n        offset-inline-start: 12px;\n        position: absolute;\n        text-indent: -999px;\n        top: -7px;\n        transform: rotate(45deg);\n        white-space: nowrap;\n        width: 16px;\n        z-index: -1;\n      }\n    }\n  }\n\n  .actions {\n    justify-content: flex-end;\n\n    button {\n      margin-inline-start: 10px;\n      margin-inline-end: 0;\n    }\n  }\n\n  @media (max-width: $break-point-small) {\n    .fields-and-preview {\n      flex-direction: column;\n\n      .top-site-outer {\n        margin-inline-start: 0;\n      }\n    }\n  }\n}\n\n//used for tooltips below form element\n@keyframes fade-up-tt {\n  0% {\n    opacity: 0;\n    transform: translateY(15px);\n  }\n\n  100% {\n    opacity: 1;\n    transform: translateY(0);\n  }\n}\n",
-		".sections-list {\n  .section-list {\n    display: grid;\n    grid-gap: $base-gutter;\n    grid-template-columns: repeat(auto-fit, $card-width);\n    margin: 0;\n\n    @media (max-width: $break-point-medium) {\n      @include context-menu-open-left;\n    }\n\n    @media (min-width: $break-point-medium) and (max-width: $break-point-large) {\n      :nth-child(2n) {\n        @include context-menu-open-left;\n      }\n    }\n\n    @media (min-width: $break-point-large) and (max-width: $break-point-large + 2 * $card-width) {\n      :nth-child(3n) {\n        @include context-menu-open-left;\n      }\n    }\n  }\n\n  .section-empty-state {\n    border: $border-secondary;\n    border-radius: $border-radius;\n    display: flex;\n    height: $card-height;\n    width: 100%;\n\n    .empty-state {\n      margin: auto;\n      max-width: 350px;\n\n      .empty-state-icon {\n        background-position: center;\n        background-repeat: no-repeat;\n        background-size: 50px 50px;\n        -moz-context-properties: fill;\n        display: block;\n        fill: $fill-secondary;\n        height: 50px;\n        margin: 0 auto;\n        width: 50px;\n      }\n\n      .empty-state-message {\n        color: $text-secondary;\n        font-size: 13px;\n        margin-bottom: 0;\n        text-align: center;\n      }\n    }\n  }\n}\n\n.wide-layout-enabled {\n  .sections-list {\n    .section-list {\n      @media (min-width: $break-point-widest) and (max-width: $break-point-widest + 2 * $card-width) {\n        :nth-child(3n) {\n          @include context-menu-open-left;\n        }\n      }\n\n      @media (min-width: $break-point-widest) {\n        grid-template-columns: repeat(auto-fit, $card-width-large);\n      }\n    }\n  }\n\n  .section-empty-state {\n    height: $card-height-large;\n  }\n}\n",
-		".topic {\n  color: $text-secondary;\n  font-size: 12px;\n  line-height: 1.6;\n  margin-top: $topic-margin-top;\n\n  @media (min-width: $break-point-large) {\n    line-height: 16px;\n  }\n\n  ul {\n    margin: 0;\n    padding: 0;\n    @media (min-width: $break-point-large) {\n      display: inline;\n      padding-inline-start: 12px;\n    }\n  }\n\n\n  ul li {\n    display: inline-block;\n\n    &::after {\n      content: '•';\n      padding: 8px;\n    }\n\n    &:last-child::after {\n      content: none;\n    }\n  }\n\n  .topic-link {\n    color: $link-secondary;\n  }\n\n  .topic-read-more {\n    color: $link-secondary;\n\n    @media (min-width: $break-point-large) {\n      // This is floating to accomodate a very large number of topics and/or\n      // very long topic names due to l10n.\n      float: right;\n\n      &:dir(rtl) {\n        float: left;\n      }\n    }\n\n    &::after {\n      background: url('#{$image-path}topic-show-more-12.svg') no-repeat center center;\n      content: '';\n      -moz-context-properties: fill;\n      display: inline-block;\n      fill: $link-secondary;\n      height: 16px;\n      margin-inline-start: 5px;\n      vertical-align: top;\n      width: 12px;\n    }\n\n    &:dir(rtl)::after  {\n      transform: scaleX(-1);\n    }\n  }\n\n  // This is a clearfix to for the topics-read-more link which is floating and causes\n  // some jank when we set overflow:hidden for the animation.\n  &::after {\n    clear: both;\n    content: '';\n    display: table;\n  }\n}\n",
-		".search-wrapper {\n  $search-border-radius: 3px;\n  $search-focus-color: $blue-50;\n  $search-height: 35px;\n  $search-input-left-label-width: 35px;\n  $search-button-width: 36px;\n  $search-glyph-image: url('chrome://browser/skin/search-glass.svg');\n  $glyph-forward: url('chrome://browser/skin/forward.svg');\n  $search-glyph-size: 16px;\n  $search-glyph-fill: $grey-90-40;\n  // This is positioned so it is visually (not metrically) centered. r=abenson\n  $search-glyph-left-position: 12px;\n\n  cursor: default;\n  display: flex;\n  height: $search-height;\n  // The extra 1px is to account for the box-shadow being outside of the element\n  // instead of inside. It needs to be like that to not overlap the inner background\n  // color of the hover state of the submit button.\n  margin: 1px 1px $section-spacing;\n  position: relative;\n  width: 100%;\n\n  input {\n    border: 0;\n    border-radius: $search-border-radius;\n    box-shadow: $shadow-secondary, 0 0 0 1px $black-15;\n    font-size: 15px;\n    padding: 0;\n    padding-inline-end: $search-button-width;\n    padding-inline-start: $search-input-left-label-width;\n    width: 100%;\n  }\n\n  &:hover input {\n    box-shadow: $shadow-secondary, 0 0 0 1px $black-25;\n  }\n\n  &:active input,\n  input:focus {\n    box-shadow: 0 0 0 $os-search-focus-shadow-radius $search-focus-color;\n  }\n\n  .search-label {\n    background: $search-glyph-image no-repeat $search-glyph-left-position center / $search-glyph-size;\n    -moz-context-properties: fill;\n    fill: $search-glyph-fill;\n    height: 100%;\n    offset-inline-start: 0;\n    position: absolute;\n    width: $search-input-left-label-width;\n  }\n\n  .search-button {\n    background: $glyph-forward no-repeat center center;\n    background-size: 16px 16px;\n    border: 0;\n    border-radius: 0 $border-radius $border-radius 0;\n    -moz-context-properties: fill;\n    fill: $search-glyph-fill;\n    height: 100%;\n    offset-inline-end: 0;\n    position: absolute;\n    width: $search-button-width;\n\n    &:focus,\n    &:hover {\n      background-color: $grey-90-10;\n      cursor: pointer;\n    }\n\n    &:active {\n      background-color: $grey-90-20;\n    }\n\n    &:dir(rtl) {\n      transform: scaleX(-1);\n    }\n  }\n\n  // Adjust the style of the contentSearchUI-generated table\n  .contentSearchSuggestionTable { // sass-lint:disable-line class-name-format\n    border: 0;\n    transform: translateY(2px);\n  }\n}\n",
-		".context-menu {\n  background: $background-primary;\n  border-radius: $context-menu-border-radius;\n  box-shadow: $context-menu-shadow;\n  display: block;\n  font-size: $context-menu-font-size;\n  margin-inline-start: 5px;\n  offset-inline-start: 100%;\n  position: absolute;\n  top: ($context-menu-button-size / 4);\n  z-index: 10000;\n\n  > ul {\n    list-style: none;\n    margin: 0;\n    padding: $context-menu-outer-padding 0;\n\n    > li {\n      margin: 0;\n      width: 100%;\n\n      &.separator {\n        border-bottom: 1px solid $context-menu-border-color;\n        margin: $context-menu-outer-padding 0;\n      }\n\n      > a {\n        align-items: center;\n        color: inherit;\n        cursor: pointer;\n        display: flex;\n        line-height: 16px;\n        outline: none;\n        padding: $context-menu-item-padding;\n        white-space: nowrap;\n\n        &:-moz-any(:focus, :hover) {\n          background: $input-primary;\n          color: $white;\n\n          a {\n            color: $grey-90;\n          }\n\n          .icon {\n            fill: $white;\n          }\n\n          &:-moz-any(:focus, :hover) {\n            color: $white;\n          }\n        }\n\n        &.disabled {\n          opacity: 0.4;\n          pointer-events: none;\n        }\n      }\n    }\n  }\n}\n",
-		".confirmation-dialog {\n  .modal {\n    box-shadow: 0 2px 2px 0 $black-10;\n    left: 50%;\n    margin-left: -200px;\n    position: fixed;\n    top: 20%;\n    width: 400px;\n  }\n\n  section {\n    margin: 0;\n  }\n\n  .modal-message {\n    display: flex;\n    padding: 16px;\n    padding-bottom: 0;\n\n    p {\n      margin: 0;\n      margin-bottom: 16px;\n    }\n  }\n\n  .actions {\n    border: 0;\n    display: flex;\n    flex-wrap: nowrap;\n    padding: 0 16px;\n\n    button {\n      margin-inline-end: 16px;\n      padding-inline-end: 18px;\n      padding-inline-start: 18px;\n      white-space: normal;\n      width: 50%;\n\n      &.done {\n        margin-inline-end: 0;\n        margin-inline-start: 0;\n      }\n    }\n  }\n\n  .icon {\n    margin-inline-end: 16px;\n  }\n}\n\n.modal-overlay {\n  background: $background-secondary;\n  height: 100%;\n  left: 0;\n  opacity: 0.8;\n  position: fixed;\n  top: 0;\n  width: 100%;\n  z-index: 11001;\n}\n\n.modal {\n  background: $white;\n  border: $border-secondary;\n  border-radius: 5px;\n  font-size: 15px;\n  z-index: 11002;\n}\n",
-		".card-outer {\n  @include context-menu-button;\n  background: $white;\n  border-radius: $border-radius;\n  display: inline-block;\n  height: $card-height;\n  margin-inline-end: $base-gutter;\n  position: relative;\n  width: 100%;\n\n  &.placeholder {\n    background: transparent;\n\n    .card {\n      box-shadow: inset $inner-box-shadow;\n    }\n  }\n\n  .card {\n    border-radius: $border-radius;\n    box-shadow: $shadow-secondary;\n    height: 100%;\n  }\n\n  > a {\n    color: inherit;\n    display: block;\n    height: 100%;\n    outline: none;\n    position: absolute;\n    width: 100%;\n\n    &:-moz-any(.active, :focus) {\n      .card {\n        @include fade-in-card;\n      }\n\n      .card-title {\n        color: $link-primary;\n      }\n    }\n  }\n\n  &:-moz-any(:hover, :focus, .active):not(.placeholder) {\n    @include fade-in-card;\n    @include context-menu-button-hover;\n    outline: none;\n\n    .card-title {\n      color: $link-primary;\n    }\n  }\n\n  .card-preview-image-outer {\n    background-color: $background-primary;\n    border-radius: $border-radius $border-radius 0 0;\n    height: $card-preview-image-height;\n    overflow: hidden;\n    position: relative;\n\n    &::after {\n      border-bottom: 1px solid $black-5;\n      bottom: 0;\n      content: '';\n      position: absolute;\n      width: 100%;\n    }\n\n    .card-preview-image {\n      background-position: center;\n      background-repeat: no-repeat;\n      background-size: cover;\n      height: 100%;\n      opacity: 0;\n      transition: opacity 1s $photon-easing;\n      width: 100%;\n\n      &.loaded {\n        opacity: 1;\n      }\n    }\n  }\n\n  .card-details {\n    padding: 15px 16px 12px;\n\n    &.no-image {\n      padding-top: 16px;\n    }\n  }\n\n  .card-text {\n    max-height: 4 * $card-text-line-height + $card-title-margin;\n    overflow: hidden;\n\n    &.no-image {\n      max-height: 10 * $card-text-line-height + $card-title-margin;\n    }\n\n    &.no-host-name,\n    &.no-context {\n      max-height: 5 * $card-text-line-height + $card-title-margin;\n    }\n\n    &.no-image.no-host-name,\n    &.no-image.no-context {\n      max-height: 11 * $card-text-line-height + $card-title-margin;\n    }\n\n    &.no-host-name.no-context {\n      max-height: 6 * $card-text-line-height + $card-title-margin;\n    }\n\n    &.no-image.no-host-name.no-context {\n      max-height: 12 * $card-text-line-height + $card-title-margin;\n    }\n\n    &:not(.no-description) .card-title {\n      max-height: 3 * $card-text-line-height;\n      overflow: hidden;\n    }\n  }\n\n  .card-host-name {\n    color: $text-secondary;\n    font-size: 10px;\n    overflow: hidden;\n    padding-bottom: 4px;\n    text-overflow: ellipsis;\n    text-transform: uppercase;\n  }\n\n  .card-title {\n    font-size: 14px;\n    line-height: $card-text-line-height;\n    margin: 0 0 $card-title-margin;\n    word-wrap: break-word;\n  }\n\n  .card-description {\n    font-size: 12px;\n    line-height: $card-text-line-height;\n    margin: 0;\n    overflow: hidden;\n    word-wrap: break-word;\n  }\n\n  .card-context {\n    bottom: 0;\n    color: $text-secondary;\n    display: flex;\n    font-size: 11px;\n    left: 0;\n    padding: 12px 16px 12px 14px;\n    position: absolute;\n    right: 0;\n  }\n\n  .card-context-icon {\n    fill: $fill-secondary;\n    margin-inline-end: 6px;\n  }\n\n  .card-context-label {\n    flex-grow: 1;\n    line-height: $icon-size;\n    overflow: hidden;\n    text-overflow: ellipsis;\n    white-space: nowrap;\n  }\n}\n\n.wide-layout-enabled {\n  $line-height: 23px;\n\n  .card-outer {\n    @media (min-width: $break-point-widest) {\n      height: $card-height-large;\n\n      .card-preview-image-outer {\n        height: $card-preview-image-height-large;\n      }\n\n      .card-details {\n        padding: 13px 16px 12px;\n      }\n\n      .card-text {\n        max-height: 6 * $line-height + $card-title-margin;\n      }\n\n      .card-host-name {\n        font-size: 12px;\n        padding-bottom: 5px;\n      }\n\n      .card-title {\n        font-size: 17px;\n        line-height: $line-height;\n        margin-bottom: 0;\n      }\n\n      .card-text:not(.no-description) {\n        .card-title {\n          max-height: 3 * $line-height;\n        }\n      }\n\n      .card-description {\n        font-size: 15px;\n        line-height: $line-height;\n      }\n\n      .card-context {\n        bottom: 4px;\n        font-size: 14px;\n      }\n    }\n  }\n}\n",
-		".manual-migration-container {\n  color: $text-conditional;\n  font-size: 13px;\n  line-height: 15px;\n  margin-bottom: $section-spacing;\n  text-align: center;\n\n  @media (min-width: $break-point-medium) {\n    display: flex;\n    justify-content: space-between;\n    text-align: left;\n  }\n\n  p {\n    margin: 0;\n    @media (min-width: $break-point-medium) {\n      align-self: center;\n      display: flex;\n      justify-content: space-between;\n    }\n  }\n\n  .icon {\n    display: none;\n    @media (min-width: $break-point-medium) {\n      align-self: center;\n      display: block;\n      fill: $fill-secondary;\n      margin-inline-end: 6px;\n    }\n  }\n}\n\n.manual-migration-actions {\n  border: 0;\n  display: block;\n  flex-wrap: nowrap;\n\n  @media (min-width: $break-point-medium) {\n    display: flex;\n    justify-content: space-between;\n    padding: 0;\n  }\n\n  button {\n    align-self: center;\n    height: 26px;\n    margin: 0;\n    margin-inline-start: 20px;\n    padding: 0 12px;\n  }\n}\n",
-		".collapsible-section {\n  padding: $section-vertical-padding $section-horizontal-padding;\n  transition-delay: 100ms;\n  transition-duration: 100ms;\n  transition-property: background-color;\n\n  .section-title {\n    margin: 0;\n\n    .click-target {\n      cursor: pointer;\n      vertical-align: top;\n      white-space: nowrap;\n    }\n\n    .collapsible-arrow {\n      margin-inline-start: 8px;\n      margin-top: -1px;\n    }\n  }\n\n  .section-top-bar {\n    position: relative;\n\n    .context-menu-button {\n      background: url('chrome://browser/skin/page-action.svg') no-repeat right center;\n      border: 0;\n      cursor: pointer;\n      fill: $grey-50;\n      height: $section-context-menu-button-height;\n      offset-inline-end: 0;\n      opacity: 0;\n      position: absolute;\n      top: 0;\n      transition-duration: 200ms;\n      transition-property: opacity;\n      width: $context-menu-button-size;\n\n      &:-moz-any(:active, :focus, :hover) {\n        fill: $grey-90;\n        opacity: 1;\n      }\n    }\n\n    .context-menu {\n      top: 16px;\n    }\n\n    @media (max-width: $break-point-widest + $card-width * 1.5) {\n      @include context-menu-open-left;\n    }\n  }\n\n  &:hover,\n  &.active {\n    .section-top-bar {\n      .context-menu-button {\n        opacity: 1;\n      }\n    }\n  }\n\n  &.active {\n    background: $grey-20-60;\n    border-radius: 4px;\n\n    .section-top-bar {\n      .context-menu-button {\n        fill: $grey-90;\n      }\n    }\n  }\n\n  .section-disclaimer {\n    $max-button-width: 130px;\n    $min-button-height: 26px;\n\n    color: $grey-60;\n    font-size: 13px;\n    margin-bottom: 16px;\n    position: relative;\n\n    .section-disclaimer-text {\n      display: inline-block;\n      min-height: $min-button-height;\n      width: calc(100% - #{$max-button-width});\n\n      @media (max-width: $break-point-medium) {\n        width: $card-width;\n      }\n    }\n\n    a {\n      color: $link-secondary;\n      padding-left: 3px;\n    }\n\n    button {\n      background: $grey-10;\n      border: 1px solid $grey-40;\n      border-radius: 4px;\n      cursor: pointer;\n      margin-top: 2px;\n      max-width: $max-button-width;\n      min-height: $min-button-height;\n      offset-inline-end: 0;\n\n      &:hover:not(.dismiss) {\n        box-shadow: $shadow-primary;\n        transition: box-shadow 150ms;\n      }\n\n      @media (min-width: $break-point-small) {\n        position: absolute;\n      }\n    }\n  }\n\n  .section-body-fallback {\n    height: $card-height;\n  }\n\n  .section-body {\n    // This is so the top sites favicon and card dropshadows don't get clipped during animation:\n    $horizontal-padding: 7px;\n    margin: 0 (-$horizontal-padding);\n    padding: 0 $horizontal-padding;\n\n    &.animating {\n      overflow: hidden;\n      pointer-events: none;\n    }\n  }\n\n  &.animation-enabled {\n    .section-title {\n      .collapsible-arrow {\n        transition: transform 0.5s $photon-easing;\n      }\n    }\n\n    .section-body {\n      transition: max-height 0.5s $photon-easing;\n    }\n  }\n\n  &.collapsed {\n    .section-body {\n      max-height: 0;\n      overflow: hidden;\n    }\n  }\n}\n"
+		"// Photon colors from http://design.firefox.com/photon/visuals/color.html\n$blue-40: #45A1FF;\n$blue-50: #0A84FF;\n$blue-60: #0060DF;\n$blue-70: #003EAA;\n$blue-80: #002275;\n$grey-10: #F9F9FA;\n$grey-20: #EDEDF0;\n$grey-30: #D7D7DB;\n$grey-40: #B1B1B3;\n$grey-50: #737373;\n$grey-60: #4A4A4F;\n$grey-70: #38383D;\n$grey-80: #2A2A2E;\n$grey-90: #0C0C0D;\n$teal-70: #008EA4;\n$red-60: #D70022;\n$yellow-50: #FFE900;\n\n// Photon opacity from http://design.firefox.com/photon/visuals/color.html#opacity\n$grey-10-20: rgba($grey-10, 0.2);\n$grey-10-40: rgba($grey-10, 0.4);\n$grey-10-60: rgba($grey-10, 0.6);\n$grey-10-80: rgba($grey-10, 0.8);\n$grey-20-60: rgba($grey-20, 0.6);\n$grey-90-10: rgba($grey-90, 0.1);\n$grey-90-20: rgba($grey-90, 0.2);\n$grey-90-30: rgba($grey-90, 0.3);\n$grey-90-40: rgba($grey-90, 0.4);\n$grey-90-50: rgba($grey-90, 0.5);\n$grey-90-60: rgba($grey-90, 0.6);\n$grey-90-70: rgba($grey-90, 0.7);\n$grey-90-80: rgba($grey-90, 0.8);\n$grey-90-90: rgba($grey-90, 0.9);\n\n$black: #000;\n$black-5: rgba($black, 0.05);\n$black-10: rgba($black, 0.1);\n$black-15: rgba($black, 0.15);\n$black-20: rgba($black, 0.2);\n$black-25: rgba($black, 0.25);\n$black-30: rgba($black, 0.3);\n\n// Photon transitions from http://design.firefox.com/photon/motion/duration-and-easing.html\n$photon-easing: cubic-bezier(0.07, 0.95, 0, 1);\n\n// Other colors\n$white: #FFF;\n$pocket-teal: #50BCB6;\n\n$border-radius: 3px;\n\n// Grid related styles\n$base-gutter: 32px;\n$section-horizontal-padding: 25px;\n$section-vertical-padding: 10px;\n$section-spacing: 40px - $section-vertical-padding * 2;\n$grid-unit: 96px; // 1 top site\n\n$icon-size: 16px;\n$smaller-icon-size: 12px;\n$larger-icon-size: 32px;\n\n$wrapper-default-width: $grid-unit * 2 + $base-gutter * 1 + $section-horizontal-padding * 2; // 2 top sites\n$wrapper-max-width-small: $grid-unit * 3 + $base-gutter * 2 + $section-horizontal-padding * 2; // 3 top sites\n$wrapper-max-width-medium: $grid-unit * 4 + $base-gutter * 3 + $section-horizontal-padding * 2; // 4 top sites\n$wrapper-max-width-large: $grid-unit * 6 + $base-gutter * 5 + $section-horizontal-padding * 2; // 6 top sites\n$wrapper-max-width-widest: $grid-unit * 8 + $base-gutter * 7 + $section-horizontal-padding * 2; // 8 top sites\n// For the breakpoints, we need to add space for the scrollbar to avoid weird\n// layout issues when the scrollbar is visible. 16px is wide enough to cover all\n// OSes and keeps it simpler than a per-OS value.\n$scrollbar-width: 16px;\n$break-point-small: $wrapper-max-width-small + $base-gutter * 2 + $scrollbar-width;\n$break-point-medium: $wrapper-max-width-medium + $base-gutter * 2 + $scrollbar-width;\n$break-point-large: $wrapper-max-width-large + $base-gutter * 2 + $scrollbar-width;\n$break-point-widest: $wrapper-max-width-widest + $base-gutter * 2 + $scrollbar-width;\n\n$section-title-font-size: 13px;\n\n$card-width: $grid-unit * 2 + $base-gutter;\n$card-height: 266px;\n$card-preview-image-height: 122px;\n$card-title-margin: 2px;\n$card-text-line-height: 19px;\n// Larger cards for wider screens:\n$card-width-large: 309px;\n$card-height-large: 370px;\n$card-preview-image-height-large: 155px;\n\n$topic-margin-top: 12px;\n\n$context-menu-button-size: 27px;\n$context-menu-button-boxshadow: 0 2px $grey-90-10;\n$context-menu-shadow: 0 5px 10px $black-30, 0 0 0 1px $black-20;\n$context-menu-font-size: 14px;\n$context-menu-border-radius: 5px;\n$context-menu-outer-padding: 5px;\n$context-menu-item-padding: 3px 12px;\n\n$error-fallback-font-size: 12px;\n$error-fallback-line-height: 1.5;\n\n$image-path: '../data/content/assets/';\n\n$snippets-container-height: 120px;\n\n@mixin fade-in {\n  box-shadow: inset $inner-box-shadow, $shadow-primary;\n  transition: box-shadow 150ms;\n}\n\n@mixin fade-in-card {\n  box-shadow: $shadow-primary;\n  transition: box-shadow 150ms;\n}\n\n@mixin context-menu-button {\n  .context-menu-button {\n    background-clip: padding-box;\n    background-color: var(--newtab-contextmenu-button-color);\n    background-image: url('chrome://browser/skin/page-action.svg');\n    background-position: 55%;\n    border: $border-primary;\n    border-radius: 100%;\n    box-shadow: $context-menu-button-boxshadow;\n    cursor: pointer;\n    fill: var(--newtab-icon-primary-color);\n    height: $context-menu-button-size;\n    offset-inline-end: -($context-menu-button-size / 2);\n    opacity: 0;\n    position: absolute;\n    top: -($context-menu-button-size / 2);\n    transform: scale(0.25);\n    transition-duration: 200ms;\n    transition-property: transform, opacity;\n    width: $context-menu-button-size;\n\n    &:-moz-any(:active, :focus) {\n      opacity: 1;\n      transform: scale(1);\n    }\n  }\n}\n\n@mixin context-menu-button-hover {\n  .context-menu-button {\n    opacity: 1;\n    transform: scale(1);\n  }\n}\n\n@mixin context-menu-open-middle {\n  .context-menu {\n    margin-inline-end: auto;\n    margin-inline-start: auto;\n    offset-inline-end: auto;\n    offset-inline-start: -$base-gutter;\n  }\n}\n\n@mixin context-menu-open-left {\n  .context-menu {\n    margin-inline-end: 5px;\n    margin-inline-start: auto;\n    offset-inline-end: 0;\n    offset-inline-start: auto;\n  }\n}\n\n@mixin flip-icon {\n  &:dir(rtl) {\n    transform: scaleX(-1);\n  }\n}\n",
+		"// Default theme\n.outer-wrapper {\n  // General styles\n  --newtab-background-color: $grey-10;\n  --newtab-border-primary-color: $grey-40;\n  --newtab-border-secondary-color: $grey-30;\n  --newtab-button-primary-color: $blue-60;\n  --newtab-button-secondary-color: inherit;\n  --newtab-element-active-color: $grey-20-60;\n  --newtab-icon-primary-color: $grey-90-80;\n  --newtab-icon-secondary-color: $grey-90-60;\n  --newtab-icon-tertiary-color: $grey-30;\n  --newtab-inner-box-shadow-color: $black-10;\n  --newtab-link-primary-color: $blue-60;\n  --newtab-link-secondary-color: $teal-70;\n  --newtab-text-conditional-color: $grey-60;\n  --newtab-text-primary-color: $grey-90;\n  --newtab-text-secondary-color: $grey-50;\n  --newtab-textbox-border: $grey-90-20;\n  --newtab-textbox-color: inherit;\n\n  // Context menu\n  --newtab-contextmenu-button-color: $white;\n\n  // Modal + overlay\n  --newtab-modal-color: $white;\n  --newtab-overlay-color: $grey-20;\n\n  // Sections\n  --newtab-section-header-text-color: $grey-50;\n  --newtab-section-navigation-text-color: $grey-50;\n  --newtab-section-active-contextmenu-color: $grey-90;\n\n  // Search\n  --newtab-search-background-color: $white;\n  --newtab-search-border-color: transparent;\n  --newtab-search-focus-border-color: $blue-50;\n  --newtab-search-icon-color: $grey-90-40;\n  --newtab-search-text-color: inherit;\n\n  // Top Sites\n  --newtab-topsites-label-color: inherit;\n\n  // Cards\n  --newtab-card-background-color: $white;\n  --newtab-card-active-outline-color: $grey-30;\n}\n\n// Dark theme\n.outer-wrapper.dark-theme {\n  // General styles\n  --newtab-background-color: $grey-80;\n  --newtab-border-primary-color: $grey-10-80;\n  --newtab-border-secondary-color: $grey-10-20;\n  --newtab-button-primary-color: $blue-40;\n  --newtab-button-secondary-color: $grey-70;\n  --newtab-element-active-color: $grey-60;\n  --newtab-icon-primary-color: $grey-10-80;\n  --newtab-icon-secondary-color: $grey-10-40;\n  --newtab-icon-tertiary-color: $grey-10-20;\n  --newtab-inner-box-shadow-color: $grey-10-20;\n  --newtab-link-primary-color: $blue-40;\n  --newtab-link-secondary-color: $pocket-teal;\n  --newtab-text-conditional-color: $grey-10;\n  --newtab-text-primary-color: $grey-10;\n  --newtab-text-secondary-color: $grey-10-40;\n  --newtab-textbox-border: $grey-10-40;\n  --newtab-textbox-color: $grey-80;\n\n  // Context menu\n  --newtab-contextmenu-button-color: $grey-80;\n\n  // Modal + overlay\n  --newtab-modal-color: $grey-90;\n  --newtab-overlay-color: $grey-80;\n\n  // Sections\n  --newtab-section-header-text-color: $grey-10-80;\n  --newtab-section-navigation-text-color: $grey-10-80;\n  --newtab-section-active-contextmenu-color: $white;\n\n  // Search\n  --newtab-search-background-color: $grey-60;\n  --newtab-search-border-color: $grey-10-40;\n  --newtab-search-focus-border-color: $blue-40;\n  --newtab-search-icon-color: $grey-10-60;\n  --newtab-search-text-color: $grey-10-60;\n\n  // Top Sites\n  --newtab-topsites-label-color: $grey-10-80;\n\n  // Cards\n  --newtab-card-background-color: $grey-90;\n  --newtab-card-active-outline-color: $grey-60;\n}\n\n// scss variables related to the theme.\n$border-primary: 1px solid var(--newtab-border-primary-color);\n$border-secondary: 1px solid var(--newtab-border-secondary-color);\n$input-primary: $blue-60;\n$shadow-primary: 0 0 0 5px var(--newtab-card-active-outline-color);\n$shadow-secondary: 0 1px 4px 0 $grey-90-10;\n$input-border: solid 1px var(--newtab-textbox-border);\n$input-border-active: solid 1px $blue-50;\n$input-error-border: solid 1px $red-60;\n$input-error-boxshadow: 0 0 0 1px $red-60, 0 0 0 4px rgba($red-60, 0.3);\n$input-focus-boxshadow: 0 0 0 1px $blue-50, 0 0 0 4px rgba($blue-50, 0.3);\n$inner-box-shadow: 0 0 0 1px var(--newtab-inner-box-shadow-color);\n",
+		".icon {\n  background-position: center center;\n  background-repeat: no-repeat;\n  background-size: $icon-size;\n  -moz-context-properties: fill;\n  display: inline-block;\n  fill: var(--newtab-icon-primary-color);\n  height: $icon-size;\n  vertical-align: middle;\n  width: $icon-size;\n\n  &.icon-spacer {\n    margin-inline-end: 8px;\n  }\n\n  &.icon-small-spacer {\n    margin-inline-end: 6px;\n  }\n\n  &.icon-bookmark-added {\n    background-image: url('chrome://browser/skin/bookmark.svg');\n  }\n\n  &.icon-bookmark-hollow {\n    background-image: url('chrome://browser/skin/bookmark-hollow.svg');\n  }\n\n  &.icon-clear-input {\n    fill: var(--newtab-icon-secondary-color);\n    background-image: url('#{$image-path}glyph-cancel-16.svg');\n  }\n\n  &.icon-delete {\n    background-image: url('#{$image-path}glyph-delete-16.svg');\n  }\n\n  &.icon-modal-delete {\n    background-image: url('#{$image-path}glyph-modal-delete-32.svg');\n    background-size: $larger-icon-size;\n    height: $larger-icon-size;\n    width: $larger-icon-size;\n  }\n\n  &.icon-dismiss {\n    background-image: url('#{$image-path}glyph-dismiss-16.svg');\n  }\n\n  &.icon-info {\n    background-image: url('#{$image-path}glyph-info-16.svg');\n  }\n\n  &.icon-import {\n    background-image: url('#{$image-path}glyph-import-16.svg');\n  }\n\n  &.icon-new-window {\n    @include flip-icon;\n    background-image: url('#{$image-path}glyph-newWindow-16.svg');\n  }\n\n  &.icon-new-window-private {\n    background-image: url('chrome://browser/skin/privateBrowsing.svg');\n  }\n\n  &.icon-settings {\n    background-image: url('chrome://browser/skin/settings.svg');\n  }\n\n  &.icon-pin {\n    @include flip-icon;\n    background-image: url('#{$image-path}glyph-pin-16.svg');\n  }\n\n  &.icon-unpin {\n    @include flip-icon;\n    background-image: url('#{$image-path}glyph-unpin-16.svg');\n  }\n\n  &.icon-edit {\n    background-image: url('#{$image-path}glyph-edit-16.svg');\n  }\n\n  &.icon-pocket {\n    background-image: url('#{$image-path}glyph-pocket-16.svg');\n  }\n\n  &.icon-historyItem { // sass-lint:disable-line class-name-format\n    background-image: url('#{$image-path}glyph-historyItem-16.svg');\n  }\n\n  &.icon-trending {\n    background-image: url('#{$image-path}glyph-trending-16.svg');\n    transform: translateY(2px); // trending bolt is visually top heavy\n  }\n\n  &.icon-now {\n    background-image: url('chrome://browser/skin/history.svg');\n  }\n\n  &.icon-topsites {\n    background-image: url('#{$image-path}glyph-topsites-16.svg');\n  }\n\n  &.icon-pin-small {\n    @include flip-icon;\n    background-image: url('#{$image-path}glyph-pin-12.svg');\n    background-size: $smaller-icon-size;\n    height: $smaller-icon-size;\n    width: $smaller-icon-size;\n  }\n\n  &.icon-check {\n    background-image: url('chrome://browser/skin/check.svg');\n  }\n\n  &.icon-webextension {\n    background-image: url('#{$image-path}glyph-webextension-16.svg');\n  }\n\n  &.icon-highlights {\n    background-image: url('#{$image-path}glyph-highlights-16.svg');\n  }\n\n  &.icon-arrowhead-down {\n    background-image: url('#{$image-path}glyph-arrowhead-down-16.svg');\n  }\n\n  &.icon-arrowhead-down-small {\n    background-image: url('#{$image-path}glyph-arrowhead-down-12.svg');\n    background-size: $smaller-icon-size;\n    height: $smaller-icon-size;\n    width: $smaller-icon-size;\n  }\n\n  &.icon-arrowhead-forward-small {\n    background-image: url('#{$image-path}glyph-arrowhead-down-12.svg');\n    background-size: $smaller-icon-size;\n    height: $smaller-icon-size;\n    transform: rotate(-90deg);\n    width: $smaller-icon-size;\n\n    &:dir(rtl) {\n      transform: rotate(90deg);\n    }\n  }\n\n  &.icon-arrowhead-up {\n    background-image: url('#{$image-path}glyph-arrowhead-down-16.svg');\n    transform: rotate(180deg);\n  }\n\n  &.icon-add {\n    background-image: url('#{$image-path}glyph-add-16.svg');\n  }\n\n  &.icon-minimize {\n    background-image: url('#{$image-path}glyph-minimize-16.svg');\n  }\n\n  &.icon-maximize {\n    background-image: url('#{$image-path}glyph-maximize-16.svg');\n  }\n}\n",
+		".outer-wrapper {\n  background-color: var(--newtab-background-color);\n  color: var(--newtab-text-primary-color);\n  display: flex;\n  flex-grow: 1;\n  min-height: 100vh;\n  padding: ($section-spacing + $section-vertical-padding) $base-gutter $base-gutter;\n\n  &.fixed-to-top {\n    display: block;\n  }\n\n  a {\n    color: var(--newtab-link-primary-color);\n  }\n}\n\nmain {\n  margin: auto;\n  // Offset the snippets container so things at the bottom of the page are still\n  // visible when snippets / onboarding are visible. Adjust for other spacing.\n  padding-bottom: $snippets-container-height - $section-spacing - $base-gutter;\n  width: $wrapper-default-width;\n\n  @media (min-width: $break-point-small) {\n    width: $wrapper-max-width-small;\n  }\n\n  @media (min-width: $break-point-medium) {\n    width: $wrapper-max-width-medium;\n  }\n\n  @media (min-width: $break-point-large) {\n    width: $wrapper-max-width-large;\n  }\n\n  section {\n    margin-bottom: $section-spacing;\n    position: relative;\n  }\n}\n\n.wide-layout-enabled {\n  main {\n    @media (min-width: $break-point-widest) {\n      width: $wrapper-max-width-widest;\n    }\n  }\n}\n\n.base-content-fallback {\n  // Make the error message be centered against the viewport\n  height: 100vh;\n}\n\n.body-wrapper {\n  // Hide certain elements so the page structure is fixed, e.g., placeholders,\n  // while avoiding flashes of changing content, e.g., icons and text\n  $selectors-to-hide: '\n    .section-title,\n    .sections-list .section:last-of-type,\n    .topic\n  ';\n\n  #{$selectors-to-hide} {\n    opacity: 0;\n  }\n\n  &.on {\n    #{$selectors-to-hide} {\n      opacity: 1;\n    }\n  }\n}\n\n.non-collapsible-section {\n  padding: 0 $section-horizontal-padding;\n}\n\n.prefs-button {\n  button {\n    background-color: transparent;\n    border: 0;\n    cursor: pointer;\n    fill: var(--newtab-icon-primary-color);\n    offset-inline-end: 15px;\n    padding: 15px;\n    position: fixed;\n    top: 15px;\n    z-index: 12001;\n\n    &:hover,\n    &:focus {\n      background-color: var(--newtab-element-active-color);\n    }\n  }\n}\n",
+		".as-error-fallback {\n  align-items: center;\n  border-radius: $border-radius;\n  box-shadow: inset $inner-box-shadow;\n  color: var(--newtab-text-conditional-color);\n  display: flex;\n  flex-direction: column;\n  font-size: $error-fallback-font-size;\n  justify-content: center;\n  justify-items: center;\n  line-height: $error-fallback-line-height;\n\n  a {\n    color: var(--newtab-text-conditional-color);\n    text-decoration: underline;\n  }\n}\n",
+		"$top-sites-size: $grid-unit;\n$top-sites-border-radius: 6px;\n$top-sites-title-height: 30px;\n$top-sites-vertical-space: 8px;\n$screenshot-size: cover;\n$rich-icon-size: 96px;\n$default-icon-wrapper-size: 42px;\n$default-icon-size: 32px;\n$default-icon-offset: 6px;\n$half-base-gutter: $base-gutter / 2;\n\n.top-sites {\n  // Take back the margin from the bottom row of vertical spacing as well as the\n  // extra whitespace below the title text as it's vertically centered.\n  margin-bottom: $section-spacing - ($top-sites-vertical-space + $top-sites-title-height / 3);\n}\n\n.top-sites-list {\n  list-style: none;\n  margin: 0 (-$half-base-gutter);\n  padding: 0;\n\n  // Two columns\n  @media (max-width: $break-point-small) {\n    :nth-child(2n+1) {\n      @include context-menu-open-middle;\n    }\n\n    :nth-child(2n) {\n      @include context-menu-open-left;\n    }\n  }\n\n  // Three columns\n  @media (min-width: $break-point-small) and (max-width: $break-point-medium) {\n    :nth-child(3n+2),\n    :nth-child(3n) {\n      @include context-menu-open-left;\n    }\n  }\n\n  // Four columns\n  @media (min-width: $break-point-medium) and (max-width: $break-point-large) {\n    :nth-child(4n) {\n      @include context-menu-open-left;\n    }\n  }\n  @media (min-width: $break-point-medium) and (max-width: $break-point-medium + $card-width) {\n    :nth-child(4n+3) {\n      @include context-menu-open-left;\n    }\n  }\n\n  // Six columns\n  @media (min-width: $break-point-large) and (max-width: $break-point-large + 2 * $card-width) {\n    :nth-child(6n) {\n      @include context-menu-open-left;\n    }\n  }\n  @media (min-width: $break-point-large) and (max-width: $break-point-large + $card-width) {\n    :nth-child(6n+5) {\n      @include context-menu-open-left;\n    }\n  }\n\n  li {\n    margin: 0 0 $top-sites-vertical-space;\n  }\n\n  &:not(.dnd-active) {\n    .top-site-outer:-moz-any(.active, :focus, :hover) {\n      .tile {\n        @include fade-in;\n      }\n\n      @include context-menu-button-hover;\n    }\n  }\n}\n\n// container for drop zone\n.top-site-outer {\n  padding: 0 $half-base-gutter;\n  display: inline-block;\n\n  // container for context menu\n  .top-site-inner {\n    position: relative;\n\n    > a {\n      color: inherit;\n      display: block;\n      outline: none;\n\n      &:-moz-any(.active, :focus) {\n        .tile {\n          @include fade-in;\n        }\n      }\n    }\n  }\n\n  @include context-menu-button;\n\n  .tile { // sass-lint:disable-block property-sort-order\n    border-radius: $top-sites-border-radius;\n    box-shadow: inset $inner-box-shadow, $shadow-secondary;\n    height: $top-sites-size;\n    position: relative;\n    width: $top-sites-size;\n\n    // For letter fallback\n    align-items: center;\n    color: var(--newtab-text-secondary-color);\n    display: flex;\n    font-size: 32px;\n    font-weight: 200;\n    justify-content: center;\n    text-transform: uppercase;\n\n    &::before {\n      content: attr(data-fallback);\n    }\n  }\n\n  .screenshot {\n    background-color: $white;\n    background-position: top left;\n    background-size: $screenshot-size;\n    border-radius: $top-sites-border-radius;\n    box-shadow: inset $inner-box-shadow;\n    height: 100%;\n    left: 0;\n    opacity: 0;\n    position: absolute;\n    top: 0;\n    transition: opacity 1s;\n    width: 100%;\n\n    &.active {\n      opacity: 1;\n    }\n  }\n\n  // Some common styles for all icons (rich and default) in top sites\n  .top-site-icon {\n    background-color: var(--newtab-background-color);\n    background-position: center center;\n    background-repeat: no-repeat;\n    border-radius: $top-sites-border-radius;\n    box-shadow: inset $inner-box-shadow;\n    position: absolute;\n  }\n\n  .rich-icon {\n    background-size: cover;\n    height: 100%;\n    offset-inline-start: 0;\n    top: 0;\n    width: 100%;\n  }\n\n  .default-icon { // sass-lint:disable block property-sort-order\n    background-size: $default-icon-size;\n    bottom: -$default-icon-offset;\n    height: $default-icon-wrapper-size;\n    offset-inline-end: -$default-icon-offset;\n    width: $default-icon-wrapper-size;\n\n    // for corner letter fallback\n    align-items: center;\n    display: flex;\n    font-size: 20px;\n    justify-content: center;\n\n    &[data-fallback]::before {\n      content: attr(data-fallback);\n    }\n  }\n\n  .title {\n    color: var(--newtab-topsites-label-color);\n    font: message-box;\n    height: $top-sites-title-height;\n    line-height: $top-sites-title-height;\n    text-align: center;\n    width: $top-sites-size;\n    position: relative;\n\n    .icon {\n      fill: var(--newtab-icon-tertiary-color);\n      offset-inline-start: 0;\n      position: absolute;\n      top: 10px;\n    }\n\n    span {\n      height: $top-sites-title-height;\n      display: block;\n      overflow: hidden;\n      text-overflow: ellipsis;\n      white-space: nowrap;\n    }\n\n    &.pinned {\n      span {\n        padding: 0 13px;\n      }\n    }\n  }\n\n  .edit-button {\n    background-image: url('#{$image-path}glyph-edit-16.svg');\n  }\n\n  &.placeholder {\n    .tile {\n      box-shadow: inset $inner-box-shadow;\n    }\n\n    .screenshot {\n      display: none;\n    }\n  }\n\n  &.dragged {\n    .tile {\n      background: $grey-20;\n      box-shadow: none;\n\n      *,\n      &::before {\n        display: none;\n      }\n    }\n\n    .title {\n      visibility: hidden;\n    }\n  }\n}\n\n// Always hide .hide-for-narrow if wide layout is disabled\n.wide-layout-disabled {\n  .top-sites-list {\n    .hide-for-narrow {\n      display: none;\n    }\n  }\n}\n\n.wide-layout-enabled {\n  .top-sites-list {\n    // Eight columns\n    @media (min-width: $break-point-widest) and (max-width: $break-point-widest + 2 * $card-width) {\n      :nth-child(8n) {\n        @include context-menu-open-left;\n      }\n    }\n\n    @media (min-width: $break-point-widest) and (max-width: $break-point-widest + $card-width) {\n      :nth-child(8n+7) {\n        @include context-menu-open-left;\n      }\n    }\n\n    @media not all and (min-width: $break-point-widest) {\n      .hide-for-narrow {\n        display: none;\n      }\n    }\n  }\n}\n\n.edit-topsites-wrapper {\n  .modal {\n    box-shadow: $shadow-secondary;\n    left: 0;\n    margin: 0 auto;\n    position: fixed;\n    right: 0;\n    top: 40px;\n    width: $wrapper-default-width;\n\n    @media (min-width: $break-point-small) {\n      width: $wrapper-max-width-small;\n    }\n\n    @media (min-width: $break-point-medium) {\n      width: $wrapper-max-width-medium;\n    }\n\n    @media (min-width: $break-point-large) {\n      width: $wrapper-max-width-large;\n    }\n  }\n}\n\n.topsite-form {\n  $form-width: 300px;\n  $form-spacing: 32px;\n\n  .form-input-container {\n    max-width: $form-width + 3 * $form-spacing + $rich-icon-size;\n    margin: 0 auto;\n    padding: $form-spacing;\n\n    .top-site-outer {\n      padding: 0;\n      margin: 24px 0 0;\n      margin-inline-start: $form-spacing;\n      pointer-events: none;\n    }\n\n    .section-title {\n      text-transform: none;\n      font-size: 16px;\n      margin: 0 0 16px;\n    }\n  }\n\n  .fields-and-preview {\n    display: flex;\n  }\n\n  label {\n    font-size: $section-title-font-size;\n  }\n\n  .form-wrapper {\n    width: 100%;\n\n    .field {\n      position: relative;\n\n      .icon-clear-input {\n        position: absolute;\n        transform: translateY(-50%);\n        top: 50%;\n        offset-inline-end: 8px;\n      }\n    }\n\n    .url {\n      input:dir(ltr) {\n        padding-right: 32px;\n      }\n\n      input:dir(rtl) {\n        padding-left: 32px;\n\n        &:not(:placeholder-shown) {\n          direction: ltr;\n          text-align: right;\n        }\n      }\n    }\n\n    .enable-custom-image-input {\n      display: inline-block;\n      font-size: 13px;\n      margin-top: 4px;\n      cursor: pointer;\n\n      &:hover {\n        text-decoration: underline;\n      }\n    }\n\n    .custom-image-input-container {\n      margin-top: 4px;\n\n      .loading-container {\n        width: 16px;\n        height: 16px;\n        overflow: hidden;\n        position: absolute;\n        transform: translateY(-50%);\n        top: 50%;\n        offset-inline-end: 8px;\n      }\n\n      // This animation is derived from Firefox's tab loading animation\n      // See https://searchfox.org/mozilla-central/rev/b29daa46443b30612415c35be0a3c9c13b9dc5f6/browser/themes/shared/tabs.inc.css#208-216\n      .loading-animation {\n        @keyframes tab-throbber-animation {\n          100% { transform: translateX(-960px); }\n        }\n\n        @keyframes tab-throbber-animation-rtl {\n          100% { transform: translateX(960px); }\n        }\n\n        width: 960px;\n        height: 16px;\n        -moz-context-properties: fill;\n        fill: $blue-50;\n        background-image: url('chrome://browser/skin/tabbrowser/loading.svg');\n        animation: tab-throbber-animation 1.05s steps(60) infinite;\n\n        &:dir(rtl) {\n          animation-name: tab-throbber-animation-rtl;\n        }\n      }\n    }\n\n    input {\n      &[type='text'] {\n        background-color: var(--newtab-textbox-color);\n        border: $input-border;\n        border-radius: 2px;\n        margin: 8px 0;\n        padding: 0 8px;\n        height: 32px;\n        width: 100%;\n        font-size: 15px;\n\n        &:focus {\n          border: $input-border-active;\n          box-shadow: $input-focus-boxshadow;\n        }\n\n        &[disabled] {\n          border: $input-border;\n          box-shadow: none;\n          opacity: 0.4;\n        }\n      }\n    }\n\n    .invalid {\n      input {\n        &[type='text'] {\n          border: $input-error-border;\n          box-shadow: $input-error-boxshadow;\n        }\n      }\n    }\n\n    .error-tooltip {\n      animation: fade-up-tt 450ms;\n      background: $red-60;\n      border-radius: 2px;\n      color: $white;\n      offset-inline-start: 3px;\n      padding: 5px 12px;\n      position: absolute;\n      top: 44px;\n      z-index: 1;\n\n      // tooltip caret\n      &::before {\n        background: $red-60;\n        bottom: -8px;\n        content: '.';\n        height: 16px;\n        offset-inline-start: 12px;\n        position: absolute;\n        text-indent: -999px;\n        top: -7px;\n        transform: rotate(45deg);\n        white-space: nowrap;\n        width: 16px;\n        z-index: -1;\n      }\n    }\n  }\n\n  .actions {\n    justify-content: flex-end;\n\n    button {\n      margin-inline-start: 10px;\n      margin-inline-end: 0;\n    }\n  }\n\n  @media (max-width: $break-point-small) {\n    .fields-and-preview {\n      flex-direction: column;\n\n      .top-site-outer {\n        margin-inline-start: 0;\n      }\n    }\n  }\n}\n\n//used for tooltips below form element\n@keyframes fade-up-tt {\n  0% {\n    opacity: 0;\n    transform: translateY(15px);\n  }\n\n  100% {\n    opacity: 1;\n    transform: translateY(0);\n  }\n}\n",
+		".sections-list {\n  .section-list {\n    display: grid;\n    grid-gap: $base-gutter;\n    grid-template-columns: repeat(auto-fit, $card-width);\n    margin: 0;\n\n    @media (max-width: $break-point-medium) {\n      @include context-menu-open-left;\n    }\n\n    @media (min-width: $break-point-medium) and (max-width: $break-point-large) {\n      :nth-child(2n) {\n        @include context-menu-open-left;\n      }\n    }\n\n    @media (min-width: $break-point-large) and (max-width: $break-point-large + 2 * $card-width) {\n      :nth-child(3n) {\n        @include context-menu-open-left;\n      }\n    }\n  }\n\n  .section-empty-state {\n    border: $border-secondary;\n    border-radius: $border-radius;\n    display: flex;\n    height: $card-height;\n    width: 100%;\n\n    .empty-state {\n      margin: auto;\n      max-width: 350px;\n\n      .empty-state-icon {\n        background-position: center;\n        background-repeat: no-repeat;\n        background-size: 50px 50px;\n        -moz-context-properties: fill;\n        display: block;\n        fill: var(--newtab-icon-secondary-color);\n        height: 50px;\n        margin: 0 auto;\n        width: 50px;\n      }\n\n      .empty-state-message {\n        color: var(--newtab-text-primary-color);\n        font-size: 13px;\n        margin-bottom: 0;\n        text-align: center;\n      }\n    }\n  }\n}\n\n.wide-layout-enabled {\n  .sections-list {\n    .section-list {\n      @media (min-width: $break-point-widest) and (max-width: $break-point-widest + 2 * $card-width) {\n        :nth-child(3n) {\n          @include context-menu-open-left;\n        }\n      }\n\n      @media (min-width: $break-point-widest) {\n        grid-template-columns: repeat(auto-fit, $card-width-large);\n      }\n    }\n  }\n\n  .section-empty-state {\n    height: $card-height-large;\n  }\n}\n",
+		".topic {\n  color: var(--newtab-section-navigation-text-color);\n  font-size: 12px;\n  line-height: 1.6;\n  margin-top: $topic-margin-top;\n\n  @media (min-width: $break-point-large) {\n    line-height: 16px;\n  }\n\n  ul {\n    margin: 0;\n    padding: 0;\n    @media (min-width: $break-point-large) {\n      display: inline;\n      padding-inline-start: 12px;\n    }\n  }\n\n\n  ul li {\n    display: inline-block;\n\n    &::after {\n      content: '•';\n      padding: 8px;\n    }\n\n    &:last-child::after {\n      content: none;\n    }\n  }\n\n  .topic-link {\n    color: var(--newtab-link-secondary-color);\n  }\n\n  .topic-read-more {\n    color: var(--newtab-link-secondary-color);\n\n    @media (min-width: $break-point-large) {\n      // This is floating to accomodate a very large number of topics and/or\n      // very long topic names due to l10n.\n      float: right;\n\n      &:dir(rtl) {\n        float: left;\n      }\n    }\n\n    &::after {\n      background: url('#{$image-path}topic-show-more-12.svg') no-repeat center center;\n      content: '';\n      -moz-context-properties: fill;\n      display: inline-block;\n      fill: var(--newtab-link-secondary-color);\n      height: 16px;\n      margin-inline-start: 5px;\n      vertical-align: top;\n      width: 12px;\n    }\n\n    &:dir(rtl)::after  {\n      transform: scaleX(-1);\n    }\n  }\n\n  // This is a clearfix to for the topics-read-more link which is floating and causes\n  // some jank when we set overflow:hidden for the animation.\n  &::after {\n    clear: both;\n    content: '';\n    display: table;\n  }\n}\n",
+		".search-wrapper {\n  $search-border-radius: 3px;\n  $search-focus-color: var(--newtab-search-focus-border-color);\n  $search-height: 35px;\n  $search-input-left-label-width: 35px;\n  $search-button-width: 36px;\n  $search-glyph-image: url('chrome://browser/skin/search-glass.svg');\n  $glyph-forward: url('chrome://browser/skin/forward.svg');\n  $search-glyph-size: 16px;\n  // This is positioned so it is visually (not metrically) centered. r=abenson\n  $search-glyph-left-position: 12px;\n\n  cursor: default;\n  display: flex;\n  height: $search-height;\n  // The extra 1px is to account for the box-shadow being outside of the element\n  // instead of inside. It needs to be like that to not overlap the inner background\n  // color of the hover state of the submit button.\n  margin: 1px 1px $section-spacing;\n  position: relative;\n  width: 100%;\n\n  input {\n    background: var(--newtab-search-background-color);\n    border: solid 1px var(--newtab-search-border-color);\n    border-radius: $search-border-radius;\n    box-shadow: $shadow-secondary, 0 0 0 1px $black-15;\n    color: var(--newtab-search-text-color);\n    font-size: 15px;\n    padding: 0;\n    padding-inline-end: $search-button-width;\n    padding-inline-start: $search-input-left-label-width;\n    width: 100%;\n  }\n\n  &:hover input {\n    box-shadow: $shadow-secondary, 0 0 0 1px $black-25;\n  }\n\n  &:active input,\n  input:focus {\n    box-shadow: 0 0 0 $os-search-focus-shadow-radius $search-focus-color;\n  }\n\n  .search-label {\n    background: $search-glyph-image no-repeat $search-glyph-left-position center / $search-glyph-size;\n    -moz-context-properties: fill;\n    fill: var(--newtab-search-icon-color);\n    height: 100%;\n    offset-inline-start: 0;\n    position: absolute;\n    width: $search-input-left-label-width;\n  }\n\n  .search-button {\n    background: $glyph-forward no-repeat center center;\n    background-size: 16px 16px;\n    border: 0;\n    border-radius: 0 $border-radius $border-radius 0;\n    -moz-context-properties: fill;\n    fill: var(--newtab-search-icon-color);\n    height: 100%;\n    offset-inline-end: 0;\n    position: absolute;\n    width: $search-button-width;\n\n    &:focus,\n    &:hover {\n      background-color: $grey-90-10;\n      cursor: pointer;\n    }\n\n    &:active {\n      background-color: $grey-90-20;\n    }\n\n    &:dir(rtl) {\n      transform: scaleX(-1);\n    }\n  }\n}\n\n@at-root {\n  // Adjust the style of the contentSearchUI-generated table\n  // sass-lint:disable-block class-name-format\n  .contentSearchSuggestionTable {\n    background-color: var(--newtab-search-background-color);\n    border: 0;\n    transform: translateY(3px);\n\n    .contentSearchHeader {\n      background-color: var(--newtab-background-color);\n      color: var(--newtab-text-secondary-color);\n    }\n\n    .contentSearchHeader,\n    .contentSearchSuggestionsList {\n      border-color: var(--newtab-border-primary-color);\n    }\n\n    .contentSearchSearchWithHeaderSearchText {\n      color: var(--newtab-text-primary-color);\n    }\n  }\n}\n",
+		".context-menu {\n  background: var(--newtab-background-color);\n  border-radius: $context-menu-border-radius;\n  box-shadow: $context-menu-shadow;\n  display: block;\n  font-size: $context-menu-font-size;\n  margin-inline-start: 5px;\n  offset-inline-start: 100%;\n  position: absolute;\n  top: ($context-menu-button-size / 4);\n  z-index: 10000;\n\n  > ul {\n    list-style: none;\n    margin: 0;\n    padding: $context-menu-outer-padding 0;\n\n    > li {\n      margin: 0;\n      width: 100%;\n\n      &.separator {\n        border-bottom: $border-secondary;\n        margin: $context-menu-outer-padding 0;\n      }\n\n      > a {\n        align-items: center;\n        color: inherit;\n        cursor: pointer;\n        display: flex;\n        line-height: 16px;\n        outline: none;\n        padding: $context-menu-item-padding;\n        white-space: nowrap;\n\n        &:-moz-any(:focus, :hover) {\n          background: var(--newtab-link-primary-color);\n          color: $white;\n\n          a {\n            color: $grey-90;\n          }\n\n          .icon {\n            fill: $white;\n          }\n\n          &:-moz-any(:focus, :hover) {\n            color: $white;\n          }\n        }\n\n        &.disabled {\n          opacity: 0.4;\n          pointer-events: none;\n        }\n      }\n    }\n  }\n}\n",
+		".confirmation-dialog {\n  .modal {\n    box-shadow: 0 2px 2px 0 $black-10;\n    left: 50%;\n    margin-left: -200px;\n    position: fixed;\n    top: 20%;\n    width: 400px;\n  }\n\n  section {\n    margin: 0;\n  }\n\n  .modal-message {\n    display: flex;\n    padding: 16px;\n    padding-bottom: 0;\n\n    p {\n      margin: 0;\n      margin-bottom: 16px;\n    }\n  }\n\n  .actions {\n    border: 0;\n    display: flex;\n    flex-wrap: nowrap;\n    padding: 0 16px;\n\n    button {\n      margin-inline-end: 16px;\n      padding-inline-end: 18px;\n      padding-inline-start: 18px;\n      white-space: normal;\n      width: 50%;\n\n      &.done {\n        margin-inline-end: 0;\n        margin-inline-start: 0;\n      }\n    }\n  }\n\n  .icon {\n    margin-inline-end: 16px;\n  }\n}\n\n.modal-overlay {\n  background: var(--newtab-overlay-color);\n  height: 100%;\n  left: 0;\n  opacity: 0.8;\n  position: fixed;\n  top: 0;\n  width: 100%;\n  z-index: 11001;\n}\n\n.modal {\n  background: var(--newtab-modal-color);\n  border: $border-secondary;\n  border-radius: 5px;\n  font-size: 15px;\n  z-index: 11002;\n}\n",
+		".card-outer {\n  @include context-menu-button;\n  background: var(--newtab-card-background-color);\n  border-radius: $border-radius;\n  display: inline-block;\n  height: $card-height;\n  margin-inline-end: $base-gutter;\n  position: relative;\n  width: 100%;\n\n  &.placeholder {\n    background: transparent;\n\n    .card {\n      box-shadow: inset $inner-box-shadow;\n    }\n  }\n\n  .card {\n    border-radius: $border-radius;\n    box-shadow: $shadow-secondary;\n    height: 100%;\n  }\n\n  > a {\n    color: inherit;\n    display: block;\n    height: 100%;\n    outline: none;\n    position: absolute;\n    width: 100%;\n\n    &:-moz-any(.active, :focus) {\n      .card {\n        @include fade-in-card;\n      }\n\n      .card-title {\n        color: var(--newtab-link-primary-color);\n      }\n    }\n  }\n\n  &:-moz-any(:hover, :focus, .active):not(.placeholder) {\n    @include fade-in-card;\n    @include context-menu-button-hover;\n    outline: none;\n\n    .card-title {\n      color: var(--newtab-link-primary-color);\n    }\n  }\n\n  .card-preview-image-outer {\n    background-color: var(--newtab-background-color);\n    border-radius: $border-radius $border-radius 0 0;\n    height: $card-preview-image-height;\n    overflow: hidden;\n    position: relative;\n\n    &::after {\n      border-bottom: 1px solid $black-5;\n      bottom: 0;\n      content: '';\n      position: absolute;\n      width: 100%;\n    }\n\n    .card-preview-image {\n      background-position: center;\n      background-repeat: no-repeat;\n      background-size: cover;\n      height: 100%;\n      opacity: 0;\n      transition: opacity 1s $photon-easing;\n      width: 100%;\n\n      &.loaded {\n        opacity: 1;\n      }\n    }\n  }\n\n  .card-details {\n    padding: 15px 16px 12px;\n\n    &.no-image {\n      padding-top: 16px;\n    }\n  }\n\n  .card-text {\n    max-height: 4 * $card-text-line-height + $card-title-margin;\n    overflow: hidden;\n\n    &.no-image {\n      max-height: 10 * $card-text-line-height + $card-title-margin;\n    }\n\n    &.no-host-name,\n    &.no-context {\n      max-height: 5 * $card-text-line-height + $card-title-margin;\n    }\n\n    &.no-image.no-host-name,\n    &.no-image.no-context {\n      max-height: 11 * $card-text-line-height + $card-title-margin;\n    }\n\n    &.no-host-name.no-context {\n      max-height: 6 * $card-text-line-height + $card-title-margin;\n    }\n\n    &.no-image.no-host-name.no-context {\n      max-height: 12 * $card-text-line-height + $card-title-margin;\n    }\n\n    &:not(.no-description) .card-title {\n      max-height: 3 * $card-text-line-height;\n      overflow: hidden;\n    }\n  }\n\n  .card-host-name {\n    color: var(--newtab-text-secondary-color);\n    font-size: 10px;\n    overflow: hidden;\n    padding-bottom: 4px;\n    text-overflow: ellipsis;\n    text-transform: uppercase;\n  }\n\n  .card-title {\n    font-size: 14px;\n    line-height: $card-text-line-height;\n    margin: 0 0 $card-title-margin;\n    word-wrap: break-word;\n  }\n\n  .card-description {\n    font-size: 12px;\n    line-height: $card-text-line-height;\n    margin: 0;\n    overflow: hidden;\n    word-wrap: break-word;\n  }\n\n  .card-context {\n    bottom: 0;\n    color: var(--newtab-text-secondary-color);\n    display: flex;\n    font-size: 11px;\n    left: 0;\n    padding: 9px 16px 9px 14px;\n    position: absolute;\n    right: 0;\n  }\n\n  .card-context-icon {\n    fill: var(--newtab-icon-secondary-color);\n    height: 22px;\n    margin-inline-end: 6px;\n  }\n\n  .card-context-label {\n    flex-grow: 1;\n    line-height: 22px;\n    overflow: hidden;\n    text-overflow: ellipsis;\n    white-space: nowrap;\n  }\n}\n\n.wide-layout-enabled {\n  $line-height: 23px;\n\n  .card-outer {\n    @media (min-width: $break-point-widest) {\n      height: $card-height-large;\n\n      .card-preview-image-outer {\n        height: $card-preview-image-height-large;\n      }\n\n      .card-details {\n        padding: 13px 16px 12px;\n      }\n\n      .card-text {\n        max-height: 6 * $line-height + $card-title-margin;\n      }\n\n      .card-host-name {\n        font-size: 12px;\n        padding-bottom: 5px;\n      }\n\n      .card-title {\n        font-size: 17px;\n        line-height: $line-height;\n        margin-bottom: 0;\n      }\n\n      .card-text:not(.no-description) {\n        .card-title {\n          max-height: 3 * $line-height;\n        }\n      }\n\n      .card-description {\n        font-size: 15px;\n        line-height: $line-height;\n      }\n\n      .card-context {\n        bottom: 4px;\n        font-size: 14px;\n      }\n    }\n  }\n}\n",
+		".manual-migration-container {\n  color: var(--newtab-text-conditional-color);\n  font-size: 13px;\n  line-height: 15px;\n  margin-bottom: $section-spacing;\n  text-align: center;\n\n  @media (min-width: $break-point-medium) {\n    display: flex;\n    justify-content: space-between;\n    text-align: left;\n  }\n\n  p {\n    margin: 0;\n    @media (min-width: $break-point-medium) {\n      align-self: center;\n      display: flex;\n      justify-content: space-between;\n    }\n  }\n\n  .icon {\n    display: none;\n    @media (min-width: $break-point-medium) {\n      align-self: center;\n      display: block;\n      fill: var(--newtab-icon-secondary-color);\n      margin-inline-end: 6px;\n    }\n  }\n}\n\n.manual-migration-actions {\n  border: 0;\n  display: block;\n  flex-wrap: nowrap;\n\n  @media (min-width: $break-point-medium) {\n    display: flex;\n    justify-content: space-between;\n    padding: 0;\n  }\n\n  button {\n    align-self: center;\n    height: 26px;\n    margin: 0;\n    margin-inline-start: 20px;\n    padding: 0 12px;\n  }\n}\n",
+		".collapsible-section {\n  padding: $section-vertical-padding $section-horizontal-padding;\n  transition-delay: 100ms;\n  transition-duration: 100ms;\n  transition-property: background-color;\n\n  .section-title {\n    font-size: $section-title-font-size;\n    font-weight: bold;\n    margin: 0;\n    text-transform: uppercase;\n\n    span {\n      color: var(--newtab-section-header-text-color);\n      display: inline-block;\n      fill: var(--newtab-section-header-text-color);\n      vertical-align: middle;\n    }\n\n    .click-target {\n      cursor: pointer;\n      vertical-align: top;\n      white-space: nowrap;\n    }\n\n    .collapsible-arrow {\n      margin-inline-start: 8px;\n      margin-top: -1px;\n    }\n  }\n\n  .section-top-bar {\n    height: 19px;\n    margin-bottom: 13px;\n    position: relative;\n\n    .context-menu-button {\n      background: url('chrome://browser/skin/page-action.svg') no-repeat right center;\n      border: 0;\n      cursor: pointer;\n      fill: var(--newtab-section-header-text-color);\n      height: 100%;\n      offset-inline-end: 0;\n      opacity: 0;\n      position: absolute;\n      top: 0;\n      transition-duration: 200ms;\n      transition-property: opacity;\n      width: $context-menu-button-size;\n\n      &:-moz-any(:active, :focus, :hover) {\n        fill: $grey-90;\n        opacity: 1;\n      }\n    }\n\n    .context-menu {\n      top: 16px;\n    }\n\n    @media (max-width: $break-point-widest + $card-width * 1.5) {\n      @include context-menu-open-left;\n    }\n  }\n\n  &:hover,\n  &.active {\n    .section-top-bar {\n      .context-menu-button {\n        opacity: 1;\n      }\n    }\n  }\n\n  &.active {\n    background: var(--newtab-element-active-color);\n    border-radius: 4px;\n\n    .section-top-bar {\n      .context-menu-button {\n        fill: var(--newtab-section-active-contextmenu-color);\n      }\n    }\n  }\n\n  .section-disclaimer {\n    $max-button-width: 130px;\n    $min-button-height: 26px;\n\n    color: var(--newtab-text-conditional-color);\n    font-size: 13px;\n    margin-bottom: 16px;\n    position: relative;\n\n    .section-disclaimer-text {\n      display: inline-block;\n      min-height: $min-button-height;\n      width: calc(100% - #{$max-button-width});\n\n      @media (max-width: $break-point-medium) {\n        width: $card-width;\n      }\n    }\n\n    a {\n      color: var(--newtab-link-secondary-color);\n      font-weight: bold;\n      padding-left: 3px;\n    }\n\n    button {\n      background: transparent;\n      border: 1px solid $grey-40;\n      border-radius: 4px;\n      cursor: pointer;\n      margin-top: 2px;\n      max-width: $max-button-width;\n      min-height: $min-button-height;\n      offset-inline-end: 0;\n\n      &:hover:not(.dismiss) {\n        box-shadow: $shadow-primary;\n        transition: box-shadow 150ms;\n      }\n\n      @media (min-width: $break-point-small) {\n        position: absolute;\n      }\n    }\n  }\n\n  .section-body-fallback {\n    height: $card-height;\n  }\n\n  .section-body {\n    // This is so the top sites favicon and card dropshadows don't get clipped during animation:\n    $horizontal-padding: 7px;\n    margin: 0 (-$horizontal-padding);\n    padding: 0 $horizontal-padding;\n\n    &.animating {\n      overflow: hidden;\n      pointer-events: none;\n    }\n  }\n\n  &.animation-enabled {\n    .section-title {\n      .collapsible-arrow {\n        transition: transform 0.5s $photon-easing;\n      }\n    }\n\n    .section-body {\n      transition: max-height 0.5s $photon-easing;\n    }\n  }\n\n  &.collapsed {\n    .section-body {\n      max-height: 0;\n      overflow: hidden;\n    }\n  }\n}\n",
+		"\n.messages-admin {\n  $monospace: 'SF Mono', 'Monaco', 'Inconsolata', 'Fira Mono', 'Droid Sans Mono', 'Source Code Pro', monospace;\n  max-width: 996px;\n  margin: 0 auto;\n  font-size: 14px;\n\n  h1 {\n    font-weight: 200;\n    font-size: 32px;\n  }\n\n  table {\n    border-collapse: collapse;\n    width: 100%;\n  }\n\n  .message-item {\n    &:first-child td {\n      border-top: 1px solid $black-10;\n    }\n\n    td {\n      vertical-align: top;\n      border-bottom: 1px solid $black-10;\n      padding: 8px;\n\n      &:first-child {\n        border-left: 1px solid $black-10;\n      }\n\n      &:last-child {\n        border-right: 1px solid $black-10;\n      }\n    }\n\n    &.current {\n      .message-id span {\n        background: $yellow-50;\n        padding: 2px 5px;\n      }\n    }\n\n    &.blocked {\n      .message-id,\n      .message-summary {\n        opacity: 0.5;\n      }\n\n      .message-id {\n        color: $grey-90;\n      }\n    }\n\n    .message-id {\n      font-family: $monospace;\n      font-size: 12px;\n    }\n  }\n\n  pre {\n    background: $white;\n    margin: 0;\n    padding: 8px;\n    font-size: 12px;\n    max-width: 750px;\n    overflow: auto;\n    font-family: $monospace;\n  }\n}\n"
 	],
 	"names": [],
-	"mappings": "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