body.dark-mode {
  --color-primary: #9fd368;
  --bg-color: #2d2d2d;
  --text-color: #e0e0e0;
  --border-color: #888888;
  --navbar-bg: #2d2d2d;
  --dropdown-header-bg: #3a3a3a;
  --dropdown-header-text: #e0e0e0;
  --dropdown-open-gradient-start: #333333;
  --dropdown-open-gradient-end: #404040;
  --code-bg: #333333;
  --code-text: #e0e0e0;
  --footer-icon-color: #888888;
  --footer-icon-hover: #aaaaaa;
  --copyright-border: #888888;
  --copyright-text: #888888;
  --link-color: #66aaff;
  --callout-border: #888888;
  --news-border: #888888;
  --news-gradient-end: #1a1a1a;
  --download-os-text: rgb(85,85,85);
  --download-os-bg: white;
}

body.dark-mode a {
  color: var(--link-color);
}

body.dark-mode .navbar-default .navbar-nav > li > a {
  color: var(--text-color);
}

body.dark-mode .navbar-default .navbar-nav > li > a:hover,
body.dark-mode .navbar-default .navbar-nav > li > a:focus {
  color: var(--link-color);
  background-color: var(--dropdown-open-gradient-start);
}

body.dark-mode .navbar-default .navbar-toggle {
  border-color: #666666;
  background-color: transparent;
  outline: none;
}

body.dark-mode .navbar-default .navbar-toggle .icon-bar {
  background-color: var(--text-color);
}

body.dark-mode .navbar-default .navbar-toggle:hover,
body.dark-mode .navbar-default .navbar-toggle:not(.collapsed) {
  background-color: #444444;
}

body.dark-mode .navbar-default .navbar-toggle:hover .icon-bar,
body.dark-mode .navbar-default .navbar-toggle:not(.collapsed) .icon-bar {
  background-color: white;
}

body.dark-mode .dropdown-menu {
  background-color: #2d2d2d;
  border-color: var(--border-color);
}

body.dark-mode .dropdown-menu > li > a {
  color: var(--text-color);
}

body.dark-mode .dropdown-menu > li > a:hover,
body.dark-mode .dropdown-menu > li > a:focus {
  background-color: var(--dropdown-open-gradient-start);
  color: var(--link-color);
}

body.dark-mode .dropdown-menu .divider {
  background-color: var(--border-color);
}

body.dark-mode .news-item {
  background-color: #2d2d2d;
}

body.dark-mode .news-info {
  color: var(--text-color);
}

body.dark-mode .news-content {
  color: var(--text-color);
}

body.dark-mode .news-content a {
  color: var(--link-color);
}

body.dark-mode h2,
body.dark-mode h3,
body.dark-mode h4,
body.dark-mode h5,
body.dark-mode h6 {
  color: var(--text-color);
}

body.dark-mode table {
  background-color: #2d2d2d;
  color: var(--text-color);
}

body.dark-mode th {
  background-color: #3a3a3a;
  border-color: var(--border-color);
}

body.dark-mode td {
  border-color: var(--border-color);
}

body.dark-mode .table-striped > tbody > tr:nth-of-type(odd) {
  background-color: #333333;
}

body.dark-mode pre {
  background-color: #333333;
  border-color: var(--border-color);
  color: var(--text-color);
}

body.dark-mode pre code {
  background-color: transparent;
  color: var(--text-color);
}

body.dark-mode .btn-default {
  background-color: #3a3a3a;
  border-color: var(--border-color);
  color: var(--text-color);
}

body.dark-mode .btn-default:hover,
body.dark-mode .btn-default:focus {
  background-color: #444444;
  border-color: var(--border-color);
}

body.dark-mode .form-control {
  background-color: #2d2d2d;
  border-color: var(--border-color);
  color: var(--text-color);
}

body.dark-mode .form-control:focus {
  border-color: var(--link-color);
  box-shadow: 0 0 5px rgba(102, 170, 255, 0.3);
}

body.dark-mode .help-block,
body.dark-mode .control-label {
  color: var(--text-color);
}

body.dark-mode .sr-only-focusable:active,
body.dark-mode .sr-only-focusable:focus {
  color: var(--text-color);
}

/* Re-quickstart form dark mode overrides */
body.dark-mode #re-quickstart-form table tr {
  border-top: solid 1px var(--border-color);
}

body.dark-mode #re-quickstart-form td.control input[type="button"] {
  background-color: #f0f0f0;
  color: #333333;
  border: solid 1px #aaaaaa;
  box-shadow: 2px 2px 5px rgba(0, 0, 0, 0.5);
}

body.dark-mode #re-quickstart-form td.control input[type="button"]:disabled {
  background-color: #555555;
  color: #999999;
  border: solid 1px #666666;
}

body.dark-mode #re-quickstart-form td.control input[type="button"]:active {
  background-color: #dddddd;
  color: #333333;
}

body.dark-mode #re-quickstart-form input[type="text"],
body.dark-mode #re-quickstart-form input[type="number"],
body.dark-mode #re-quickstart-form input[type="email"],
body.dark-mode #re-quickstart-form select,
body.dark-mode #re-quickstart-form textarea {
  background-color: #2d2d2d;
  color: var(--text-color);
  border-color: #666666;
}

body.dark-mode #re-download-link {
  background-color: #f0f0f0;
  color: #333333;
  border: solid 1px #aaaaaa;
  box-shadow: 2px 2px 5px rgba(0, 0, 0, 0.5);
}

body.dark-mode ul#re-preview-gui-links {
  background-color: #2d2d2d;
}

body.dark-mode ul#re-preview-gui-links li+li:before {
  color: var(--text-color);
}

body.dark-mode ul#re-preview-gui-links li a {
  color: var(--link-color);
}

body.dark-mode ul#re-preview-gui-links li a:hover {
  color: var(--link-color);
}

body.dark-mode #re-preview-files-links .active {
  color: var(--text-color);
  background-color: #444444;
}

body.dark-mode #re-preview-files table td.content {
  border-left: solid 1px var(--border-color);
}

/* Theme toggle button */
.theme-toggle {
  cursor: pointer;
  padding: 10px 10px;
  font-size: 0.8em;
  color: var(--text-color);
  background: none;
  border: none;
}

.theme-toggle:hover {
  color: var(--link-color);
}
