/* CSS reset */
html, body, div, span, applet, object, iframe,
h1, h2, h3, h4, h5, h6, p, blockquote, pre,
a, abbr, acronym, address, big, cite, code,
del, dfn, em, img, ins, kbd, q, s, samp,
small, strike, strong, sub, sup, tt, var,
b, u, i, center,
dl, dt, dd, ol, ul, li,
fieldset, form, label, legend,
table, caption, tbody, tfoot, thead, tr, th, td,
article, aside, canvas, details, embed,
figure, figcaption, footer, header, hgroup,
menu, nav, output, ruby, section, summary,
time, mark, audio, video {
	margin: 0;
	padding: 0;
	border: 0;
	font-size: 100%;
	font: inherit;
	vertical-align: baseline;
}
/* HTML5 display-role reset for older browsers */
article, aside, details, figcaption, figure,
footer, header, hgroup, menu, nav, section {
	display: block;
}
body {
	line-height: 1;
}
ol, ul {
	list-style: none;
}
blockquote, q {
	quotes: none;
}
blockquote:before, blockquote:after,
q:before, q:after {
	content: '';
	content: none;
}
table {
	border-collapse: collapse;
	border-spacing: 0;
}

/* common elements styling */
button {
  font-size: inherit;
}
button:focus {
  outline: 0;
}
textarea:focus {
  border-color: var(--highlight-color);
  outline: 0;
}

html, body {
  width: 100%;
  height: 100%;
  color:var(--gray-0);
  background-color:var(--gray-e);
}
#desktop {
  position: relative;
  width: 100%;
  height: 100%;
}
#desktop.desktop-withConsole {
  height: calc(100% - 240px);
}

.mConsole {
  position: absolute;
  box-sizing: border-box;
  z-index: 999999;
  bottom: 0;
  left: 0;
  right: 0;
  width: 100%;
  height: 240px;
  color: #000;
  background-color: #ffee;
  font-family: monospace;
  font-size: 10px;
  padding: 2px;
}
.mConsole p {
  margin: 2px 0;
}
.mConsole-hidden {
  display: none;
}
.mConsole_logs {
  display: inline-block;
  vertical-align: top;
  width: 100%;
  height: 100%;
  background-color: #ffee;
  overflow-y: scroll;
}
.mConsole_DQ {
  display: inline-block;
  vertical-align: top;
  width: 100%;
  height: 100%;
  background-color: #fede;
  overflow-y: scroll;
}
.mConsole-hideLogs {
  width: 25%;
  left: auto;
}
.mConsole-hideLogs .mConsole_logs {
  display: none;
}
.mConsole-hideDQ .mConsole_DQ {
  display: none;
}
.mConsole:not(.mConsole-hideDQ) .mConsole_logs {
  width: 75%;
}
.mConsole:not(.mConsole-hideLogs) .mConsole_DQ {
  width: 25%;
}

.mScreen_overlay {
  position: absolute;
  left: 0px;
  top: 0px;
  width: 100%;
  height: 100%;
  text-align: center;
  white-space: nowrap;
  -webkit-transition: 0.3s opacity;
  transition: 0.3s opacity;
}
.mScreen_overlay-passive {
  opacity: 0;
}
.mScreen_overlay-fadeout {
  background-color: var(--overlay-fadeout);
}
.mScreen_layer {
  position: absolute;
  text-align: left;
  white-space: normal;
}


.mGroup {
  margin-top: 16px;
}
.mGroup:first-child {
  margin-top: 0px;
}
.mGroup_title {
  padding: 8px 16px;
  text-transform: uppercase;
  font-size: 13px;
  color: var(--gray);
  position: relative;
}
.mGroup-canBeMinimized .mGroup_title:before {
  content: "\f0d8";
  padding: 0 4px;
  font: normal normal normal 14px/1 FontAwesome;
}
.mGroup-canBeMinimized.mGroup-isMinimized .mGroup_title:before {
  content: "\f0d7";
}
.mGroup-isMinimized *:not(.mGroup_title) {
  display: none;
}

/* Button */
.mButton {
  border: 1px solid var(--gray-a);
  background-color: var(--gray-e);
  color: var(--gray-2);
  padding: 6px 8px;
  line-height: 1.2;
  margin: 4px;
  font-weight: normal;
  font-size: var(--font-size);
  cursor: pointer;
}
.mButton:disabled {
  color: var(--gray-b);
}
.mButton-default {
  background-color: var(--gray-f);
}
.mButton-hidden {
  display: none;
}
.mButton_menu {
  display: inline-block;
  margin: -5px -4px -5px 4px;
  padding: 6px 4px;
  border-left: 1px solid var(--gray-8);
}
.mButton-withStatus {
  padding-left: 16px;
  position: relative;
  margin-right: 0;
}
.mButton-withStatus:before {
  content: " ";
  display: block;
  position: absolute;
  left: 6px;
  top: 8px;
  width: 4px;
  height: 10px;
  box-shadow: inset 0 0 1px rgba(0,0,0,0.5);
  background-color: var(--passiveLED);
}
.mButton-withStatusOn:before {
  background-color: var(--activeLED);
}



/* Button bar */
.mButtonBar {
  width: 100%;
  padding: 8px 8px;
  display: flex;
}
.mButtonBar .mButton {
  flex: 1 1 auto;
  margin: 0 8px;
}

/* Checkbox */
.mCheckbox {
  box-sizing: border-box;
  padding: 12px 16px 12px 50px;
  position: relative;
  cursor: pointer;
}
.mCheckbox_checkbox {
  position: absolute;
  top: 0;
  bottom: 0;
  left: 16px;
  margin: auto;
  width: 28px;
  height: 28px;
  border: 2px solid var(--dark-gray);
  border-radius: 3px;
}
.mCheckbox_checkbox:after {
  opacity: 0;
  -webkit-transition: all 0.30s ease;
  transition: all 0.30s ease;
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  bottom: 0;
  right: 0;
  margin: auto;
  width: 16px;
  height: 16px;
  background-color: var(--highlight-color);
}
.mCheckbox-on .mCheckbox_checkbox:after {
  opacity: 1;
}
.mCheckbox-disabled {
  color: var(--dark-gray);
}
.mCheckbox-disabled .mCheckbox_checkbox {
  border-color: var(--gray);
  background-color: var(--light-gray);
}

/* Select */
.mSelect, .mDropdown {
  background-color: var(--black);
  background-image: url("data:image/svg+xml;base64,PHN2ZyBmaWxsPScjYmJiJyBoZWlnaHQ9JzI0JyB2aWV3Qm94PScwIDAgMjQgMjQnIHdpZHRoPScyNCcgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJz48cGF0aCBkPSdNNyAxMGw1IDUgNS01eicvPjxwYXRoIGQ9J00wIDBoMjR2MjRIMHonIGZpbGw9J25vbmUnLz48L3N2Zz4=");
  /* <svg fill='#bbb' height='24' viewBox='0 0 24 24' width='24' xmlns='http://www.w3.org/2000/svg'><path d='M7 10l5 5 5-5z'/><path d='M0 0h24v24H0z' fill='none'/></svg> */
  background-repeat: no-repeat;
  background-position-x: 100%;
  background-position-y: 1px;
	-moz-appearance: none;
	-webkit-appearance: none;
	appearance: none;
  box-sizing: border-box;
  font-size: 15px;
  padding: 4px 8px 4px 8px;
  border: 1px solid var(--dark-gray);
  border-radius: 3px;
  margin: 4px 0;
  box-shadow: none;
  color: var(--white);
  cursor: pointer;
  overflow: hidden;
  text-overflow: ellipsis;
}
.mDropdown {
  padding-right: 20px;
}
.mSelect:disabled, .mDropdown-disabled {
  border-color: var(--dark-gray);
  color: var(--dark-gray);
}
.mSelect:focus, .mDropdown:focus {
  border-color: var(--highlight-color);
  outline: 0px none;
}
.mDropdown_item-selected {
  background-color: var(--highlight-color);
}
.mDropdown_menu {
  overflow-y: auto;
}
/* Radio buttons */
.mRadioButtons {
  background-color: var(--black);
}
.mRadioButtons_item {
  position: relative;
  display: block;
  margin: 0;
  padding: 12px 16px 12px 50px;
  color: var(--white);
  width: 100%;
  font-size: 15px;
  cursor: pointer;
}
.mRadioButtons_checkbox {
  position: absolute;
  top: 0;
  bottom: 0;
  left: 16px;
  margin: auto;
  width: 28px;
  height: 28px;
  border: 2px solid var(--dark-gray);
  border-radius: 50%;
}
.mRadioButtons-disabled .mRadioButtons_item {
  color: var(--gray);
}
.mRadioButtons-disabled .mRadioButtons_checkbox {
  background-color: var(--light-gray);
}

.mRadioButtons_checkbox:after {
  opacity: 0;
  -webkit-transition: all 0.30s ease;
  transition: all 0.30s ease;
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  bottom: 0;
  right: 0;
  margin: auto;
  width: 16px;
  height: 16px;
  background-color: var(--highlight-color);
  border-radius: 50%;
}
.mRadioButtons_item-on .mRadioButtons_checkbox:after {
  opacity: 1;
}

/* Radio row */
.mRadioRow {
  display: flex;
  background-color: var(--black);
  border: 1px solid var(--dark-gray);
  border-radius: 3px;
  font-size: 15px;
}
.mRadioRow_item {
  flex: 1 1 0;
  padding: 8px 2px;
  color: var(--light-gray);
  cursor: pointer;
  border-left: 1px solid var(--dark-gray);
  text-align: center;
}
.mRadioRow-disabled .mRadioRow_item {
  color: var(--gray);
}
.mRadioRow_item:first-child {
  border-left: none;
}
.mRadioRow_checkbox {
  display: none;
}
.mRadioRow_item-on {
  background-color: var(--highlight-color);
  color: var(--highlight-oposite-color);
}
.mRadioRow-disabled .mRadioRow_item-on {
  background-color: var(--black);
  color: var(--gray);
}



/* submenu  */
.mSubmenu {
  line-height: 1;
  display: block;
  margin: 0;
  padding: 12px 16px 11px;
  background-color: var(--black);
  color: var(--white);
  width: 100%;
  font-size: 15px;
  cursor: pointer;
}
.mSubmenu::after {
  display: inline-block;
  position: absolute;
  right: 16px;
  padding-top: 2px;
  font: normal normal normal 14px/1 LineAwesome;
  content: "\f112";
  color: var(--light-gray);
}
.mSubmenu-highlighted {
  background-color: var(--secondary-color);
}
.mSubmenu-warn {
  background-color: var(--warn-color);
}

/* bubble */
.mBubble {
  position: absolute;
  -webkit-transition: 0.3s -webkit-transform, 0.3s opacity;
  transition: 0.3s transform, 0.3s opacity;
  font-size: 15px;
}
.mBubble-passive {
  opacity: 0;
}
.mBubble-passive.mBubble-left {
  -webkit-transform: translate(20px, 0);
  transform: translate(20px, 0);
}
.mBubble-passive.mBubble-top {
  -webkit-transform: translate(0, 20px);
  transform: translate(0, 20px);
}
.mBubble-passive.mBubble-bottom {
  -webkit-transform: translate(0, -20px);
  transform: translate(0, -20px);
}
.mBubble_arrow {
  position: absolute;
}
.mBubble-left .mBubble_arrow {
  width: 0;
  height: 0;
  border-style: solid;
  border-width: 8px 8px 8px 0;
  border-color: transparent var(--highlight-color) transparent transparent;
}
.mBubble-top .mBubble_arrow {
  width: 0;
  height: 0;
  border-style: solid;
  border-width: 0 8px 8px 8px;
  border-color: transparent transparent var(--highlight-color) transparent;
}
.mBubble-bottom .mBubble_arrow {
  width: 0;
  height: 0;
  border-style: solid;
  border-width: 8px 8px 0 8px;
  border-color: var(--highlight-color) transparent transparent transparent;
}
.mBubble_content {
  position: absolute;
  background-color: var(--highlight-color);
  color: var(--highlight-oposite-color);
  border-radius:3px;
  padding: 8px 20px 8px 8px;
  overflow: hidden;
  line-height: 140%;
}
.mBubble_content:after {
  position: absolute;
  top: 8px;
  right: 6px;
  width: 16px;
  height: 16px;
  font: normal normal normal 14px/1 LineAwesome;
  content: "\f342";
  text-align: center;
  cursor: pointer;
}

/* dots */
.mDots {
  text-align: center;
  margin: 4px 16px;
}

.mDots_dot {
  display: inline-block;
  margin: 0 4px;
  width: 8px;
  height: 8px;
  background-color: var(--gray);
  border-radius: 50%;
  cursor: pointer;
}
.mDots_dot-selected {
  background-color: var(--white);
}


/* file box */
.mFile {
  box-sizing: border-box;
  display: inline-block;
  text-align: center;
  border: 1px solid var(--gray);
  position: relative;
  overflow: hidden;
}
.mFile:before {
  display: inline-block;
  vertical-align: middle;
  height: 100%;
  content: "";
}
.mFile_content {
  display: inline-block;
  vertical-align: middle;
  width: 100%;
  box-sizing: border-box;
  padding: 4px;
  overflow-wrap: break-word;
}
.mFile_content-image {
  height: 100%;
}
.mFile_content img {
  width: 100%;
  height: 100%;
  object-fit: contain;
}
.mFile_buttonDelete {
  position: absolute;
  box-sizing: border-box;
  top: 8px;
  right: 8px;
  width: 32px;
  height: 32px;
  background-color: red;
  color: white;
  cursor: pointer;
}
.mFile_buttonDelete-hidden {
  display: none;
}
.mFile_progressBar {
  width: 50%;
  height: 4px;
  margin: 2px auto 0;
}
.mFile_progressBar div {
  height: 100%;
  background-color: var(--highlight-color);
  transition: 0.5s width;
}

/* mFloatingMenu */
.mFloatingMenu {
}
.mFloatingMenu_item {
  width: 100%;
  position: relative;
}


/* mDialog */
.mDialog {
  position: absolute;
  background-color: var(--gray-d);
  border: 1px solid var(--gray-8);
  color: var(--gray-0);
  max-width: calc(100% - 4px) !important;
  max-height: calc(100% - 4px) !important;
}
.mDialog-fullscreen {
  width: calc(100% - 64px);
  height: calc(100% - 64px);
  left: 0;
  top: 0;
  right: 0;
  bottom: 0;
  margin: auto;
}
.mDialog-verticalAlign {
  position: relative;
  display: inline-block;
  vertical-align: middle;
}
.mDialog_verticalAligner {
  display: inline-block;
  vertical-align: middle;
  width: 0px;
  height: 100%;
  background-color: #0000;
}
.mDialog_header {
  background-color: var(--gray-8);
  color: var(--gray-f);
  padding: 6px 8px;
  font-weight: bold;
}
.mDialog_headerClosingButton {
  position: absolute;
  right: 0px;
  top: 0px;
  padding: 2px 8px 2px;
}
.mDialog_content {
  box-sizing: border-box;
  padding: 8px;
  overflow-y: auto;
}
.mDialog-fullscreen .mDialog_form {
  height: calc(100% - 112px);
}
.mDialog-fullscreen .mDialog_content {
  height: 100%;
  overflow-y: hidden;
}
.mDialog_buttons {
  text-align: center;
  padding: 8px 0;
  background-color: var(--gray-d);
}
.mDialog_fakeButtonsInContentArea {
  padding: 8px 0;
  margin: 0 -8px;
  width: calc(100% + 16px);
  opacity: 0;
}
.mDialog_overlay {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
}

.mElementsWithLabels_row {
  position: relative;
}
.mElementsWithLabels_row-hidden {
  display: none;
}
.mElementsWithLabels_label {
  display: inline-block;
  box-sizing: border-box;
  vertical-align: top;
  padding-top: 3px;
  padding-right: 4px;
  font-size: var(--font-size);
  overflow-wrap: break-word;
}
.mElementsWithLabels_label b {
  color: var(--warning);
  vertical-align: top;
  font-size: 80%;
}
.mElementsWithLabels_element {
  display: block;
  margin-left: 0px;
  margin-right: 0px;
}
.mElementsWithLabels_element-withLabel {
  display: inline-block;
  vertical-align: top;
}
.mElementsWithLabels-column {
  display: inline-block;
  width: 100%;
  box-sizing: border-box;
  vertical-align: top;
  border-left: 1px solid var(--gray-c);
  padding: 0 4px;
}
.mElementsWithLabels-column:first-child {
  border-left: 0px none;
  padding-left: 0;
}
.mElementsWithLabels-column:last-child {
  padding-right: 0;
}
.mElementsWithLabels-column75 {
  width: 75%;
}
.mElementsWithLabels-column66 {
  width: 66.666%;
}
.mElementsWithLabels-column60 {
  width: 60%;
}
.mElementsWithLabels-column50 {
  width: 50%;
}
.mElementsWithLabels-column40 {
  width: 40%;
}
.mElementsWithLabels-column35 {
  width: 35%;
}
.mElementsWithLabels-column33 {
  width: 33.333%;
}
.mElementsWithLabels-column30 {
  width: 30%;
}
.mElementsWithLabels-column25 {
  width: 25%;
}
.mElementsWithLabels-column20 {
  width: 20%;
}
.mElementsWithLabels-columnHidden {
  display: none;
}
@media screen and (max-width: 600px) {
  .mElementsWithLabels-column {
    display: block;
    width: 100% !important;
    padding: 4px 0;
    border-left: 0 none;
    border-top: 1px solid var(--gray-c);
    margin-top: 4px;
  }
  .mElementsWithLabels-column:first-child {
    border-top: 0px none;
    padding-top: 0;
  }
}

.mInputWithMenu {
  display: inline-block;
  border: 1px solid var(--gray-a);
  box-sizing: border-box;
  background-color: var(--gray-f);
}
.mInputWithMenu-focused {
  border-color: var(--highlight-color);
}
.mInputWithMenu .mInput {
  display: inline-block;
  vertical-align: top;
  background-color: transparent;
  width: calc(100% - 2em);
  border: 0 none;
  margin: 0;
}
.mInputWithMenu .mButton, .mInputWithMenu span {
  box-sizing: border-box;
  display: inline-block;
  vertical-align: top;
  margin: 0;
  padding: 2px 0;
  background-color: transparent;
  width: 2em;
  border: 0 none;
}

.mInputWithNumberControl {
  display: inline-block;
  box-sizing: border-box;
  white-space: nowrap;
}
.mInputWithNumberControl_input {
  width: calc(100% - 4em);
  text-align: right;
  margin: 0;
  border: 0 none;
}
.mInputWithNumberControl_button {
  width: 2em;
  margin: 0;
}



.mFloatingPanel-mInputAutoComplete {
  box-sizing: border-box;
  background-color: var(--gray-f);
  border: 1px solid var(--gray-a);
  overflow-y: scroll;
}
.mInputAutoComplete_item {
  box-sizing: border-box;
  padding: 4px;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.mInputAutoComplete_item:hover {
  background-color: var(--primary-color);
  color: var(--primary-color-opposite);
}


.mDropdown {
  border: 1px solid
}


.mFolders_itemsWrapper {
  display: inline-block;
  box-sizing: border-box;
  vertical-align: top;
  width: 25%;
  height: 100%;
  overflow-y: scroll;
}
.mFolders_contentsWrapper {
  display: inline-block;
  box-sizing: border-box;
  vertical-align: top;
  width: 75%;
}
.mFoldersItem {
  padding: 4px;
}
.mFoldersItem-selected {
  background-color: var(--highlight-color);
}
.mFoldersContent {
  display: none;
}
.mFoldersContent-selected {
  display: block;
}

/* common styling */


.mBlackMilkFrame {
  margin: 8px 0px;
  padding: 8px 0px;
  background-color: rgba(0, 0, 0, 0.2);
  position: relative;
}

.mFloatLeft {
  float: left;
  display: block;
}
.mFloatRight {
  float: right;
  display: block;
}
.mMarginOnTop {
  margin-top: 16px;
}
.mMarginOnTop-small {
  margin-top: 4px;
}
.mMarginOnBottom {
  margin-bottom: 16px;
}
.mMarginOnLeft {
  margin-left: 16px;
}
.mMarginOnRight {
  margin-right: 16px;
}
.mClear {
  clear: both;
}
.mSmaller {
  font-size: 90%;
}
.mAbsoluteBottomRight {
  position: absolute;
  right: 16px;
  bottom: 16px;
}
.mVerticalAlignMiddle {
  display: inline-block;
  vertical-align: middle;
}
.mVerticalAlignMiddle:before {
  content: "";
  width: 1px;
  height: 100%;
  display: inline-block;
  vertical-align: middle;
}
.mBlock {
  display: block;
}
.mCentered {
  text-align: center;
}
.mTextAlignRight {
  text-align: right;
}
.mColumn {
  display: inline-block;
  vertical-align: top;
  padding-left: 16px;
  box-sizing: border-box;
}
.mColumn:first-child {
  padding-left: 0px;
}
.mBorderOnTop {
  margin-top: 4px;
  padding-top: 3px;
  border-top: 1px solid var(--gray-c);
}
.mBorderOnBottom {
  margin-bottom: 4px;
  padding-bottom: 3px;
  border-bottom: 1px solid var(--gray-c);
}
.mInline {
  display: inline-block;
}
.mInline-50 {
  width: 50%;
}