diff --git a/installer/resources/themes/console/midnight/console.css b/installer/resources/themes/console/midnight/console.css
new file mode 100644
index 0000000000000000000000000000000000000000..38f83a7d711fc18c08d80b099d6309d0f250232c
--- /dev/null
+++ b/installer/resources/themes/console/midnight/console.css
@@ -0,0 +1,817 @@
+/* I2P Theme: Midnight */
+/* I2P Description: Minimalist Midnight Blue, based on Classic theme.*/
+/* Author: Dr|Z3d */
+
+
+body {
+     margin: 2px 0 0 2px;
+     padding: 0;
+     text-align: left;
+     background: #000;
+     color: #eef;
+     font: 9pt/140% "Lucida Sans Unicode", "Bitstream Vera Sans", Verdana, Tahoma, Helvetica, sans-serif;
+}
+
+.hide {
+     display: none;
+}
+
+img {
+     border: none;
+}
+
+pre {
+     overflow: auto;
+     font-size: 8pt !important;
+     width: 95%;
+     padding-top: 10px;
+}
+
+/* http proxy error sidepanel */
+
+div.logo {
+     float: left;
+     position-relative: top 15px ;
+     width: 200px;
+     margin: 0 0 0 20px;
+     padding: 10px 5px;
+     text-align: center;
+     border: 1px solid #99f;
+     background-color: #00000A;
+     -moz-box-shadow: inset 0px 0px 0px 2px #00000A;
+     -khtml-box-shadow: inset 0px 0px 0px 2px #00000A;
+}
+
+div.logo hr {
+     color: #99f;
+     background: #99f;
+     height: 1px;
+     border: 0px solid #99f;
+     margin: 8px -3px;
+}
+
+div.logo a:link, div.logo a:visited {
+     text-shadow: 0px 0px 1px rgba(0, 0, 32, 0.3);
+}
+
+div.logo a:active {
+     text-shadow: 0px 0px 1px rgba(255, 96, 0, 0.5);
+     color: #f60;
+}
+
+div.logo a:hover {
+     text-shadow: 0px 0px 1px rgba(128, 0, 0, 0.5);
+     color: #f90;
+}
+
+/* http proxy error warning */
+
+div.warning {
+     margin: 20px 20px 10px 260px;
+     padding: 0px 20px 20px 75px;
+     background: #001;
+     border: 1px solid #99f;
+     text-align: left;
+     color: inherit;
+     background-image:url("../images/itoopie_sm.png");     
+     background-position: 12px center;
+     background-repeat:no-repeat;
+     -moz-box-shadow: inset 0px 0px 0px 1px #f60;
+     -khtml-box-shadow: inset 0px 0px 0px 1px #f60;
+}
+
+div.warning a:link {
+     color: #f60;
+     text-shadow: 0px 0px 1px rgba(255, 96, 0, 0.3);
+}
+
+div.warning a:visited{
+     color: #f90;
+}
+
+div.warning a:hover{
+     color: #f90;
+  text-shadow: 0px 0px 1px rgba(255, 128, 0, 0.5);
+}
+
+div.warning a:active{
+     color: #900;
+}
+
+div.warning hr {
+     color: #fb7;
+     background: #fb7;
+     height: 1px;
+     border: 0px solid #fb7;
+     margin: 10px 0 5px 0;
+}
+
+div.warning h3 {
+     border-bottom: 1px solid #fb7;
+     padding-bottom: 10px;
+}
+
+/* console error messages */
+
+div.sorry {
+     padding: 20px;
+     background: #003;
+     margin: -2px 1px 0 200px;
+     border: 1px solid #99f;
+     text-align: justify;
+     -moz-box-shadow: inset 0px 0px 0px 1px #d00;
+     word-wrap: break-word;
+     font-weight: bold;
+     color: #eef;
+}
+
+div.sorry hr {
+     color: #eef;
+     background: #eef;
+     height: 1px;
+     border: 1px solid #99f;
+     margin: 10px 0;
+}
+
+div.toolbar {
+     margin: 0em 0em 2em 0em;
+     font-weight: bold;
+     display: none !important;
+}
+
+div.routersummaryouter {
+     float: left; 
+     width: 200px;
+     margin: 0 0 5px 0px;
+     padding: 0;
+     border: 0;
+     clear: left; /* fixes a bug in Opera */
+}
+
+div.routersummary { background: #00000A; width: 190px; color: inherit; margin: 0; 
+padding: 10px 1px 7px 1px; text-align: center !important; border: 1px solid 
+#99f; font-size: 9pt; word-wrap: break-word; font: 9pt/125%; -moz-box-shadow: 
+inset 0px 0px 0px 1px #00000A; }
+
+div.routersummary input[type=text] {
+     text-align: right !important;
+}
+
+div.routersummary hr {
+     color: #99f;
+     background: #99f;
+     height: 1px;
+     border-bottom: 0px solid #99f;
+     margin: 8px -1px 7px -1px;
+/*     -moz-box-shadow: inset 0px 1px 1px 1px #99f;*/
+}
+
+div.routersummary h3 {
+     border: 0px solid #f00;
+     font-size: 9.5pt;
+     letter-spacing: 0.05em;
+     margin: -6px 1px -6px 1px;
+     padding: 1px 0;
+     background: #002;
+     text-transform: uppercase;
+}
+
+div.routersummary h3 a {
+     text-decoration: none;
+     line-height: 105%;
+}
+
+div.routersummary h4 {
+     border: 0px solid #f00;
+     border-bottom: 0 !important;
+     font-size: 8.5pt;
+     letter-spacing: 0.05em;
+     margin: -6px 1px -5px 1px !important;
+     padding: 1px 3px;
+     background: #001;
+     text-transform: capitalize;
+     text-decoration: none !important;
+     color: #2b2;
+     line-height: 100% !important;
+}
+
+div.routersummary table {
+     border: 0;
+     text-align: center !important;
+     margin: -5px 0px -5px 2px;
+     width: 185px !important;
+     overflow: hidden;
+     font-size: 8pt;
+     padding: 0 -12px;
+     background-image: none !important;
+     background-color: transparent !important;
+}
+
+div.routersummary a {
+     line-height: 105%;
+}
+
+div.routersummary tr {
+     background-image: none !important;
+     background-color: transparent !important;
+     border: 0 !important;
+}
+
+div.tunnels table{
+     margin: -2px 0 -4px -4px !important;
+     text-align: right !important;
+}
+
+.tunnels tr {
+     padding: 4px 0 !important;
+}
+
+.tunnels td:first-child {
+     padding-right: 2px;
+}
+
+.tunnels td:last-child {
+     width: 16px;
+}     
+     
+div.routersummary form {
+     margin-top: -8px !important;
+     margin-bottom: -8px !important;     
+}
+
+div.refresh {
+     margin-top: 10px !important;
+     margin-bottom: 10px !important;
+     padding: 2px 0 !important;
+}
+
+div.routersummary p {
+     padding: 0;
+}     
+
+div.routersummary a {
+}
+
+div.routersummary a:link, div.routersummary a:visited {
+     text-shadow: 0px 0px 1px rgba(0, 0, 32, 0.3);
+}
+
+div.routersummary a:hover {
+     text-shadow: 0px 0px 1px rgba(255, 96, 0, 0.7);
+     color: #f60;
+}
+
+div.routersummary td {
+     padding: 0 1px;
+     background-image: none !important;
+     border: 0 !important;
+}
+
+div.main {
+     margin: 0px 5px 5px 200px;
+     padding: 15px 15px 10px 15px;
+     background: #00000A;
+     border: 1px solid #99f;
+     border-top: 0;
+     text-align: left;
+     color: #eef;
+     min-width: 570px;
+     -moz-box-shadow: inset 0px 0px 2px 0px #005;
+}
+
+div.main ul {
+     margin: -10px 0 -10px -10px;
+}
+
+div.main li {
+     padding: 0 0 5px 0;
+     list-style: square;
+     word-wrap: break-word;
+     margin-right: 20px;
+}
+
+div.main li:first-child {
+     padding-top: 15px;
+}
+
+div.main hr:last-child {
+     margin: 15px 0 10px 0;
+}
+
+div.main textarea {
+     width: 98% !important; 
+     margin: 2px 0 2px 5px;
+     min-height: 96px;
+     background: #001;
+     color: #eef;
+}
+
+div.main h2 {
+     margin-top: 20px;
+     margin-bottom: -5px;
+}
+
+div.welcome {
+     margin-top: 5px;
+}
+
+div.main h2:first-child, div.main h3:first-child {
+     margin-top: 0px; 
+     margin-bottom: -5px;
+}
+
+div.wideload h2 {
+     margin-bottom: 0px !important;
+}
+
+div.wideload h3:first-child {
+     margin-top: 0 !important;
+}
+
+div.wideload h3 {
+     margin-top: 15px !important;      
+     margin-bottom: 0px !important;
+}
+
+div.wideload p !important {
+     margin-top: 5px;
+}
+
+div.news {
+     margin: -1px 5px 0 200px;
+     padding: -10px 0px 8px 0px;
+     background: #001;
+     border: 1px solid #99f;
+     text-align: right;
+     color: #99f;
+     min-width: 600px;
+     padding-bottom: 8px;
+     padding-left: 10px;
+     padding-right: 10px;
+     -moz-box-shadow: inset 0px 0px 4px 2px #00000A;
+     font-size: 7pt;
+}
+
+/* convert the list entry to our title */
+
+div.news li {
+     text-align: justify;
+     list-style: none;
+     margin: 15px 15px -10px -20px;
+     padding: 0px 0 15px 0;
+     border-bottom: 1px dotted #99f;
+     border-top: 0px solid #99f;     
+     padding: 3px 5px 5px 0;
+     font-size: 10pt;
+     color: #eef;
+     text-transform: capitalize;
+}
+
+div.news p {
+     color: #eef;
+     font-size: 9pt;
+     margin-bottom: -10px;
+}
+/*
+div.news p:first-child {
+     padding-top: 15px !important;
+}
+
+ 
+div.news p:nth-child(2n) {
+     padding-top: 15px !important;
+}
+*/
+div.news p:last-child {
+     margin-bottom: 10px;
+}
+
+div.news a:link {
+     color: #aaf;
+     text-shadow: 0px 0px 1px rgba(128, 128, 48, 0.3);
+}
+
+div.news a:visited {
+     color: #99f !important;
+     text-shadow: 0px 0px 1px rgba(128, 128, 48, 0.3);
+}
+
+div.news hr {
+     color: #99f;
+     background: #99f;
+     height: 1px;
+     border: 0px solid #99f;
+     margin: 2px 0 2px 0;
+}
+
+div.confignav {
+     padding: 12px 0 15px 0;
+     background: #000018;
+     margin: -10px -16px 0 -16px;
+     border: 1px solid #99f;
+     -moz-box-shadow: inset 0px 0px 4px 2px #00000A;
+}
+
+div.configure {
+     margin: 1px -20px 0 -20px;
+     padding: 0px 20px 0px 20px;
+}
+
+div.configure hr {
+     margin: 15px 0;
+}
+
+div.configure table {
+     font-size: 9pt;
+     font-weight: bold;
+     border: 1px solid #99f;
+}
+
+div.configure tr, div.configure td {
+     padding: 10px 2px;
+}
+
+div.configure tr {
+     -moz-box-shadow: inset 0px 0px 1px 0px #000;
+}
+
+div.configure li:first-child, div.main li:first-child {
+     margin-top: -10px;
+}
+
+div.configure li:last-child {
+     margin-bottom: -5px;
+}
+
+div.configure h2:first-child {
+     margin-top: 15px;
+}
+
+.topshimten {
+     margin-top: 15px;
+     margin-bottom: 15px;
+} 
+
+div.messages {
+     padding: 0px 10px;
+     background: #001;
+     border: 1px solid #99f;
+     border-right: 0;
+     margin: -1px -15px 10px -16px;
+     text-align: center;
+     font-size: 9pt;
+     font-weight: bold;
+     color: #474;
+     -moz-box-shadow: inset 0px 0px 4px 2px #00000A;
+}
+
+div.messages li, div.messages ul {
+     padding: 10px 0 0 5px;
+     margin: -10px 0 0 0;
+}
+
+div.messages span.error {
+     color: #d00000;
+}
+
+div.messages span.notice {
+     font-style: italic;
+}
+
+h1 {
+     font-size: 18pt;
+     text-shadow: 0px 0px 2px rgba(255, 255, 255, 0.4);
+     text-align: center;
+     border: 1px solid #99f;
+     padding: 13px 10px 12px 10px;
+     margin: 5px 5px 0 200px;
+     line-height: 93%;
+     text-transform: uppercase;
+     letter-spacing: 0.3em;
+     background: #001;
+     min-width: 600px;
+     -moz-box-shadow: inset 0px 0px 4px 2px #00000A;
+     line-height: 100%;
+     color: #fff;
+}
+
+h2 {
+     font-size: 14pt;
+     padding: 5px 10px 10px 10px;
+     border: 1px solid #99f;
+     border-top: 1px solid #99f;
+     letter-spacing: 0.04em;
+     background: #000008;
+}
+
+h3 {
+     font-size: 12pt;
+     padding: 0 10px 10px 10px;
+     border-bottom: 1px solid #99f;
+     border-top: 0px solid #99f;
+     letter-spacing: 0.04em;
+     margin-bottom: 10px;
+     font-weight: bold !important;
+     text-transform: capitalize;
+}
+
+h3 a {
+     font-weight: bold !important;
+}
+
+.proxyfooter{
+     font-size: 7pt;
+     display: none !important;
+}
+
+table {
+     border-collapse: collapse; 
+     border: 1px solid #99f;
+     margin: 0 0 5px 0;
+     cell-padding: 1px;
+     font-size: 7.5pt;
+     background: #000;
+     width: 100%;
+}
+
+table hr {
+     padding: 0px 0;
+     color: #000;
+     background: #000;
+     border: 0px solid #99f;
+     margin: 0px -5px;
+     height: 1px;
+}
+
+table tt {
+     font-size: 7.5pt;
+}
+
+th {
+     background-color: #000;
+     padding: 8px 2px;
+     text-align: center;
+     border-bottom: 1px solid #99f;
+}
+
+tt {
+     font-size: 8pt;
+}
+
+tt, pre {
+     font: 8pt "Lucida Console", "DejaVu Sans Mono", Courier, mono;
+}
+     
+td {
+     padding: 4px;
+}
+
+tr:nth-child(even) {
+     background-color: #001;
+}
+
+tr:nth-child(odd) {
+     background-color: #000009;
+}
+
+hr {
+     color: #99f;
+     background: #99f;
+     height: 1px;
+     border: 0px solid #99f;
+     margin: 3px 0;
+}
+
+.statusnotes {
+     font-style: italic;
+     font-size: 8pt;
+     color: #eef;
+     text-align: center;
+     margin: -7px 0 7px 0; 
+     background: #000;
+     border: 1px solid #99f;
+     border-top: 0;
+     padding: 4px 0 2px 0;
+}
+
+div.joblog {
+     margin: 10px 0;
+     line-height: 130% !important;
+     font-size: 90%;
+}
+
+div.joblog li {
+     word-wrap: break-word !important;
+     text-align: left !important;
+     line-height: 130% !important;
+     margin-right: 10px;
+}
+
+div.joblog li i {
+     color: #bbb;
+     text-transform: capitalize;
+     font-style: normal;
+     font-weight: bold;
+}
+
+div.joblog ul {
+     word-wrap: break-word !important;
+     text-align: justify;
+}
+
+div.joblog li:first-child {
+     margin-top: -10px;
+}
+
+div.joblog li:last-child {
+     margin-bottom: -10px;
+}
+
+div.joblog form:first-child {
+     margin-top: 10px;
+}
+
+div.joblog table {
+     margin-top: 15px;
+}
+
+div.joblog p {
+     line-height: 130%;
+}
+
+div.joblog h3 {
+     margin: 10px 0 20px 0;
+}
+
+div.joblog h3:first-child {
+     margin: 5px 0 15px 0;
+}
+
+div.joblog hr {
+     margin: 15px 0 15px;
+}
+
+div.joblog ol {
+     margin-bottom: 0px;
+}
+ 
+input {
+     margin: 3px 5px 3px 0;
+     vertical-align: middle;
+}
+
+input[type=text] {
+     margin: 3px 5px 3px 5px;
+     vertical-align: middle;
+}
+
+select {
+     margin: 3px 5px 3px 5px;
+     vertical-align: middle;
+}
+
+input[type=text], select {
+     background: #001;
+     color: #eef;
+     border: 1px solid #99f;
+}
+submit {
+     margin: 3px 5px 3px 5px;
+     padding 2px 0;
+     font: 8pt/140% "Lucida Sans Unicode", "Bitstream Vera Sans", Verdana, Tahoma, Helvetica, sans-serif;
+}
+
+p {
+     padding: 5px 20px 0px 20px;
+     text-align: justify;
+}
+
+.formaction {
+     text-align: right;
+     margin: -10px -5px;
+}
+
+.langbox {
+     margin: 15px -20px 0px 5px;
+     color: #eef;
+     font-size: 7pt;
+     width: 220px;
+     text-align: center;
+     float: right;
+     valign: middle;
+}
+
+.langbox img {
+     padding: 0 2px; /* Ignored by IE8 */
+}
+
+.links {
+     padding-bottom: -2px;
+     text-align: justify;
+     margin-top: 5px !important;
+}
+
+.links li {
+     list-style-image: url("../images/link_dark.png") !important;
+}
+
+a:link{
+     color: #bbf;
+     text-decoration: none;
+     font-weight: bold;
+     word-wrap: break-word;
+}
+
+a:visited{
+     color: #99f;
+     text-decoration: none;
+     font-weight: bold;
+}
+
+a:hover{
+     color: #f60;
+     text-decoration: underline;
+     font-weight: bold;
+}
+
+a:active{
+     color: #f93;
+     text-decoration: underline;
+     font-weight: bold;
+}
+
+pre {
+     font-size: 9pt;
+     margin: 0px 20px;
+}
+
+tt {
+     font-size: 9pt;
+     font-weight: bold;
+     color: darkgreen;
+}
+
+.tablefooter {
+     border: 1px solid #99f;
+}
+
+.tablefooter tr, .tablefooter td {
+     background: #000;
+     font-size: 8pt;
+     font-weight: bold;
+     line-height: 150%;
+     word-wrap: nowrap;
+     padding: 8px 1px;
+     border-top: 2px solid #99f;
+}
+
+.tidylist {
+     text-align: justify;
+     padding-right: 30px;
+     margin-right: 20px;
+}
+
+div.graphspanel {
+     padding: 5px 0px 20px 0px;
+     margin: -16px -16px -11px -16px;
+     background: #000012;
+     -moz-border-radius: 4px;
+     -khtml-border-radius: 4px;
+     border-radius: 4px;
+     border: 1px solid #99f;
+     -moz-box-shadow: inset 0px 0px 1px 0px #002;
+     text-align: center !important;   
+}
+
+div.graphspanel img {
+     border: 1px solid #77f;
+     padding: 2px;
+     margin: 6px;
+     background: #ccf;
+     -moz-box-shadow: inset 0px 0px 0px 0px #002;
+     opacity: 0.9;
+}
+
+div.graphspanel img:hover {
+     border: 1px solid #003;
+     padding: 2px;
+     margin: 6px;
+     text-align: center !important;
+     background: #eef;
+     -moz-box-shadow: inset 0px 0px 2px 1px #f60;
+     opacity: 1;
+}
+
+div.graphspanel hr {
+     margin: 10px 0;
+}
+
+div.graphspanel form:last-child {
+     text-align: left;
+     margin: 0 20px;
+}
+
+div.graphspanel h3 {
+     text-align: left;
+     margin: 10px 20px 10px 20px;
+}
\ No newline at end of file
diff --git a/installer/resources/themes/console/midnight/console_big.css b/installer/resources/themes/console/midnight/console_big.css
new file mode 100644
index 0000000000000000000000000000000000000000..34a3f5180e29b436201ae450716c2fc91e798e49
--- /dev/null
+++ b/installer/resources/themes/console/midnight/console_big.css
@@ -0,0 +1,61 @@
+/* I2P Theme: I2P Classic & Midnight Theme Override */
+/* I2P Description: Larger fontsize override for sidepanel to accomodate foreign charactersets */
+/* Author: Dr|Z3d */
+
+
+/* sidepanel */
+
+div.routersummary {
+     font: 9.5pt/125%;
+}
+
+div.routersummary h3 {
+     font-size: 12.5pt;
+}
+
+div.routersummary h4 {
+     font-size: 11.5pt;
+     letter-spacing: 0;
+}
+
+div.routersummary table {
+     font-size: 9pt;
+     margin: -5px 0px -5px 1px;
+     width: 188px !important;
+}
+
+div.routersummary table a:link, div.routersummary table a:visited {
+     font-size: 10.5pt;
+}
+
+div.tunnels a{
+     font-size: 8pt !important;
+}
+
+/* global overrides */
+
+a, b, div.routersummary h3 a, div.routersummary h4 {
+    font-weight: normal !important;
+    font-size: 100%;
+}
+
+body {
+     font: 10pt Verdana, "Bitstream Vera Sans", Helvetica, Sans, sans-serif;
+}
+
+div.main, div.main p, div.news p {
+     line-height: 140%;
+}
+
+div.joblog li i {
+     font-weight: normaL;
+}
+
+b, div.joblog b {
+    color: #ee8;
+    font-size: 110%;
+}
+
+table code {
+     font-size: 120%;
+}
\ No newline at end of file
diff --git a/installer/resources/themes/console/midnight/default.css b/installer/resources/themes/console/midnight/default.css
new file mode 100644
index 0000000000000000000000000000000000000000..61c8dc03f9e6d38d4c0087de9dd2f6178a5fc119
--- /dev/null
+++ b/installer/resources/themes/console/midnight/default.css
@@ -0,0 +1,239 @@
+/* I2P Theme: Midnight - I2P Tunnel Manager */
+/* I2P Description: Minimalist Midnight Blue, based on Classic theme.*/
+/* Author: Dr|Z3d */
+
+body {
+     margin: 0px;
+     padding: 0px;
+     text-align: center;
+     font: 10pt/140% "Lucida Sans Unicode", "Bitstream Vera Sans", Verdana, Tahoma, Helvetica, sans-serif;
+     background: #000;
+     color: #eef;
+     -moz-box-sizing: border-box;
+     box-sizing: border-box;
+}
+
+div {
+     -moz-box-sizing: border-box;
+     box-sizing: border-box;
+}
+
+h4, label {
+     margin: 0px;
+     padding: 2px;
+     float: left;
+     width: 150px;
+     height: 24px;
+     font-weight: normal;
+     text-align: right;
+     font-size: 8.5pt;
+     -moz-box-sizing: border-box;
+     box-sizing: border-box;
+}
+
+h4 {
+     font-size: 10.5pt;
+     text-align: center !important;
+     font-weight: bold;
+     border: 1px solid #99f;
+     border-top: 2px solid #99f;
+     margin: -6px 0 5px -10px !important;
+     padding: 5px 10px 25px 10px;
+     background: #001;
+     text-shadow: 0px 0px 1px rgba(32, 32, 192, 0.3);
+     text-transform: uppercase;
+     white-space: nowrap;
+     width: 782px;
+     letter-spacing: 0.09em;
+}
+
+label {
+     font-style: italic;
+     margin: 0 3px 0 -3px;
+}
+
+a {
+     text-decoration: none;
+}
+
+form {
+     margin: 0px;
+}
+
+textarea, input, select, button, a {
+     -moz-box-sizing: border-box;
+     box-sizing: border-box;
+     font: 8pt "Lucida Sans Unicode", "Bitstream Vera Sans", Verdana, Tahoma, Helvetica, sans-serif;
+     float: left;
+     margin: 2px 0 5px 0;
+     background: #001;
+     color: #eef;
+}
+
+button {
+     float: none;
+     height: 20px !important;
+}
+
+textarea {
+     border: 1px solid #99f;
+     background: #000;
+     color: #eef;
+}
+
+br {
+     clear: left;
+}
+
+div.statusNotRunning {
+     float: left;
+     width: 82px;
+     height: 24px;
+     color: #d00;
+}
+
+div.statusRunning {
+     float: left;
+     width: 82px;
+     height: 24px;
+     color: #0d0;
+}
+
+div.statusStarting {
+     float: left;
+     width: 82px;
+     height: 24px;
+     color: #393;
+}
+
+hr {
+     display: none;
+}
+
+.separator, .subdivider {
+     clear: both;
+     height: 1px;
+     margin: 5px -8px 5px -8px;
+     border-bottom: 1px solid #99f;
+}
+
+.subdivider {
+     border-bottom: 1px dotted #99f;
+     margin: 0 0 10px 0;
+}
+
+.freetext {
+     width: 150px;
+     height: 22px;
+     border: 1px solid #99f;
+}
+
+.control {
+     margin: 2px;
+     padding: 2px;
+     overflow: hidden;
+     height: 20px;
+     width: 60px;
+     font-weight: bold;
+     background: #ddd;
+     color: #001 !important;
+     border: 1px outset #ddddc0;
+     text-align: center;
+     vertical-align: middle;
+     white-space: nowrap;
+     text-decoration: none;
+}
+
+.control:hover {
+     background: #229;
+     color: #fff;
+     text-decoration: none;
+}
+
+.control:active {
+     border: 2px inset;
+}
+
+.panel {
+     width: 790px;
+     margin: 16px auto 16px auto;
+     padding: 5px 10px;
+     overflow: hidden;
+     text-align: left;
+     font-size: 8pt;
+     background: #001;
+     border: 4px solid #99f;
+     -moz-box-shadow: inset 0px 0px 0px 1px #99f;
+}
+
+.panel .footer {
+
+     padding: 4px;
+}
+
+.toolbox {
+     width: 100%;
+}
+
+.rowItem {
+     width: 750px;
+     float: left;
+     margin: 0px;
+}
+
+.comment {
+     font-style: italic;
+     white-space: nowrap;
+}
+
+.text {
+     height: 24px;
+     width: 150px;
+     padding: 2px 0 0 2px;
+     float: left;
+     margin: 0;
+     font-weight: bold;
+}
+
+.accessKey {
+     text-decoration: underline;
+}
+
+#globalOperationsPanel {
+     background: #001;
+     border: 4px solid #99f;
+     -moz-box-shadow: inset 0px 0px 0px 1px #900;
+     padding: 5px 5px 10px 5px;
+     text-align: right;
+}
+
+#globalOperationsPanel .control {
+     width: 100px !important;
+     margin-top: 3px; 
+     float: right;
+}
+
+a:link{
+     color: #bbf;
+     text-decoration: none;
+     font-weight: bold;
+     word-wrap: break-word;
+}
+
+a:visited{
+     color: #aaf;
+     text-decoration: none;
+     font-weight: bold;
+}
+
+a:hover{
+     color: #f60;
+     text-decoration: underline;
+     font-weight: bold;
+}
+
+a:active{
+     color: #f93;
+     text-decoration: underline;
+     font-weight: bold;
+}
\ No newline at end of file
diff --git a/installer/resources/themes/console/midnight/i2ptunnel.css b/installer/resources/themes/console/midnight/i2ptunnel.css
new file mode 100644
index 0000000000000000000000000000000000000000..2128c7e737a96e9b75afb96ab328a0c1cadf483a
--- /dev/null
+++ b/installer/resources/themes/console/midnight/i2ptunnel.css
@@ -0,0 +1,180 @@
+/* I2P Tunnel Edit Page
+*/
+
+#tunnelEditPage input {
+    width : 458px;
+}
+
+#tunnelEditPage select {
+    width : 308px;
+}
+
+#tunnelEditPage option[selected] {
+    color: green;
+}
+
+#tunnelEditPage #targetField,
+#tunnelEditPage #accessField,
+#tunnelEditPage #optionsField {
+    height : 48px;
+    width : 150px;
+}
+#tunnelEditPage #tunnelOptionsField {
+    height : 96px;
+    width : 150px;
+}
+
+#tunnelEditPage #targetField label,
+#tunnelEditPage #accessField label,
+#tunnelEditPage #tunnelOptionsField label,
+#tunnelEditPage #optionsField label{
+    height : 48px;
+    width : 150px;
+}
+
+#tunnelEditPage #reachField,
+#tunnelEditPage #hostField,
+#tunnelEditPage #depthField,
+#tunnelEditPage #countField,
+#tunnelEditPage #optionsHostField {
+    width : 304px;
+    margin-right: 4px;
+}
+
+#tunnelEditPage #portField, 
+#tunnelEditPage #optionsPortField, 
+#tunnelEditPage #backupField,
+#tunnelEditPage #varianceField {
+    width : 150px;
+
+}
+
+#tunnelEditPage #reachField label,
+#tunnelEditPage #hostField label,
+#tunnelEditPage #portField label,
+#tunnelEditPage #optionsHostField label, 
+#tunnelEditPage #optionsPortField label, 
+#tunnelEditPage #depthField label,
+#tunnelEditPage #countField label,
+#tunnelEditPage #backupField label,
+#tunnelEditPage #varianceField label {
+    text-align : left;
+    
+}
+
+#tunnelEditPage #otherField label {
+    width : 300px;
+}
+
+#tunnelEditPage #reachableByOther,
+#tunnelEditPage #tunnelDepth, 
+#tunnelEditPage #tunnelQuantity,
+#tunnelEditPage #targetHost, 
+#tunnelEditPage #clientHost {
+    width : 306px;
+}
+
+#tunnelEditPage #port {
+    width : 80px;
+}
+
+#tunnelEditPage #targetPort,
+#tunnelEditPage #clientPort,
+#tunnelEditPage #tunnelBackupQuantity,
+#tunnelEditPage #tunnelVariance {
+    width : 150px;
+}  
+
+#tunnelEditPage #shared,
+#tunnelEditPage #connectDelay,
+#tunnelEditPage #startOnLoad {
+    width : 16px;
+}
+
+#tunnelEditPage label {
+    width : 150px;
+    font-weight : bold;
+    text-align : right;
+    float : left;
+}
+
+/* I2P Tunnel List Page
+*/
+
+#tunnelListPage .rowItem {
+    width : 150px;
+}
+
+#tunnelListPage select {
+    width : 150px;
+}
+
+#tunnelListPage textarea {
+    width : 100%;
+    height : 88px;
+    padding : 0 0 0 4px;
+    color: green;
+    margin-bottom: 7px;
+}
+
+#tunnelListPage .footer .control {
+    margin-left: 2px;
+}
+
+#tunnelListPage .footer label {
+    text-align : right;
+    height : 24px;
+    width : 360px;
+    float : left;
+
+}
+
+/* Use Leary and Langridge content replacement methods (LIR)
+** to embed accessibility information into the document.
+** Should allow the lists to be rendered nicely by
+** screen readers. (and lynx!)
+*/
+
+#tunnelListPage label {
+    height : 0;
+    width : 0;
+    overflow : hidden;
+}
+
+#tunnelListPage .nameHeaderField label,
+#tunnelListPage .portHeaderField label,
+#tunnelListPage .typeHeaderField label,
+#tunnelListPage .interfaceHeaderField label,
+#tunnelListPage .targetHeaderField label,
+#tunnelListPage .previewHeaderField label,
+#tunnelListPage .statusHeaderField label {
+    text-align : left;
+    width : 150px;
+    height : 24px;
+    float : left;
+}
+
+#tunnelListPage .targetField,
+#tunnelListPage .targetField .text,
+#tunnelListPage .targetHeaderField,
+#tunnelListPage .targetHeaderField label {
+    width : 300px;
+}
+
+#tunnelListPage .descriptionField,
+#tunnelListPage .destinationField {
+    width : 750px;
+}
+
+#tunnelListPage .descriptionField .text,
+#tunnelListPage .destinationField input {
+    width : 450px;
+}
+
+#tunnelListPage .descriptionField label,
+#tunnelListPage .destinationField label {
+    text-align : right;
+    width : 150px;
+    height : 24px;
+    float : left;
+}
diff --git a/installer/resources/themes/console/midnight/ieshim.css b/installer/resources/themes/console/midnight/ieshim.css
new file mode 100644
index 0000000000000000000000000000000000000000..4feeadb80ca34b3ab6464bb9981e8754c5e2cad7
--- /dev/null
+++ b/installer/resources/themes/console/midnight/ieshim.css
@@ -0,0 +1,258 @@
+/* I2P Theme: Midnight - IE Override */
+/* I2P Description: Minimalist Midnight Blue, based on Classic theme.*/
+/* Author: Dr|Z3d */
+
+/* Welcome to the wonderful world of kludgey IE fixes */
+/* Note not fully tested with Midnight theme */
+
+.wideload {
+     overflow: auto;
+     width: 100%;
+}
+
+.formaction {
+     text-align: left !important;
+     margin: -10px 0 10px 0;
+}
+
+div.configure {
+     text-align: center;
+}
+
+div.configure p, div.configure table  {
+     text-align: justify;
+}
+
+div.main ul {
+     margin-right: 20px;
+}
+
+div.configure textarea {
+     width: 450px !important;
+}
+
+div.configure input {
+     margin-left: 5px;
+}
+
+div.configure table {
+     width: 550px !important;
+     text-align: center;
+}
+
+h1 {
+     padding: 15px 10px 16px 10px !important;
+     margin: 0 0px 0 17	5px !important;
+     background-color: #000 !important; /* background page color to fix overflow issue */
+     color: #eef;
+}
+
+h2 {
+     padding-top: 0;
+     text-align: left !important;
+}
+
+h3 {
+     margin-top: 10px;
+     text-align: left !important
+}
+
+div.confignav {
+     padding: 15px 0 15px 0;
+     border-left: 0px;
+     margin-left: -15px;
+     border-top: 5px solid #000;
+     margin-bottom: 10px !important;
+}
+
+div.messages {
+     border-left: 0;
+     border-right: 0;     
+     margin: -10px -15px 0px -15px;
+}
+
+div.main, div.news {
+     margin: -5px 0px 10px 185px;
+     border: 5px solid #000;
+}
+
+div.main hr, div.news hr {
+     margin: 0;	
+}
+
+div.main {
+     border-top: 5px solid #000;
+}
+
+div.news {
+     border-left: 5px solid #000;
+     margin: -5px 0px 0 185px;
+     padding-bottom: 8px;
+}
+
+div.news hr {
+     color: #bbf;
+     background: #bbf;
+     height: 3px;
+     border: 0px;
+     margin: 0 -10px 0 -13px !important;
+}     
+
+div.routersummary {
+     color: #001;
+     padding-left: 0px;
+     border-left: 5px solid #bbf;
+     text-align: center !important;
+     overflow: hidden; /* prevents IE from borking the sidepanel */
+}
+
+div.routersummary submit {
+     padding: 0;
+     margin-bottom: 5px;
+}
+
+div.routersummary input[type=text] {
+     text-align: right !important;
+}
+
+div.routersummary hr {
+     color: #eef;
+     background: #eef;
+     height: 2px;
+     border-bottom: 1px solid #eef;
+     margin: 8px 1px 7px 1px;
+     -moz-box-shadow: inset 0px 1px 1px 1px #99f;
+}
+
+div.routersummary h3 {
+     border: 0px solid #f00;
+     text-align: center !important;
+     font-size: 9pt;
+     letter-spacing: 0.05em;
+     margin: -14px 0px -15px 1px;
+     padding: 5px 0px 5px 0px;
+     background: #c5d5fb;
+     text-transform: uppercase;
+}
+
+div.routersummary h4 {
+     border: 0px solid #f00;
+     border-bottom: 0 !important;
+     font-size: 8.5pt;
+     letter-spacing: 0.05em;
+     margin: -14px 0px -15px 1px !important;
+     padding: 2px 3px 3px 3px;
+     background: #c1d1f7;
+     text-transform: capitalize;
+     text-decoration: none !important;
+     color: #2b2;
+     text-align: center !important;
+}
+
+div.routersummary table {
+     border: 0;
+     text-align: center !important;
+     margin: -5px 5px;
+     width: 175px !important;
+     overflow: hidden;
+     font-size: 8pt;
+     padding: 0px -10px;
+     background-image: none !important;
+     background-color: transparent !important;
+     text-align: center !important;
+}
+
+div.routersummary tr {
+     background-image: none !important;
+     background-color: transparent !important;
+     border: 0 !important;
+}
+
+div.routersummary form {
+     margin-top: -25px !important;
+     margin-bottom: -25px !important;
+     text-align: center !important;
+}
+
+div.routersummary p {
+     padding: 0;
+}     
+
+/*
+div.routersummary img {
+     margin: 5px -10px -5px -10px;
+     overflow: hidden;
+}     
+*/
+
+div.routersummary a:link, div.routersummary a:visited {
+     text-shadow: 0px 0px 1px rgba(0, 0, 32, 0.3);
+}
+
+div.routersummary a:hover {
+     text-shadow: 0px 0px 1px rgba(255, 96, 0, 0.7);
+     color: #f60;
+}
+
+div.routersummary td {
+     padding: 2px 4px;
+     background-image: none !important;
+     border: 0 !important;
+}
+
+div.routersummary tr:nth-child(even) {
+     background-color: #f60;
+     background-image: none !important;
+}
+
+div.routersummarytr:nth-child(odd) {
+     background-color: #f00;
+     background-image: none !important;
+}
+
+div.news li {
+     padding-top: 0px	0px !important;
+     margin-bottom: -23px !important;
+}
+
+div.logo {
+}
+
+div.warning {
+     padding: 0px 20px 20px 80px;
+     margin-top: -20px;
+     margin-left: -10px !important;
+}
+
+.langbox {
+     margin: 22px -20px 0px 5px;
+}
+
+td {
+     text-align: left;
+}
+
+th {
+     text-align: left;
+     padding-left: 3px; 
+     padding-right: 1px;
+}
+
+div.configure hr{
+     margin: 10px 0 15px 0;
+}
+
+input {
+     padding: 0;
+}
+
+div.graphspanel img {
+     border: 1px solid #99f;
+     margin: 6px 0 !important;
+     background: #ddf;
+     -moz-box-shadow: inset 0px 0px 1px 1px #99f;
+}
+
+div.graphspanel hr {
+     margin: 20px 0;
+}
\ No newline at end of file
diff --git a/installer/resources/themes/console/midnight/images/i2plogo.png b/installer/resources/themes/console/midnight/images/i2plogo.png
new file mode 100644
index 0000000000000000000000000000000000000000..1567c881414257f2455f92ac224d20914ec133b7
Binary files /dev/null and b/installer/resources/themes/console/midnight/images/i2plogo.png differ