@font-face {
  font-family: "ProximaNova";
  src: url(fonts/ProximaNova-Regular.otf);
}

@font-face {
  font-family: "ProximaNovaBold";
  src: url(fonts/ProximaNovaBold.otf);
}

html,
body {
  margin: 0;
  height: 100%;
  width: 100%;
  max-height: 100%;
  background-color: #eee;
  color: #232323;
  font-family: "ProximaNova", Arial;
  -webkit-user-select: none; /* Safari */
  -ms-user-select: none; /* IE 10 and IE 11 */
  user-select: none; /* Standard syntax */
  overflow: hidden;
}

.small-font {
  font-size: 11pt;
}

.right-align {
  text-align: right;
}

.left-align {
  text-align: left;
}
.container {
  height: 100%;
  margin: 0px;
}
.center {
  text-align: center;
}
details {
  margin: 5pt;
  margin-left: 15pt;
  font-size: 15px;
}

.menu-slider {
  position: absolute;
  top: 0px;
  left: 0px;
  height: 100%;
  display: inline-block;
  z-index: 0;
}

.menu {
  position: absolute;
  top: 0px;
  left: 100px;
  width: 160pt;
  height: 100%;
  max-height: 100%;
  display: inline-block;
  z-index: 0;
}
.menu-toolbar {
  display: inline;
  margin: 0px;
  max-height: 3%;
  height: auto;
  overflow-y: auto;
  overflow-x: auto;
  z-index: 1;
  background-color: #444;
}

.menubar {
  /* padding-top: 5pt; 
	padding-bottom: 5pt;  */
  /* border: solid 0.2px #888; */
  width: 160pt;
  max-height: 40%;
  height: auto;
  font-size: 13pt;
  display: inline-block;
  color: #fff;
  background-color: #444;
  margin: 0px;
  overflow-y: auto;
  overflow-x: auto;
  z-index: 1;
}

.menu-prop {
  display: inline;
  margin: 0px;
  max-height: 40%;
  height: auto;
  overflow-y: auto;
  z-index: 1;
  /*overflow-x: auto; */
  background-color: #202226; /* #444;*/
}

.properties {
  border: solid 0.2px rgb(22, 22, 22);
  width: 100%;
  max-height: 15%; 
  height: auto;
  overflow-y: auto;
  font-size: 14px;
  display: inline-block;
  background-color: #444;
  color: #eee;
  z-index: 0;
  margin: 0px;
}

#div-obj-properties
{
  max-height: 23% !important; 
}

#div-rule-properties
{
  max-height: 23% !important; 
}
.proptable {
  table-layout: fixed;
  width: 100%;
  max-height: 100%;
  height: auto;
  background-color: #777777;
  overflow-y: auto;
  overflow-x: auto;
}

#main-slider {
  position: absolute;
  left: 260px;
  display: inline-block;
  background-color: transparent;
  z-index: 1;
  height: 30px;
}

/*   
details[open] > summary {
	background-color: #ccf;
} */

#root {
  color: rgb(252, 246, 246);
  background-color: #444;
}

summary:hover {
  /* background-color: rgb(43, 42, 42);
	color: #eee; */
  background-color: #222;
  color: #fff;
}

summary[selected="true"] {
  /* background-color: #808080; 
	color:rgb(22, 22, 22); */
  background-color: #222;
  color: #fff;
}

summary {
  cursor: pointer;
  font-size: 15px;
}

.selectBox {
  border: 1px solid #55aaff;
  background-color: rgba(75, 160, 255, 0.3);
  position: fixed;
}

.icon {
  width: 12px;
  height: 12px;
}

.ul-toolbar {
  margin: 0px;
  background-color: #444;
  border-bottom: inset 0.5px #888;
  padding-top: 10px;
  padding-bottom: 10px;
  padding-left: 10px;
  padding-right: 10px;
}

.btn-toolbar {
  padding-left: 5px;
  padding-right: 5px;
  padding-top: 5px;
  padding-bottom: 5px;
  margin-top: 3px;
  margin-left: 0px;
  font-size: 14pt;
  color: #fff;
  background-color: #444;
  border: outset 0.1px #444;
}

.cursor-progress, .cursor-progress * { cursor: progress !important; }
.btn-toolbar:hover {
  cursor: pointer;
  background-color: #222;
  color: #eee;
}

.proptable td {
  height: 8px;
}

th {
  background-color: #222222;
  font-weight: initial;
  padding: 5px;
  position: sticky;
  top: 0;
}

tr {
  background-color: #444;
}

td {
  /* border: 1pt solid #000; */
  padding: 1pt;
}

.editable {
  background-color: #fff;
  color: #222;
  /* border:2px solid #f07746;  */
}
/* Menu */

.rmenu {
  position: absolute;
  width: 180px;
  padding: 2px;
  margin: 0;
  border: 1px solid #444;
  background: #444;
  color: #eee;
  z-index: 100;
  border-radius: 3px;
  box-shadow: 1px 1px 4px rgba(0, 0, 0, 0.2);
  opacity: 0;
  -webkit-transform: translate(0, 15px) scale(0.95);
  transform: translate(0, 15px) scale(0.95);
  transition: transform 0.1s ease-out, opacity 0.1s ease-out;
  pointer-events: none;
}

.menu-item {
  display: block;
  position: relative;
  margin: 0;
  padding: 0;
  white-space: nowrap;
}

.menu-btn {
  background: none;
  line-height: normal;
  overflow: visible;
  display: block;
  width: 100%;
  color: #eee;
  font-size: 15px;
  text-align: left;
  cursor: pointer;
  border: 1px solid transparent;
  white-space: nowrap;
  padding: 6px 8px;
  border-radius: 3px;
}

.menu-btn::-moz-focus-inner,
.menu-btn::-moz-focus-inner {
  border: 0;
  padding: 0;
}

.menu-text {
  margin-left: 15px;
}

.menu-text2 {
  padding-left: 0px;
  padding-right: 0px;
  padding-top: 5px;
  padding-bottom: 5px;
  margin-top: 3px;
  margin-left: 0px;
  font-size: 13pt;
  font-weight: bold;
  color: #fff;
}

.menu-btn .fa {
  position: absolute;
  left: 8px;
  top: 50%;
  -webkit-transform: translateY(-50%);
  transform: translateY(-50%);
}

.menu-item:hover > .menu-btn {
  /* color:rgb(82, 213, 26); */
  outline: none;
  background-color: #666;
  border: 2px solid #444;
}

.menu-item.disabled {
  opacity: 0.5;
  pointer-events: none;
}

.menu-item.disabled .menu-btn {
  cursor: default;
}

.menu-separator {
  display: block;
  margin: 7px 5px;
  height: 1px;
  border-bottom: 1px solid #fff;
  background-color: #aaa;
}

.menu-item.submenu::after {
  content: "";
  position: absolute;
  right: 6px;
  top: 50%;
  -webkit-transform: translateY(-50%);
  transform: translateY(-50%);
  border: 5px solid transparent;
  border-left-color: #808080;
}

.menu-item.submenu:hover::after {
  border-left-color: #fff;
}

.rmenu .rmenu {
  top: 4px;
  left: 99%;
}

.show-menu,
.menu-item:hover > .rmenu {
  opacity: 1;
  -webkit-transform: translate(0, 0) scale(1);
  transform: translate(0, 0) scale(1);
  pointer-events: auto;
}

.hide {
  display: none;
}

.show {
  display: block;
}

.menu-item:hover > .rmenu {
  -webkit-transition-delay: 100ms;
  transition-delay: 300ms;
}

.selected {
  border: 1px solid #888;
  background-color: #444;
}
#mode {
  font-family: "ProximaNovaBold", "Arial";
  color: #fff;
  position: absolute;
  top: 5px;
  width: 100%;
  text-align: center;
  z-index: 0;
  font-size: 17px;
}

#status-text {
  font-family: "ProximaNova", "Arial";
  color: rgb(82, 213, 26);
  position: absolute;
  width: 100%;
  text-align: center;
  top: 55px;
  z-index: 0;
  font-size: 19px;
}

#pointerCoord {
  color: #ddd; /* rgb(82, 213, 26);*/
  position: absolute;
  top: 25px;
  width: 100%;
  text-align: center;
  z-index: 0;
  font-size: 17px;
}

.label-name {
  color:  #fff;/*rgb(82, 213, 26);*/
  margin: 0px;
  padding: 0.2px;
  font-size: 15px;
  border: 0.5px solid #444;
  border-style: inset;
  background-color: #000;
  z-index: 0;
}

.label-signage {
  color: #fff;
  margin: 0px;
  padding: 0.2px;
  font-size: 15px;
  border: 0.5px solid #444;
  border-style: inset;
  background-color: #000;
}

.label-measure {
  color: rgb(82, 213, 26);
  margin: 0px;
  padding: 0.5px;
  font-size: 13px;
  border: 0.5px solid #444;
  border-style: inset;
  background-color: #000;
}

/* MODAL WINDOW - OPEN PROJECT */

/* The Modal (background) */
.modal {
  display: none;
  /* Hidden by default */
  position: fixed;
  /* Stay in place */
  z-index: 1;
  /* Sit on top */
  padding-top: 80px;
  /* Location of the box */
  left: 10;
  top: 0;
  width: 20%;
  /* Full width */
  height: 100%;
  /* Full height */
  overflow: auto;
  background-color: rgba(0, 0, 0, 0);
}

#modal-csv tr:hover {
  background-color: rgba(0, 0, 0, 0);
}
#btnLoadCSV:hover {
  background-color: #222;
}

#btnLoadCSV {
  color: #fff;
  width: 50px;
  margin-left: 0px;
}

.info-modal {
  display: none;
  /* Hidden by default */
  position: absolute;
  left: 50%;
  top: 50%;
  transform: translate(-50%, -50%);
  /* Stay in place */
  z-index: 1;
  width: 30%;
  /* Full width */
  height: auto;
  /* Full height */
  overflow: auto;
  /* Enable scroll if needed */
  background-color: rgb(0, 0, 0);
  /* Fallback color */
  background-color: rgba(0, 0, 0, 0);
  /* Black w/ opacity */
}

.info-modal .modal-content {
  height: auto;
}
/* Modal Content */
.modal-content {
  background-color: #444;
  margin: auto;
  padding: 20px;
  border: 1px solid #333;
  width: 80%;
  height: 300px;
  overflow-y: auto;
  font-size: 15px;
  font-family: "ProximaNova", "Arial";
}

.modal-content table {
  /* background-color: rgb(124, 121, 121); */
  margin: auto;
  padding: 2px;
  border: none;
  width: 100%;
}

.modal-content table tr {
  background-color: #444;
  color: #fff;
  font-size: 17px;
  font-family: "ProximaNova", "Arial";
  margin: 0px;
  border: none;
}

.modal-content table tr:hover {
  background-color: #222;
  color: #eee;
  cursor: pointer;
}

.modal-content table tr td {
  padding: 2px;
  margin: 0px;
}

.modal-content .info-table tr td {
  border: 1px solid #222;
  text-align: left;
}


.modal-content table tr.highlighted td {
  background-color: rgb(0, 0, 0);
  -webkit-user-select: none; /* Safari */
  -ms-user-select: none; /* IE 10 and IE 11 */
  user-select: none; /* Standard syntax */
}

.modal-footer {
  background-color: #444;
  margin: auto;
  padding: 20px;
  width: 80%;
  border: 1px solid #333;
  text-align: right;
}

.modal-footer button {
  padding: 5px;
  font-size: 13pt;
  color: #fff;
  background-color: #444;
  border: 2px solid #808080;
  width: auto;
  min-width: 70px;
}

.modal-content button {
  padding: 5px;
  font-size: 13pt;
  color: #fff;
  background-color: #444;
  border: 2px solid #808080;
  width: auto;
  min-width: 70px;
}

.modal-content button:disabled {
  color: #888;
}

.modal-content button:disabled:hover {
  cursor: default;
  background-color: #444;
}

.modal-content button:hover {
  cursor: pointer;
  background-color: #222;
}

.modal-header {
  background-color: #333;
  margin: auto;
  padding: 13px 10px;
  /* padding-top: 5px; */
  width: 80%;
  height: auto;
  color: white;
}
.modal-close {
  cursor: pointer;
  position: relative;
  top: -10px;
  background-color: #333;
  width: 11px;
  height: 11px;
  float: right;
}

.modal-footer button:enabled:hover {
  cursor: pointer;
  background-color: #222;
}

.modal-footer button:disabled {
  color: #888;
}
#digitalTwinModal .modal-content {
  height: auto;
}

#digitalTwinModal .modal-content table tr:hover {
  background-color: #444;
}

#jobModal .modal-content table tr:hover {
  background-color: #444;
}

#jobModal .modal-content {
  height: auto;
}

.csv-modal-height {
  height: 20%;
  width: 80%;
  margin-top: 20px;
}

.job-modal-height {
  height: 10%;
  width: 80%;
  margin-top: 20px;
}
.close-btn {
  font-size: 18px;
  color: #fff;
  background-color: transparent;
  padding-top: 2px;
  padding-bottom: 2px;
  display: inline-block;
  border: none;
}

.close-btn:hover {
  cursor: pointer;
  color: rgb(82, 213, 26);
}

.open-btn {
  font-size: 18px;
  /* color:rgb(255, 255, 255); */
  color: #fff;
  background-color: transparent;
  padding: 8px 12px;
  z-index: 1;
  display: none;
  border: none;
}

.open-btn:hover {
  cursor: pointer;
  color: rgb(82, 213, 26);
}

input[type="file"] {
  display: none;
}

.select-file {
  border: 1px solid #ccc;
  display: inline-block;
  padding: 6px 12px;
  cursor: pointer;
}

.rule-param {
  background-color: #444;
  color: #fff;
}

.fa-circle {
  color: rgb(126, 123, 123); /*f07746  */
}

.fa-user {
  color: #666;
  margin: 0px;
  padding: 0px;
  display: inline-block;
  line-height: 30px;
}

.menu-checkbox {
  display: block;
  position: relative;
  padding-left: 2px;
  padding-right: 2px;
  padding-top: 5px;
  padding-bottom: 5px;
  margin-top: 3px;
  margin-left: 0px;
  font-size: 14pt;
  color: #fff;
  background-color: #444;
  border: outset 0.1px #444;
  -webkit-user-select: none;
  -moz-user-select: none;
  -ms-user-select: none;
  user-select: none;
}

.obj-classification {
  font-family: "ProximaNova", "Arial";
  font-size: 16px;
}

.digital-twin {
  font-family: "ProximaNova", "Arial";
  font-size: 15px;
  text-align: right;
}

.job {
  font-family: "ProximaNova", "Arial";
  font-size: 15px;
  text-align: right;
}
.w3-bar-item {
  background-color: #444 !important;
  color: #fff !important;
  padding: 12px 10px !important;
}

.sidebar-item:hover {
  background-color: #666 !important;
  color: #fff !important;
}

.sidebar-block {
  width: 100px;
  font-size: 10px;
  font-family: "ProximaNova", "Arial";
  background-color: #000;
  color: #fff;
}

#userName {
  margin: auto;
  padding: 0px;
  color: rgb(82, 213, 26);
}

#divUser {
  font-family: "ProximaNova", "Arial";
  font-size: 15px;
  color: #fff;
  font-weight: 700;
  text-align: center;
  display: block;
  line-height: 10px;
  position: fixed;
  top: 0px;
  margin: auto;
  background-color: transparent;
}

.sidebar-block:first-child {
  margin-top: 30px;
}

.sidebar-header {
  font-family: "ProximaNovaBold", "Arial" !important;
  font-size: 15px !important;
  background-color: #1a1a1a !important;
  color: #bbb !important;
  line-height: 15px;
  padding: 6px 4px;
  margin: auto;
  letter-spacing: 0.5px;
  border-bottom: 1px solid rgb(82, 213, 26) !important;
  border-top: 1px solid #333 !important;
}

.sidebar-item {
  font-family: "ProximaNova", "Arial";
  font-size: 15px;
  margin: 0px;
  padding: 10px 8px 10px 4px;
  line-height: 12px;
  border: 1px outset #555 !important;
}
#jobInfoModal {
  position: absolute;
  width: 280px;
  height: auto;
}

#jobInfoTable tr td {
  font-family: "ProximaNova", "Arial" !important;
  font-size: 15px !important;
}


.loader-wrapper {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background-color: rgba(0, 0, 0, 0.5); /* semi-transparent black background */
  display: flex;
  justify-content: center;
  align-items: center;
  display: none;
}

.loader {
  border: 8px solid #555;
  border-top: 8px solid rgb(82, 213, 26);/* Blue */
  border-radius: 50%;
  width: 40px;
  height: 40px;
  animation: spin 1s linear infinite;
}


@keyframes spin {
  0% { transform: rotate(0deg); }
  100% { transform: rotate(360deg); }
}

/* ── dat.GUI folder titles: JS inline styles (styleTitle) take precedence over these.
      background-image: none is kept with !important only to suppress dat.GUI's arrow gif. ── */
.dg li.title {
  background-image: none !important;
}

/* ── dat.GUI Level 3: leaf element rows ── */
.dg li:not(.folder) {
  background: #252525 !important;
  border-bottom: 1px solid #2e2e2e !important;
  font-size: 11px !important;
}

/* ── dat.GUI Level 3: property name label ── */
.dg .property-name {
  color: #a8b4c4 !important;
  font-size: 11px !important;
  font-family: 'ProximaNova', Arial, sans-serif !important;
}

/* ── dat.GUI boolean: widen label + shrink checkbox column so full text fits ── */
.dg .cr.boolean .property-name {
  width: 75% !important;
}
.dg .cr.boolean .c {
  width: 25% !important;
}

/* ── dat.GUI color picker swatch: match row height of other controls ── */
.dg .cr.color .c input[type="text"] {
  height: 20px !important;
  margin-top: 7px !important;
}

/* ── dat.GUI remove colored left borders on items ── */
.dg .cr.number,
.dg .cr.string,
.dg .cr.color,
.dg .cr.boolean,
.dg .cr.function,
.dg .closed li.title {
  border-left: none !important;
}

.tree-delete-btn {
  opacity: 0.3;
  cursor: not-allowed;
}

.tree-delete-btn:not(:disabled) {
  opacity: 1;
  cursor: pointer;
}