:root {
  --color-layer-0: #fff;
  --color-layer-1: #fff;
  --color-layer-2: #fff;
  --color-layer-3: #fff;
  --color-layer-4: #fff;
  --color-layer-5: #fff;
  --color-layer-6: #fff;
  --color-layer-7: #fff;
  --color-layer-8: #fff;
  --color-layer-9: #fff;
  --color-layer-10: #fff;
  --color-layer-11: #fff;
  --color-layer-12: #fff;
  --color-layer-13: #fff;
  --color-layer-14: #fff;
}
.row-mdl[data-level="0"] td,  .row-mdl[data-level="0"] input  { background-color: var(--color-layer-0); }
.row-mdl[data-level="1"] td,  .row-mdl[data-level="1"] input  { background-color: var(--color-layer-1); }
.row-mdl[data-level="2"] td,  .row-mdl[data-level="2"] input  { background-color: var(--color-layer-2); }
.row-mdl[data-level="3"] td,  .row-mdl[data-level="3"] input  { background-color: var(--color-layer-3); }
.row-mdl[data-level="4"] td,  .row-mdl[data-level="4"] input  { background-color: var(--color-layer-4); }
.row-mdl[data-level="5"] td,  .row-mdl[data-level="5"] input  { background-color: var(--color-layer-5); }
.row-mdl[data-level="6"] td,  .row-mdl[data-level="6"] input  { background-color: var(--color-layer-6); }
.row-mdl[data-level="7"] td,  .row-mdl[data-level="7"] input  { background-color: var(--color-layer-7); }
.row-mdl[data-level="8"] td,  .row-mdl[data-level="8"] input  { background-color: var(--color-layer-8); }
.row-mdl[data-level="9"] td,  .row-mdl[data-level="9"] input  { background-color: var(--color-layer-9); }
.row-mdl[data-level="10"] td, .row-mdl[data-level="10"] input { background-color: var(--color-layer-10); }
.row-mdl[data-level="11"] td, .row-mdl[data-level="11"] input { background-color: var(--color-layer-11); }
.row-mdl[data-level="12"] td, .row-mdl[data-level="12"] input { background-color: var(--color-layer-12); }
.row-mdl[data-level="13"] td, .row-mdl[data-level="13"] input { background-color: var(--color-layer-13); }
.row-mdl[data-level="14"] td, .row-mdl[data-level="14"] input { background-color: var(--color-layer-14); }

* {
  box-sizing: border-box;
}
body {
  font-family: BlinkMacSystemFont, -apple-system, "Segoe UI", "Roboto", "Oxygen", "Ubuntu", "Cantarell", "Fira Sans", "Droid Sans", "Helvetica Neue", "Helvetica", "Arial", sans-serif;
  margin: 0;
  padding: 0;
  font-size: 13px;
}
input:focus {
  outline: none;
}
input[type=text], select {
  color: #333;
  font-size: 1em;
  border: 1px solid #ddd;
  border-radius: 0.2em;
  padding: .3em .5em;
}
.bold {
  font-weight: bold;
}
.p90 {
  font-size: 90%;
}
.w100 {
  width: 100%;
}
.disable-selection {
  user-select: none;
  -moz-user-select: none; /* Firefox */
  -ms-user-select: none; /* Internet Explorer */
  -khtml-user-select: none; /* KHTML browsers (e.g. Konqueror) */
  -webkit-user-select: none; /* Chrome, Safari, and Opera */
  -webkit-touch-callout: none; /* Disable Android and iOS callouts*/
}
pre {outline: 1px solid #ccc; padding: 5px; margin: 5px; }
.string { color: green; }
.number { color: darkorange; }
.boolean { color: blue; }
.null { color: magenta; }
.key { color: red; }

.container {
  position: relative;
  top: 40px;
  width: 100%;
  height: calc(100vh - 40px);
  overflow: scroll;
  padding-bottom: 10px;
}
.container #bom {
  table-layout: fixed;
  border-collapse: separate;
  border-spacing: 0;
  font-size: 12px;
}
.container #bom, #bom input {
  color: #3c3c3c;
  font-size: 12px;
}
#bom th {
  line-height: 24px;
  color: #fff;
  font-weight: bold;
  font-size: 90%;
  text-align: center;
  cursor: pointer;
  background: #2a527a;
  background: -webkit-linear-gradient(#34699e 0%, #2a527a 100%);
  background:    -moz-linear-gradient(#34699e 0%, #2a527a 100%);
  background:      -o-linear-gradient(#34699e 0%, #2a527a 100%);
  background:         linear-gradient(#34699e 0%, #2a527a 100%);
  border-right: 1px solid #bbb;
  position: sticky;
  top: 0;
  padding: 0;
}
#bom td {
  height: 21px;
  border-right: 1px solid #bbb;
  border-bottom: 1px solid #bbb;
  padding: 0;
}
#bom td img {
  position: absolute;
  top: 2px;
  cursor: pointer;
}
#bom th .text, #bom td .text {
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  padding: 0 2px 0 4px;
}
#bom td.fixed {
  z-index: 2;
}

#bom td input {
  margin: 0;
  padding: 0  1px 0 3px;
  width: 100%;
  height: 100%;
  border: 1px solid #fff;
  text-overflow: ellipsis;
}
#bom td input:focus {
  border: 1px solid #0c97ff;
}

#bom tr:hover td, #bom tr:hover input {
  background: #fff6db;
}
#bom tr input.value-changed {
  background-color: #8ceaff;
}
#bom tr input.value-changed.value-error {
  background-color: #ff7b69;
}

#bom tr.row-asm td.col-currentmaterial,
#bom tr.row-asm td.col-density,
#bom tr.row-asm td.col-densityconverted,
#bom tr.row-asm td.col-allmaterials,
#bom tr.row-skel td.col-currentmaterial,
#bom tr.row-skel td.col-density,
#bom tr.row-skel td.col-densityconverted,
#bom tr.row-skel td.col-allmaterials,
#bom tr.row-bulk td.col-currentmaterial,
#bom tr.row-bulk td.col-density,
#bom tr.row-bulk td.col-densityconverted,
#bom tr.row-bulk td.col-allmaterials {
  background: #e8e8e8;
}

.header-dummy-cell {
  min-width: 100px;
  max-width: 100px;
  border: none !important;
  background: none !important;
  cursor: default !important;
}

td[data-field=cbx] {
  cursor: pointer;
}

.link, .link-norm {
  cursor: pointer;
  text-decoration: none;
}
.link:not(.non-blue), .link-norm {
  color: #0066cc;
}
.link-norm {
  margin-left: 8px;
}
.link:hover, .link-norm:hover {
  text-decoration: underline;
}

.gentol-title {
  font-size: 90%;
  font-weight: bold;
  margin: 5px 0 4px 0;
}
.gentol-suffix {
  font-size: 90%;
  padding-left: 5px;
}

.p-mb {
  margin-bottom: 6px;
}

#btnTransfer a {
  background-color: #467cfd;
  transition: 0.3s;
}
#btnTransfer a:hover {
  background-color: #6492ff;
}
#dhMatList .dh-list-row {
  padding: 1px 5px;
  display: flex;
}
#dhMatList .dh-list-row:hover {
  background: #d4e1ff;
  cursor: pointer;
}
/* ========== Spinner ========== */
.lds-spinner {
  color: official;
  display: inline-block;
  position: relative;
  width: 80px;
  height: 80px;
  margin-bottom: 5px;
}
.lds-spinner div {
  transform-origin: 40px 40px;
  animation: lds-spinner 1.2s linear infinite;
}
.lds-spinner div:after {
  content: " ";
  display: block;
  position: absolute;
  top: 3px;
  left: 37px;
  width: 6px;
  height: 18px;
  border-radius: 20%;
  background: #007bff;
}
#loaderCorner .lds-spinner div:after {
  background: #7bbbff;
}
.lds-spinner div:nth-child(1) {
  transform: rotate(0deg);
  animation-delay: -1.1s;
}
.lds-spinner div:nth-child(2) {
  transform: rotate(30deg);
  animation-delay: -1s;
}
.lds-spinner div:nth-child(3) {
  transform: rotate(60deg);
  animation-delay: -0.9s;
}
.lds-spinner div:nth-child(4) {
  transform: rotate(90deg);
  animation-delay: -0.8s;
}
.lds-spinner div:nth-child(5) {
  transform: rotate(120deg);
  animation-delay: -0.7s;
}
.lds-spinner div:nth-child(6) {
  transform: rotate(150deg);
  animation-delay: -0.6s;
}
.lds-spinner div:nth-child(7) {
  transform: rotate(180deg);
  animation-delay: -0.5s;
}
.lds-spinner div:nth-child(8) {
  transform: rotate(210deg);
  animation-delay: -0.4s;
}
.lds-spinner div:nth-child(9) {
  transform: rotate(240deg);
  animation-delay: -0.3s;
}
.lds-spinner div:nth-child(10) {
  transform: rotate(270deg);
  animation-delay: -0.2s;
}
.lds-spinner div:nth-child(11) {
  transform: rotate(300deg);
  animation-delay: -0.1s;
}
.lds-spinner div:nth-child(12) {
  transform: rotate(330deg);
  animation-delay: 0s;
}