Kristan Kenney 5 лет назад
Родитель
Сommit
223c89aa04
100 измененных файлов с 4062 добавлено и 4844 удалено
  1. 106 790
      install/deb/themes/dark.css
  2. 7 2
      install/deb/themes/flat.css
  3. 8 0
      web/css/animate.min.css
  4. 0 8
      web/css/jquery.arcticmodal.css
  5. 0 36
      web/css/jquery.fileupload.css
  6. 0 0
      web/css/src/animate.css
  7. 3885 0
      web/css/src/styles.css
  8. 0 3885
      web/css/styles.min.css
  9. 0 92
      web/css/uploadify.css
  10. BIN
      web/images/background-dots.png
  11. BIN
      web/images/document.png
  12. BIN
      web/images/edit_bg.png
  13. BIN
      web/images/flat_icons.png
  14. BIN
      web/images/in_progress.gif
  15. BIN
      web/images/progress.gif
  16. BIN
      web/images/ui-bg_flat_0_aaaaaa_40x100.png
  17. BIN
      web/images/ui-bg_glass_55_fbf9ee_1x400.png
  18. BIN
      web/images/ui-bg_glass_95_fef1ec_1x400.png
  19. BIN
      web/images/ui-icons_2e83ff_256x240.png
  20. BIN
      web/images/ui-icons_454545_256x240.png
  21. BIN
      web/images/ui-icons_888888_256x240.png
  22. BIN
      web/images/ui-icons_cd0a0a_256x240.png
  23. 11 0
      web/inc/i18n/de.php
  24. 10 0
      web/inc/i18n/en.php
  25. 11 1
      web/inc/i18n/fr.php
  26. 10 0
      web/inc/i18n/it.php
  27. 14 3
      web/inc/i18n/nl.php
  28. 0 1
      web/js/cheef-editor/.gitignore
  29. 0 22
      web/js/cheef-editor/README.md
  30. 0 0
      web/js/cheef-editor/ace/ace.js
  31. 0 1
      web/js/cheef-editor/ace/ext-static_highlight.js
  32. 0 0
      web/js/cheef-editor/ace/ext-textarea.js
  33. 0 0
      web/js/cheef-editor/ace/keybinding-emacs.js
  34. 0 0
      web/js/cheef-editor/ace/keybinding-vim.js
  35. 0 0
      web/js/cheef-editor/ace/mode-abap.js
  36. 0 0
      web/js/cheef-editor/ace/mode-asciidoc.js
  37. 0 0
      web/js/cheef-editor/ace/mode-c9search.js
  38. 0 0
      web/js/cheef-editor/ace/mode-c_cpp.js
  39. 0 0
      web/js/cheef-editor/ace/mode-clojure.js
  40. 0 0
      web/js/cheef-editor/ace/mode-coffee.js
  41. 0 0
      web/js/cheef-editor/ace/mode-coldfusion.js
  42. 0 0
      web/js/cheef-editor/ace/mode-csharp.js
  43. 0 0
      web/js/cheef-editor/ace/mode-css.js
  44. 0 0
      web/js/cheef-editor/ace/mode-dart.js
  45. 0 0
      web/js/cheef-editor/ace/mode-diff.js
  46. 0 0
      web/js/cheef-editor/ace/mode-dot.js
  47. 0 0
      web/js/cheef-editor/ace/mode-glsl.js
  48. 0 0
      web/js/cheef-editor/ace/mode-golang.js
  49. 0 0
      web/js/cheef-editor/ace/mode-groovy.js
  50. 0 0
      web/js/cheef-editor/ace/mode-haml.js
  51. 0 0
      web/js/cheef-editor/ace/mode-haxe.js
  52. 0 0
      web/js/cheef-editor/ace/mode-html.js
  53. 0 0
      web/js/cheef-editor/ace/mode-jade.js
  54. 0 0
      web/js/cheef-editor/ace/mode-java.js
  55. 0 0
      web/js/cheef-editor/ace/mode-javascript.js
  56. 0 0
      web/js/cheef-editor/ace/mode-json.js
  57. 0 0
      web/js/cheef-editor/ace/mode-jsp.js
  58. 0 0
      web/js/cheef-editor/ace/mode-jsx.js
  59. 0 0
      web/js/cheef-editor/ace/mode-latex.js
  60. 0 0
      web/js/cheef-editor/ace/mode-less.js
  61. 0 0
      web/js/cheef-editor/ace/mode-liquid.js
  62. 0 1
      web/js/cheef-editor/ace/mode-lisp.js
  63. 0 0
      web/js/cheef-editor/ace/mode-lua.js
  64. 0 0
      web/js/cheef-editor/ace/mode-luapage.js
  65. 0 1
      web/js/cheef-editor/ace/mode-lucene.js
  66. 0 0
      web/js/cheef-editor/ace/mode-makefile.js
  67. 0 0
      web/js/cheef-editor/ace/mode-markdown.js
  68. 0 0
      web/js/cheef-editor/ace/mode-objectivec.js
  69. 0 0
      web/js/cheef-editor/ace/mode-ocaml.js
  70. 0 0
      web/js/cheef-editor/ace/mode-perl.js
  71. 0 0
      web/js/cheef-editor/ace/mode-pgsql.js
  72. 0 0
      web/js/cheef-editor/ace/mode-php.js
  73. 0 0
      web/js/cheef-editor/ace/mode-powershell.js
  74. 0 0
      web/js/cheef-editor/ace/mode-python.js
  75. 0 0
      web/js/cheef-editor/ace/mode-r.js
  76. 0 0
      web/js/cheef-editor/ace/mode-rdoc.js
  77. 0 0
      web/js/cheef-editor/ace/mode-rhtml.js
  78. 0 0
      web/js/cheef-editor/ace/mode-ruby.js
  79. 0 0
      web/js/cheef-editor/ace/mode-scad.js
  80. 0 0
      web/js/cheef-editor/ace/mode-scala.js
  81. 0 0
      web/js/cheef-editor/ace/mode-scss.js
  82. 0 0
      web/js/cheef-editor/ace/mode-sh.js
  83. 0 1
      web/js/cheef-editor/ace/mode-sql.js
  84. 0 0
      web/js/cheef-editor/ace/mode-stylus.js
  85. 0 0
      web/js/cheef-editor/ace/mode-svg.js
  86. 0 0
      web/js/cheef-editor/ace/mode-tcl.js
  87. 0 0
      web/js/cheef-editor/ace/mode-tex.js
  88. 0 0
      web/js/cheef-editor/ace/mode-text.js
  89. 0 0
      web/js/cheef-editor/ace/mode-textile.js
  90. 0 0
      web/js/cheef-editor/ace/mode-typescript.js
  91. 0 0
      web/js/cheef-editor/ace/mode-xml.js
  92. 0 0
      web/js/cheef-editor/ace/mode-xquery.js
  93. 0 0
      web/js/cheef-editor/ace/mode-yaml.js
  94. 0 0
      web/js/cheef-editor/ace/theme-ambiance.js
  95. 0 0
      web/js/cheef-editor/ace/theme-chaos.js
  96. 0 0
      web/js/cheef-editor/ace/theme-chrome.js
  97. 0 0
      web/js/cheef-editor/ace/theme-clouds.js
  98. 0 0
      web/js/cheef-editor/ace/theme-clouds_midnight.js
  99. 0 0
      web/js/cheef-editor/ace/theme-cobalt.js
  100. 0 0
      web/js/cheef-editor/ace/theme-crimson_editor.js

Разница между файлами не показана из-за своего большого размера
+ 106 - 790
install/deb/themes/dark.css


+ 7 - 2
install/deb/themes/flat.css

@@ -1,4 +1,8 @@
-/* Flat theme */
+/*  
+    Theme Name:  Flat
+    Author:      Robert Zollner (@Lupul)
+    Website:     www.hestiacp.com 
+*/
 
 body {
     letter-spacing: 0;
@@ -76,6 +80,7 @@ b, strong {
 .l-unit:hover, .units .l-unit:hover {
     box-shadow: none;
 }
+
 .vst-input {
     box-shadow: none;
 }
@@ -170,4 +175,4 @@ b, strong {
     background-color: rgba(255,255,255,0.8) !important;
     box-shadow: 0px 2px 10px rgba(0,0,0, 0.3), 
                 inset 0px 0px 2px rgba(255,255,255,1) !important;
-}
+}

Разница между файлами не показана из-за своего большого размера
+ 8 - 0
web/css/animate.min.css


+ 0 - 8
web/css/jquery.arcticmodal.css

@@ -1,8 +0,0 @@
-.arcticmodal-overlay,
-.arcticmodal-container { position: fixed; left: 0; top: 0; right: 0; bottom: 0; z-index: 1000; }
-.arcticmodal-container { overflow: auto; margin: 0; padding: 0; border: 0; border-collapse: collapse; }
-*:first-child+html .arcticmodal-container { height: 100% }
-.arcticmodal-container_i { height: 100%; margin: 0 auto; }
-.arcticmodal-container_i2 { padding: 24px; margin: 0; border: 0; vertical-align: middle; }
-.arcticmodal-error { padding: 20px; border-radius: 10px; background: #000; color: #fff; }
-.arcticmodal-loading { width: 80px; height: 80px; border-radius: 10px; background: #000 url(loading.gif) no-repeat 50% 50%; }

+ 0 - 36
web/css/jquery.fileupload.css

@@ -1,36 +0,0 @@
-@charset "UTF-8";
-/*
- * jQuery File Upload Plugin CSS 1.3.0
- * https://github.com/blueimp/jQuery-File-Upload
- *
- * Copyright 2013, Sebastian Tschan
- * https://blueimp.net
- *
- * Licensed under the MIT license:
- * http://www.opensource.org/licenses/MIT
- */
-
-.fileinput-button {
-  position: relative;
-  overflow: hidden;
-}
-.fileinput-button input {
-  position: absolute;
-  top: 0;
-  right: 0;
-  margin: 0;
-  opacity: 0;
-  -ms-filter: 'alpha(opacity=0)';
-  font-size: 200px;
-  direction: ltr;
-  cursor: pointer;
-}
-
-/* Fixes for IE < 8 */
-@media screen\9 {
-  .fileinput-button input {
-    filter: alpha(opacity=0);
-    font-size: 100%;
-    height: 100%;
-  }
-}

+ 0 - 0
web/css/animate.css → web/css/src/animate.css


+ 3885 - 0
web/css/src/styles.css

@@ -0,0 +1,3885 @@
+/*  Syntax Quick Reference
+  --------------------------
+  column($ratios: 1, $offset: 0, $cycle: 0, $uncycle: 0, $gutter: $jeet-gutter)
+  span($ratio: 1, $offset: 0)
+  shift($ratios: 0, $col_or_span: column, $gutter: $jeet-gutter)
+  unshift()
+  edit()
+  center($max_width: 1410px, $pad: 0)
+  stack($pad: 0, $align: false)
+  unstack()
+  align($direction: both)
+  cf()
+*/
+/**
+ * Grid settings.
+ * All values are defaults and can therefore be easily overidden.
+ */
+/**
+ * List functions courtesy of the wonderful folks at Team Sass.
+ * Check out their awesome grid: Singularity.
+ */
+/**
+ * Get  percentage from a given ratio.
+ * @param {number} [$ratio=1] - The column ratio of the element.
+ * @returns {number} - The percentage value.
+ */
+/**
+ * Work out the column widths based on the ratio and gutter sizes.
+ * @param {number} [$ratios=1] - The column ratio of the element.
+ * @param {number} [$gutter=$jeet-gutter] - The gutter for the column.
+ * @returns {list} $width $gutter - A list containing the with and gutter for the element.
+ */
+/**
+ * Get the set layout direction for the project.
+ * @returns {string} $direction - The layout direction.
+ */
+/**
+ * Replace a specified list value with a new value (uses built in set-nth() if available)
+ * @param {list} $list - The list of values you want to alter.
+ * @param {number} $index - The index of the list item you want to replace.
+ * @param {*} $value - The value you want to replace $index with.
+ * @returns {list} $list - The list with the value replaced or removed.
+ * @warn if an invalid index is supplied.
+ */
+/**
+ * Reverse a list (progressively enhanced for Sass 3.3)
+ * @param {list} $list - The list of values you want to reverse.
+ * @returns {list} $result - The reversed list.
+ */
+/**
+ * Get the opposite direction to a given value.
+ * @param {string} $dir - The direction you want the opposite of.
+ * @returns {string} - The opposite direction to $dir.
+ * @warn if an incorrect string is provided.
+ */
+/**
+ * Style an element as a column with a gutter.
+ * @param {number} [$ratios=1] - A width relative to its container as a fraction.
+ * @param {number} [$offset=0] - A offset specified as a fraction (see $ratios).
+ * @param {number} [$cycle=0] - Easily create an nth column grid where $cycle equals the number of columns.
+ * @param {number} [$uncycle=0] - Undo a previous cycle value to allow for a new one.
+ * @param {number} [$gutter=$jeet-gutter] - Specify the gutter width as a percentage of the containers width.
+ */
+/**
+ * An alias for the column mixin.
+ * @param [$args...] - All arguments get passed through to column().
+ */
+/**
+ * Get the width of a column and nothing else.
+ * @param {number} [$ratios=1] - A width relative to its container as a fraction.
+ * @param {number} [$gutter=$jeet-gutter] - Specify the gutter width as a percentage of the containers width.
+ */
+/**
+ * Get the gutter size of a column and nothing else.
+ * @param {number} [ratios=1] - A width relative to its container as a fraction.
+ * @param {number} [gutter=jeet.gutter] - Specify the gutter width as a percentage of the containers width.
+ */
+/**
+ * An alias for the column-width function.
+ * @param [$args...] - All arguments get passed through to column().
+ */
+/**
+ * An alias for the column-gutter function.
+ * @param [$args...] - All arguments get passed through to column().
+ */
+/**
+ * Style an element as a column without any gutters for a seamless row.
+ * @param {number} [$ratios=1] - A width relative to its container as a fraction.
+ * @param {number} [$offset=0] - A offset specified as a fraction (see $ratios).
+ * @param {number} [cycle=0] - Easily create an nth column grid where cycle equals the number of columns.
+ * @param {number} [uncycle=0] - Undo a previous cycle value to allow for a new one.
+ */
+/**
+ * Reorder columns without altering the HTML.
+ * @param {number} [$ratios=0] - Specify how far along you want the element to move.
+ * @param {string} [$col-or-span=column] - Specify whether the element has a gutter or not.
+ * @param {number} [$gutter=$jeet-gutter] - Specify the gutter width as a percentage of the containers width.
+ */
+/**
+ * Reset an element that has had shift() applied to it.
+ */
+/**
+ * View the grid and its layers for easy debugging.
+ * @param {string} [$color=black] - The background tint applied.
+ * @param {boolean} [$important=false] - Whether to apply the style as !important.
+ */
+/**
+ *  Alias for edit().
+ */
+/**
+ * Horizontally center an element.
+ * @param {number} [$max-width=1410px] - The max width the element can be.
+ * @param {number} [$pad=0] - Specify the element's left and right padding.
+ */
+/**
+ * Uncenter an element.
+ */
+/**
+ * Stack an element so that nothing is either side of it.
+ * @param {number} [$pad=0] - Specify the element's left and right padding.
+ * @param {boolean/string} [$align=false] - Specify the text align for the element.
+ */
+/**
+ * Unstack an element.
+ */
+/**
+ * Center an element on either or both axes.
+ * @requires A parent container with relative positioning.
+ * @param {string} [$direction=both] - Specify which axes to center the element on.
+ */
+/**
+ * Apply a clearfix to an element.
+ */
+/* ==========================================================================
+   Normalize.scss settings
+   ========================================================================== */
+/**
+ * Includes legacy browser support IE6/7
+ *
+ * Set to false if you want to drop support for IE6 and IE7
+ */
+
+/* ==========================================================================
+   Define Exo font family
+   ========================================================================== */
+/* exo-300 - latin-ext_latin */
+@font-face {
+  font-family: 'Exo';
+  font-style: normal;
+  font-weight: 300;
+  src: local('Exo Light'), local('Exo-Light'),
+       url('../webfonts/exo-v8-latin-ext_latin-300.woff2') format('woff2'), /* Chrome 26+, Opera 23+, Firefox 39+ */
+       url('../webfonts/exo-v8-latin-ext_latin-300.woff') format('woff'); /* Chrome 6+, Firefox 3.6+, IE 9+, Safari 5.1+ */
+}
+/* exo-300italic - latin-ext_latin */
+@font-face {
+  font-family: 'Exo';
+  font-style: italic;
+  font-weight: 300;
+  src: local('Exo Light Italic'), local('Exo-LightItalic'),
+       url('../webfonts/exo-v8-latin-ext_latin-300italic.woff2') format('woff2'), /* Chrome 26+, Opera 23+, Firefox 39+ */
+       url('../webfonts/exo-v8-latin-ext_latin-300italic.woff') format('woff'); /* Chrome 6+, Firefox 3.6+, IE 9+, Safari 5.1+ */
+}
+/* exo-regular - latin-ext_latin */
+@font-face {
+  font-family: 'Exo';
+  font-style: normal;
+  font-weight: 400;
+  src: local('Exo Regular'), local('Exo-Regular'),
+       url('../webfonts/exo-v8-latin-ext_latin-regular.woff2') format('woff2'), /* Chrome 26+, Opera 23+, Firefox 39+ */
+       url('../webfonts/exo-v8-latin-ext_latin-regular.woff') format('woff'); /* Chrome 6+, Firefox 3.6+, IE 9+, Safari 5.1+ */
+}
+/* exo-italic - latin-ext_latin */
+@font-face {
+  font-family: 'Exo';
+  font-style: italic;
+  font-weight: 400;
+  src: local('Exo Italic'), local('Exo-Italic'),
+       url('../webfonts/exo-v8-latin-ext_latin-italic.woff2') format('woff2'), /* Chrome 26+, Opera 23+, Firefox 39+ */
+       url('../webfonts/exo-v8-latin-ext_latin-italic.woff') format('woff'); /* Chrome 6+, Firefox 3.6+, IE 9+, Safari 5.1+ */
+}
+/* exo-500 - latin-ext_latin */
+@font-face {
+  font-family: 'Exo';
+  font-style: normal;
+  font-weight: 500;
+  src: local('Exo Medium'), local('Exo-Medium'),
+       url('../webfonts/exo-v8-latin-ext_latin-500.woff2') format('woff2'), /* Chrome 26+, Opera 23+, Firefox 39+ */
+       url('../webfonts/exo-v8-latin-ext_latin-500.woff') format('woff'); /* Chrome 6+, Firefox 3.6+, IE 9+, Safari 5.1+ */
+}
+/* exo-500italic - latin-ext_latin */
+@font-face {
+  font-family: 'Exo';
+  font-style: italic;
+  font-weight: 500;
+  src: local('Exo Medium Italic'), local('Exo-MediumItalic'),
+       url('../webfonts/exo-v8-latin-ext_latin-500italic.woff2') format('woff2'), /* Chrome 26+, Opera 23+, Firefox 39+ */
+       url('../webfonts/exo-v8-latin-ext_latin-500italic.woff') format('woff'); /* Chrome 6+, Firefox 3.6+, IE 9+, Safari 5.1+ */
+}
+/* exo-600 - latin-ext_latin */
+@font-face {
+  font-family: 'Exo';
+  font-style: normal;
+  font-weight: 600;
+  src: local('Exo SemiBold'), local('Exo-SemiBold'),
+       url('../webfonts/exo-v8-latin-ext_latin-600.woff2') format('woff2'), /* Chrome 26+, Opera 23+, Firefox 39+ */
+       url('../webfonts/exo-v8-latin-ext_latin-600.woff') format('woff'); /* Chrome 6+, Firefox 3.6+, IE 9+, Safari 5.1+ */
+}
+/* exo-600italic - latin-ext_latin */
+@font-face {
+  font-family: 'Exo';
+  font-style: italic;
+  font-weight: 600;
+  src: local('Exo SemiBold Italic'), local('Exo-SemiBoldItalic'),
+       url('../webfonts/exo-v8-latin-ext_latin-600italic.woff2') format('woff2'), /* Chrome 26+, Opera 23+, Firefox 39+ */
+       url('../webfonts/exo-v8-latin-ext_latin-600italic.woff') format('woff'); /* Chrome 6+, Firefox 3.6+, IE 9+, Safari 5.1+ */
+}
+/* exo-700 - latin-ext_latin */
+@font-face {
+  font-family: 'Exo';
+  font-style: normal;
+  font-weight: 700;
+  src: local('Exo Bold'), local('Exo-Bold'),
+       url('../webfonts/exo-v8-latin-ext_latin-700.woff2') format('woff2'), /* Chrome 26+, Opera 23+, Firefox 39+ */
+       url('../webfonts/exo-v8-latin-ext_latin-700.woff') format('woff'); /* Chrome 6+, Firefox 3.6+, IE 9+, Safari 5.1+ */
+}
+/* exo-700italic - latin-ext_latin */
+@font-face {
+  font-family: 'Exo';
+  font-style: italic;
+  font-weight: 700;
+  src: local('Exo Bold Italic'), local('Exo-BoldItalic'),
+       url('../webfonts/exo-v8-latin-ext_latin-700italic.woff2') format('woff2'), /* Chrome 26+, Opera 23+, Firefox 39+ */
+       url('../webfonts/exo-v8-latin-ext_latin-700italic.woff') format('woff'); /* Chrome 6+, Firefox 3.6+, IE 9+, Safari 5.1+ */
+}
+/* inconsolata-bold - latin */
+@font-face {
+  font-family: 'Inconsolata';
+  src: local('Inconsolata Bold'), local('Inconsolata-Bold'),
+      url('../webfonts/Inconsolata-Bold.woff2') format('woff2'),
+      url('../webfonts/Inconsolata-Bold.woff') format('woff');
+  font-weight: bold;
+  font-style: normal;
+}
+/* inconsolata - latin */
+@font-face {
+  font-family: 'Inconsolata';
+  src: local('Inconsolata Regular'), local('Inconsolata-Regular'),
+      url('../webfonts/Inconsolata-Regular.woff2') format('woff2'),
+      url('../webfonts/Inconsolata-Regular.woff') format('woff');
+  font-weight: normal;
+  font-style: normal;
+}
+
+/* Base
+   ========================================================================== */
+/**
+ * 1. Set default font family to sans-serif.
+ * 2. Prevent iOS text size adjust after orientation change, without disabling
+ *  user zoom.
+ * 3. Corrects text resizing oddly in IE 6/7 when body `font-size` is set using
+ *  `em` units.
+ */
+
+html {
+  font-family: sans-serif;
+  /* 1 */
+  -ms-text-size-adjust: 100%;
+  /* 2 */
+  -webkit-text-size-adjust: 100%;
+  /* 2 */
+}
+
+/**
+ * Remove default margin.
+ */
+body {
+  margin: 0;
+  background-color: #fff;
+}
+
+/* HTML5 display definitions
+   ========================================================================== */
+/**
+ * Correct `block` display not defined for any HTML5 element in IE 8/9.
+ * Correct `block` display not defined for `details` or `summary` in IE 10/11
+ * and Firefox.
+ * Correct `block` display not defined for `main` in IE 11.
+ */
+article,
+aside,
+details,
+figcaption,
+figure,
+footer,
+header,
+hgroup,
+main,
+menu,
+nav,
+section,
+summary {
+  display: block;
+}
+
+/**
+ * 1. Correct `inline-block` display not defined in IE 6/7/8/9 and Firefox 3.
+ * 2. Normalize vertical alignment of `progress` in Chrome, Firefox, and Opera.
+ */
+audio,
+canvas,
+progress,
+video {
+  display: inline-block;
+  /* 1 */
+  vertical-align: baseline;
+  /* 2 */
+}
+
+/**
+ * Prevents modern browsers from displaying `audio` without controls.
+ * Remove excess height in iOS 5 devices.
+ */
+audio:not([controls]) {
+  display: none;
+  height: 0;
+}
+
+/**
+ * Address `[hidden]` styling not present in IE 8/9/10.
+ * Hide the `template` element in IE 8/9/11, Safari, and Firefox < 22.
+ */
+[hidden],
+template {
+  display: none;
+}
+
+.hidden {
+  display: none;
+}
+/* Links
+   ========================================================================== */
+/**
+ * Remove the gray background color from active links in IE 10.
+ */
+a {
+  background-color: transparent;
+}
+
+/**
+ * Improve readability when focused and also mouse hovered in all browsers.
+ */
+a:active, a:hover {
+  outline: 0;
+}
+
+/* Text-level semantics
+   ========================================================================== */
+/**
+ * Address styling not present in IE 8/9/10/11, Safari, and Chrome.
+ */
+abbr[title] {
+  border-bottom: 1px dotted;
+}
+
+/**
+ * Address style set to `bolder` in Firefox 4+, Safari, and Chrome.
+ */
+b,
+strong {
+  font-weight: 600;
+  color: #5f5f5f;
+}
+
+/**
+ * Address styling not present in Safari and Chrome.
+ */
+dfn {
+  font-style: italic;
+}
+
+/**
+ * Address variable `h1` font-size and margin within `section` and `article`
+ * contexts in Firefox 4+, Safari, and Chrome.
+ */
+h1 {
+  font-size: 2em;
+  margin: 0.67em 0;
+}
+
+/**
+ * Addresses styling not present in IE 8/9.
+ */
+mark {
+  background: #ff0;
+  color: #000;
+}
+
+/**
+ * Address inconsistent and variable font size in all browsers.
+ */
+small {
+  font-size: 80%;
+}
+
+/**
+ * Prevent `sub` and `sup` affecting `line-height` in all browsers.
+ */
+sub,
+sup {
+  font-size: 75%;
+  line-height: 0;
+  position: relative;
+  vertical-align: baseline;
+}
+
+sup {
+  top: -0.5em;
+}
+
+sub {
+  bottom: -0.25em;
+}
+
+/* Embedded content
+   ========================================================================== */
+/**
+ * 1. Remove border when inside `a` element in IE 8/9/10.
+ * 2. Improves image quality when scaled in IE 7.
+ */
+img {
+  border: 0;
+}
+
+/**
+ * Correct overflow not hidden in IE 9/10/11.
+ */
+svg:not(:root) {
+  overflow: hidden;
+}
+
+/* Grouping content
+   ========================================================================== */
+/**
+ * Address margin not present in IE 8/9 and Safari.
+ */
+figure {
+  margin: 1em 40px;
+}
+
+/**
+ * Address differences between Firefox and other browsers.
+ */
+hr {
+  box-sizing: content-box;
+  height: 0;
+}
+
+/**
+ * Contain overflow in all browsers.
+ */
+pre {
+  overflow: auto;
+}
+
+/**
+ * Address odd `em`-unit font size rendering in all browsers.
+ * Correct font family set oddly in IE 6, Safari 4/5, and Chrome.
+ */
+code,
+kbd,
+pre,
+samp {
+  font-family: monospace, monospace;
+  font-size: 1em;
+}
+
+/* Forms
+   ========================================================================== */
+/**
+ * Known limitation: by default, Chrome and Safari on OS X allow very limited
+ * styling of `select`, unless a `border` property is set.
+ */
+/**
+ * 1. Correct color not being inherited.
+ *  Known issue: affects color of disabled elements.
+ * 2. Correct font properties not being inherited.
+ * 3. Address margins set differently in Firefox 4+, Safari, and Chrome.
+ * 4. Improves appearance and consistency in all browsers.
+ */
+button,
+input,
+optgroup,
+select,
+textarea {
+  color: inherit;
+  /* 1 */
+  font: inherit;
+  /* 2 */
+  margin: 0;
+  /* 3 */
+}
+
+/**
+ * Address `overflow` set to `hidden` in IE 8/9/10/11.
+ */
+button {
+  overflow: visible;
+}
+
+/**
+ * Address inconsistent `text-transform` inheritance for `button` and `select`.
+ * All other form control elements do not inherit `text-transform` values.
+ * Correct `button` style inheritance in Firefox, IE 8/9/10/11, and Opera.
+ * Correct `select` style inheritance in Firefox.
+ */
+button,
+select {
+  text-transform: none;
+  /*color: transparent !important;*/
+  text-shadow: 0 0 0 #4b4b4b !important;
+}
+
+/**
+ * 1. Avoid the WebKit bug in Android 4.0.* where (2) destroys native `audio`
+ *  and `video` controls.
+ * 2. Correct inability to style clickable `input` types in iOS.
+ * 3. Improve usability and consistency of cursor style between image-type
+ *  `input` and others.
+ * 4. Removes inner spacing in IE 7 without affecting normal text inputs.
+ *  Known issue: inner spacing remains in IE 6.
+ */
+button,
+html input[type="button"],
+input[type="reset"],
+input[type="submit"] {
+  -webkit-appearance: button;
+  /* 2 */
+  cursor: pointer;
+  /* 3 */
+}
+
+/**
+ * Re-set default cursor for disabled elements.
+ */
+button[disabled],
+html input[disabled] {
+  cursor: default;
+}
+
+/**
+ * Remove inner padding and border in Firefox 4+.
+ */
+button::-moz-focus-inner,
+input::-moz-focus-inner {
+  border: 0;
+  padding: 0;
+}
+
+/**
+ * Address Firefox 4+ setting `line-height` on `input` using `!important` in
+ * the UA stylesheet.
+ */
+input {
+  line-height: normal;
+}
+
+/**
+ * 1. Address box sizing set to `content-box` in IE 8/9/10.
+ * 2. Remove excess padding in IE 8/9/10.
+ *  Known issue: excess padding remains in IE 6.
+ */
+input[type="checkbox"],
+input[type="radio"] {
+  box-sizing: border-box;
+  /* 1 */
+  padding: 0;
+  /* 2 */
+}
+
+/**
+ * Fix the cursor style for Chrome's increment/decrement buttons. For certain
+ * `font-size` values of the `input`, it causes the cursor style of the
+ * decrement button to change from `default` to `text`.
+ */
+input[type="number"]::-webkit-inner-spin-button,
+input[type="number"]::-webkit-outer-spin-button {
+  height: auto;
+}
+
+/**
+ * 1. Address `appearance` set to `searchfield` in Safari and Chrome.
+ * 2. Address `box-sizing` set to `border-box` in Safari and Chrome
+ *  (include `-moz` to future-proof).
+ */
+input[type="search"] {
+  -webkit-appearance: textfield;
+  /* 1 */
+  /* 2 */
+  box-sizing: content-box;
+}
+
+/**
+ * Remove inner padding and search cancel button in Safari and Chrome on OS X.
+ * Safari (but not Chrome) clips the cancel button when the search input has
+ * padding (and `textfield` appearance).
+ */
+input[type="search"]::-webkit-search-cancel-button,
+input[type="search"]::-webkit-search-decoration {
+  -webkit-appearance: none;
+}
+
+/**
+ * Define consistent border, margin, and padding.
+ */
+fieldset {
+  border: 1px solid #c0c0c0;
+  margin: 0 2px;
+  padding: 0.35em 0.625em 0.75em;
+}
+
+/**
+ * 1. Correct `color` not being inherited in IE 8/9/10/11.
+ * 2. Remove padding so people aren't caught out if they zero out fieldsets.
+ * 3. Corrects text not wrapping in Firefox 3.
+ * 4. Corrects alignment displayed oddly in IE 6/7.
+ */
+legend {
+  border: 0;
+  /* 1 */
+  padding: 0;
+  /* 2 */
+}
+
+/**
+ * Remove default vertical scrollbar in IE 8/9/10/11.
+ */
+textarea {
+  overflow: auto;
+}
+
+/**
+ * Don't inherit the `font-weight` (applied by a rule above).
+ * NOTE: the default cannot safely be changed in Chrome and Safari on OS X.
+ */
+optgroup {
+  font-weight: 600;
+}
+
+/* Tables
+   ========================================================================== */
+/**
+ * Remove most spacing between table cells.
+ */
+table {
+  border-collapse: collapse;
+  border-spacing: 0;
+}
+
+td,
+th {
+  padding: 0;
+}
+
+* {
+  -webkit-tap-highlight-color: transparent;
+}
+
+body {
+/*  -webkit-touch-callout: none;
+  -webkit-text-size-adjust: none;
+  -webkit-user-select: none; */
+}
+
+html,
+input,
+textarea,
+select,
+button {
+  -webkit-font-smoothing: antialiased;
+  -moz-osx-font-smoothing: grayscale;
+}
+
+html {
+  height: 100%;
+}
+
+body {
+  font-family: 'Exo', Arial;
+  overflow-x: hidden;
+  font-size: 0.9rem;
+  height: 100%;
+  color: #7c7c7c;
+}
+
+.body-login, .body-reset {
+  height: auto;
+  padding-top: 10%;
+  background: rgb(102,158,231) !important;
+  background: radial-gradient(circle, rgba(102,158,231,1) 0%, rgba(43,86,177,1) 100%) !important;
+}
+
+a {
+  text-decoration: none;
+  color: #7c7c7c;
+}
+
+.disabled {
+  text-decoration: line-through;
+}
+
+.clearfix:before,
+.clearfix:after {
+  content: '';
+  display: table;
+}
+
+.clearfix:after {
+  clear: both;
+}
+
+.text-right {
+  text-align: right;
+}
+
+.text-center {
+  text-align: center;
+}
+
+.text-small {
+  font-size: 0.85em;
+}
+
+.check-label {
+  display: inline-block;
+  cursor: pointer;
+  position: relative;
+  line-height: 16px;
+  padding-left: 26px;
+}
+
+.check-label:before {
+  content: '';
+  width: 16px;
+  height: 16px;
+  position: absolute;
+  left: 0;
+  top: 0;
+  display: inline-block;
+  z-index: 99;
+}
+
+.clicked-on.check-label:before,
+.selected .check-label:before {
+  content: '';
+  display: inline-block;
+  width: 27px;
+  height: 27px;
+  background-position: -225px -42px;
+  left: -6px;
+  top: -6px;
+}
+
+.l-center {
+  margin: 0 auto;
+  max-width: 1020px;
+}
+
+.l-logo {
+  background-image: url("/images/logo-header.png");
+  background-repeat: no-repeat;
+  float: left;
+  height: 28px;
+  margin-top: 5px;
+  width: 54px
+}
+
+.l-header {
+  background: linear-gradient(to bottom, rgba(104,145,196,1) 0%,rgba(69,114,181,1) 50%,rgba(65,90,149,1) 100%); 
+  background-color: #5070a6;
+  border-bottom: 1px solid rgba(255,255,255,0.95);
+  overflow: hidden;
+  position: fixed;
+  width: 100%;
+  z-index: 900;
+  height: 38px;
+  text-shadow: 1px 1px rgba(0,0,0,0.25);
+  box-shadow: 0px 4px 10px rgba(100,100,100,0.4);
+  border-bottom: 1px solid #fff;
+}
+
+.l-header a {
+  font-size: 0.8rem;
+}
+
+.l-menu__item--active {
+  /*background-color: #fff;*/
+}
+
+.l-menu__item.l-menu__item--active a {
+  color: #4686b8;
+  font-size: 0.8rem;
+  background: linear-gradient(to bottom, rgba(255,255,255,0.6) 0%,rgba(255,255,255,0.75) 30%,rgba(255,255,255,1) 95%);
+  text-shadow: 0px 1px rgba(255,255,255,0.8);
+  border-left: 1px solid rgba(255,255,255,0.98);
+  border-right: 1px solid rgba(255,255,255,0.98);
+}
+
+.l-menu__item.l-menu__item--active:hover {
+  box-shadow: none;
+}
+
+.l-menu {
+  float: left;
+  position: fixed;
+  margin-left: 70px;
+}
+.l-menu__item {
+  float: left;
+  font-weight: 600;
+}
+.l-menu__item a {
+  color: #f7f7f7;
+  position: relative;
+  line-height: 39px;
+  padding: 11px 10px;
+  border-left: 1px solid transparent;
+  border-right: 1px solid transparent; 
+}
+
+.l-menu__item a:hover {
+  color: #3b9de8 !important;
+  border: 0;
+  box-shadow: inset 0px 0px 6px rgba(255,255,255,0.6) !important;
+  transition: 0.2s;
+  border-left: 1px solid rgba(0,0,0,0.1);
+  border-right: 1px solid rgba(0,0,0,0.1);
+  color: #4686b8 !important;
+  background: linear-gradient(to bottom, rgba(255,255,255,0.6) 0%,rgba(255,255,255,0.75) 30%,rgba(255,255,255,1) 95%);
+  text-shadow: 0px 1px rgba(255,255,255,0.8);
+}
+
+.l-menu__item a:active {
+  border: 0;
+  background: linear-gradient(to bottom, rgba(255,255,255,0.5) 0%,rgba(255,255,255,0.6) 30%,rgba(255,255,255,0.95) 95%);
+  color: #046c98 !important;
+  text-shadow: 0px -1px 1px rgba(255,255,255,0.5) !important;
+  box-shadow: inset 0px 0px 1px #fff,
+              inset -1px -1px 4px rgba(220,220,220,0.4) !important;
+  transition: 0.2s;
+  border-left: 1px solid rgba(0,0,0,0.15);
+  border-right: 1px solid rgba(0,0,0,0.15);
+}
+
+.l-menu.active .l-menu__item.focus a {
+  text-decoration: underline;
+  color: #5edad0;
+}
+.l-menu.active .l-menu__item.focus a:hover {
+  background-color: #f79b44;
+  color: #fff;
+}
+
+.panel-icon {
+  font-size: 1rem;
+  vertical-align: middle;
+  margin-top: -4px;
+}
+
+.l-profile {
+  overflow: hidden;
+  float: right;
+}
+
+.l-profile__username, .l-profile__logout,
+.l-profile__help, .l-profile__serversettings {
+  font-size: 1.1rem !important;
+}
+
+.l-profile__logout {
+  color: #dbf94e !important;
+}
+
+.l-profile__server {
+  color: #ceefff;
+  margin-top: 10px;
+  float: left;
+}
+
+.l-profile__notifications {
+  color: #fff;
+  cursor: pointer;
+  font-weight: 600;
+  padding: 10px 5px 0;
+  font-size: 1.2rem !important;
+  line-height: 0.95rem;
+}
+
+.l-profile__notifications.active.l-profile__notifications.updates:active {
+  background: linear-gradient(to bottom, rgba(255,255,255,0.6) 0%,rgba(255,255,255,0.75) 30%,rgba(255,255,255,1) 95%) !important;
+  color: #046c98 !important;
+  text-shadow: 0px -1px 1px rgba(255,255,255,0.5) !important;
+  box-shadow: 0px 1px 3px rgba(0,0,0,0.15),
+              inset 0px 0px 1px #fff,
+              inset -1px -1px 4px rgba(220,220,220,0.4) !important;
+  transition: 0.2s;
+}
+.l-profile__notifications:hover,.l-profile__notifications.updates:hover {
+  color: #3b9de8 !important;
+  text-shadow: 1px 1px rgba(255,255,255,0.5) !important;
+  background: linear-gradient(to bottom, rgba(255,255,255,0.75) 0%,rgba(255,255,255,0.87) 30%,rgba(255,255,255,1) 95%) !important;
+  transition: 0.2s;
+}
+
+.notification-container {
+  background-color: rgba(255,255,255,0.95);
+  box-shadow: 0 3px 20px 0 rgba(0, 0, 0, 0.4);
+  list-style-type: none;
+  margin: 0 18px;
+  max-height: 90%;
+  overflow-y: auto;
+  padding-left: 0;
+  position: fixed;
+  top: 34px;
+  width: 390px;
+  z-index: 300;
+  font-size: 0.8rem;
+  padding: 0;
+  color: #6f6f6f;
+  border-bottom-left-radius: 6px;
+  border-bottom-right-radius: 6px;
+  border: 1px solid #fff;
+  border-top: none;
+}
+
+.notification-container .empty {
+  text-align: center;
+  font-size: 1.2rem;
+  font-weight: normal;
+  padding: 4rem;
+}
+
+.notification-container .empty .status-icon {
+  color: #54a6e5;
+}
+
+.notification-container .unseen {
+  color: #6f6f6f;
+}
+
+.notification-container li {
+  border-bottom: 1px solid #e9e4e4;
+  padding: 1rem;
+}
+
+.notification-container  li:last-child {
+  border-bottom: none;
+}
+
+.notification-container .mark-seen {
+  background-color: #cc3366;
+  border: 1px solid #c41650;
+  border-radius: 10px;
+  cursor: pointer;
+  display: none;
+  float: right;
+  height: 7px;
+  margin-right: -5px;
+  margin-top: 9px;
+  width: 7px;
+}
+.notification-container .mark-seen:hover {
+  background-color: #fff;
+  border-color: #e83b75;
+}
+.notification-container .mark-seen:active {
+  background-color: #777;
+  border-color: #777;
+}
+.notification-container .unseen .mark-seen{
+  display: inline-block;
+}
+.notification-container .title {
+  color: #9e9e9e;
+  font-weight: 600;
+  line-height: 30px;
+  padding: 0;
+  text-transform: none;
+  float: none;
+  display: block;
+}
+.notification-container .title a {
+  color: #9e9e9e;
+}
+
+.notification-container .unseen .title a,
+.notification-container .unseen .title {
+  color: #cc3366;
+}
+.notification-container .unseen .title a:hover {
+  color: #e83b75;
+}
+.notification-container .unseen .title a:active {
+  color: #e83b75;
+}
+
+.notification-container a {
+  font-weight: 600;
+  color: #1a4492;/* #eee;*/
+}
+.notification-container a:hover {
+  color: #4a87fb;
+}
+.notification-container a:active {
+  color: #1a4492;
+}
+
+.notification-container .icon {
+  display: inline-block;
+  width: 0;
+}
+.notification-container .icon.starred {
+  display: inline-block;
+  width: 21px;
+}
+
+.notification-container .time {
+  font-size: 0.9em;
+  display: block;
+  text-align: right;
+  padding-top: 0.6rem;
+}
+
+.alert {
+  border-radius: 4px;
+  box-sizing: border-box;
+  display: block;
+  font-size: 0.8rem;
+  font-weight: 400;
+  margin-top: 1rem;
+  padding: 0.8rem;
+  position: relative;
+  text-align: left;
+  box-shadow: 0px 2px 4px rgba(0,0,0,0.2);
+  text-shadow: 0px 1px rgba(0,0,0,0.45);
+  border: 1px solid #fff;
+}
+
+.alert i.fas {
+  border-radius: 1rem;
+  font-size: 1.4rem;
+  font-weight: 600;
+  height: 2rem;
+  left: 0.6rem;
+  line-height: 2rem;
+  position: absolute;
+  text-align: center;
+  top: 0.8rem;
+  width: 2rem;
+}
+
+.alert.alert-with-icon {
+  padding-left: 3.2rem;
+  min-height: 3.5rem;
+}
+.alert.alert-info {
+  color: #fff;
+  background-color: #618ecc;
+}
+.alert.alert-info i.fas {
+  color: #618ecc;
+  background-color: white;
+}
+
+.alert.alert-danger {
+  color: #fff;
+  background-color: #ec6c6c;
+}
+.alert.alert-danger i.fas {
+  color: #ec6c6c;
+  background-color: white;
+}
+
+.alert.alert-success {
+  color: #fff;
+  background-color: #5ea64c;
+}
+.alert.alert-success i.fas {
+  color: #5ea64c;
+  background-color: white;
+}
+.alert a {
+  font-weight: bold;
+  color: #fff;
+}
+
+form#vstobjects .alert {
+  width: 380px;
+}
+
+.app-list.cards {
+  display: flex;
+  flex-wrap: wrap;
+  justify-content: center;
+}
+
+.app-form {
+  padding: 2em 1em 2em 9rem;
+}
+
+.app-form label {
+  font-size: 0.85rem;
+  padding-bottom: 3px;
+  font-weight: 600;
+  cursor: default;
+}
+
+.card {
+  float:left;
+  overflow: hidden;
+  background-color: #f5f5f5;
+  border:1px solid #d3d3d3;
+  box-sizing: border-box;
+  width:200px;
+  min-height:260px;
+  margin:1em;
+  padding-bottom: 0.5em;
+  box-shadow: 0px 1px 4px rgba(0,0,0,0.2);
+  color: #353535;
+  border-radius: 4px;
+  text-align: center;
+}
+
+.card.disable {
+  color: #b6b6b6;
+}
+
+.card.disable .card-thumb {
+  filter: grayscale(100%);
+  opacity: 0.3;
+}
+
+.card .card-details {
+  font-size: 0.8rem;
+  padding: 0.5em 0.8em;
+  border-top: 1px solid #e6e6e6;
+  text-align: center;
+
+}
+.card .card-details p {
+  margin: 0 0 0.3em 0;
+  font-size: 1em;
+}
+
+.card p.card-title {
+  font-size: 1.1em;
+  font-weight: 600;
+}
+
+.card .card-thumb {
+  background-color: #fff;
+  display: block;
+  height: 180px;
+  width: 200px;
+  text-align: center;
+}
+.card .card-thumb img {
+  max-height: 180px;
+  max-width: 200px;
+  height: auto;
+  width: auto;
+}
+
+.card button {
+  margin-top: 0.5em;
+  margin:0.3em;
+}
+
+.l-stat {
+  margin: 34px auto;
+  position: fixed;
+  background-color: #fff;
+  z-index: 100;
+  padding-top: 36px;
+  overflow: hidden;
+  text-align: center;
+  display: flex;
+  width: 100%;
+  max-width: 1020px;
+}
+
+.l-stat__col {
+  display: inline-block;
+  vertical-align: top;
+  flex: 1;
+}
+
+.l-stat__col a {
+  display: inline-block;
+  padding-bottom: 36px;
+  min-height: 70px;
+  width: 136px;
+  border-bottom: 4px solid #fff;
+  overflow: hidden;
+  background-color: #fff;
+  padding-top: 3px;
+  margin-top: -3px;
+  padding-left: 5px;
+}
+
+.l-stat__col a:hover {
+  border-bottom: 4px solid #e83b75;
+  transition: 0.3s;
+}
+.l-stat__col a:active {
+  border-bottom: 4px solid #d53067;
+}
+.l-stat__col--active a {
+  border-bottom: 4px solid #cc3366;
+}
+
+.l-stat.active .l-stat__col.focus a {
+  border-bottom: 4px solid #5edad0;
+}
+.l-stat.active .l-stat__col.focus a .l-stat__col-title {
+  color: #36B3A9;
+}
+
+
+.l-stat__col a:hover .l-stat__col-title {
+  color: #e83b75;
+}
+.l-stat__col a:active .l-stat__col-title {
+  color: #d53067;
+}
+
+
+.l-stat__col ul {
+  list-style-type: none;
+  font-size: 0.8rem;
+  padding-left: 0;
+  line-height: 14px;
+}
+.l-stat__col li {
+  color: #a0a0a0;
+  margin-bottom: 8px;
+  text-transform: lowercase;
+}
+.l-stat__col span {
+  padding-left: 15px;
+}
+.l-stat__col-title {
+  text-transform: uppercase;
+  font-weight: 600;
+  color: #5b5b5b;
+  min-height: 21px;
+  font-size: 16px;
+}
+
+.l-stat__col--active .l-stat__col-title {
+  color: #cc3366;
+  font-size: 16px;
+}
+
+.l-stat__col .fas {
+  color: #999999;
+  padding: 4px;
+}
+
+.l-stat__col--active .fas {
+  color: #cc3366;
+}
+
+.l-separator.selected,
+.l-separator {
+  height: 1px;
+  border-top: 1px solid #ddd;
+}
+
+div.l-content > div.l-separator:nth-of-type(2) {
+  margin-top: 180px;
+  width: 100%;
+  position: fixed;
+  z-index: 120;
+}
+
+div.l-content > div.l-separator:nth-of-type(4) {
+  margin-top: 225px;
+  width: 100%;
+  position: fixed;
+  z-index: 110;
+  border-top: none;
+  border-bottom: 1px solid #ddd;
+}
+
+.l-sort {
+  position: fixed;
+  width: 100%;
+  max-width: 1020px;
+  background-color: #fff;
+  z-index: 120;
+  margin-top: 181px;
+  height: 44px;
+}
+
+.l-sort__create-btn {
+  background-position: -331px -107px;
+  background-repeat: no-repeat;
+  bottom: -23px;
+  display: inline-block;
+  height: 45px;
+  left: 30px;
+  position: absolute;
+  width: 45px;
+  z-index: 3;
+}
+.l-sort__create-btn:hover {
+  background-position: -378px -107px;
+}
+.l-sort__create-btn:active {
+  background-position: -425px -107px;
+}
+.l-sort__create-btn--active {
+  background-position: -425px -107px;
+}
+
+.l-sort__create-btn.restore {
+  background-position: -331px -250px;
+  bottom: -22px;
+}
+.l-sort__create-btn.restore:hover {
+  background-position: -331px -250px;
+}
+.l-sort__create-btn.restore:active {
+  background-position: -331px -250px;
+}
+
+.l-sort__create-btn.edit {
+  background-position: -331px -154px;
+  bottom: -22px;
+}
+.l-sort__create-btn.edit:hover {
+  background-position: -378px -154px;
+}
+.l-sort__create-btn.edit:active {
+  background-position: -425px -154px;
+}
+
+.context-menu.sort-order {
+  display: inline-block;
+  position: absolute;
+  z-index: 3;
+  left: 397px;
+  margin: 0;
+  overflow: hidden;
+  top: 42px;
+  background-color: rgba(255,255,255,0.95);
+  list-style-type: none;
+  box-shadow: 0 2px 14px 0 rgba(20, 20, 20, 0.35);
+  border-radius: 4px;
+  border: 1px solid rgba(255,255,255,1);
+  padding: 0px;
+}
+.context-menu.sort-order li {
+  padding: 0;
+}
+.context-menu li {
+  border-bottom: 1px solid #ddd;
+  color: #2e2e2e;
+  cursor: pointer;
+  font-size: 0.8rem;
+  padding: 12px;
+}
+.context-menu.sort-order span.name {
+  display: inline-block;
+  padding: 12px;
+  width: 117px;
+  font-weight: 500;
+}
+.context-menu.sort-order span.up {
+  display: inline-block;
+  padding: 12px 14px;
+  width: 16px;
+}
+.context-menu.sort-order span.active {
+  background-color: #4f8bbc !important;
+  color: #4686b8;
+  font-size: 0.8rem;
+  background: linear-gradient(to bottom, rgba(255,255,255,0.6) 0%,rgba(255,255,255,0.75) 50%,rgba(255,255,255,0.95) 95%);
+  text-shadow: 0px 1px rgba(255,255,255,0.8);
+}
+.context-menu.sort-order span:hover {
+  color: #3b9de8;
+  text-shadow: 1px 1px rgba(255,255,255,0.5);
+  background: linear-gradient(to bottom, rgba(241,248,253,1) 0%,rgba(218,236,250,1) 50%,rgba(190,221,246,1) 51%,rgba(227,240,251,1) 100%);
+  box-shadow: inset 0px 0px 1px #fff,
+              inset 0px 0px 6px rgba(255,255,255,0.6);
+  transition: 0.2s;
+}
+.context-menu.sort-order span:active,.context-menu.sort-order span:focus {
+  background: linear-gradient(to bottom, rgba(210,232,250,1) 0%,rgba(187,220,247,1) 50%,rgba(162,207,244,1) 51%,rgba(194,224,248,1) 100%);
+  color: #046c98;
+  text-shadow: 0px -1px 1px rgba(255,255,255,0.5);
+  box-shadow: inset 0px 0px 1px #fff,
+              inset -1px -1px 4px rgba(220,220,220,0.4);
+}
+.context-menu.sort-order span.name i.fas.fa-sort-amount-down {
+  float: right;
+  margin-top: 2px;
+}
+.context-menu.sort-order li:last-child {
+  border-bottom: none;
+}
+.l-sort-toolbar {
+  float: right;
+  padding: 7px 0 7px 0;
+  text-transform: uppercase;
+  font-size: 0.8rem;
+}
+
+.l-sort-toolbar table{
+  float: right;
+}
+
+.l-sort-toolbar td.toggle-all {
+  padding-top: 7px;
+  padding-right: 10px;
+}
+
+.l-sort-toolbar .sort-by {
+  cursor: pointer;
+  padding-top: 7px;
+  padding-left: 10px;
+}
+.l-sort-toolbar .sort-by:hover {
+  color: #4b4b4b;
+}
+.l-sort-toolbar .sort-by:hover b {
+  color: #4b4b4b;
+}
+.l-sort-toolbar .sort-by:active {
+  color: #3b9de8;
+}
+.l-sort-toolbar .sort-by:active b {
+  color: #3b9de8;
+}
+
+.l-sort-toolbar .sort-by b {
+  text-transform: uppercase;
+  padding-left: 3px;
+  font-size: 0.8rem;
+}
+
+.l-sort-toolbar .toggle-all:hover {
+  color: #4b4b4b;
+}
+.l-sort-toolbar .toggle-all:active {
+  color: #3b9de8;
+}
+
+.l-sort-toolbar .l-select {
+  float: left;
+}
+.l-sort-toolbar td {
+  vertical-align: middle;
+}
+
+.l-sort-toolbar.subtitle  {
+  padding-left: 96px;
+}
+
+.l-sort-toolbar td.step-right:first-of-type {
+  padding-right: 20px;
+}
+
+.l-sort-toolbar td:nth-of-type(2) {
+/* ///  padding-right: 60px;*/
+}
+.l-sort-toolbar td:last-of-type {
+/* ///  padding-left: 40px; */
+}
+
+.l-sort-toolbar__filter-apply {
+  float: left;
+  width: 32px;
+  height: 30px;
+  border: 1px solid #ddd;
+  background-color: rgba(255,255,255,0.90);
+  text-shadow: 0px 1px rgba(255,255,255,0.95);
+  border-radius: 4px;
+  border-bottom-left-radius: 0px;
+  border-top-left-radius: 0px;
+  border-left: 0px;
+  box-shadow: inset 0px 0px 1px rgba(41,90,152,0.1), inset 0 0px 2px rgba(255,255,255,1);
+  text-shadow: 1px 1px rgba(255,255,255,0.9);
+  color: #006699;
+  padding: 0;
+  font-size: 0.9em;
+}
+
+.l-sort-toolbar__filter-apply:hover {
+  color: #3399cc;
+  background-color: #fff;
+}
+
+.l-sort-toolbar__filter-apply:active {
+  color: #409fd5;
+  box-shadow: inset 1px 1px 0px rgba(0,0,0,0.1);
+}
+
+.l-sort-toolbar__search {
+  float: left;
+  width: 25px;
+  height: 25px;
+  background-position: -333px -37px;
+  border: none;
+}
+.l-sort-toolbar__search:hover {
+  background-position: -368px -37px;
+  border-color: #afafac;
+}
+.l-sort-toolbar__search:active {
+  background-position: -404px -37px;
+  border-color: #50bdb5;
+}
+.l-sort-toolbar__search--active {
+  background-position: -404px -37px;
+  border-color: #50bdb5;
+}
+.l-sort-toolbar .vst {
+  padding: 0 12px;
+  color: #777;
+  text-transform: uppercase;
+  font-size: 0.8rem;
+  font-weight: 600;
+  line-height: 30px;
+}
+.l-sort-toolbar .vst:hover {
+  color: #cc3366;
+}
+.l-sort-toolbar .vst:active {
+  color: #3b9de8;
+}
+.l-sort-toolbar .vst.selected {
+  color: #cc3366;
+  /*color: #92af0b;*/
+}
+
+.l-unit-toolbar__buttonstrip {
+  margin-top: 12px;
+  display: inline-block;
+  font-size: 0.9em;
+}
+
+.l-unit-toolbar__buttonstrip a {
+  padding-left: 10px !important;
+  padding-right: 10px !important;
+  margin-right: 5px;
+}
+
+.l-unit-toolbar__buttonstrip .fas {
+  padding-right: 4px;
+}
+
+
+.subtitle {
+  color: #cc3366;
+  font-size: 0.8rem;
+  font-weight: 600;
+  margin: 20px 0 18px 129px;
+  text-transform: uppercase;
+}
+
+.l-select {
+  width: 178px;
+  border: 1px solid #ddd;
+  border-top-left-radius: 4px;
+  border-bottom-left-radius: 4px;
+  overflow-x: hidden;
+  position: relative;
+  display: inline-block;
+  border-style: solid none solid solid;
+  font-weight: 400;
+}
+
+.lang-ru .l-select {
+  width: 199px;
+}
+
+.l-select:after {
+  pointer-events: none;
+  width: 7px;
+  height: 4px;
+  margin-top: -2px;
+  content: '';
+  position: absolute;
+  right: 10px;
+  top: 50%;
+}
+
+.l-select select {
+  border: 0;
+  background-color: transparent;
+  height: 28px;
+  min-width: 175px;
+  padding-left: 10px;
+  background-image: url("/images/arrow.png");
+  background-position: 160px;
+  background-repeat: no-repeat;
+  appearance: none;
+  -moz-appearance: none;
+  -webkit-appearance: none;
+}
+
+.l-select select:focus {
+  border: 0;
+  outline: 0;
+}
+.lang-ru .l-select select {
+  min-width: 215px;
+}
+.l-select select option {
+  padding: 7px;
+}
+
+.l-sort-toolbar .l-select {
+  float: left;
+  border: 1px solid #ddd;
+  background-color: rgba(255,255,255,0.90);
+  text-shadow: 0px 1px rgba(255,255,255,0.95);
+  border-radius: 4px;
+  border-bottom-right-radius: 0px;
+  border-top-right-radius: 0px;
+  border-right: 0px;
+  text-shadow: 1px 1px rgba(255,255,255,0.9);
+}
+
+.l-unit {
+  color: #707070;
+  padding: 0 0 0 14px;
+  overflow: hidden;
+  font-size: 0.8rem;
+  border-radius: 0;
+  border-left: 1px solid transparent;
+  border-right: 1px solid transparent;
+}
+
+.table-header {
+  font-size: 0.95em !important;
+  background: linear-gradient(to bottom, rgba(247,247,247,1) 0%,rgba(255,255,255,1) 100%) !important;
+  border-left: 1px solid #d0d0d0 !important;
+  border-right: 1px solid #d0d0d0 !important;
+  border-bottom: 1px solid #d0d0d0 !important;
+  border-top: 1px solid #d0d0d0 !important;
+  text-shadow: 0px 1px rgba(255,255,255,1);
+  box-shadow: inset 0px 1px 1px rgba(255,255,255,1), inset 0px 0px 1px rgba(255,255,255,1), inset 0px 0px 4px rgba(255,255,255,0.8), 0px 2px 6px rgba(140,140,140,0.35) !important;
+  border-top-left-radius: 0px;
+  border-top-right-radius: 0px;
+  border-bottom-left-radius: 6px;
+  border-bottom-right-radius: 6px;
+  min-height: 28px;
+  color: #707070;
+  padding: 0 0 0 14px;
+  overflow: hidden;
+  line-height: 1rem;
+  margin-top: 1px;
+}
+
+.table-header:hover {
+  background-color: linear-gradient(to bottom, rgba(247,247,247,1) 0%,rgba(255,255,255,1) 100%) !important;
+  border-left: 1px solid #d0d0d0 !important;
+  border-right: 1px solid #d0d0d0 !important;
+}
+
+.table-header .fas {
+  font-size: 1rem;
+}
+
+.units .l-unit {
+  border-bottom: 1px solid #ddd;
+  border-left: 1px solid transparent;
+  border-right: 1px solid transparent;
+  background-color: rgba(255,255,255,0.6);
+}
+
+.l-unit:hover, .units .l-unit:hover {
+  box-shadow: 0px 2px 10px rgba(150,150,150,0.20);
+  background-color: #f8f8f8;
+  text-shadow: 0px 1px rgba(255,255,255,0.5);
+  border-left: 1px solid #ddd;
+  border-right: 1px solid #ddd;
+}
+
+.units .l-unit.l-unit--starred {
+  border-left: 2px solid #cc3366;
+}
+.units.active .l-unit.focus {
+  border-left: 2px solid #5edad0;
+  background-color: #eff5fc;
+}
+.units.active .l-unit.focus .l-unit__name {
+  color: #36b3a9;
+}
+.units.active .l-unit.focus .l-unit-toolbar__col--right {
+  display: block;
+}
+
+.units > div:last-child {
+  border-bottom: none;
+}
+
+.l-unit-ft {
+  color: #7c7c7c;
+  padding: 0 0 0 15px;
+}
+
+.l-unit:hover .l-unit-toolbar__col--right {
+  display: block;
+}
+.l-unit--blue {
+  border-left: 2px solid #3b9de8;
+}
+
+.l-unit--suspended {
+  background-color: #eaeaea !important;
+  color: #c0c0c0;
+}
+
+.l-unit--suspended a {
+  color: #c0c0c0 !important;
+}
+
+.units .l-unit.l-unit--outdated {
+  background-color: #ffcaca;
+  color: #4b4b4b;
+  border-left: 5px solid #ff6f6f;
+  border-bottom: 1px solid #fff;
+}
+
+.l-unit--suspended .l-unit__name,
+.l-unit--suspended b,
+.l-unit--outdated .l-unit__name,
+.l-unit--outdated b {
+  color: #c0c0c0;
+}
+
+.l-unit--outdated .l-unit__name {
+  color: #333;
+}
+.l-unit--outdated b {
+  color: #4b4b4b;
+}
+
+.l-unit--suspended .l-percent {
+  border-color: #fff;
+}
+.l-unit--suspended .l-percent__fill {
+  background-color: #fff;
+}
+.l-unit--suspended .l-unit__name,
+.l-unit--suspended .l-unit__name span {
+  color: #ADADAD;
+}
+
+.l-unit--suspended.selected .l-unit__name,
+.l-unit--suspended.selected .l-unit__name span {
+  color: #777;
+}
+
+.l-unit--suspended.selected {
+  background-color: #f2eab8 !important;
+  color: #b2ac87 !important;
+}
+
+.l-unit--outdated.selected {
+  background: #765D5D !important;
+  color: #333 !important;
+}
+
+
+
+.l-unit--suspended.selected .l-unit__name,
+.l-unit--suspended.selected b,
+.l-unit--outdated.selected .l-unit__name,
+.l-unit--outdated.selected b,
+.l-unit--suspended.selected .l-percent,
+.l-unit--suspended.selected .l-percent__fill,
+.l-unit--suspended.selected .l-unit__name,
+.l-unit--suspended.selected .l-unit__name span {
+  color: #333 !important;
+}
+
+.l-unit.selected .l-percent {
+  border-bottom: 1px dotted #777;
+}
+
+
+.l-unit--selected {
+  background-color: #d1eddc;
+}
+.l-unit-toolbar{
+  display: none;
+}
+
+.l-unit label {
+  margin-bottom: 20px;
+}
+.l-unit__columns {
+  display: table;
+  width: 100%;
+}
+.l-unit__col {
+  display: table-cell;
+  padding-top: 15px;
+  vertical-align: top;
+  padding-bottom: 15px;
+  cursor: default;
+}
+
+.l-unit__col--left {
+  width: 100px;
+  padding-right: 10px;
+}
+
+.units.compact .l-unit__col--left {
+  vertical-align: top;
+}
+
+.l-unit__col--left.step-left {
+  padding-left: 30px;
+}
+
+.l-unit__col--right.total {
+  padding-left: 16px;
+}
+
+.l-unit__col--right.back {
+  padding-left: 78px
+}
+
+.l-sort-toolbar .step-left {
+  padding-left: 40px;
+}
+.step-right {
+  padding-right: 40px;
+}
+
+.l-unit__date {
+  font-size: 11px;
+  margin-top: 10px;
+  padding-bottom: 30px;
+  text-transform: uppercase;
+}
+
+.l-unit__suspended {
+  display: none;
+  font-size: 0.8rem;
+  font-weight: 600;
+  margin-top: 36px;
+  text-transform: uppercase;
+  margin-bottom: 14px;
+}
+
+.units.compact .l-unit__suspended {
+  margin-top: 1px;
+}
+
+.l-unit--outdated .l-unit__suspended,
+.l-unit--suspended .l-unit__suspended {
+  display: block;
+}
+
+.l-unit-ft .subtitle,
+.l-unit .subtitle {
+  color: #cc3366;
+  font-size: 0.8rem;
+  font-weight: 600;
+  margin: 20px 0 18px 129px;
+  text-transform: uppercase;
+}
+
+.l-unit.l-unit--outdated .l-unit__date {
+  color: #d24c4c;
+  font-size: 10px;
+  text-transform: uppercase;
+  font-weight: 600;
+}
+
+.l-unit__name {
+  color: #414141;
+  font-size: 22px;
+  margin-top: 10px;
+  margin-bottom: 10px;
+  font-weight: 500;
+  letter-spacing: -0.02em;
+}
+
+.l-unit__servername {
+  color: #414141;
+  font-size: 28px;
+  margin-bottom: 10px;
+  font-weight: 300;
+  letter-spacing: -0.02em;
+}
+
+.l-unit__stats.separate,
+.l-unit__name.separate {
+  padding-bottom: 15px;
+}
+
+.l-unit__name.small {
+  font-size: 16px;
+}
+
+.l-unit__name.small-2 {
+  font-size: 20px;
+}
+
+.l-unit__name span {
+  color: #999;
+  margin-left: 30px;
+  font-size: 0.85rem;
+  font-style: italic;
+}
+.l-unit__name span:first-of-type {
+  margin-left: 39px;
+}
+.l-unit__name b {
+  font-weight: normal;
+  font-style: italic;
+}
+
+.l-unit__ip {
+  margin-bottom: 26px;
+  font-size: 0.8rem;
+  color: #383838;
+}
+.l-unit__ip span {
+  padding-left: 3px;
+  padding-right: 3px;
+}
+.display-ip {
+  font-size: 0.8rem;
+}
+.display-ip span {
+  padding-left: 3px;
+  padding-right: 3px;
+}
+
+.l-unit__stats {
+  margin-bottom: 10px;
+  margin-left: 12%;
+}
+
+.l-unit__stats:hover {
+  border-left: 1px solid transparent !important;
+  border-right: 1px solid transparent !important;
+  box-shadow: none !important;
+  background: none !important;
+}
+
+.l-unit__stats table {
+  width: 100%;
+  table-layout: fixed;
+}
+.l-unit__stats td {
+  height: 22px;
+  padding-bottom: 3px;
+  vertical-align: top;
+}
+.l-unit__stat-col--left a, .l-unit__stat-col--left a:visited {
+  color: #353535;
+}
+.l-unit__stat-col--left a:hover {
+  color: #4c8bbe;
+}
+
+.l-unit__stat-col--left {
+  float: left;
+  width: 110px;
+}
+
+.l-unit__stat-col--left.border {
+  border-left: 1px solid #ebebeb;
+}
+.l-unit__stat-col--left.border-clear {
+  border-left: 1px solid transparent;
+}
+.l-unit__stat-col--left.super-compact {
+  width: 50px;
+}
+.l-unit__stat-col--left.compact {
+  width: 60px;
+}
+.l-unit__stat-col--left.compact-1 {
+  width: 70px;
+}
+.l-unit__stat-col--left.compact-2 {
+  width: 80px;
+}
+.l-unit__stat-col--left.compact-3 {
+  width: 90px;
+}
+.l-unit__stat-col--left.compact-4 {
+  width: 130px;
+}
+.l-unit__stat-col--left.compact-5 {
+  width: 160px;
+}
+.l-unit__stat-col--left.wide {
+  width: 190px;
+}
+.l-unit__stat-col--left.wide-2 {
+  width: 230px;
+}
+.l-unit__stat-col--left.wide-3 {
+  width: 250px;
+}
+.l-unit__stat-col--left.wide-4 {
+  width: 320px;
+}
+.l-unit__stat-col--left.wide-5 {
+  width: 350px;
+}
+.l-unit__stat-col--left.wide-6 {
+  width: 440px;
+}
+.l-unit__stat-col--left.wide-7 {
+  width: 550px;
+}
+
+.l-unit__stat-col--left.small-2 {
+  line-height: 11px;
+}
+
+.l-unit__stat-col--left.tiny {
+  font-size: 0.8rem;
+}
+
+.l-unit__stat-col--left.tiny b {
+  font-size: 18px;
+}
+
+
+.l-unit__stat-col--right {
+  float: left;
+  max-width: 152px;
+}
+
+.l-unit-toolbar__col--left {
+  float: left;
+  margin-left: -15px;
+  margin-top: 0;
+  padding-bottom: 0px;/* 8px */
+  padding-left: 15px;
+  padding-top: 15px;
+  width: 30px;
+  cursor: pointer;
+  display: none;
+}
+
+.l-unit-toolbar__col--right {
+  float: right;
+}
+
+body.mobile .l-unit-toolbar__col--right {
+  display: block;
+}
+
+.l-unit-toolbar .shortcut {
+  display: none;
+}
+
+.units.active .l-unit.focus .l-unit-toolbar .shortcut {
+  display: block;
+  background-color: #69a298;
+  border-radius: 13px;
+  color: #fff;
+  cursor: pointer;
+  display: block;
+  font-size: 0.8rem;
+  font-weight: 600;
+  line-height: 25px;
+  padding-left: 7px;
+  padding-right: 9px;
+  position: absolute;
+  right: 3px;
+  top: 3px;
+}
+.units.active .l-unit.focus .l-unit-toolbar .shortcut.delete {
+  font-size: 10px;
+  padding-left: 2px;
+  padding-right: 5px;
+  text-transform: capitalize;
+}
+.units.active .l-unit.focus .l-unit-toolbar .shortcut.enter {
+  font-size: 17px;
+  padding-left: 1px;
+  padding-right: 7px;
+}
+.units.active .l-unit.focus .l-unit-toolbar i {
+  background: none;
+}
+
+.l-unit__stat-col.volume {
+  font-size: 0.8rem;
+  line-height: 17px;
+  float: right;
+}
+
+.actions-panel__col {
+  display: inline-block;
+  min-width: 18px;
+  text-transform: uppercase;
+}
+
+.actions-panel__col a {
+  color: #777;
+  font-weight: 600;
+  font-size: 0.9rem;
+  display: inline-block;
+  cursor: pointer;
+}
+
+.lang-ru .actions-panel__col a {
+  font-size: 0.9rem;
+  padding-top: 1px;
+}
+.lang-tw .actions-panel__col a {
+  font-size: 0.9rem;
+  font-weight: normal;
+  line-height: 29px;
+}
+.lang-ar .actions-panel__col a {
+  font-size: 0.9rem;
+  font-weight: normal;
+  line-height: 31px;
+}
+
+.icon-pad-right {
+  margin-right: 5px;
+}
+
+.l-icon-up-arrow, .l-icon-down-arrow, .l-icon-star, .l-icon-to-top, .l-icon-shortcuts, .l-icon-star-orange, .l-icon-star-blue {
+  display: inline-block;
+  vertical-align: middle;
+}
+
+.l-icon-down-arrow {
+  width: 7px;
+  height: 15px;
+  background-position: -280px -128px;
+}
+
+.l-icon-up-arrow {
+  width: 7px;
+  height: 15px;
+  background-position: -299px -129px;
+}
+
+
+.l-icon-star {
+  width: 36px;
+  height: 36px;
+  background-position: -216px 560px;
+  cursor: pointer;
+  visibility: hidden;
+}
+.l-unit--starred .l-icon-star {
+  background-position: -174px 560px;
+  visibility: visible;
+}
+.selected .l-icon-star {
+  filter: contrast(70%);
+  -webkit-filter:  contrast(70%);
+}
+
+.units.compact .l-icon-star {
+  margin-top: -14px;
+}
+
+.l-icon-star:hover {
+  background-position: 0px 560px;
+}
+
+.l-icon-star:active {
+  -background-position: -174px 560px;
+  background-position: -80px 562px;
+}
+
+.l-unit:hover .l-icon-star {
+  visibility: visible;
+}
+
+
+.l-icon-to-top {
+  width: 35px;
+  height: 35px;
+  background-position: -330px -68px;
+}
+.l-icon-to-top:hover {
+  background-position: -366px -68px;
+}
+.l-icon-to-top:active {
+  background-position: -402px -68px;
+}
+
+.l-icon-shortcuts {
+  width: 35px;
+  height: 35px;
+  background-position: -240px -281px;
+  border-radius: 18px;
+}
+.l-icon-shortcuts:hover {
+  background-position: -160px -281px;
+}
+.l-icon-shortcuts:active {
+  background-position: -198px -281px;
+}
+
+body.mobile .l-icon-to-top,
+body.mobile .l-icon-shortcuts {
+  display: none;
+}
+
+
+.l-icon-star-orange {
+  width: 13px;
+  height: 13px;
+  background-position: -178px -97px;
+}
+
+.l-icon-star-blue {
+  width: 13px;
+  height: 13px;
+  background-position: -134px -97px;
+}
+
+.media-top {
+  vertical-align: top;
+}
+
+.l-unit__stat-cols {
+  padding-right: 10px;
+}
+.l-unit__stat-cols.last {
+  padding-right: 0;
+}
+.l-unit__stat-cols.graph {
+  width: 200px;
+}
+.l-unit__stat-cols.tiny {
+  font-size:11px;
+  line-height: 19px;
+}
+
+.l-percent {
+  border-bottom: 1px dotted #ccc;
+  margin-top: 1px;
+  width: 200px;
+}
+.l-percent__fill {
+  background-color: #aacc0d;
+  height: 3px;
+  position: relative;
+  bottom: -1px;
+}
+
+.to-top {
+  display: inline-block;
+  position: fixed;
+  top: 90%;
+  right: 4%;
+  border: 1px solid #ddd;
+  padding: 8px;
+  border-radius: 50%;
+  background-color: #eee;
+  text-shadow: 1px 1px #fff;
+  box-shadow: 0px 2px 4px rgba(120,120,120,0.25),
+              inset 0px 0px 1px rgba(255,255,255,0.9);
+  z-index: 200;
+  width: 16px;
+  height: 16px;
+  text-align: center;
+}
+
+.to-shortcuts {
+  display: inline-block;
+  position: fixed;
+  top: 90%;
+  right: 8%;
+  border: 1px solid #ddd;
+  padding: 8px;
+  border-radius: 50%;
+  background-color: #eee;
+  text-shadow: 1px 1px #fff;
+  box-shadow: 0px 2px 4px rgba(120,120,120,0.25),
+              inset 0px 0px 1px rgba(255,255,255,0.9);
+  z-index: 200;
+  height: 16px;
+  width: 16px;
+  text-align: center;
+}
+
+
+/*
+#vstobjects {
+  margin-top: -1px;
+}
+*/
+
+#vstobjects .l-center {
+  padding-top: 20px;
+  padding-bottom: 30px;
+  font-size: 0.8rem;
+}
+
+.timer-container {
+  margin-top: 4px;
+}
+
+.timer-container .refresh-timer {
+  border: 2px solid #9f9f9f;
+  border-radius: 14px;
+  height: 14px;
+  width: 14px;
+  float: left;
+  margin: 2px 10px 0 0;
+}
+.timer-container .refresh-timer.paused {
+  border: 2px solid #9f9f9f;
+}
+.timer-container .refresh-timer.paused .loader-half.right,
+.timer-container .refresh-timer.paused .loader-half.dark {
+  background-color: #9d9f9f;
+}
+.timer-container .loader-half {
+  border-radius: 0 14px 14px 0;
+  height: 14px;
+  width: 7px;
+  float: left;
+}
+.timer-container .loader-half.left {
+  border-radius: 14px 0 0 14px;
+  background-color: #fff;
+}
+.timer-container .loader-half.right {
+  margin-left: 7px;
+  background-color: #9f9f9f;
+}
+.timer-container .loader-half.dark {
+  background-color: #9f9f9f;
+}
+.timer-container .movement {
+  float: left;
+  width: 14px;
+  height: 14px;
+  position: absolute;
+}
+.timer-container .movement.left {
+  z-index: 10;
+}
+.timer-container .movement.right {
+  transform: rotate(180deg);
+  -webkit-transform: rotate(180deg);
+}
+.timer-container .timer-button {
+  cursor: pointer;
+  text-decoration: underline;
+  margin: 7px 0 0 38px;
+  width: 15px;
+  float: left;
+  height: 10px;
+}
+.timer-container .timer-button.pause {
+  background: url(/images/pause.png) no-repeat ;
+}
+.timer-container .timer-button.play {
+  background: url(/images/start.png) no-repeat;
+}
+
+.uppercase {
+  text-transform: uppercase;
+}
+
+.title b,
+.title {
+  color: #cc3366;
+  font-size: 0.8rem;
+  font-weight: 600;
+  padding: 0 30px 0px 73px;
+  line-height: 30px;
+  text-transform: uppercase;
+}
+
+.title {
+  display: inline-block;
+  float: left;
+}
+
+
+
+
+/* form styles */
+
+
+
+.vst-error {
+  color: #ff3333;
+  font-weight: 600;
+  overflow: hidden;
+  max-width: 500px;
+  text-overflow: ellipsis;
+  white-space: nowrap;
+}
+
+.vst-ok {
+  color: #53ba55;
+  overflow: hidden;
+  max-width: 500px;
+  text-overflow: ellipsis;
+  white-space: nowrap;
+  font-size: 0.8rem;
+}
+
+.l-unit-toolbar__buttonstrip .vst-ok, .l-unit-toolbar__buttonstrip .vst-error {
+  margin-right: 20px;
+}
+
+.vst-ok a {
+  color: #326b9b;
+}
+.vst-ok a:hover {
+  color: #cc3366;
+}
+.vst-ok a:active {
+  color: #d53067;
+}
+
+
+
+
+.data {
+  margin: 0 0 90px 0;
+}
+.data-col1 {
+  width: 148px;
+}
+
+.data-col1 td {
+  padding: 10px 0 0 5px;
+}
+
+.data-col1 tr:first-child td {
+  padding: 59px 0 0 5px;
+}
+
+.login-box td,
+.data td {
+  color: #4b4b4b;
+  font-size: 0.85rem;
+  padding-bottom: 3px;
+  font-weight: 600;
+}
+.input-label {
+  padding-top: 20px;
+}
+.data input[type="checkbox"] {
+  display: inline;
+  cursor: pointer;
+}
+.step-top {
+  padding-top: 18px;
+}
+.step-top-small {
+  padding-top: 14px;
+}
+.jump-top {
+  margin-top: -60px;
+}
+.jump-small-top {
+  margin-top: -12px;
+}
+.float-right {
+    display: inline-block;
+    float: right;
+}
+
+.data a {
+  text-decoration: none;
+}
+label {
+  cursor: pointer;
+}
+
+label:hover {
+  color: #333;
+}
+
+.vst-input {
+  background-color: #fff;
+  border: 1px solid #cfcfcf;
+  border-radius: 4px;
+  color: #4e4e4e;
+  font-family: 'Exo', Arial, Arial, Helvetica, sans-serif;
+  font-size: 0.8rem;
+  height: 20px;
+  margin: 2px 6px 0 0;
+  padding: 8px 3px 8px 14px;
+  width: 360px;
+  font-weight: normal;
+  box-shadow: 0px 1px 4px rgba(0,0,0,0.15);
+}
+.vst-input:hover {
+  border: 1px solid #94c8f0;
+}
+.vst-input:focus {
+  border: 1px solid #008fee;
+  background-color: #D7F9FF;
+  color: #333;
+}
+
+.vst-input:disabled,
+.vst-list:disabled {
+  background-color: #e7e7e7;
+  text-shadow: 1px 1px rgba(255,255,255,1);
+  color: #686868;
+}
+.vst-input:focus:disabled {
+  border-color: #f1f1f1;
+  background-color: #f1f1f1;
+}
+
+.vst-input:disabled:hover,
+.vst-list:disabled:hover {
+  border-color: #cfcfcf;
+}
+
+.vst-input.long {
+  width: 832px;
+}
+.vst-input.short {
+  width: 200px;
+}
+.vst-input.vst-list-editor {
+  border: none;
+  box-shadow: none;
+  position: absolute;
+  margin-top:-34px;
+  margin-left: 1px;
+  display: block;
+  width: 340px;
+  height: 1rem;
+}
+.vst-input.vst-list-editor:focus {
+  background-color: white;
+}
+
+.vst-list {
+  background-color: #fff;
+  border: 1px solid #ccc;
+  border-radius: 4px;
+  color: #4e4e4e;
+  font-family: 'Exo', Arial, Helvetica,sans-serif;
+  font-size: 0.8rem;
+  font-weight: normal;
+  height: 36px;
+  cursor: pointer;
+  margin: 2px 6px 0 0;
+  min-width: 380px;
+  padding: 4px 1px 4px 10px;
+  background-image: url("/images/arrow.png");
+  background-position: 360px;
+  background-repeat: no-repeat;
+  width: 380px;
+  appearance:none;
+  -moz-appearance:none;
+  -webkit-appearance:none;
+  text-shadow: 0 0 0 #4b4b4b;
+  box-shadow: 0px 1px 4px rgba(0,0,0,0.15);
+}
+
+select.vst-list:-moz-focusring {
+  color:transparent;
+}
+
+.vst-list.long-2 {
+  width: 486px;
+  background-position: 465px;
+}
+.vst-list option {
+  padding: 6px 1px 6px 15px;
+}
+.vst-list:hover {
+  border: 1px solid #94c8f0;
+}
+.vst-list:focus {
+  border: 1px solid #008fee;
+  color: #333;
+}
+
+.vst-list.flat {
+  border: 1px solid #fff;
+  color: #326b9b;
+  text-transform: uppercase;
+  font-weight: 600;
+  font-size: 0.8rem;
+  margin-left: -10px;
+  text-shadow: none !important;
+  box-shadow: none !important;
+}
+.vst-list.flat:hover {
+  color: #cc3366;
+}
+.vst-list.flat option {
+  color: #4e4e4e;
+}
+
+.vst-text {
+  cursor: default;
+}
+
+a.vst-text,
+a.vst-text b{
+  color: #326b9b;
+}
+a.vst-text:hover,
+a.vst-text:hover b{
+  color: #cc3366;
+}
+a.vst-text:active,
+a.vst-text:active b{
+  color: #cc3366;
+}
+
+.advanced-options {
+  background: linear-gradient(to bottom, rgba(247,247,247,1) 0%,rgba(255,255,255,1) 100%) !important;
+  border: 1px solid #ddd !important;
+  text-shadow: 0px 1px rgba(255,255,255,0.95);
+  box-shadow: inset 0px 0px 1px rgba(255,255,255,1), inset 0px 0px 4px rgba(255,255,255,0.8), 0px 4px 6px rgba(190,190,190,0.4) !important;
+  color: #30659d !important;
+  padding: 4px 0px 0px 18px;
+  overflow: hidden;
+  height: 28px;
+}
+
+.advanced-options a {
+  color: #30659d !important;
+}
+
+.advanced-options .fas {
+  margin-right: 20px;
+  width: 14px;
+}
+
+.vst-textinput {
+  background-color: #fff;
+  border: 1px solid #cfcfcf;
+  border-radius: 4px;
+  color: #4e4e4e;
+  font-size: 0.8rem;
+  padding: 5px;
+  width: 560px;
+  height: 60px;
+  font-family: 'Exo', Arial, Helvetica, sans-serif;
+  padding: 7px 1px 3px 14px;
+  font-weight: normal;
+  box-shadow: 0px 1px 4px rgba(0,0,0,0.15);
+}
+.vst-textinput:hover {
+  border: 1px solid #94c8f0;
+}
+.vst-textinput:focus {
+  border: 1px solid #008fee;
+  background-color: #D7F9FF;
+  color: #333;
+}
+.vst-textinput:disabled {
+  background-color: #f1f1f1;
+}
+.vst-textinput.console{
+  font-size: 0.8rem;
+  width: 630px;
+  height: 300px;
+  font-family: "Inconsolata", "Lucida Console", Monaco, monospace;
+  white-space: pre;
+}
+.vst-textinput.short {
+  width: 360px;
+}
+#advanced-options .console{
+  width: 833px;
+  height: 600px;
+}
+
+.generate {
+  color: #326b9b;
+  text-decoration: underline;
+  cursor: pointer;
+  margin-left: -3px;
+  padding: 0 3px;
+}
+.generate:hover {
+  background-color: #cc3366;
+  border-color: #cc3366;
+  color: #fff;
+}
+.generate:active {
+  background-color: #F7D616;
+  border-color: #F7D616;
+}
+.vst-advanced {
+  border-bottom: 0px solid #326b9b;
+  color: #326b9b;
+  font-size: 0.8rem;
+  padding: 2px 2px 0;
+  text-decoration: none;
+  text-transform: none;
+}
+.login-box .vst-advanced:hover {
+  color: #cc3366;
+  background-color: transparent;
+  border-color: transparent;
+  font-size: 0.85em !important;
+  box-shadow: none !important;
+  background: none !important;
+  border: none !important
+}
+
+.vst-advanced:hover {
+  color: #fff;
+  background-color: #cc3366;
+  border-color: #cc3366;
+  text-decoration: none;
+}
+
+.login-box .vst-advanced:active {
+  color: #fff;
+  background-color: #F7D616;
+  border-color: #F7D616;
+  text-decoration: none;
+  font-size: 0.85em !important;
+  box-shadow: none !important;
+  background: none !important;
+  border: none !important
+}
+
+.vst-advanced:active {
+  font-size: unset;
+}
+
+.login-box .vst-advanced {
+  border-bottom: none;
+  color: #326b9b;
+  font-size: 10px;
+  padding: 2px 2px 0;
+  text-decoration: none;
+  text-transform: uppercase;
+  font-size: 0.85em !important;
+  box-shadow: none !important;
+  background: none !important;
+  border: none !important
+}
+.vst-checkbox {
+  font-size: 0.85rem;
+  margin: 2px 6px 0 3px;
+  padding: 5px;
+}
+.lets-encrypt-note {
+  color: #89a40a !important;
+  font-style: italic;
+  font-weight: normal !important;
+  height: 30px;
+  padding-top: 10px;
+  vertical-align: top;
+}
+
+.additional-control {
+  margin-left: 17px;
+  color: #326b9b;
+  border-bottom: 0px solid #326b9b;
+  font-size: 0.8rem;
+  cursor: pointer;
+  text-transform: uppercase;
+  font-weight: 600;
+  padding: 2px 2px 0;
+  text-decoration: none;
+}
+.additional-control:hover {
+  background-color: #cc3366;
+  border-color: #cc3366;
+  color: #fff;
+}
+.additional-control:active {
+  color: #fff;
+  background-color: #aaa;
+}
+
+.additional-control.ftp-remove-user {
+  padding: 2px 0 0 0;
+}
+
+.additional-control.delete:hover,
+.additional-control.ftp-remove-user:hover {
+  background-color: #FF3438;
+  border-color: #FF3438;
+}
+.additional-control.delete:active,
+.additional-control.ftp-remove-user:active {
+  background-color: #FF5F5F;
+  border-color: #FF5F5F;
+}
+.additional-control.add:hover {
+  background-color: #3b9de8;
+  border-color: #3b9de8;
+}
+.additional-control.add:active{
+  background-color: #54a6e5;
+  border-color: #54a6e5;
+}
+
+.additional-control.remove-ns {
+  display: none;
+}
+
+.data .step-left {
+  padding-left: 50px;
+}
+.hide-password {
+  color: #2361a1;
+  margin-left: -36px;
+  padding-left: 3px;
+  z-index: 1;
+}
+.toggle-psw-visibility-icon {
+  cursor: pointer;
+  opacity: 1;
+  margin: -2px;
+}
+.show-passwords-enabled-action {
+  opacity: 0.4;
+}
+.ftp-path-value,
+.hint,
+td.hint {
+  color: #777;
+  font-size: 0.85rem;
+  font-style: italic;
+  font-weight: normal;
+}
+.ftp-path-prefix { padding-top: 12px; font-size: 0.8rem; color: #555; }
+
+.ui-dialog .ui-dialog-buttonpane button {
+  box-shadow: 0px 1px 4px rgba(0,0,0,0.2),
+  inset 0px 0px 1px #fff,
+  inset 0px 0px 3px rgba(255,255,255,0.5) !important;
+}
+
+.ui-dialog .ui-dialog-buttonpane {
+  margin-bottom: -6px !important;
+  padding: 0 !important;
+}
+
+.ui-button, .button, .ui-button.ui-widget.ui-state-default.ui-corner-all.ui-button-text-only.submit, .vst-advanced {
+  filter:chroma(color=#000);
+  cursor: pointer;
+  border-radius: 3px 3px 3px 3px !important;
+  font-size: 1.05em !important;
+  font-weight: 500 !important;
+  padding: 2px 16px 3px 20px !important;
+  min-width: 100px !important;
+  height: 28px !important;
+  color: #30659d !important;
+  border: 1px solid #0083db !important;
+  background-color: #3b9de8 !important;
+  background: linear-gradient(to bottom, rgba(235,243,249,1) 0%,rgba(192,216,236,1) 51%,rgba(223,235,245,1) 100%) !important;
+  box-shadow: 0px 1px 3px rgba(0,0,0,0.25),
+              inset 0px 0px 1px #fff,
+              inset 0px 0px 3px rgba(255,255,255,0.5) !important;
+  text-shadow: 0px 1px 1px rgba(255,255,255,0.85) !important;
+}
+.ui-button:hover, .button:hover, .ui-button.cancel:hover, .button.cancel:hover,
+.ui-button.ui-widget.ui-state-default.ui-corner-all.ui-button-text-only.submit:hover,
+.vst-advanced:hover, .to-top:hover, .to-shortcuts:hover {
+  color: #0077c6 !important;
+  text-shadow: 1px 1px rgba(255,255,255,0.5) !important;
+  border: 1px solid #54a6e5 !important;
+  background: linear-gradient(to bottom, rgba(241,248,253,1) 0%,rgba(190,221,246,1) 51%,rgba(227,240,251,1) 100%) !important;
+  box-shadow: 0px 1px 3px rgba(0,0,0,0.25),
+              inset 0px 0px 1px #fff,
+              inset 0px 0px 6px rgba(255,255,255,0.6) !important;
+  transition: 0.2s;
+}
+.ui-button:focus,.ui-button:active,
+.button:active,.button:focus,.ui-button.cancel:focus,.ui-button.cancel:active,
+.button.cancel:active,.button.cancel:focus,
+.ui-button.ui-widget.ui-state-default.ui-corner-all.ui-button-text-only.submit:active,
+.vst-advanced:active,.to-top:focus, .to-shortcuts:focus {
+  border: 1px solid #0066b4 !important;
+  background: linear-gradient(to bottom, rgba(194,224,248,1) 0%, rgba(162,207,244,1) 51%, rgba(210,232,250,1) 100%) !important;
+  color: #517bab !important;
+  text-shadow: 0px -1px 2px rgba(255,255,255,0.85) !important;
+  box-shadow: 0px 1px 2px rgba(0,0,0,0.2),
+              inset 0px 0px 1px #fff,
+              inset -1px -1px 4px rgba(220,220,220,0.4) !important;
+}
+
+.ui-button-text-only {
+  border: 0px !important;
+  background: transparent !important;
+  box-shadow: none !important;
+  text-shadow: 0px 1px rgba(255,255,255,0.5);
+}
+
+.ui-dialog .ui-dialog-buttonpane button span.ui-button-text {
+  padding: 2px !important;
+  font-size: 0.85rem !important;
+}
+
+.ui-dialog .ui-button:hover span {
+  color: #046c98 !important;
+}
+
+.ui-button-text-only .selected {
+  font-weight: 600 !important;
+}
+
+.ui-button.cancel,
+.button.cancel,
+.to-top, .to-shortcuts {
+  color: #717171 !important;
+  border: 1px solid #aaaaaa !important;
+  background: linear-gradient(to bottom, rgba(250,250,250,1) 0%,rgba(230,230,230,1) 51%,rgba(242,242,242,1) 100%) !important;
+}
+
+.ui-button-text {
+  padding: 0px !important;
+  color: #30659d !important;
+}
+.ui-button.cancel:active,
+.button.cancel:active,
+.to-top:active, .to-shortcuts:active {
+  border: 1px solid #378ccd;
+  background-color: #378ccd;
+}
+a.button.cancel {
+  padding: 8px 38px;
+  text-transform: capitalize;
+}
+
+
+.ui-dialog button.cancel {
+  color: #000;
+  border: 1px solid #4b4b4b;
+  background-color: #4b4b4b;
+}
+
+.ui-button.danger:hover, .button.danger:hover {
+  background: linear-gradient(to bottom, #fbf2f1 0%,#f6b4ac 51%,#fde6e3 100%) !important;
+  color: #F4301A !important;
+  text-shadow: 0px 1px rgba(255,255,255,0.5) !important;
+  border: 1px solid #F27E71 !important;
+}
+
+.ui-button.danger:active, .button.danger:active, .ui-button.danger:focus, .button.danger:focus {
+  background: linear-gradient(to bottom, #fcd0ca 0%,#f5a69d 50%,#f9e3df 100%) !important;
+  color: #ce1500 !important;
+  text-shadow: 0px 1px 1px rgba(255,255,255,0.2),
+               0px -1px 1px rgba(255,255,255,0.6) !important;
+  border: 1px solid #F4301A !important;
+}
+
+.ui-button span {
+  color: #fff;
+}
+.ui-button:hover span {
+  color: #4b4b4b !important;
+}
+.ui-button:active span {
+  color: #4b4b4b;
+}
+
+.ui-button.cancel span {
+  color: #777;
+}
+.ui-button:hover span {
+  color: #fff;
+}
+.ui-button:active span {
+  color: #fff;
+}
+
+.ui-dialog button.cancel span {
+  color: #777 !important;
+}
+
+.unlim-trigger {
+  cursor: pointer;
+  position: absolute;
+  margin-left: -38px;
+  margin-top: 13px;
+  z-index: 1;
+}
+.optional {
+  font-size: 0.8rem;
+  padding: 0 0 0 6px;
+  font-weight: normal;
+}
+.data-active b {
+  color: #3b9de8;
+  font-size: 0.8rem;
+  text-transform: uppercase;
+}
+.data-suspended b {
+  color: #A3A3A3;
+  font-size: 0.8rem;
+  font-weight: 600;
+  text-transform: uppercase;
+}
+.data-date {
+  font-weight: normal;
+  color: #777;
+  font-size: 0.8rem;
+  line-height: 23px;
+}
+.data-dotted {
+  vertical-align: top;
+}
+.mail-infoblock-td {
+  vertical-align: top;
+}
+.mail-infoblock {
+  font-size: 0.85rem;
+  color: #777;
+  border: 1px solid #d9d9d9;
+  padding: 0px 5px 12px 20px;
+  margin-top: 83px;
+  min-width: 320px;
+  overflow: hidden;
+  box-shadow: 0px 1px 4px rgba(0,0,0,0.15);
+  border-radius: 5px;
+}
+.mail-infoblock:hover {
+  overflow: visible;
+}
+
+.mail-infoblock td {
+  color: #505050;
+  font-size: 0.75rem;
+  height: 20px;
+  font-weight: normal;
+}
+.mail-infoblock td:first-child{
+  padding-right: 14px;
+  font-weight: 600;
+}
+.mail-infoblock div {
+  white-space: nowrap;
+}
+.mail-infoblock a {
+  color: #326b9b;
+}
+.mail-infoblock a:hover {
+  color: #cc3366;
+}
+
+.additional-info {
+    margin-top: 30px;
+    width: 547px;
+}
+.additional-info td {
+    font-size: 0.8rem;
+    height: 22px;
+    font-weight: normal;
+}
+
+.additional-info td.details {
+    padding-left: 20px;
+}
+
+:focus {outline:none;}
+::-moz-focus-inner {border:0;}
+
+.login {
+  background-color: rgba(255,255,255,0.7);
+  box-shadow: 0px 8px 25px rgba(0,0,0, 0.3),
+              inset 0px 0px 2px rgba(255,255,255,1);
+  font-family: 'Exo', Tahoma, Arial, Helvetica, sans-serif;
+  margin: 0;
+  padding: 0;
+  text-align: left;
+  vertical-align: top;
+  width: 500px;
+  border-radius: 6px;
+  cursor: default;
+}
+
+.login .vst-input {
+  border-color: #5787c8;
+}
+
+.login .button {
+  font-size: 0.8rem !important;
+}
+
+.login-welcome {
+  font-size: 1.05rem !important;
+  font-weight: 500 !important;
+  padding-bottom: 30px !important;
+  font-weight: 600;
+}
+
+.page-title {
+  font-size: 1.3rem !important;
+  font-weight: 400 !important;
+  padding-bottom: 30px !important;
+  letter-spacing: -0.01em;
+  cursor: default;
+}
+
+.qr-code {
+  border: 1px solid #cfcfcf;
+  border-radius: 4px;
+  box-shadow: 0px 1px 4px rgba(0,0,0,0.15);
+}
+
+.password-option {
+  margin-top: 15px;
+}
+
+.login a.error {
+  color: #BE5ABF;
+  font-size: 0.8rem;
+}
+
+.hestiacp {
+  color: #505050;
+}
+.hestiacp:hover {
+  color: #326b9b;
+}
+.hestiacp:active {
+  color: #cc3366;
+}
+
+.login-bottom {
+  height: 60px;
+  text-align: right;
+  vertical-align: top;
+  font-size: 0.75rem !important;
+  margin-right: 65px;
+}
+
+.l-unit.selected {
+  background-color: #f8f8f8;
+  color: #4b4b4b;
+  box-shadow: 0px 2px 10px rgba(150,150,150,0.20);
+  text-shadow: 0px 1px rgba(255,255,255,0.5);
+  border-left: 1px solid #ddd;
+  border-right: 1px solid #ddd;
+}
+
+.l-unit.selected:hover {
+  background-color: #fff5ce;
+  color: #4b4b4b;
+  box-shadow: 0px 2px 14px rgba(150,150,150,0.25);
+  text-shadow: 0px 1px rgba(255,255,255,0.6);
+}
+
+.l-unit.selected b,
+.l-unit.selected strong {
+  color: #4b4b4b;
+}
+
+
+/* MAIN MENU COLLAPSED */
+.collapsed .l-stat {
+  padding-top: 20px;
+}
+
+.collapsed .l-stat__col a {
+  height: 0;
+  min-height: 0;
+  overflow: hidden;
+}
+
+.collapsed .l-stat__col-title {
+  padding-top: 2px;
+}
+
+div.l-content.collapsed > div.l-separator:nth-of-type(2) {
+  margin-top: 93px;
+  position: fixed;
+}
+
+div.l-content.collapsed > div.l-separator:nth-of-type(4) {
+  margin-top: 138px;
+  position: fixed;
+}
+
+div.l-content.collapsed .l-sort {
+  margin-top: 94px;
+}
+
+.l-content > .units.l-center::before {
+  content: '';
+  display: block;
+  height: 225px;
+}
+
+.console-output {
+  font-family: "Inconsolata", "Lucida Console", Monaco, monospace;
+  font-size: 0.92rem;
+  color: #202020;
+}
+
+form#vstobjects {
+  padding-top: 240px;
+}
+
+form#vstobjects.suspended {
+  background-color: #fff;
+  padding-bottom: 30px;
+}
+
+#add-icon {
+  width: 45px;
+  height: 45px;
+  display: inline-block;
+  z-index: 3;
+}
+.l-sort__create-btn.restore #add-icon {
+  background-position: -378px -250px;
+}
+.l-sort__create-btn.edit #add-icon {
+  background-position: -378px -154px;
+}
+#tooltip {
+  background-color: #3b9de8;
+  border-radius: 15px;
+  bottom: 6px;
+  color: #fff;
+  font-size: 0.8rem;
+  font-weight: 600;
+  height: 26px;
+  left: 12px;
+  letter-spacing: 0;
+  line-height: 25px;
+  margin-left: 12px;
+  margin-top: 7px;
+  padding: 3px 14px 3px 27px;
+  position: absolute;
+  text-transform: uppercase;
+  white-space: nowrap;
+  word-break: keep-all;
+  z-index: -1;
+}
+
+.l-sort__create-btn:active #add-icon {
+  background-position: -425px -107px;
+}
+.l-sort__create-btn.restore:active #add-icon {
+  background-position: -425px -250px !important;
+}
+
+.l-sort__create-btn.edit:active #add-icon {
+  background-position: -425px -154px !important;
+}
+
+.l-sort__create-btn.edit:hover #tooltip {
+  background-color: #3b9de8;
+}
+.l-sort__create-btn.edit:active #tooltip {
+  background-color: #3BF0E6 !important;
+}
+
+.l-sort__create-btn:active #tooltip {
+  background-color: #54a6e5;
+}
+
+.pill {
+  border-radius: 12px;
+  display: inline-block;
+  text-shadow: 0px 1px 2px rgba(0,0,0,0.4);
+}
+
+.pill.usage {
+  margin-top: 8px;
+  font-size: 0.75rem;
+  padding: 4px;
+  padding-left: 8px;
+  padding-right: 8px;
+  margin-right: 10px;
+  line-height: 0.75rem;
+  box-shadow: 0px 1px 1px rgba(0,0,0,0.2), inset 0px 1px 0px rgba(0,0,0,0.08); 
+  background-color: rgba(255,255,255,0.75);
+  font-weight: 500;
+  border: 1px solid rgba(255,255,255,0.75);
+  text-shadow: 0px 1px 1px rgba(255,255,255,0.6);
+  color: #30659d;
+}
+
+.pill.usage b { color: #30659d; }
+
+.badge {
+  display: inline-block;
+  min-width: 24px;
+  min-height: 24px;
+  line-height: 24px;
+  border-radius: 50%;
+  font-weight: 700;
+  font-size: 0.75rem;
+  box-shadow: 0px 1px 2px rgba(70,70,70,0.5), 
+              inset 0px 2px 2px #fff;
+  text-shadow: 0px 1px 2px rgba(0,0,0,0.5);
+  border: 1px solid #b8b8b8 !important;
+}
+
+.badge.large {
+  min-width: 48px;
+  min-height: 48px;
+  line-height: 48px;
+}
+
+.badge.raised {
+  background: radial-gradient(ellipse at center, rgba(255,255,255,0.2) 0%,rgba(255,255,255,0.05) 100%);
+}
+
+.l-unit--suspended .badge {
+  background: #eaeaea !important;
+  color: #c0c0c0 !important;
+  text-shadow: 0px -1px #fafafa !important;
+  box-shadow: 0px 1px 2px rgba(120,120,120,0.3) !important;
+}
+
+.pill.gray, .badge.gray {
+  border: 1px solid #fff;
+  background-color: #eaeaea;
+  color: #6c6c6c;
+  text-shadow: 0px 1px #fafafa !important;
+}
+
+.pill.blue, .badge.blue {
+  border: 1px solid #fff;
+  background-color: #316198;
+  color: #fff;
+}
+
+.pill.purple, .badge.purple {
+  border: 1px solid #fff;
+  background-color: #8e2fca;
+  color: #fff;
+}
+
+.pill.teal, .badge.teal {
+  border: 1px solid #fff;
+  background-color: #33cccc;
+  color: #fff;
+}
+
+.pill.maroon, .badge.maroon {
+  border: 1px solid #fff;
+  background-color: #cc3366;
+  color: #fff;
+}
+
+.pill.red, .badge.red {
+  border: 1px solid #fff;
+  background-color: #ff3333;
+  color: #fff;
+}
+
+.pill.orange, .badge.orange {
+  border: 1px solid #fff;
+  background-color: #f6a800;
+  color: #fff;
+}
+
+.pill.green, .badge.green {
+  border: 1px solid #fff;
+  background-color: #53ba55;
+  color: #fff;
+}
+
+.pill.lightblue, .badge.lightblue {
+  border: 1px solid #fff;
+  background-color: #6eb6f0;
+  color: #fff;
+}
+
+.status-icon.large {
+  font-size: 1rem;
+}
+
+.status-icon.yellow, .status-icon.yellow:hover {
+  color: #f3e72c;
+}
+.status-icon.teal, .status-icon.teal:hover {
+  color: #33cccc;
+}
+.status-icon.purple, .status-icon.purple:hover {
+  color: #8e2fca;
+}
+
+.status-icon.maroon, .status-icon.maroon:hover {
+  color: #cc3366;
+}
+
+.status-icon.red, .status-icon.red:hover {
+  color: #ff3333;
+}
+
+.status-icon.green, .status-icon.green:hover {
+  color: #53ba55;
+}
+
+.status-icon.orange, .status-icon.orange:hover {
+  color: #ffc043;
+}
+
+.status-icon.lightblue, .status-icon.lightblue:hover {
+  color: #6eb6f0;
+}
+
+.status-icon.highlight, .status-icon.highlight:hover {
+  color: #323232;
+}
+
+.status-icon.blue, .status-icon.blue:hover {
+  color: #326b9b;
+}
+
+.status-icon.dim {
+  color: #ddd;
+  text-shadow: 1px 1px rgba(255,255,255,0.3);
+}
+
+.status-icon.dim {
+  color: #ddd;
+  text-shadow: 1px 1px rgba(255,255,255,0.3);
+}
+
+.l-unit--suspended .status-icon.dim {
+  color: #c0c0c0 !important;
+  text-shadow: 0px !important;
+}
+
+.noselect {
+  -webkit-touch-callout: none;
+  -webkit-user-select: none;
+  -khtml-user-select: none;
+  -moz-user-select: none;
+  -ms-user-select: none;
+  -user-select: none;
+}
+
+.search-input {
+  background-color: #fff;
+  border: 1px solid #ddd;
+  height: 26px;
+  line-height: 28px;
+  padding-left: 7px;
+  float: left;
+  width: 120px;
+  border-top-left-radius: 4px;
+  border-bottom-left-radius: 4px;
+  border-right: 0;
+
+/*  visibility: hidden;*/
+  -webkit-transition: width .2s ease-out;
+  -moz-transition: width .2s ease-out;
+  -o-transition: width .2s ease-out;
+  transition: width .2s ease-out;
+}
+.lang-ru .search-input{
+  width: 74px;
+}
+.lang-ru .search-input.activated{
+  width: 70px;
+}
+.search-input.activated{
+  width: 120px;
+  visibility: visible;
+}
+.search-input:focus {
+/*
+  background-color: #e8fcff;
+  border-color: #75c9c2;
+  color: #333;
+*/
+}
+
+.lang-fr .search-input, .lang-de .search-input, .lang-nl .search-input {
+  width: 100px;
+}
+
+.float-left {
+  float: left;
+}
+.float-right {
+  float: right;
+}
+.display-inline-block {
+  display: inline-block;
+}
+.width-100p {
+  width: 100%;
+}
+
+.l-sort-toolbar table td {
+  float: left;
+  margin-left: 10px;
+}
+.l-sort-toolbar__search-box {
+  float: right !important;
+  padding-right: 0 !important;
+}
+.ui-dialog .ui-dialog-buttonpane button:nth-of-type(2) {
+  -background-color: #dfdedd;
+}
+
+.shortcuts {
+  background: rgba(50,50,50,0.93);
+  display: inline-block;
+  position: fixed;
+  left: 50%;
+  bottom: 0;
+  color: #eee;
+  width: 800px;
+  border: 1px solid rgba(255,255,255,0.7);
+  border-bottom: 0px;
+  font-size: 0.8rem;
+  z-index: 120;
+  transform: translate(-50%, 0);
+  border-top-left-radius: 6px;
+  border-top-right-radius: 6px;
+  box-shadow: 0px 4px 30px rgba(0,0,0,0.5);
+  line-height: 0.9rem;
+  cursor: default;
+}
+
+.shortcuts .header {
+  border-bottom: 1px solid #606060;
+  height: 43px;
+}
+
+.shortcuts .title {
+  text-transform: uppercase;
+  color: #ff3478;
+  padding: 7px 0 7px 14px;
+  display: inline-block;
+  float: left;
+  font-size: 0.85rem;
+  letter-spacing: -0.01em;
+
+}
+.shortcuts .close {
+  cursor: pointer;
+  display: inline-block;
+  float: right;
+  height: 32px;
+  padding-top: 11px;
+  width: 46px;
+}
+.shortcuts .close:hover {
+  color: #db0000;
+}
+.shortcuts .close:active {
+  color: #a60000;
+}
+.shortcuts .close .fas {
+  font-size: 0.8rem;
+  line-height: 1.4rem;
+}
+.shortcuts ul {
+  list-style-type: none;
+  padding: 30px 20px;
+  display: inline-block;
+  float: left;
+  width: 360px;
+}
+.shortcuts ul li {
+  padding: 5px 20px;
+}
+.shortcuts ul li.step-top {
+  padding-top: 30px;
+}
+.shortcuts ul li span {
+  color: #ff3478;
+  display: inline-block;
+  font-weight: 600;
+  padding: 0 20px 0 0;
+  text-align: right;
+/*  width: 140px;*/
+}
+
+.shortcuts ul li span.bigger {
+  font-size: 18px;
+}
+
+.description {
+  font-weight: normal;
+  line-height: 25px;
+  padding-bottom: 45px;
+  margin-left: 50px;
+}
+.description ul{
+  margin-top: 15px;
+  list-style: none;
+  padding-left: 0;
+}
+
+.description li{
+  margin: 10px 0;
+}
+
+.description a {
+  line-height: 30px;
+  text-decoration: underline;
+  color: #326b9b;
+}
+.description a.purchase {
+  color: #FFF;
+  background-color: #3b9de8;
+  border: none;
+  border-radius: 3px;
+  font-size: 0.8rem;
+  font-weight: 600;
+  padding: 7px 15px;;
+  text-transform: capitalize;
+  text-decoration: none;
+}
+.description a.purchase:hover {
+  background-color: #54a6e5;
+  color: #4b4b4b;
+}
+.description a.purchase:active {
+  background-color: #54a6e5;
+  color: #4b4b4b;
+}
+
+.description a.cancel {
+  background-color: #999;
+  border: none;
+  border-radius: 3px;
+  color: #fff;
+  font-size: 0.8rem;
+  font-weight: 600;
+  padding: 7px 15px;
+  text-transform: capitalize;
+  text-decoration: none;
+}
+.description a.cancel:hover {
+  background-color: #326b9b;
+}
+.description a.cancel:active {
+  background-color: #5f9491;
+}
+
+.description.cancel-success {
+  color: #8fac0a;
+  font-weight: 600;
+}
+
+.description .licence {
+  padding: 20px 0;
+  color: #326b9b;
+}
+
+.description .licence input {
+  margin-left: 17px;
+  width: 137px;
+}
+
+.description span {
+  font-style: italic;
+  line-height: 45px;
+  padding-top: 20px;
+}
+
+.description .twoco {
+  font-style: italic;
+  line-height: 15px;
+  font-size: 0.8rem;
+}
+
+.ui-dialog {
+  font-family: 'Exo', Arial, Helvetica, sans-serif !important;
+  font-weight: 500 !important;
+  background-color: rgba(255,255,255,0.9) !important;
+  box-shadow: inset 0px 1px 3px rgba(0,0,0,0.25), 
+              0 8px 40px 0 rgba(0, 0, 0, 0.35) !important;
+  border-radius: 6px !important;
+  border: 1px solid rgba(255,255,255,0.98) !important;
+  text-align: center !important;
+}
+
+.ui-dialog .ui-dialog-content {
+  color: #535353 !important;
+  padding: 10px 26px 30px !important;
+}
+
+.ui-dialog .ui-dialog-title {
+  margin: 0px !important;
+  color: #305ba9 !important;
+  font-size: 1.2em !important;
+  text-transform: none !important;
+  letter-spacing: -0.01em !important;
+  text-align: center !important;
+  float: none !important;
+  font-weight: 500;
+}
+
+.ui-dialog-buttonpane {
+  border-color: #fff!important;
+  box-shadow: inset 0px 0px 2px rgba(0,0,0,0.25);
+  border-bottom: 1px solid #fff !important;
+  background: #e0e0e0;
+  margin-top: 0px !important;
+  padding-top: 0px !important;
+}
+
+.ui-widget {
+  font-size: 0.85rem !important;
+}
+
+.ui-widget-overlay {
+  opacity: 0.8 !important;
+  background: rgba(10,10,10,0.9) !important;
+}
+
+.helper-container {
+  float: right;
+  margin-bottom: -450px;
+  margin-top: 410px;
+  margin-right: 22px;
+  padding-top: 3px;
+  width: 563px;
+  box-shadow: 0px 1px 4px rgba(0,0,0,0.15);
+  border: 1px solid #cfcfcf;
+  border-radius: 4px;
+}
+
+.context-helper {
+  text-transform: uppercase;
+  /*text-decoration: underline;*/
+  color: #777;
+  font-size: 0.8rem;
+  cursor: pointer;
+  font-weight: 600;
+  float: right;
+}
+.context-helper:hover {
+  color: #3b9de8;
+}
+.context-helper:active {
+  color: #cc3366;
+}
+
+
+.cron-helper-tabs {
+/*  margin-top: 30px;*/
+  border: none !important;
+  font-family: 'Exo', Arial, Helvetica, sans-serif !important;
+}
+
+.cron-helper-tabs a {
+  color: #777;
+  font-size: 0.8rem;
+  font-weight: 600;
+  line-height: 30px;
+  padding: 0 12px;
+  text-transform: uppercase;
+}
+
+.cron-helper-tabs a:hover {
+  color: #cc3366;
+}
+.cron-helper-tabs a:active {
+  color: #3b9de8;
+}
+.cron-helper-tabs .ui-tabs-selected a {
+  color: #cc3366;
+}
+
+.cron-helper-tabs select.short {
+  background-position: -388px -604px;
+  min-width: 30px;
+  width: 70px;
+}
+
+.cron-helper-tabs p {
+  color: #777;
+  font-size: 0.8rem;
+}
+.cron-helper-tabs p span{
+  padding-right: 15px;
+  padding-left: 25px;
+}
+.cron-helper-tabs p span.first{
+  display: inline-block;
+  padding-right: 15px;
+  width: 100px;
+  padding-left: 0;
+}
+
+.cron-helper-tabs .button {
+  width: auto;
+  background-color: #3b9de8;
+  border: 1px solid #3b9de8;
+  text-transform: capitalize;
+}
+.cron-helper-tabs .button:hover {
+  background-color: #5BD8CF;
+  border: 1px solid #5BD8CF;
+}
+.cron-helper-tabs .button:active {
+  background-color: #4FBCB4;
+  border: 1px solid #4FBCB4;
+}
+
+.context-helper-close {
+  cursor: pointer;
+  display: inline-block;
+  float: right;
+  height: 32px;
+  padding-top: 11px;
+  width: 46px;
+  filter: contrast(50%);
+}
+.context-helper-close:hover {
+  background-color: #aaa;
+  filter: none;
+}
+.context-helper-close:active {
+  background-color: #999;
+  filter: none;
+}
+
+.server-info {
+
+}
+
+.server-info-output {
+  color: #cc3366; 
+  padding: 10px 0 20px 20px; 
+  background: #fff;
+}
+
+.server-info-data {
+  margin-left: 100px; 
+  margin-top: -20px;
+}
+
+.server-info-name {
+  margin-top: 5px;
+  margin-bottom: 30px;
+}
+
+.server-info-output {
+  color: #cc3366; 
+  padding: 10px 0 20px 20px; 
+  background: #fff;
+}
+
+.icon-server-info {
+  font-size: 5.2em;
+  float: left;
+  margin-right: 32px;
+  margin-left: 2px;
+}
+
+.userlist-email {
+  font-size: 0.75rem;
+}
+
+.userlist-username {
+  font-size: 1.05em;
+}
+
+@media screen and (max-width: 950px) {
+  .helper-container {
+    display: none;
+  }
+}

Разница между файлами не показана из-за своего большого размера
+ 0 - 3885
web/css/styles.min.css


+ 0 - 92
web/css/uploadify.css

@@ -1,92 +0,0 @@
-/*
-Uploadify
-Copyright (c) 2012 Reactive Apps, Ronnie Garcia
-Released under the MIT License <http://www.opensource.org/licenses/mit-license.php> 
-*/
-
-.uploadify {
-	position: relative;
-	margin-bottom: 1em;
-}
-.uploadify-button {
-	background-color: #505050;
-	background-image: linear-gradient(bottom, #505050 0%, #707070 100%);
-	background-image: -o-linear-gradient(bottom, #505050 0%, #707070 100%);
-	background-image: -moz-linear-gradient(bottom, #505050 0%, #707070 100%);
-	background-image: -webkit-linear-gradient(bottom, #505050 0%, #707070 100%);
-	background-image: -ms-linear-gradient(bottom, #505050 0%, #707070 100%);
-	background-image: -webkit-gradient(
-		linear,
-		left bottom,
-		left top,
-		color-stop(0, #505050),
-		color-stop(1, #707070)
-	);
-	background-position: center top;
-	background-repeat: no-repeat;
-	-webkit-border-radius: 30px;
-	-moz-border-radius: 30px;
-	border-radius: 30px;
-	border: 2px solid #808080;
-	color: #FFF;
-	font: bold 12px Arial, Helvetica, sans-serif;
-	text-align: center;
-	text-shadow: 0 -1px 0 rgba(0,0,0,0.25);
-	width: 100%;
-}
-.uploadify:hover .uploadify-button {
-	background-color: #606060;
-	background-image: linear-gradient(top, #606060 0%, #808080 100%);
-	background-image: -o-linear-gradient(top, #606060 0%, #808080 100%);
-	background-image: -moz-linear-gradient(top, #606060 0%, #808080 100%);
-	background-image: -webkit-linear-gradient(top, #606060 0%, #808080 100%);
-	background-image: -ms-linear-gradient(top, #606060 0%, #808080 100%);
-	background-image: -webkit-gradient(
-		linear,
-		left bottom,
-		left top,
-		color-stop(0, #606060),
-		color-stop(1, #808080)
-	);
-	background-position: center bottom;
-}
-.uploadify-button.disabled {
-	background-color: #D0D0D0;
-	color: #808080;
-}
-.uploadify-queue {
-	margin-bottom: 1em;
-}
-.uploadify-queue-item {
-	background-color: #F5F5F5;
-	-webkit-border-radius: 3px;
-	-moz-border-radius: 3px;
-	border-radius: 3px;
-	font: 11px Verdana, Geneva, sans-serif;
-	margin-top: 5px;
-	max-width: 350px;
-	padding: 10px;
-}
-.uploadify-error {
-	background-color: #FDE5DD !important;
-}
-.uploadify-queue-item .cancel a {
-	background: url('../img/uploadify-cancel.png') 0 0 no-repeat;
-	float: right;
-	height:	16px;
-	text-indent: -9999px;
-	width: 16px;
-}
-.uploadify-queue-item.completed {
-	background-color: #E5E5E5;
-}
-.uploadify-progress {
-	background-color: #E5E5E5;
-	margin-top: 10px;
-	width: 100%;
-}
-.uploadify-progress-bar {
-	background-color: #0099FF;
-	height: 3px;
-	width: 1px;
-}

BIN
web/images/background-dots.png


BIN
web/images/document.png


BIN
web/images/edit_bg.png


BIN
web/images/flat_icons.png


BIN
web/images/in_progress.gif


BIN
web/images/progress.gif


BIN
web/images/ui-bg_flat_0_aaaaaa_40x100.png


BIN
web/images/ui-bg_glass_55_fbf9ee_1x400.png


BIN
web/images/ui-bg_glass_95_fef1ec_1x400.png


BIN
web/images/ui-icons_2e83ff_256x240.png


BIN
web/images/ui-icons_454545_256x240.png


BIN
web/images/ui-icons_888888_256x240.png


BIN
web/images/ui-icons_cd0a0a_256x240.png


+ 11 - 0
web/inc/i18n/de.php

@@ -846,4 +846,15 @@ $LANG['de'] = array(
     
     //header
     'Hestia Control Panel' => 'Hestia Control Panel',
+
+    // Set default language
+    'SYSTEM_SET_DEFAULT_LANGUAGE' => 'Als Standardsprache für alle Benutzer festlegen',
+    
+        //2FA 
+    'Forgot token' => 'Token vergessen',
+    '2FA Token' => '2FA Token',
+    '2FA Reset successfully' => '2FA Token wurde mit Erfolg zurückgesetzt. Sie können sich jetzt erneut anmelden',
+    'Reset 2FA' => '2FA zurücksetzen',
+    '2FA Reset Code' => 'Kontowiederherstellungscode',
+    'Invalid or missing token' => 'Ungültiger oder fehlender Kontowiederherstellungscode',  
 );

+ 10 - 0
web/inc/i18n/en.php

@@ -849,4 +849,14 @@ $LANG['en'] = array(
     //header
     'Hestia Control Panel' => 'Hestia Control Panel',
 
+    // Set default language
+    'SYSTEM_SET_DEFAULT_LANGUAGE' => 'Set as default language for all users',
+    
+    //2FA 
+    'Forgot token' => 'Forgot token',
+    '2FA Token' => '2FA Token',
+    '2FA Reset successfully' => '2FA Token has been reset with success. You are now able to login again',
+    'Reset 2FA' => 'Reset 2FA',
+    '2FA Reset Code' => 'Account Recovery Code',
+    'Invalid or missing token' => 'Invalid or missing token',
 );

+ 11 - 1
web/inc/i18n/fr.php

@@ -851,5 +851,15 @@ $LANG['fr'] = array(
     
     //header
     'Hestia Control Panel' => 'Hestia Control Panel',
-
+    
+    // Set default language
+    'SYSTEM_SET_DEFAULT_LANGUAGE' => 'Définir comme langue par défaut pour tous les utilisateurs',
+    
+    //2FA 
+    'Forgot token' => 'Jeton oublié',
+    '2FA Token' => 'Jeton 2FA',
+    '2FA Reset successfully' => 'Le jeton 2FA a été réinitialisé avec succès. Vous pouvez maintenant vous reconnecter',
+    'Reset 2FA' => 'Réinitialiser le jeton 2FA',
+    '2FA Reset Code' => 'Code de récupération de compte',
+    'Invalid or missing token' => 'Jeton non valide ou manquant',
 );

+ 10 - 0
web/inc/i18n/it.php

@@ -848,4 +848,14 @@ $LANG['it'] = array(
     //header
     'Hestia Control Panel' => 'Hestia Control Panel',
 
+    // Set default language
+    'SYSTEM_SET_DEFAULT_LANGUAGE' => 'Imposta come lingua predefinita per tutti gli utenti',
+    
+        //2FA 
+    'Forgot token' => 'Codice dimenticato',
+    '2FA Token' => 'Codice 2fa',
+    '2FA Reset successfully' => 'Il codice 2FA è stato ripristinato correttamente. Ora puoi accedere di nuovo',
+    'Reset 2FA' => 'Reimposta il codice 2FA',
+    '2FA Reset Code' => 'Codice di recupero dell\'account',
+    'Invalid or missing token' => 'Codice non valido o mancante',
 );

+ 14 - 3
web/inc/i18n/nl.php

@@ -515,7 +515,7 @@ $LANG['nl'] = array(
     'USER_EXCLUSIONS' => 'Type mapnaam, één per mijn. Om alle mappen uit te sluiten gebruik *',
 
 
-    'Welcome to Hestia Control Panel'  => 'Welkom bij het Hestia Controlepaneel',
+    'Welcome to Hestia Control Panel'  => 'Welkom bij HestiaCP',
     'MAIL_FROM'  => 'Hestia Controlepaneel <noreply@%s>',
     'GREETINGS_GORDON_FREEMAN' => "Hallo %s %s,\n",
     'GREETINGS' => "Hallo,\n",
@@ -527,7 +527,7 @@ $LANG['nl'] = array(
     'Database Credentials'  => 'Database gegevens',
     'DATABASE_READY' => "De database is succesvol aangemaakt en klaar voor gebruik.\n\nDatabase: %s\nGebruiker: %s\nWachtwoord: %s\n%s\n\n--\nHestia Controlepaneel\n",
 
-    'forgot password'  => 'Wachtwoord vergeten',
+    'forgot password'  => 'Vergeten',
     'Confirm'  => 'Bevestig',
     'New Password'  => 'Nieuw wachtwoord',
     'Confirm Password'  => 'Bevestig wachtwoord',
@@ -834,7 +834,7 @@ $LANG['nl'] = array(
     'Bandwidth Usage' => 'Dataverkeer verbuik',
     
     //reset
-    'Forgot Password' => 'Wachtwoord vergeten',
+    'Forgot Password' => 'Wachtwoord Vergeten',
     //web
     'Quick Install App' => 'Quick Install App',
     //webapp 
@@ -849,4 +849,15 @@ $LANG['nl'] = array(
     
     //header
     'Hestia Control Panel' => 'Hestia Control Panel',
+    
+    // Set default language
+    'SYSTEM_SET_DEFAULT_LANGUAGE' => 'Stel standaard taal in voor alle gebruikers',
+    
+        //2FA 
+    'Forgot token' => 'Token vergeten',
+    '2FA Token' => '2FA Token',
+    '2FA Reset successfully' => '2FA is met success gereset. Je kunt nu normaal inloggen.',
+    'Reset 2FA' => 'Herstel 2FA Code',
+    '2FA Reset Code' => 'Account Herstel Code',
+    'Invalid or missing token' => 'Ongeldige of geen token',
 );

+ 0 - 1
web/js/cheef-editor/.gitignore

@@ -1 +0,0 @@
-.idea

+ 0 - 22
web/js/cheef-editor/README.md

@@ -1,22 +0,0 @@
-jQuery-ace
-==========
-
-Original repo: https://github.com/cheef/jquery-ace
-
-jQuery plugin for ACE Code Editor, http://ace.ajax.org. It embeds ACE Code Editor to any choosen ``div`` or ``textarea``.
-
-## How to install
-
-See all documentation and examples here http://cheef.github.com/jquery-ace
-
-## How to contribute
-
-1. Fork it
-2. Create your feature branch (`git checkout -b my-new-feature`)
-3. Commit your changes (`git commit -am 'Add some feature'`)
-4. Push to the branch (`git push origin my-new-feature`)
-5. Create new Pull Request
-
-## Author
-
-Ivan Garmatenko **cheef.che at gmail.com**

Разница между файлами не показана из-за своего большого размера
+ 0 - 0
web/js/cheef-editor/ace/ace.js


+ 0 - 1
web/js/cheef-editor/ace/ext-static_highlight.js

@@ -1 +0,0 @@
-ace.define("ace/ext/static_highlight",["require","exports","module","ace/edit_session","ace/layer/text"],function(e,t,n){var r=e("../edit_session").EditSession,i=e("../layer/text").Text,s=".ace_editor {font-family: 'Monaco', 'Menlo', 'Droid Sans Mono', 'Courier New', monospace;font-size: 12px;}.ace_editor .ace_gutter { width: 25px !important;display: block;float: left;text-align: right; padding: 0 3px 0 0; margin-right: 3px;}.ace_line { clear: both; }*.ace_gutter-cell {-moz-user-select: -moz-none;-khtml-user-select: none;-webkit-user-select: none;user-select: none;}";t.render=function(e,t,n,o,u){o=parseInt(o||1,10);var a=new r("");a.setMode(t),a.setUseWorker(!1);var f=new i(document.createElement("div"));f.setSession(a),f.config={characterWidth:10,lineHeight:20},a.setValue(e);var l=[],c=a.getLength();for(var h=0;h<c;h++)l.push("<div class='ace_line'>"),u||l.push("<span class='ace_gutter ace_gutter-cell' unselectable='on'>"+(h+o)+"</span>"),f.$renderLine(l,h,!0,!1),l.push("</div>");var p="<div class=':cssClass'>        <div class='ace_editor ace_scroller ace_text-layer'>            :code        </div>    </div>".replace(/:cssClass/,n.cssClass).replace(/:code/,l.join(""));return f.destroy(),{css:s+n.cssText,html:p}}})

Разница между файлами не показана из-за своего большого размера
+ 0 - 0
web/js/cheef-editor/ace/ext-textarea.js


Разница между файлами не показана из-за своего большого размера
+ 0 - 0
web/js/cheef-editor/ace/keybinding-emacs.js


Разница между файлами не показана из-за своего большого размера
+ 0 - 0
web/js/cheef-editor/ace/keybinding-vim.js


Разница между файлами не показана из-за своего большого размера
+ 0 - 0
web/js/cheef-editor/ace/mode-abap.js


Разница между файлами не показана из-за своего большого размера
+ 0 - 0
web/js/cheef-editor/ace/mode-asciidoc.js


Разница между файлами не показана из-за своего большого размера
+ 0 - 0
web/js/cheef-editor/ace/mode-c9search.js


Разница между файлами не показана из-за своего большого размера
+ 0 - 0
web/js/cheef-editor/ace/mode-c_cpp.js


Разница между файлами не показана из-за своего большого размера
+ 0 - 0
web/js/cheef-editor/ace/mode-clojure.js


Разница между файлами не показана из-за своего большого размера
+ 0 - 0
web/js/cheef-editor/ace/mode-coffee.js


Разница между файлами не показана из-за своего большого размера
+ 0 - 0
web/js/cheef-editor/ace/mode-coldfusion.js


Разница между файлами не показана из-за своего большого размера
+ 0 - 0
web/js/cheef-editor/ace/mode-csharp.js


Разница между файлами не показана из-за своего большого размера
+ 0 - 0
web/js/cheef-editor/ace/mode-css.js


Разница между файлами не показана из-за своего большого размера
+ 0 - 0
web/js/cheef-editor/ace/mode-dart.js


Разница между файлами не показана из-за своего большого размера
+ 0 - 0
web/js/cheef-editor/ace/mode-diff.js


Разница между файлами не показана из-за своего большого размера
+ 0 - 0
web/js/cheef-editor/ace/mode-dot.js


Разница между файлами не показана из-за своего большого размера
+ 0 - 0
web/js/cheef-editor/ace/mode-glsl.js


Разница между файлами не показана из-за своего большого размера
+ 0 - 0
web/js/cheef-editor/ace/mode-golang.js


Разница между файлами не показана из-за своего большого размера
+ 0 - 0
web/js/cheef-editor/ace/mode-groovy.js


Разница между файлами не показана из-за своего большого размера
+ 0 - 0
web/js/cheef-editor/ace/mode-haml.js


Разница между файлами не показана из-за своего большого размера
+ 0 - 0
web/js/cheef-editor/ace/mode-haxe.js


Разница между файлами не показана из-за своего большого размера
+ 0 - 0
web/js/cheef-editor/ace/mode-html.js


Разница между файлами не показана из-за своего большого размера
+ 0 - 0
web/js/cheef-editor/ace/mode-jade.js


Разница между файлами не показана из-за своего большого размера
+ 0 - 0
web/js/cheef-editor/ace/mode-java.js


Разница между файлами не показана из-за своего большого размера
+ 0 - 0
web/js/cheef-editor/ace/mode-javascript.js


Разница между файлами не показана из-за своего большого размера
+ 0 - 0
web/js/cheef-editor/ace/mode-json.js


Разница между файлами не показана из-за своего большого размера
+ 0 - 0
web/js/cheef-editor/ace/mode-jsp.js


Разница между файлами не показана из-за своего большого размера
+ 0 - 0
web/js/cheef-editor/ace/mode-jsx.js


Разница между файлами не показана из-за своего большого размера
+ 0 - 0
web/js/cheef-editor/ace/mode-latex.js


Разница между файлами не показана из-за своего большого размера
+ 0 - 0
web/js/cheef-editor/ace/mode-less.js


Разница между файлами не показана из-за своего большого размера
+ 0 - 0
web/js/cheef-editor/ace/mode-liquid.js


+ 0 - 1
web/js/cheef-editor/ace/mode-lisp.js

@@ -1 +0,0 @@
-ace.define("ace/mode/lisp",["require","exports","module","ace/lib/oop","ace/mode/text","ace/tokenizer","ace/mode/lisp_highlight_rules"],function(e,t,n){var r=e("../lib/oop"),i=e("./text").Mode,s=e("../tokenizer").Tokenizer,o=e("./lisp_highlight_rules").LispHighlightRules,u=function(){var e=new o;this.$tokenizer=new s(e.getRules())};r.inherits(u,i),function(){}.call(u.prototype),t.Mode=u}),ace.define("ace/mode/lisp_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/text_highlight_rules"],function(e,t,n){var r=e("../lib/oop"),i=e("./text_highlight_rules").TextHighlightRules,s=function(){var e="case|do|let|loop|if|else|when",t="eq|neq|and|or",n="null|nil",r="cons|car|cdr|cond|lambda|format|setq|setf|quote|eval|append|list|listp|memberp|t|load|progn",i=this.createKeywordMapper({"keyword.control":e,"keyword.operator":t,"constant.language":n,"support.function":r},"identifier",!0);this.$rules={start:[{token:"comment",regex:";.*$"},{token:["storage.type.function-type.lisp","text","entity.name.function.lisp"],regex:"(?:\\b(?:(defun|defmethod|defmacro))\\b)(\\s+)((?:\\w|\\-|\\!|\\?)*)"},{token:["punctuation.definition.constant.character.lisp","constant.character.lisp"],regex:"(#)((?:\\w|[\\\\+-=<>'\"&#])+)"},{token:["punctuation.definition.variable.lisp","variable.other.global.lisp","punctuation.definition.variable.lisp"],regex:"(\\*)(\\S*)(\\*)"},{token:"constant.numeric",regex:"0[xX][0-9a-fA-F]+(?:L|l|UL|ul|u|U|F|f|ll|LL|ull|ULL)?\\b"},{token:"constant.numeric",regex:"[+-]?\\d+(?:(?:\\.\\d*)?(?:[eE][+-]?\\d+)?)?(?:L|l|UL|ul|u|U|F|f|ll|LL|ull|ULL)?\\b"},{token:i,regex:"[a-zA-Z_$][a-zA-Z0-9_$]*\\b"},{token:"string",regex:'"(?=.)',next:"qqstring"}],qqstring:[{token:"constant.character.escape.lisp",regex:"\\\\."},{token:"string",regex:'[^"\\\\]+',merge:!0},{token:"string",regex:"\\\\$",next:"qqstring",merge:!0},{token:"string",regex:'"|$',next:"start",merge:!0}]}};r.inherits(s,i),t.LispHighlightRules=s})

Разница между файлами не показана из-за своего большого размера
+ 0 - 0
web/js/cheef-editor/ace/mode-lua.js


Разница между файлами не показана из-за своего большого размера
+ 0 - 0
web/js/cheef-editor/ace/mode-luapage.js


+ 0 - 1
web/js/cheef-editor/ace/mode-lucene.js

@@ -1 +0,0 @@
-ace.define("ace/mode/lucene",["require","exports","module","ace/lib/oop","ace/mode/text","ace/tokenizer","ace/mode/lucene_highlight_rules"],function(e,t,n){var r=e("../lib/oop"),i=e("./text").Mode,s=e("../tokenizer").Tokenizer,o=e("./lucene_highlight_rules").LuceneHighlightRules,u=function(){this.$tokenizer=new s((new o).getRules())};r.inherits(u,i),t.Mode=u}),ace.define("ace/mode/lucene_highlight_rules",["require","exports","module","ace/lib/oop","ace/lib/lang","ace/mode/text_highlight_rules"],function(e,t,n){var r=e("../lib/oop"),i=e("../lib/lang"),s=e("./text_highlight_rules").TextHighlightRules,o=function(){this.$rules={start:[{token:"constant.character.negation",regex:"[\\-]"},{token:"constant.character.interro",regex:"[\\?]"},{token:"constant.character.asterisk",regex:"[\\*]"},{token:"constant.character.proximity",regex:"~[0-9]+\\b"},{token:"keyword.operator",regex:"(?:AND|OR|NOT)\\b"},{token:"paren.lparen",regex:"[\\(]"},{token:"paren.rparen",regex:"[\\)]"},{token:"keyword",regex:"[\\S]+:"},{token:"string",regex:'".*?"'},{token:"text",regex:"\\s+"}]}};r.inherits(o,s),t.LuceneHighlightRules=o})

Разница между файлами не показана из-за своего большого размера
+ 0 - 0
web/js/cheef-editor/ace/mode-makefile.js


Разница между файлами не показана из-за своего большого размера
+ 0 - 0
web/js/cheef-editor/ace/mode-markdown.js


Разница между файлами не показана из-за своего большого размера
+ 0 - 0
web/js/cheef-editor/ace/mode-objectivec.js


Разница между файлами не показана из-за своего большого размера
+ 0 - 0
web/js/cheef-editor/ace/mode-ocaml.js


Разница между файлами не показана из-за своего большого размера
+ 0 - 0
web/js/cheef-editor/ace/mode-perl.js


Разница между файлами не показана из-за своего большого размера
+ 0 - 0
web/js/cheef-editor/ace/mode-pgsql.js


Разница между файлами не показана из-за своего большого размера
+ 0 - 0
web/js/cheef-editor/ace/mode-php.js


Разница между файлами не показана из-за своего большого размера
+ 0 - 0
web/js/cheef-editor/ace/mode-powershell.js


Разница между файлами не показана из-за своего большого размера
+ 0 - 0
web/js/cheef-editor/ace/mode-python.js


Разница между файлами не показана из-за своего большого размера
+ 0 - 0
web/js/cheef-editor/ace/mode-r.js


Разница между файлами не показана из-за своего большого размера
+ 0 - 0
web/js/cheef-editor/ace/mode-rdoc.js


Разница между файлами не показана из-за своего большого размера
+ 0 - 0
web/js/cheef-editor/ace/mode-rhtml.js


Разница между файлами не показана из-за своего большого размера
+ 0 - 0
web/js/cheef-editor/ace/mode-ruby.js


Разница между файлами не показана из-за своего большого размера
+ 0 - 0
web/js/cheef-editor/ace/mode-scad.js


Разница между файлами не показана из-за своего большого размера
+ 0 - 0
web/js/cheef-editor/ace/mode-scala.js


Разница между файлами не показана из-за своего большого размера
+ 0 - 0
web/js/cheef-editor/ace/mode-scss.js


Разница между файлами не показана из-за своего большого размера
+ 0 - 0
web/js/cheef-editor/ace/mode-sh.js


+ 0 - 1
web/js/cheef-editor/ace/mode-sql.js

@@ -1 +0,0 @@
-ace.define("ace/mode/sql",["require","exports","module","ace/lib/oop","ace/mode/text","ace/tokenizer","ace/mode/sql_highlight_rules","ace/range"],function(e,t,n){var r=e("../lib/oop"),i=e("./text").Mode,s=e("../tokenizer").Tokenizer,o=e("./sql_highlight_rules").SqlHighlightRules,u=e("../range").Range,a=function(){this.$tokenizer=new s((new o).getRules())};r.inherits(a,i),function(){this.toggleCommentLines=function(e,t,n,r){var i=!0,s=[],o=/^(\s*)--/;for(var a=n;a<=r;a++)if(!o.test(t.getLine(a))){i=!1;break}if(i){var f=new u(0,0,0,0);for(var a=n;a<=r;a++){var l=t.getLine(a),c=l.match(o);f.start.row=a,f.end.row=a,f.end.column=c[0].length,t.replace(f,c[1])}}else t.indentRows(n,r,"--")}}.call(a.prototype),t.Mode=a}),ace.define("ace/mode/sql_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/text_highlight_rules"],function(e,t,n){var r=e("../lib/oop"),i=e("./text_highlight_rules").TextHighlightRules,s=function(){var e="select|insert|update|delete|from|where|and|or|group|by|order|limit|offset|having|as|case|when|else|end|type|left|right|join|on|outer|desc|asc",t="true|false|null",n="count|min|max|avg|sum|rank|now|coalesce",r=this.createKeywordMapper({"support.function":n,keyword:e,"constant.language":t},"identifier",!0);this.$rules={start:[{token:"comment",regex:"--.*$"},{token:"string",regex:'".*?"'},{token:"string",regex:"'.*?'"},{token:"constant.numeric",regex:"[+-]?\\d+(?:(?:\\.\\d*)?(?:[eE][+-]?\\d+)?)?\\b"},{token:r,regex:"[a-zA-Z_$][a-zA-Z0-9_$]*\\b"},{token:"keyword.operator",regex:"\\+|\\-|\\/|\\/\\/|%|<@>|@>|<@|&|\\^|~|<|>|<=|=>|==|!=|<>|="},{token:"paren.lparen",regex:"[\\(]"},{token:"paren.rparen",regex:"[\\)]"},{token:"text",regex:"\\s+"}]}};r.inherits(s,i),t.SqlHighlightRules=s})

Разница между файлами не показана из-за своего большого размера
+ 0 - 0
web/js/cheef-editor/ace/mode-stylus.js


Разница между файлами не показана из-за своего большого размера
+ 0 - 0
web/js/cheef-editor/ace/mode-svg.js


Разница между файлами не показана из-за своего большого размера
+ 0 - 0
web/js/cheef-editor/ace/mode-tcl.js


Разница между файлами не показана из-за своего большого размера
+ 0 - 0
web/js/cheef-editor/ace/mode-tex.js


+ 0 - 0
web/js/cheef-editor/ace/mode-text.js


Разница между файлами не показана из-за своего большого размера
+ 0 - 0
web/js/cheef-editor/ace/mode-textile.js


Разница между файлами не показана из-за своего большого размера
+ 0 - 0
web/js/cheef-editor/ace/mode-typescript.js


Разница между файлами не показана из-за своего большого размера
+ 0 - 0
web/js/cheef-editor/ace/mode-xml.js


Разница между файлами не показана из-за своего большого размера
+ 0 - 0
web/js/cheef-editor/ace/mode-xquery.js


Разница между файлами не показана из-за своего большого размера
+ 0 - 0
web/js/cheef-editor/ace/mode-yaml.js


Разница между файлами не показана из-за своего большого размера
+ 0 - 0
web/js/cheef-editor/ace/theme-ambiance.js


Разница между файлами не показана из-за своего большого размера
+ 0 - 0
web/js/cheef-editor/ace/theme-chaos.js


Разница между файлами не показана из-за своего большого размера
+ 0 - 0
web/js/cheef-editor/ace/theme-chrome.js


Разница между файлами не показана из-за своего большого размера
+ 0 - 0
web/js/cheef-editor/ace/theme-clouds.js


Разница между файлами не показана из-за своего большого размера
+ 0 - 0
web/js/cheef-editor/ace/theme-clouds_midnight.js


Разница между файлами не показана из-за своего большого размера
+ 0 - 0
web/js/cheef-editor/ace/theme-cobalt.js


Разница между файлами не показана из-за своего большого размера
+ 0 - 0
web/js/cheef-editor/ace/theme-crimson_editor.js


Некоторые файлы не были показаны из-за большого количества измененных файлов