diff --git a/Configuration/UserConfig.cs b/Configuration/UserConfig.cs
index c5f9e742..380df363 100644
--- a/Configuration/UserConfig.cs
+++ b/Configuration/UserConfig.cs
@@ -45,6 +45,8 @@ sealed class UserConfig{
         public WindowState PluginsWindow { get; set; }
 
         public string CustomCefArgs { get; set; }
+        public string CustomBrowserCSS { get; set; }
+        public string CustomNotificationCSS { get; set; }
 
         public bool IsCustomNotificationPositionSet{
             get{
diff --git a/Core/FormBrowser.cs b/Core/FormBrowser.cs
index 42275cf2..b846e1de 100644
--- a/Core/FormBrowser.cs
+++ b/Core/FormBrowser.cs
@@ -181,7 +181,7 @@ private void trayIcon_ClickClose(object sender, EventArgs e){
         }
         
         private void plugins_Reloaded(object sender, PluginLoadEventArgs e){
-            browser.ExecuteScriptAsync("window.location.reload()");
+            ReloadBrowser();
         }
 
         private void plugins_PluginChangedState(object sender, PluginChangedStateEventArgs e){
@@ -296,5 +296,9 @@ public void OnImagePasted(){
         public void OnImagePastedFinish(){
             browser.ExecuteScriptAsync("TDGF_tryPasteImageFinish",new object[0]);
         }
+
+        public void ReloadBrowser(){
+            browser.ExecuteScriptAsync("window.location.reload()");
+        }
     }
 }
\ No newline at end of file
diff --git a/Core/Handling/TweetDeckBridge.cs b/Core/Handling/TweetDeckBridge.cs
index aacde5e2..176c8ead 100644
--- a/Core/Handling/TweetDeckBridge.cs
+++ b/Core/Handling/TweetDeckBridge.cs
@@ -41,6 +41,18 @@ public bool ExpandLinksOnHover{
             }
         }
 
+        public bool HasCustomBrowserCSS{
+            get{
+                return !string.IsNullOrEmpty(Program.UserConfig.CustomBrowserCSS);
+            }
+        }
+
+        public string CustomBrowserCSS{
+            get{
+                return Program.UserConfig.CustomBrowserCSS;
+            }
+        }
+
         public TweetDeckBridge(FormBrowser form, FormNotification notification){
             this.form = form;
             this.notification = notification;
diff --git a/Core/Handling/TweetNotification.cs b/Core/Handling/TweetNotification.cs
index 9c2b21dd..904af65f 100644
--- a/Core/Handling/TweetNotification.cs
+++ b/Core/Handling/TweetNotification.cs
@@ -94,7 +94,13 @@ public string GenerateHtml(){
             StringBuilder build = new StringBuilder();
             build.Append("<!DOCTYPE html>");
             build.Append("<html class='os-windows txt-base-").Append(FontSizeClass ?? DefaultFontSizeClass).Append("'>");
-            build.Append("<head>").Append(HeadTag ?? DefaultHeadTag).Append("<style type='text/css'>").Append(CustomCSS).Append("</style></head>");
+            build.Append("<head>").Append(HeadTag ?? DefaultHeadTag).Append("<style type='text/css'>").Append(CustomCSS).Append("</style>");
+            
+            if (!string.IsNullOrEmpty(Program.UserConfig.CustomNotificationCSS)){
+                build.Append("<style type='text/css'>").Append(Program.UserConfig.CustomNotificationCSS).Append("</style>");
+            }
+
+            build.Append("</head>");
             build.Append("<body class='hearty'><div class='app-columns-container'><div class='column scroll-styled-v' style='width:100%;overflow-y:auto'>");
             build.Append(html);
             build.Append("</div></div></body>");
diff --git a/Core/Other/FormSettings.cs b/Core/Other/FormSettings.cs
index d067e7bf..46edc543 100644
--- a/Core/Other/FormSettings.cs
+++ b/Core/Other/FormSettings.cs
@@ -19,7 +19,7 @@ public FormSettings(FormBrowser browserForm, UpdateHandler updates){
             this.tabPanel.AddButton("General",SelectTab<TabSettingsGeneral>);
             this.tabPanel.AddButton("Notifications",() => SelectTab(() => new TabSettingsNotifications(browserForm.CreateNotificationForm(false))));
             this.tabPanel.AddButton("Updates",() => SelectTab(() => new TabSettingsUpdates(updates)));
-            this.tabPanel.AddButton("Advanced",SelectTab<TabSettingsAdvanced>);
+            this.tabPanel.AddButton("Advanced",() => SelectTab(() => new TabSettingsAdvanced(browserForm.ReloadBrowser)));
             this.tabPanel.SelectTab(tabPanel.Buttons.First());
         }
 
diff --git a/Core/Other/Settings/Dialogs/DialogSettingsCSS.Designer.cs b/Core/Other/Settings/Dialogs/DialogSettingsCSS.Designer.cs
new file mode 100644
index 00000000..ca19900a
--- /dev/null
+++ b/Core/Other/Settings/Dialogs/DialogSettingsCSS.Designer.cs
@@ -0,0 +1,181 @@
+namespace TweetDck.Core.Other.Settings.Dialogs {
+    partial class DialogSettingsCSS {
+        /// <summary>
+        /// Required designer variable.
+        /// </summary>
+        private System.ComponentModel.IContainer components = null;
+
+        /// <summary>
+        /// Clean up any resources being used.
+        /// </summary>
+        /// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
+        protected override void Dispose(bool disposing) {
+            if (disposing && (components != null)) {
+                components.Dispose();
+            }
+            base.Dispose(disposing);
+        }
+
+        #region Windows Form Designer generated code
+
+        /// <summary>
+        /// Required method for Designer support - do not modify
+        /// the contents of this method with the code editor.
+        /// </summary>
+        private void InitializeComponent() {
+            this.textBoxBrowserCSS = new System.Windows.Forms.TextBox();
+            this.btnCancel = new System.Windows.Forms.Button();
+            this.btnApply = new System.Windows.Forms.Button();
+            this.splitContainer = new System.Windows.Forms.SplitContainer();
+            this.labelBrowser = new System.Windows.Forms.Label();
+            this.labelNotification = new System.Windows.Forms.Label();
+            this.textBoxNotificationCSS = new System.Windows.Forms.TextBox();
+            this.labelWarning = new System.Windows.Forms.Label();
+            ((System.ComponentModel.ISupportInitialize)(this.splitContainer)).BeginInit();
+            this.splitContainer.Panel1.SuspendLayout();
+            this.splitContainer.Panel2.SuspendLayout();
+            this.splitContainer.SuspendLayout();
+            this.SuspendLayout();
+            // 
+            // textBoxBrowserCSS
+            // 
+            this.textBoxBrowserCSS.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) 
+            | System.Windows.Forms.AnchorStyles.Left) 
+            | System.Windows.Forms.AnchorStyles.Right)));
+            this.textBoxBrowserCSS.Font = new System.Drawing.Font("Courier New", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(238)));
+            this.textBoxBrowserCSS.Location = new System.Drawing.Point(0, 16);
+            this.textBoxBrowserCSS.Margin = new System.Windows.Forms.Padding(0, 3, 0, 0);
+            this.textBoxBrowserCSS.Multiline = true;
+            this.textBoxBrowserCSS.Name = "textBoxBrowserCSS";
+            this.textBoxBrowserCSS.Size = new System.Drawing.Size(226, 193);
+            this.textBoxBrowserCSS.TabIndex = 0;
+            this.textBoxBrowserCSS.WordWrap = false;
+            // 
+            // btnCancel
+            // 
+            this.btnCancel.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right)));
+            this.btnCancel.Location = new System.Drawing.Point(354, 227);
+            this.btnCancel.Name = "btnCancel";
+            this.btnCancel.Padding = new System.Windows.Forms.Padding(3, 0, 3, 0);
+            this.btnCancel.Size = new System.Drawing.Size(56, 23);
+            this.btnCancel.TabIndex = 1;
+            this.btnCancel.Text = "Cancel";
+            this.btnCancel.UseVisualStyleBackColor = true;
+            this.btnCancel.Click += new System.EventHandler(this.btnCancel_Click);
+            // 
+            // btnApply
+            // 
+            this.btnApply.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right)));
+            this.btnApply.Location = new System.Drawing.Point(416, 227);
+            this.btnApply.Name = "btnApply";
+            this.btnApply.Padding = new System.Windows.Forms.Padding(3, 0, 3, 0);
+            this.btnApply.Size = new System.Drawing.Size(56, 23);
+            this.btnApply.TabIndex = 2;
+            this.btnApply.Text = "Apply";
+            this.btnApply.UseVisualStyleBackColor = true;
+            this.btnApply.Click += new System.EventHandler(this.btnApply_Click);
+            // 
+            // splitContainer
+            // 
+            this.splitContainer.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) 
+            | System.Windows.Forms.AnchorStyles.Left) 
+            | System.Windows.Forms.AnchorStyles.Right)));
+            this.splitContainer.Location = new System.Drawing.Point(12, 12);
+            this.splitContainer.Name = "splitContainer";
+            // 
+            // splitContainer.Panel1
+            // 
+            this.splitContainer.Panel1.Controls.Add(this.labelBrowser);
+            this.splitContainer.Panel1.Controls.Add(this.textBoxBrowserCSS);
+            this.splitContainer.Panel1MinSize = 64;
+            // 
+            // splitContainer.Panel2
+            // 
+            this.splitContainer.Panel2.Controls.Add(this.labelNotification);
+            this.splitContainer.Panel2.Controls.Add(this.textBoxNotificationCSS);
+            this.splitContainer.Panel2MinSize = 64;
+            this.splitContainer.Size = new System.Drawing.Size(460, 209);
+            this.splitContainer.SplitterDistance = 226;
+            this.splitContainer.SplitterWidth = 5;
+            this.splitContainer.TabIndex = 5;
+            // 
+            // labelBrowser
+            // 
+            this.labelBrowser.AutoSize = true;
+            this.labelBrowser.Location = new System.Drawing.Point(-3, 0);
+            this.labelBrowser.Margin = new System.Windows.Forms.Padding(0, 0, 3, 0);
+            this.labelBrowser.Name = "labelBrowser";
+            this.labelBrowser.Size = new System.Drawing.Size(45, 13);
+            this.labelBrowser.TabIndex = 1;
+            this.labelBrowser.Text = "Browser";
+            // 
+            // labelNotification
+            // 
+            this.labelNotification.AutoSize = true;
+            this.labelNotification.Location = new System.Drawing.Point(-3, 0);
+            this.labelNotification.Margin = new System.Windows.Forms.Padding(0, 0, 3, 0);
+            this.labelNotification.Name = "labelNotification";
+            this.labelNotification.Size = new System.Drawing.Size(60, 13);
+            this.labelNotification.TabIndex = 2;
+            this.labelNotification.Text = "Notification";
+            // 
+            // textBoxNotificationCSS
+            // 
+            this.textBoxNotificationCSS.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) 
+            | System.Windows.Forms.AnchorStyles.Left) 
+            | System.Windows.Forms.AnchorStyles.Right)));
+            this.textBoxNotificationCSS.Font = new System.Drawing.Font("Courier New", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(238)));
+            this.textBoxNotificationCSS.Location = new System.Drawing.Point(0, 16);
+            this.textBoxNotificationCSS.Margin = new System.Windows.Forms.Padding(0, 3, 0, 0);
+            this.textBoxNotificationCSS.Multiline = true;
+            this.textBoxNotificationCSS.Name = "textBoxNotificationCSS";
+            this.textBoxNotificationCSS.Size = new System.Drawing.Size(227, 193);
+            this.textBoxNotificationCSS.TabIndex = 1;
+            this.textBoxNotificationCSS.WordWrap = false;
+            // 
+            // labelWarning
+            // 
+            this.labelWarning.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left)));
+            this.labelWarning.AutoSize = true;
+            this.labelWarning.Location = new System.Drawing.Point(9, 232);
+            this.labelWarning.Name = "labelWarning";
+            this.labelWarning.Size = new System.Drawing.Size(341, 13);
+            this.labelWarning.TabIndex = 6;
+            this.labelWarning.Text = "The code is not validated, please make sure there are no syntax errors.";
+            // 
+            // DialogSettingsCSS
+            // 
+            this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
+            this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
+            this.ClientSize = new System.Drawing.Size(484, 262);
+            this.Controls.Add(this.labelWarning);
+            this.Controls.Add(this.splitContainer);
+            this.Controls.Add(this.btnApply);
+            this.Controls.Add(this.btnCancel);
+            this.MinimumSize = new System.Drawing.Size(500, 160);
+            this.Name = "DialogSettingsCSS";
+            this.ShowIcon = false;
+            this.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent;
+            this.splitContainer.Panel1.ResumeLayout(false);
+            this.splitContainer.Panel1.PerformLayout();
+            this.splitContainer.Panel2.ResumeLayout(false);
+            this.splitContainer.Panel2.PerformLayout();
+            ((System.ComponentModel.ISupportInitialize)(this.splitContainer)).EndInit();
+            this.splitContainer.ResumeLayout(false);
+            this.ResumeLayout(false);
+            this.PerformLayout();
+
+        }
+
+        #endregion
+
+        private System.Windows.Forms.TextBox textBoxBrowserCSS;
+        private System.Windows.Forms.Button btnCancel;
+        private System.Windows.Forms.Button btnApply;
+        private System.Windows.Forms.SplitContainer splitContainer;
+        private System.Windows.Forms.TextBox textBoxNotificationCSS;
+        private System.Windows.Forms.Label labelBrowser;
+        private System.Windows.Forms.Label labelNotification;
+        private System.Windows.Forms.Label labelWarning;
+    }
+}
\ No newline at end of file
diff --git a/Core/Other/Settings/Dialogs/DialogSettingsCSS.cs b/Core/Other/Settings/Dialogs/DialogSettingsCSS.cs
new file mode 100644
index 00000000..9e08cdc4
--- /dev/null
+++ b/Core/Other/Settings/Dialogs/DialogSettingsCSS.cs
@@ -0,0 +1,37 @@
+using System;
+using System.Windows.Forms;
+
+namespace TweetDck.Core.Other.Settings.Dialogs{
+    sealed partial class DialogSettingsCSS : Form{
+        public string BrowserCSS{
+            get{
+                return textBoxBrowserCSS.Text;
+            }
+        }
+        
+        public string NotificationCSS{
+            get{
+                return textBoxNotificationCSS.Text;
+            }
+        }
+
+        public DialogSettingsCSS(){
+            InitializeComponent();
+            
+            Text = Program.BrandName+" Settings - CSS";
+
+            textBoxBrowserCSS.Text = Program.UserConfig.CustomBrowserCSS ?? "";
+            textBoxNotificationCSS.Text = Program.UserConfig.CustomNotificationCSS ?? "";
+        }
+
+        private void btnApply_Click(object sender, EventArgs e){
+            DialogResult = DialogResult.OK;
+            Close();
+        }
+
+        private void btnCancel_Click(object sender, EventArgs e){
+            DialogResult = DialogResult.Cancel;
+            Close();
+        }
+    }
+}
diff --git a/Core/Other/Settings/TabSettingsAdvanced.Designer.cs b/Core/Other/Settings/TabSettingsAdvanced.Designer.cs
index 113c8197..14e6b5f4 100644
--- a/Core/Other/Settings/TabSettingsAdvanced.Designer.cs
+++ b/Core/Other/Settings/TabSettingsAdvanced.Designer.cs
@@ -33,6 +33,7 @@ private void InitializeComponent() {
             this.btnExport = new System.Windows.Forms.Button();
             this.groupPerformance = new System.Windows.Forms.GroupBox();
             this.groupConfiguration = new System.Windows.Forms.GroupBox();
+            this.btnEditCSS = new System.Windows.Forms.Button();
             this.groupPerformance.SuspendLayout();
             this.groupConfiguration.SuspendLayout();
             this.SuspendLayout();
@@ -126,14 +127,26 @@ private void InitializeComponent() {
             // 
             // groupConfiguration
             // 
+            this.groupConfiguration.Controls.Add(this.btnEditCSS);
             this.groupConfiguration.Controls.Add(this.btnEditCefArgs);
             this.groupConfiguration.Location = new System.Drawing.Point(9, 89);
             this.groupConfiguration.Name = "groupConfiguration";
-            this.groupConfiguration.Size = new System.Drawing.Size(183, 48);
+            this.groupConfiguration.Size = new System.Drawing.Size(183, 77);
             this.groupConfiguration.TabIndex = 19;
             this.groupConfiguration.TabStop = false;
             this.groupConfiguration.Text = "Configuration";
             // 
+            // btnEditCSS
+            // 
+            this.btnEditCSS.Location = new System.Drawing.Point(6, 48);
+            this.btnEditCSS.Name = "btnEditCSS";
+            this.btnEditCSS.Size = new System.Drawing.Size(171, 23);
+            this.btnEditCSS.TabIndex = 16;
+            this.btnEditCSS.Text = "Edit CSS";
+            this.toolTip.SetToolTip(this.btnEditCSS, "Set custom CSS for browser and notification windows.");
+            this.btnEditCSS.UseVisualStyleBackColor = true;
+            this.btnEditCSS.Click += new System.EventHandler(this.btnEditCSS_Click);
+            // 
             // TabSettingsAdvanced
             // 
             this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
@@ -164,5 +177,6 @@ private void InitializeComponent() {
         private System.Windows.Forms.GroupBox groupPerformance;
         private System.Windows.Forms.GroupBox groupConfiguration;
         private System.Windows.Forms.Button btnEditCefArgs;
+        private System.Windows.Forms.Button btnEditCSS;
     }
 }
diff --git a/Core/Other/Settings/TabSettingsAdvanced.cs b/Core/Other/Settings/TabSettingsAdvanced.cs
index 8e910633..3b5e5066 100644
--- a/Core/Other/Settings/TabSettingsAdvanced.cs
+++ b/Core/Other/Settings/TabSettingsAdvanced.cs
@@ -8,9 +8,13 @@
 
 namespace TweetDck.Core.Other.Settings{
     partial class TabSettingsAdvanced : BaseTabSettings{
-        public TabSettingsAdvanced(){
+        private readonly Action browserReloadAction;
+
+        public TabSettingsAdvanced(Action browserReloadAction){
             InitializeComponent();
 
+            this.browserReloadAction = browserReloadAction;
+
             checkHardwareAcceleration.Checked = HardwareAcceleration.IsEnabled;
 
             BrowserCache.CalculateCacheSize(bytes => this.InvokeSafe(() => {
@@ -68,6 +72,21 @@ private void btnEditCefArgs_Click(object sender, EventArgs e){
             }
         }
 
+        private void btnEditCSS_Click(object sender, EventArgs e){
+            DialogSettingsCSS form = new DialogSettingsCSS();
+
+            if (form.ShowDialog(ParentForm) == DialogResult.OK){
+                bool hasChangedBrowser = form.BrowserCSS != Config.CustomBrowserCSS;
+
+                Config.CustomBrowserCSS = form.BrowserCSS;
+                Config.CustomNotificationCSS = form.NotificationCSS;
+
+                if (hasChangedBrowser && MessageBox.Show("The browser CSS has changed, do you want to reload it?","Browser CSS Changed",MessageBoxButtons.YesNo,MessageBoxIcon.Question,MessageBoxDefaultButton.Button2) == DialogResult.Yes){
+                    browserReloadAction();
+                }
+            }
+        }
+
         private void btnExport_Click(object sender, EventArgs e){
             DialogResult resultSaveCredentials = MessageBox.Show("Do you want to include your login session? This will not save your password into the file, but it will allow anyone with the file to login into TweetDeck as you.","Export "+Program.BrandName+" Settings",MessageBoxButtons.YesNoCancel,MessageBoxIcon.Question,MessageBoxDefaultButton.Button3);
             if (resultSaveCredentials == DialogResult.Cancel)return;
diff --git a/Resources/Scripts/code.js b/Resources/Scripts/code.js
index 4e38533a..947d4ecd 100644
--- a/Resources/Scripts/code.js
+++ b/Resources/Scripts/code.js
@@ -399,12 +399,14 @@
   // Block: Inject custom CSS and layout into the page.
   //
   (function(){
-    var style = document.createElement("style");
-    document.head.appendChild(style);
+    var styleOfficial = document.createElement("style");
+    document.head.appendChild(styleOfficial);
+    styleOfficial.sheet.insertRule("a[data-full-url] { word-break: break-all; }",0); // break long urls
     
-    var sheet = style.sheet;
-    
-    // break long urls
-    sheet.insertRule("a[data-full-url] { word-break: break-all; }",0);
+    if ($TD.hasCustomBrowserCSS){
+      var styleCustom = document.createElement("style");
+      styleCustom.innerHTML = $TD.customBrowserCSS;
+      document.head.appendChild(styleCustom);
+    }
   })();
 })($,$TD,TD);
diff --git a/TweetDck.csproj b/TweetDck.csproj
index 32590bd1..d43782d9 100644
--- a/TweetDck.csproj
+++ b/TweetDck.csproj
@@ -129,6 +129,12 @@
     <Compile Include="Core\Other\FormPlugins.Designer.cs">
       <DependentUpon>FormPlugins.cs</DependentUpon>
     </Compile>
+    <Compile Include="Core\Other\Settings\Dialogs\DialogSettingsCSS.cs">
+      <SubType>Form</SubType>
+    </Compile>
+    <Compile Include="Core\Other\Settings\Dialogs\DialogSettingsCSS.Designer.cs">
+      <DependentUpon>DialogSettingsCSS.cs</DependentUpon>
+    </Compile>
     <Compile Include="Core\Other\Settings\Dialogs\DialogSettingsCefArgs.cs">
       <SubType>Form</SubType>
     </Compile>