@font-face {
    font-family: 'font-special';
    src: url('fonts/BungeeHairline-Regular.ttf')  format('truetype');
}

@font-face {
    font-family: 'font-main';
    src: url('fonts/EncodeSansCondensed-Regular.ttf')  format('truetype');
}

@font-face {
    font-family: 'font-title';
    src: url('fonts/Saira-VariableFont_wdth,wght.ttf')  format('truetype');
}

@keyframes button-animation {
  0% {
    filter: saturate(100%);
  }

  50% {
    filter: saturate(170%);
  }

  100% {
    filter: saturate(100%);
  }
}

@keyframes shine-animation {
  0% {
    filter: brightness(100%);
  }

  50% {
    filter: brightness(170%);
  }

  100% {
    filter: brightness(100%);
  }
}

@keyframes show-animation {
  0% {
    opacity: 0;
  }

  100% {
    opacity: 1;
  }
}

#tree-devices-container{
    width:100%;
}

.root2 {
  --background: rgb(23, 23, 23);
  --foreground: rgb(255,255,255);
  --highlight: rgb(5, 119, 66);
  --container-bg: rgb(40, 48, 47);
  --contrast: rgb(140, 153, 151);
  --contrast2: rgb(83, 94, 92);
}

/*
:root {
  --background: rgb(23, 23, 23);
  --foreground: rgb(255,255,255);
  --highlight: rgb(5, 119, 66);
  --container-bg: rgb(40, 48, 47);
  --contrast: rgb(140, 153, 151);
  --contrast2: rgb(83, 94, 92);
  --border: rgba(213, 213, 213,0);
  --danger: #ff4b4b;
  --warning: #ffa500;
  --success: #4CAF50;
}
*/

:root {
  --background: rgb(255,255,255);
  --foreground: rgb(23, 23, 23);
  --highlight: rgb(255,215,54);
  --container-bg:rgb(249,249,249);
  --contrast: rgb(40, 48, 47);
  --contrast2: rgb(83, 94, 92);
  --border: rgba(157, 155, 155,.1.8);
  --border2: rgb(157, 155, 155);
  --danger: #ff4b4b;
  --warning: #ffa500;
  --success: #4CAF50;
}

.svg_foreground{
    fill: var(--foreground) !important;
}

body{
    display: flex;
    flex-direction: column;
    flex-wrap: wrap;
    justify-content: center;
    align-items: center;
    background: var(--background);
    color: var(--foreground);
    padding: 0px;
    margin: 0px;
    width:100vw;
    height:100vh;
}

p{
    text-align: justify;
}

.text-overflow{
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.footer{
    position:absolute;
    left:auto;
    right:auto;
    bottom:0px;
}

div.olControlAttribution, div.olControlScaleLine {
    font-family: 'font-main';
    font-size: 0.7em;
    bottom: 3px !important;
    opacity: 0 !important;
}

div.olPopupCloseBox {
    background: url("/static/img/close.svg") no-repeat;
    cursor: pointer;
}

div.olPopupContent {
    padding:5px;
    font-family: 'font-main';
    overflow: auto;
}

.ol_bw {
    filter:hue-rotate(200deg) grayscale(80%)  brightness(1);
}

.ol-popup {
    position: absolute;
    background-color: var(--background);
    -webkit-filter: drop-shadow(0 1px 4px rgba(0,0,0,.2));
    filter: drop-shadow(0 1px 4px rgba(0,0,0,0.2));
    padding: 15px;
    color:var(--foreground);
    border-radius: 10px;
    border: 1px solid #cccccc;
    bottom: 12px;
    left: -50px;
    min-width: 280px;
}

.ol-popup:after, .ol-popup:before {
    top: 100%;
    border: solid transparent;
    content: " ";
    height: 0;
    width: 0;
    position: absolute;
    pointer-events: none;
}

.ol-popup:after {
    border-top-color: white;
    border-width: 10px;
    left: 48px;
    margin-left: -10px;
}

.ol-popup:before {
    border-top-color: #cccccc;
    border-width: 11px;
    left: 48px;
    margin-left: -11px;
}
      
.ol-popup-closer {
    text-decoration: none;
    position: absolute;
    top: 2px;
    right: 8px;
}

.ol-popup-closer:after {
    content: "✖";
}

ul{
    list-style-type: none;
    padding: 0px;
}

li a {
    padding: 0px;
}

li a:hover{
    color:var(--foreground);
}

.font-special {
    font-family: 'font-special' !important;
}

.font-main {
    font-family: 'font-main';
}

.font-title {
    font-family: 'font-title';
    font-weight: 600;
}

.font-bold{
    font-weight: 600;
}

.font-size-xs {
    font-size: .7em;
}

.font-size-sm {
    font-size: .75em;
}

.font-size-md {
    font-size: .85em;
}

.font-size-11 {
    font-size: 1.1em;
}

.font-size-12 {
    font-size: 1.2em;
}

.font-size-13 {
    font-size: 1.3em;
}

.font-size-15 {
    font-size: 1.5em;
}

.font-size-17 {
    font-size: 1.7em;
}

.font-size-1 {
    font-size: 1em;
}

.font-size-9 {
    font-size: .9em;
}

.font-size-8 {
    font-size: .8em;
}

.color-background {
    color: var(--background);
}

.color-foreground {
    color: var(--foreground);
}

.color-highlight {
    color: var(--highlight);
}

.color-contrast {
    color: var(--contrast);
}

.color-contrast2 {
    color: var(--contrast2);
}

.color-container {
    color: var(--container-bg);
}

.bg-none {
    background: none;
}

.bg-container {
    background: var(--container-bg);
}

.bg-contrast2 {
    background: var(--contrast2);
}

.bg-contrast {
    background: var(--contrast);
}

.bg-background {
    background: var(--background);
}

.bg-foreground {
    background: var(--foreground);
}

.bg-highlight {
    background: var(--highlight);
}

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

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

.rounded-xs {
    border-radius: 5px;
}

.rounded-sm {
    border-radius: 10px;
}

.rounded-md {
    border-radius: 15px;
}

.rounded-lg {
    border-radius: 25px;
}

.rounded-full {
    border-radius: 50%;
}

.line {
    display: block;
    width: calc(100% - 40px);
    padding-left: 20px;
    padding-right: 20px;
}

.line-np {
    display: block;
    width: calc(100% - 0px);
    padding-left: 0px;
    padding-right: 0px;
}

.block{
    display:block;
}

.w1 {
    width: 350px;
}

.w2 {
    width: 700px;
}

.w25 {
    width:calc(25% - 20px);
    padding-left: 10px;
    padding-right: 10px;
}

.w50 {
    width:calc(50% - 20px);
    padding-left: 10px;
    padding-right: 10px;
}

.w100 {
    width:calc(100% - 20px);
    padding-left: 10px;
    padding-right: 10px;
}

.w100np {
    width: calc(100% - 0px) !important;
    padding-left: 10px !important;
    padding-right: 10px !important;
}

.w100np2 {
    width: calc(100% - 10px) !important;
    padding-right: 10px !important;
}

.w100np4 {
    width: calc(100% - 10px) !important;
    padding-left: 10px !important;
}

.w100np3 {
    width: calc(100% - 0px) !important;
    padding: 0px !important;
}

.w100np5{
    width:calc(100% - 40px);
    padding-left: 10px !important;
    padding-right: 10px !important;
}

.w50np {
    width: calc(50% - 5px);
    padding-right: 5px;
}

.w50np2 {
    width: calc(50% - 5px);
    padding-left: 5px;
}

.w50np3 {
    width: 50% !important;
    padding:0px !important;
}

.w50np4 {
    width: calc(50% - 10px);
    padding-left: 10px !important;
}

.w50np5 {
    width: calc(50% - 20px);
    padding-right: 20px;
}

.w10np {
    padding:0px;
    width: 10%;
}

.w20 {
    width:calc(20% - 10px);
    padding-left:5px;
    padding-right:5px;
}


.w25 {
    width:calc(25% - 10px);
    padding-left:5px;
    padding-right:5px;
}

.w30 {
    width:calc(30% - 10px);
    padding-left: 5px;
    padding-right:5px;
}

.w33-2{
    width: calc(33% - 10px);
    padding-left: 5px;
    padding-right:5px;
}

.w33 {
    width: calc(40% - 10px);
    padding-left: 5px;
    padding-right:5px;
}

.w66 {
    width: calc(60% - 10px);
    padding-left: 5px;
    padding-right:5px;
}

.h100np{
    padding: 0px;
    margin: 0px;
    height: calc(100% - 0px) !important;
}

.h50{
    height:50%;
}

.h100{
    height:100%;
}

.h100-80{
    height: calc(100% - 80px);
}

.h100-40{
    height: calc(100% - 40px);
}

.h100-20{
    height: calc(100% - 20px);
}

.h20{
    height: 18px;
}

.h25{
    height: 25px;
}

.h30{
    height: 30px;
}

.h80{
    height: 80px;
}

.h40{
    height:40px;
}

.h50{
    height:50px;
}

.h100px{
    height: 100px;
}

.pb-0{
    padding-bottom: 0px;
}

.p-0 {
    padding: 0px;
}

.pt-0{
    padding-top: 0;
}

.pt-1{
    padding-top: 5px;
}

.pt-2{
    padding-top: 10px;
}

.pt-3{
    padding-top: 15px;
}

.pb-1{
    padding-bottom: 5px;
}

.pb-2{
    padding-bottom: 10px;
}

.pl-1{
    padding-left: 5px;
}

.pl-2{
    padding-left: 10px;
}

.pr-1{
    padding-right: 5px;
}

.pr-2{
    padding-right: 10px;
}

.p5{
    padding: 5px;
}

.border {
    border: .5px solid var(--highlight);
}

.border-gray{
    border: .5px solid var(--border);
}

.border-bottom-gray{
    border-bottom: .5px solid var(--border);
}

.border-gray2{
    border: 1px solid var(--border2);
}

.m-0 {
    margin:0px;
}

.mt-1 {
    margin-top: 5px;
}

.mt-2 {
    margin-top: 10px;
}

.mt-3 {
    margin-top: 15px;
}

.mt-4 {
    margin-top: 20px;
}

.mt-5 {
    margin-top: 25px;
}

.mb-1 {
    margin-bottom: 5px;
}

.mb-2 {
    margin-bottom: 10px;
}

.mb-3 {
    margin-bottom: 15px;
}

.mb-4 {
    margin-bottom: 20px;
}

.mb-5 {
    margin-bottom: 25px;
}

.ml-1 {
    margin-left: 5px;
}

.ml-2 {
    margin-left: 10px;
}

.ml-3 {
    margin-left: 15px;
}

.ml-4 {
    margin-left: 20px;
}

.ml-5 {
    margin-left: 25px;
}

.mr-1 {
    margin-right: 5px;
}

.mr-2 {
    margin-right: 10px;
}

.mr-3 {
    margin-right: 15px;
}

.mr-4 {
    margin-right: 20px;
}

.mr-5 {
    margin-right: 25px;
}

.cursor-pointer {
    cursor: pointer !important;
}

a, a:visited, a:active, a:hover, a:link{
    text-decoration: none;
    color: inherit;
}

*:focus{
    outline: none;
}

button[type="submit"],button[type="button"] {
    display:inline-block;
    width: auto;
    min-width:100px;
    height:  39px;
    padding-left: 10px;
    padding-right: 10px;
    padding-top:4px;
    padding-bottom:4px !important;
    background: var(--highlight);
    color: var(--foreground) !important;
    border-radius: 5px;
    font-family: 'font-title';
    font-weight: 400;
    line-height: 31.5px;
    cursor:pointer;
}

input[type="checkbox"] {
    -webkit-appearance: none;
    appearance: none;
    background-color: var(--background);
    margin: 0;
    font: inherit;
    color: currentColor;
    width: 1.15em;
    height: 1.15em;
    border-radius: 0.15em;
    transform: translateY(-0.075em);
    display: grid;
    place-content: center;
    cursor: pointer !important;
    box-shadow: inset 0 0 4px rgba(0,0,0,0.1);
    border: 1px solid var(--border2);
}

input[type="checkbox"]::before {
    content: "";
    width: 0.65em;
    height: 0.65em;
    transform: scale(0);
    transition: 120ms transform ease-in-out;
    box-shadow: inset 1em 1em var(--highlight);
    cursor: pointer !important;
}

input[type="checkbox"]:checked::before {
    transform: scale(1);
}

input[type=number] {
    -moz-appearance: textfield;
}

input[type=date]{
    color: var(--foreground);
}

select{
    color: var(--foreground);
}

input,button,select,optgroup,textarea {
    margin: 0;
    font-family: inherit;
    font-size: inherit;
    line-height: inherit;
    background: var(--background);
    border:1px solid var(--border2);
    color:var(--foreground);
    padding-top: 5px;
    padding-bottom: 5px;
    box-shadow: inset 0 0 4px rgba(0,0,0,0.1);
}

input:-webkit-autofill,
input:-webkit-autofill:hover, 
input:-webkit-autofill:focus, 
input:-webkit-autofill:active{
    -webkit-box-shadow: 0 0 0 30px var(--background) inset !important;
    -webkit-text-fill-color: var(--contrast) !important;
}

input[type=file]::file-selector-button {
    margin-right: 20px;
    border: none;
    background: var(--highlight);
    padding: 2px 20px;
    border-radius: 10px;
    color: #fff;
    cursor: pointer !important;
    transition: background .2s ease-in-out;
}

input[type=file]::file-selector-button:hover {
    animation: shine-animation 1.5s;
}


button:hover{
    animation: button-animation 1.5s;
}

.animate:hover {
    animation: button-animation 1.5s;
}

.shine:hover {
    animation: shine-animation 1.5s;
}

.box {
    display:block;
    background: var(--container-bg);
    border:.5px solid var(--border);
    padding:20px;
    box-shadow: 0 2px 10px rgba(0,0,0,0.05);
}

.shadow {
    box-shadow: 0 2px 10px rgba(0,0,0,0.2);
}

.menu{
    display:flex;
    width:auto;
    height:100%;
    color:white;
    z-index: 10;
}

.menu-logo {
    height: calc(100% - 20px);
    padding-top: 10px;
    padding-bottom: 10px;
}

.menu-item {
    display:block;
    width: 70px;
    height: 100%;
    line-height: 30px;
    text-align: center;
    font-size: 1em;
    cursor: pointer !important;
    float:left;
}

.menu-item-icon {
    display:block;
    width:100%;
    height:30px;
    margin-bottom: 0px;
}

.menu-item-label {
    display:inline-block;
    width:100%;
    height:20px;
    font-size:.8em;
    color: var(--contrast);
    text-align:center;
    margin-top:0px;
}

.alarms-fgrid{
    display:flex;
    height:calc(100% - 60px);
    width:100%;
    flex-direction: row;
    align-items: flex-start;
    gap: 10px;
}

.alarms-fgrid-info{
    display:block;
    font-family: 'font-main';
    width:calc(50% - 10px);
    height:calc(100% - 20px);
    margin-left:10px;
    background: var(--container-bg);
    padding:10px;
    border-radius:10px;
}

.alarms-fgrid-hist{
    display:block;
    font-family: 'font-main';
    width:calc(50% - 10px);
    height:calc(100% - 20px);
    margin-right:10px;
    background: var(--container-bg);
    padding:10px;
    border-radius:10px;
}

.device-fgrid{
    display:grid;
    height:280px;
    width:100%;
    grid-template-columns: [leftborder] 0px [initcol] 10px [firstcol] 330px [secondcol] 10px [thirdcol] 330px [fourthcol] 10px [fifthcol] auto [sixthcol] 10px [seventhcol] 0px [rightborder];
    grid-template-rows: [topborder] 0px [lastrow] 260px [lastrow] 0px [bottomborder];
    justify-items: stretch;
    gap: 10px;
}

.device-fgrid-info{
    font-family: 'font-main';
    grid-column-start: initcol;
    grid-column-end: secondcol;
    grid-row-start: topborder;
    grid-row-end: bottomborder;
    background: var(--container-bg);
    padding:10px;
    border-radius:10px;
}

.device-fgrid-statics{
    font-family: 'font-main';
    grid-column-start: secondcol;
    grid-column-end: fourthcol;
    grid-row-start: topborder;
    grid-row-end: bottomborder;
    background: var(--container-bg);
    padding:10px;
    border-radius:10px;
}

.device-fgrid-diagram{
    font-family: 'font-main';
    grid-column-start: fourthcol;
    grid-column-end: seventhcol;
    grid-row-start: topborder;
    grid-row-end: bottomborder;
    background: var(--container-bg);
    padding:10px;
    border-radius:10px;
}

.diagram{
    width:100%;
    height:100%;
    object-fit: contain;
}

.grid { 
    display:grid;
    grid-template-columns: [leftborder] 0px [initcol] 10px [firstcol] 350px [secondcol] 10px [thirdcol] auto [fourthcol] 350px [fifthcol] 10px [sixthcol] 0px [rightborder];
    grid-template-rows: [topborder] 0px [initrow] 60px [firstrow] 10px [alarmbottom] auto [lastline] 10px [statusinit] 30px [status] 0px [bottomborder];
    justify-items: stretch;
    gap:    0px;
    width: 100vw;
    height: 100vh;
    max-height: 100vh;
}

.top-left-panel {
    font-family: 'font-main';
    grid-column-start: leftborder;
    grid-column-end: fourthcol;
    grid-row-start: topborder;
    grid-row-end: firstrow;
    min-width: 930px;
    background: var(--container-bg);
    padding:10px;
}

.top-right-panel {
    font-family: 'font-main';
    grid-column-start: fourthcol;
    grid-column-end: rightborder;
    grid-row-start: topborder;
    grid-row-end: firstrow;
    background: var(--container-bg);
    padding: 10px;
    display: flex;
    flex-direction:row-reverse;
    gap: 5px;
    justify-items: flex-end;
    flex-wrap: wrap;
}

.left-panel {
    font-family: 'font-main';
    grid-column-start: firstcol;
    grid-column-end: secondcol;
    grid-row-start: alarmbottom;
    grid-row-end: lastline;
    background: var(--container-bg);
    padding:0px 0px;
    display: flex;
    flex-direction: row;
    flex-wrap: wrap;
    justify-content: flex-start;
    align-items: flex-start;
    align-content: flex-start;
    width:calc(100% - 0px);
    height:calc(100% - 0px);
    overflow-y: auto;
}

.right-panel {
    font-family: 'font-main';
    grid-column-start: thirdcol;
    grid-column-end: fifthcol;
    grid-row-start: alarmbottom;
    grid-row-end: lastline;
    background: var(--container-bg);
    padding-top:10px;
    display: flex;
    flex-direction: row;
    flex-wrap: wrap;
    justify-content:center;
    align-items: flex-start;
    align-content: flex-start;
    gap: 10px;
    width:calc(100% - 0px);
    height:calc(100% - 10px);
    overflow-y: auto;
}

.center-panel{
    font-family: 'font-main';
    grid-column-start: firstcol;
    grid-column-end: fifthcol;
    grid-row-start: alarmbottom;
    grid-row-end: lastline;
    background: var(--background);
    padding-top:10px;
    display: flex;
    flex-direction: row;
    flex-wrap: wrap;
    justify-content:center;
    align-items: flex-start;
    align-content: flex-start;
    gap: 10px;
    width:calc(100% - 0px);
    height:calc(100% - 10px);
    overflow-y: auto;
}

.status {
    font-family: 'font-main';
    grid-column-start: leftborder;
    grid-column-end: rightborder;
    grid-row-start: statusinit;
    grid-row-end: status;
    background: var(--container-bg);
    padding: 0px 20px;
    display: flex;
    flex-direction: row;
    flex-wrap: nowrap;
    justify-content: baseline;
    align-items: center;
}

.user-welcome {
    display:flex;
    flex-direction:column;
    justify-content:flex-end;
    align-items:flex-end;
    text-align:right;
}

.profile-pic-small {
    display: flex;
    flex-direction: column;
    flex-wrap: nowrap;
    justify-content: center;
    align-items: center;
}

.form-control {
    font-family: "font-main";
    font-size: 1rem;
    font-weight: normal;
    line-height: 1.1;
    display: grid;
    color: var(--contrast);
    grid-template-columns: 1em auto;
    gap: 0.5em;
}

.form-control + .form-control {
    margin-top: 1em;
}

.disabled {
    filter: grayscale(5);
}

.collapsible {
    border: none;
    text-align: center;
    outline: none;
}

.active, .collapsible:hover {
    animation: shine-animation 1.5s;
}

.collapsible:after {
    content: '\002B';
    color: var(--foreground);
    font-weight: bold;
    float: right;
    margin-left: 5px;
}

.active:after {
    content: "\2212";
}

.content {
    padding:0px;
    max-height: 0px;
    overflow: hidden;
    transition: max-height 0.2s ease-out;
    font-size:.8em;
    background: var(--background);
    color: var(--contrast);
    display: flex;
    flex-direction: column;
    flex-wrap: nowrap;
    gap: 5px 0px;
}

.highlight:hover{
    color:var(--foreground);
} 

.main-title {
    align-self: start;
    font-size: 1.5em;
    font-family: 'font-title';
}

.bottom-right {
    align-self: last baseline;
    font-size: 1.5em;
    font-family: 'font-title';
}

.title {
    font-size: 1.5em;
    font-family: 'font-title';
    color: var(--foreground);
    padding-left:20px;
}

.left {
    float:left;
}

.right {
    float:right;
}

.hide {
    display: none !important;
    opacity: 0;
    animation: show-animation .5s reverse;
}

.show {
    display: block;
    animation: show-animation .5s;
}

.caret {
    cursor: pointer !important;
    -webkit-user-select: none;
    -moz-user-select: none;
    -ms-user-select: none;
    user-select: none;
}

.caret::before {
    content: "\25B6";
    color: var(--foreground);
    display: inline-block;
    margin-right: 6px;
}

.caret-down::before {
    -ms-transform: rotate(90deg);
    -webkit-transform: rotate(90deg);
    transform: rotate(90deg);
}

.nested {
    display: none;
    padding-left:15px;
}

.cert-label {
    display: inline-block;
    position: relative;
    top: -15px;
    height: 40px;
    line-height: 40px;
}

.files {
    display: flex;
    flex-direction: row;
    align-items: baseline;
    justify-content: baseline;
    flex-wrap: wrap;
    gap: 20px;
}

.active-menu {
    display:inline-block;
    width: auto;
    padding-left: 10px;
    padding-right: 10px;
    padding-top:4px;
    padding-bottom:4px;
    background: none;
    color: var(--background) !important;
    border-radius: 5px;
    font-family: 'font-title';
    font-weight: 400;
    height:  31.5px;
    line-height: 31.5px;
}

.active-menu2 {
    display:inline-block;
    width: auto;
    padding-left: 10px;
    padding-right: 10px;
    padding-top:0px;
    padding-bottom:0px;
    background: none;
    color: var(--background) !important;
    border-radius: 5px;
    font-family: 'font-title';
    font-weight: 400;
    height: 30px;
    line-height: 30px;
}

.menu-button{
    display:inline-block;
    width: auto;
    padding-left: 10px;
    padding-right: 10px;
    padding-top:4px;
    padding-bottom:4px;
    background: none;
    color:var(--foreground) !important;
    font-family: 'font-title';
    font-weight: 400;
    height:  31.5px;
    line-height: 31.5px;
    border-radius:5px;
    transition: all 0.3s;
}

.menu-button:hover {
    display:inline-block;
    width: auto;
    padding-left: 10px;
    padding-right: 10px;
    padding-top:4px;
    padding-bottom:4px;
    background: var(--highlight);
    color: var(--foreground) !important;
    border-radius: 5px;
    font-family: 'font-title';
    font-weight: 400;
    height:  31.5px;
    line-height: 31.5px;
    transition: all 0.3s;
}

.menu-button-active {
    display:inline-block;
    width: auto;
    padding-left: 10px;
    padding-right: 10px;
    padding-top:4px;
    padding-bottom:4px;
    background: var(--highlight);
    color: var(--foreground) !important;
    border-radius: 5px;
    font-family: 'font-title';
    font-weight: 400;
    height:  31.5px;
    line-height: 31.5px;
    transition: all 0.3s;
}

.button-like {
    display:inline-block;
    width: auto;
    min-width:100px;
    padding-left: 10px;
    padding-right: 10px;
    padding-top:4px;
    padding-bottom:4px;
    background: var(--highlight);
    color: var(--foreground) !important;
    border-radius: 5px;
    font-family: 'font-title';
    font-weight: 400;
    height:  31.5px;
    line-height: 31.5px;
    border: 1px solid var(--border2);
}

.button-like:hover{
    animation: button-animation 1.5s;
}

.list-container2 {
    width: 100%;
    height: 220px;
    display: block;
    overflow: auto;
    font-size: .85em;
    font-family: 'font-main';
    padding-top: 10px;
    padding-bottom: 10px;
}

.list-container {
    width: 100%;
    max-height: calc(100% - 240px);
    height: calc(100% - 258px);
    display: block;
    overflow: auto;
    font-size: .85em;
    font-family: 'font-main';
    padding-top: 10px;
    padding-bottom: 10px;
}

.list-container-item {
    display: inline-block;
    padding-left: 20px;
    padding-right: 20px;
    width: calc(100% - 40px);
    margin-bottom: 3px;
    color:var(--contrast);
}

.flex-3 {
    display: flex;
    width: calc(100% - 40px);
    padding-left: 20px;
    padding-right: 20px;
    flex-direction: row;
    align-items: baseline;
    gap: 5px;
}

.check-container {
    width: 25%;
}

.check-container2 {
    display:inline-block;
    float:left;
    width:30px;
}

.spacer{
    display:inline-block;
    width:100%;
    height:25px;
}

.devices-tree {
    width: 100%;
    max-height: calc(100% - 0px) !important;
    height: calc(100% - 43px);
    display: flex;
    flex-direction: row;
    align-items: flex-start;
    flex-wrap: wrap;
    gap:15px;
    overflow: auto;
    font-family: 'font-main';
    font-size:1em;
    padding-left:10px;
    padding-right:10px;
    overflow-y:auto;
}

.devices-container {
    width: calc(100% - 0px);
    max-height: calc(100% - 0px) !important;
    height: calc(100% - 43px);
    display: flex;
    flex-direction: row;
    align-items:flex-start;
    flex-wrap: wrap;
    gap:8px;
    font-family: 'font-main';
    font-size:1em;
    padding:0px 0px;
    overflow-y:hidden;
}

.device-view-container {
    width: calc(100% - 0px);
    height: auto;
    display: flex;
    flex-direction: row;
    align-items:flex-start;
    flex-wrap: wrap;
    gap:8px;
    font-family: 'font-main';
    font-size:1em;
    padding:0px 0px;
    overflow-y:hidden;
}

.device {
    display:block;
    width: 310px;
    padding:20px;
    height:auto;
    animation: show-animation 1.5s ease;
}

.device-info {
    display:block;
    width: 310px;
    padding:20px;
    height:250px;
    animation: show-animation 1.5s ease;
}

.device-diagram{
    display:block;
    width: 620px;
    padding:20px;
    height:250px;
    animation: show-animation 1.5s ease;
}

.led-on{
    display:block;
    width:15px;
    height:15px;
    background: radial-gradient(circle, rgb(255,255,255,1) 0%, rgb(172, 251, 143) 15%, rgb(5, 119, 66) 80%);
    border-radius: 50%;
    box-shadow: 0 2px 8px rgba(0,0,0,0.2), 0 2px 1px rgba(0, 0, 0, 0.8), 0 0 10px rgb(95, 242, 173), 0 0 5px rgb(5, 119, 66);
}

.led-alarm{
    display:block;
    width:15px;
    height:15px;
    background: radial-gradient(circle, rgb(255,255,255,1) 0%, rgb(251, 143, 143) 15%, rgb(119, 5, 5) 80%);
    border-radius: 50%;
    box-shadow: 0 2px 8px rgba(0,0,0,0.2), 0 2px 1px rgba(0, 0, 0, 0.8), 0 0 10px rgb(242, 95, 95), 0 0 5px rgb(119, 5, 5);
}

.meter {
    box-sizing: content-box;
    height: 10px; /* Can be anything */
    width:calc(100% - 20px);
    position: relative;
    background: var(--background);
    border-radius: 25px;
    padding:10px;
}

.meter > span {
    display: block;
    height: 100%;
    border-top-right-radius: 8px;
    border-bottom-right-radius: 8px;
    border-top-left-radius: 20px;
    border-bottom-left-radius: 20px;
    position: relative;
    overflow: hidden;
}

.meter > span:after, .animate > span > span {
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    bottom: 0;
    right: 0;
    z-index: 1;
    background-size: 50px 50px;
    background-image: linear-gradient(var(--highlight), #000);
    border-top-right-radius: 8px;
    border-bottom-right-radius: 8px;
    border-top-left-radius: 20px;
    border-bottom-left-radius: 20px;
    overflow: hidden;
}

.gauge-container {
    width: 130px;
    height: 140px;
    display: block;
    float: left;
    padding: 5px;
    background-color: none;
    margin: 0px;
    border-radius: 3px;
    position: relative;
}

.gauge-container > .label {
    position: absolute;
    right: 0;
    bottom: 40px;
    display: inline-block;
    background: none;
    font-family: 'font-main';
    color: var(--contrast);
    font-size: 0.8em;
    padding: 5px 10px;
}

.gauge-container > .gauge .dial {
    stroke: #334455;
    stroke-width: 2;
    fill: rgba(0,0,0,0);
}

.gauge-container > .gauge .value {
    stroke: rgb(47, 227, 255);
    stroke-width: 2;
    fill: rgba(0,0,0,0);
}

.gauge-container > .gauge .value-text {
    fill: rgb(47, 227, 255);
    font-family: 'font-title';
    font-weight: bold;
    font-size: 0.8em;
}

.wrapper {
    height: 100px;
    float: left;
    margin: 7px;
    overflow: hidden;
}

.wrapper > .gauge-container {
    margin: 0;
}

.gauge-container.two {}

.gauge-container.two > .gauge .dial {
    stroke: #334455;
    stroke-width: 10;
}

.gauge-container.two > .gauge .value {
    stroke: orange;
    stroke-dasharray: none;
    stroke-width: 13;
}

.gauge-container.two > .gauge .value-text {
    fill: #ccc;
    font-weight: 100;
    font-size: 1em;
}

.gauge-container.three {}

.gauge-container.three > .gauge .dial {
    stroke: #334455;
    stroke-width: 2;
}

.gauge-container.three > .gauge .value {
    stroke: #C9DE3C;
    stroke-width: 5;
}

.gauge-container.three > .gauge .value-text {
    fill: #C9DE3C;
} 

.gauge-container.four > .gauge .dial {
    stroke: var(--background);
    stroke-width: 8;
}

.gauge-container.four > .gauge .value {
    stroke: var(--highlight);
    stroke-dasharray: none;
    stroke-width: 8;
}

.gauge-container.four > .gauge .value-text {
    fill: var(--foreground);
    transform: translate3d(10%, 10%, 0);
    font-family:'font-title';
    font-weight: 600;
    display: inline-block;
}

.gauge-container.four .value-text { /* UNITS */
    position: absolute;
    right: -5px;
    bottom: 59px;
    color: var(--contrast);
    font-weight: 600;
    font-size:.9em;
    display: inline-block;
} 

.gauge-container.five > .gauge .dial {
    stroke: #334455;
    stroke-width: 5;
}

.gauge-container.five > .gauge .value {
    stroke: #F8774B;
    stroke-dasharray: 25 1;
    stroke-width: 5;
}

.gauge-container.five > .gauge .value-text {
    fill: #F8774B;
    font-size: 0.7em;
}

.gauge-container.six > .gauge .dial {
    stroke: #334455;
    fill: "#334455";
    stroke-width: 20;
}

.gauge-container.six > .gauge .value {
    stroke: #FF6DAF;
    stroke-width: 20;
}

.gauge-container.six > .gauge .value-text {
    fill: #FF6DAF;
    font-size: 0.7em;
}


.gauge-container.seven > .gauge .dial {
    stroke: transparent;
    stroke-width: 5;
    transform: scale(0.9,0.9) translate3d(5.5px, 5.5px, 0);
    fill: rgba(148, 112, 57, 0.42);
}

.gauge-container.seven > .gauge .value {
    stroke: #F8774B;
    stroke-dasharray: none;
    stroke-width: 5;
}

.flex-list{
    display:flex;
    width:auto;
    height:360px;
    flex-direction: column;
    flex-wrap: wrap;
    justify-content: flex-start;
    align-content: flex-start;
    align-items: flex-start;
    gap: 5px;
    overflow-x:auto;
}

#container3D canvas{
    width: 100% !important;
    height: 245px !important;
    position: relative;
}

.toggle-icon{
    content: "\25B6";
    margin-right: 6px;
}
        
.area-button {
    width: 100%;
    padding: 10px 15px;
    background-color: var(--light);
    border: 1px solid var(--border2);
    text-align: left;
    font-weight: bold;
    color: var(--contrast);
    cursor: pointer;
    border-radius: 4px;
    display: flex;
    justify-content: space-between;
    align-items: center;
    transition: background-color 0.2s;
    margin-bottom:10px;
}
        
.area-button:hover {
    background-color: var(--light-gray);
}
        
.area-content {
    display: none;
    margin-top: 5px;
}
        
.area-content.show {
    display: block;
}
        
.sector-card {
    margin-bottom: 10px;
    border: 1px solid var(--border);
    border-radius: 6px;
    overflow: hidden;
    cursor: pointer;
    transition: transform 0.2s, box-shadow 0.2s;
    background-color: var(--container-bg);
}
        
.sector-card:hover {
    transform: translateY(-2px);
    background: var(--background);
    box-shadow: 0 4px 8px rgba(0,0,0,0.1);
}
        
.sector-content {
    padding: 10px;
}
        
.sector-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 8px;
}
        
.sector-title {
    font-weight: bold;
    color: var(--contrast);
    font-size: 0.9rem;
}
        
.sector-status {
    font-size: 0.7rem;
    padding: 2px 8px;
    border-radius: 12px;
    color: white;
}

.status-normal { background-color: var(--success); }
.status-warning { background-color: var(--warning); }
.status-danger { background-color: var(--danger); }
        
.sensor-data {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 4px;
}
        
.sensor-row {
    display: flex;
    justify-content: space-between;
    font-size: 0.75rem;
}
        
.sensor-label {
    color: var(--contrast);
    font-family: 'font-main';
}
        
.sensor-value {
    font-weight: 600;
    color: var(--high);
}

.alarms-summary {
    display: flex;
    justify-content: space-between;
    gap: 5px;
    margin-top:0px;
}

.summary-item {
    display: flex;
    flex-direction: column;
    align-items:center;
    justify-content: center;
    padding: 5px;
    border-radius: 4px;
    cursor: pointer;
    transition: background-color 0.2s;
    flex: 1;
    font-size: 0.7rem;
}

.summary-item:hover {
    background-color: rgba(0,0,0,0.03);
}

.summary-count {
    font-size: 1rem;
    font-weight: bold;
}

.summary-label {
    font-size: 0.6rem;
    margin-top: 2px;
}

.summary-item.status-normal {
    background-color: rgba(76, 175, 80, 0.1);
    color: var(--success);
}

.summary-item.status-warning {
    background-color: rgba(255, 165, 0, 0.1);
    color: var(--warning);
}

.summary-item.status-danger {
    background-color: rgba(255, 75, 75, 0.1);
    color: var(--danger);
}

.border-bottom-highlight{
    border-bottom: 2px solid var(--highlight);
}

.flex-center{
    display:flex;
    width:100%;
    height:100%;
    align-items: center;
    justify-content: center;
    background:var(--contrast2);
}

.tags-container{
    display:flex;
    width:100%;
    height:auto;
    padding-left:10px;
    padding-right:10px;
    flex-direction: row;
    flex-wrap: wrap;
    align-items:flex-start;
    justify-content: flex-start;
    gap:10px;
}

.tag-container-tag{
    display:block;
    width:330px;
    height:180px;
    border-radius:5px;
    background:var(--container-bg);
    padding: 10px;
}

.tag-info-container{
    display:flex;
    width:100%;
    height:calc(100% - 20px);
    flex-direction: row;
    flex-wrap:nowrap;
    align-items:flex-start;
    gap:0px 10px;
}

.tag-info-icon{
    display:flex;
    width:50%;
    height:100%;
    align-items: center;
    justify-content: center;
}

.tag-info-icon-container{
    display:block;
    width:100%;
    height:auto;
}

.tag-info-detail{
    display:flex;
    width:50%;
    height:100%;
    flex-direction: column;
    flex-wrap: nowrap;
    align-items: flex-start;
    gap:5px;
}

.charts-container{
    display:flex;
    width:100%;
    height:auto;
    padding-left:10px;
    padding-right:10px;
    flex-direction: column;
    flex-wrap: nowrap;
    align-items:flex-start;
    justify-content: flex-start;
    gap:10px;
}

.chart-container{
    display:block;
    width:calc(100% - 20px);
    height:300px;
    border-radius:5px;
    background:var(--container-bg);
    padding: 10px;
}

.toggle-button {
    padding: 5px 10px;
    background: var(--background);
    color:var(--foreground);
    border-radius: 4px;
    cursor: pointer;
    font-size: 0.8rem;
    margin-right:10px;
}

.toggle-button:hover{
    animation: button-animation 2s;
}
        
.tactive {
    background: var(--highlight);
    color: var(--foreground);
}

.rep-sector-container{
    display:flex;
    width:calc(100% - 20px);
    height:auto;
    max-height:130px;
    flex-direction:row;
    flex-wrap:wrap;
    align-items:flex-start;
    justify-content:flex-start;
    gap:10px;
    background: var(--background);
    border-radius:5px;
    padding:10px;
    overflow-y:auto;
}

.rep-sector-card{
    display:inline-block;
    width:231px;
    height:17px;
    padding-top:5px;
    padding-bottom:5px;
    background: var(--container-bg);
    border: 1px solid var(--border);
    border-radius:5px;
    text-align: left;
    text-overflow: ellipsis;
    white-space: nowrap;
    overflow: hidden;
}