:root{--palette1:#aa3300;--palette2:#993300;--palette3:#773300;--palette4:#553300;--palette5:#333300;--highlight-color:#ffa33d;--highlight-color-dark:#ff8037;--font-color:rgba(0, 0, 0, 0.9);--font-family:"Plus Jakarta Sans",sans-serif;--dark-font-color:color-mix(in srgb, var(--font-color), black 50%);--light-font-color:#c4c4c4;--highlight-font-color:rgba(255, 255, 255, 0.9);--base-background:#ffffff;--background-color:#f8f9fa;--light-grey:color-mix(in srgb, var(--background-color), black 10%);--logo-padding:0em 1em}.theme-klst{--palette1:#0000aa;--palette2:#000099;--palette3:#000077;--palette4:#000055;--palette5:#000033;--highlight-color:#428fec;--highlight-color-dark:#428fec;--logo-padding:10px}div::-webkit-scrollbar-track{opacity:0;-webkit-box-shadow:inset 0 0 6px rgba(0,0,0,.3);background-color:#f5f5f5;border-radius:8px}div::-webkit-scrollbar{height:8px;width:8px;background-color:#f5f5f5;opacity:0}div::-webkit-scrollbar-thumb{background-color:#bbb;border:2px solid #bbb;border-radius:8px}button.button{background-color:var(--highlight-color-dark);border:2px solid var(--highlight-color-dark);outline:0;min-height:4rem;border-radius:2rem;min-width:10rem;color:rgba(255,255,255,.9);font-weight:700;box-shadow:10px 10px 20px 0 rgba(0,0,0,.2);font-size:1.5rem;margin-top:1em}button.button:hover{background-color:var(--highlight-color);box-shadow:10px 10px 20px 0 rgba(0,0,0,.1019607843)}.badge{background-color:var(--font-color);color:rgba(255,255,255,.9);font-weight:700;font-size:.85rem;padding:.15rem .5rem;border-radius:1rem;min-width:2rem;text-align:center;flex-shrink:0}.company-selector{display:flex;flex:1;align-items:center;justify-content:space-between;min-width:0}.company-selector.dropdown-menu{flex:1}.company-selector{position:relative}.company-selector .selected-company.active{background-color:#222;font-weight:700;color:#fff}.company-selector .selected-company{display:flex;align-items:center;justify-content:space-between}.company-selector .selected-company .company{display:flex;align-items:center;flex:1;min-width:0;overflow:hidden;white-space:nowrap;min-height:32px}.company-selector .selected-company{height:32px;flex:1;border:2px solid #dbdada;border-radius:2em;padding:0 1em;gap:.5em;overflow:hidden}.company-selector .companies.options{top:calc(100% + 6px);text-align:left;transform:scale(0)}.company-selector .companies.options.open{transform:scale(1)}.company-selector .companies.options{box-shadow:0 0 10px rgba(0,0,0,.2);position:absolute}.company-selector .companies.options .company{justify-content:flex-start;padding:0 1em}.controller-connectivity svg{color:#dbdada}.controller-connectivity.connected svg{color:var(--font-color)}.data-connectivity{width:2rem;height:2rem;border-radius:1rem;background-color:#dbdada;display:flex;align-items:center;justify-content:center;flex-shrink:0}.data-connectivity svg{color:#fff}.data-connectivity.online{background-image:linear-gradient(var(--highlight-color),var(--highlight-color-dark))}.data-connectivity .tooltip .text{left:1em}.device-entry{padding-left:1em;padding-right:1em;display:flex;flex-direction:row;align-items:center;gap:.8em}.device-entry .meta{display:flex;flex-direction:column;padding:1em .5em;flex-grow:1;overflow:hidden}.device-entry .connectivity{display:flex;flex-direction:row}.device-entry{min-height:5.5rem;border-bottom:2px solid #dbdada;background:#fff;text-decoration:none;color:var(--font-color)}.device-entry:hover{background:var(--background-color);color:var(--dark-font-color)}.device-entry.active{background-color:#222;color:var(--highlight-font-color)}.device-entry.active span.badge{background-color:#fff;color:var(--font-color)}.device-entry.active .controller-connectivity svg{color:#fff}.device-entry .customer,.device-entry .serial{font-weight:700}.device-entry .badge.no-entries{background-color:#dbdada}.device-filter{height:5.5rem;border-bottom:2px solid #dbdada;position:absolute;background-color:var(--base-background);top:5.5rem;width:100%;display:flex;align-items:center;justify-content:flex-start;gap:20px;padding:0 1em}.device-filter .controller-connected,.device-filter .online-offline{display:flex;cursor:pointer}.device-filter .connected,.device-filter .disconnected,.device-filter .offline,.device-filter .online{height:32px;width:38px;display:flex;align-items:center;justify-content:center;border:2px solid #dbdada;padding:0 1em;cursor:pointer}.device-filter .connected.active,.device-filter .disconnected.active,.device-filter .offline.active,.device-filter .online.active{color:#fff;background-color:#222}.device-filter .online{color:var(--highlight-color)}.device-filter .online.active{color:var(--highlight-color)}.device-filter .connected,.device-filter .online{border-radius:2em 0 0 2em;border-right-width:1px}.device-filter .disconnected,.device-filter .offline{border-radius:0 2em 2em 0;border-left-width:1px;color:var(--light-font-color)}.device-filter .filter-reset{margin-left:auto;color:var(--light-font-color);width:2em;height:2em;display:flex;align-items:center;justify-content:center}.device-filter .filter-reset.active{cursor:pointer}.device-filter .filter-reset.active:hover{color:var(--font-color)}.device-list{z-index:50;display:flex;flex-direction:column;flex:1 0 25%}@media (min-width:801px){.device-list{flex:0 0 25%}}.device-list{height:calc(100vh - 54px);border-right:2px solid #dbdada;background-color:var(--background-color);position:relative}.device-list .scroll{margin-top:11rem;height:calc(100% - 5.5rem);overflow-y:auto;overflow-x:hidden;width:100%}.device-list .search-bar{position:absolute;top:0;background:#fff;width:100%}.device-details{overflow:hidden;transform:translate(-100%);transition:transform .3s ease}.device-details.show{transform:translate(0)}.no-device{flex:1;display:flex;justify-content:center;align-items:center}.device-info{box-shadow:4px 4px 5px 0 rgba(0,0,0,.1019607843);background:var(--light-grey)}.device-info>.header{border-radius:4px}.device-info>.header.open{border-radius:4px 4px 0 0}.device-info>.header{background-color:#222;border-radius:4px}.device-info>.header>.serial,.device-info>.header>.summary{font-weight:700;display:flex}.device-info>.header>.summary{margin-left:-.5em}.device-info>.header{padding:0 1em;height:3.7rem;display:flex;align-items:center;justify-content:space-between;gap:1em;color:#fff}.device-info>.header svg:first-child{color:var(--highlight-color)}.device-info>.header>span:nth-child(3){margin-right:auto}.device-detail{display:flex;align-items:start;gap:4em}.device-detail>div{display:flex;flex:1;flex-direction:column}.device-detail>div .header{font-weight:700;padding:0;padding-bottom:.5em;display:flex;align-items:center;justify-content:space-between}.device-detail>div .header:not(first-child){margin-top:.5em}.device-detail{height:0;transition:height .5s,padding .5s;padding:0 2em;background:var(--base-background);border-radius:0 0 4px 4px}.device-detail.open{height:18em}@media (min-width:801px){.device-detail.open{height:12.5em}}.device-detail.open{padding-top:1.5em;padding-bottom:1em}.device-detail{overflow:hidden}.dropdown-menu{display:flex}.dropdown-menu .label{flex:1;display:flex;align-items:center;justify-content:center;gap:.5em;padding:0 1em;cursor:pointer}.dropdown-menu .label:hover{background:var(--background-color);color:var(--dark-font-color)}.dropdown-menu{position:relative}.dropdown-menu .options{min-width:100%;display:none}.dropdown-menu .options.open{display:block}.dropdown-menu .options{position:absolute;top:59px;right:0;width:80px;background:var(--base-background);text-align:center;box-shadow:0 0 10px rgba(0,0,0,.2)}.dropdown-menu .options>div{cursor:pointer;display:flex;align-items:center;height:48px;justify-content:center}.dropdown-menu .options>div:hover{background:var(--background-color);color:var(--dark-font-color)}.history-list{box-shadow:4px 4px 5px 0 rgba(0,0,0,.1019607843);border-radius:4px;padding:1em;padding-top:0}.history-list .chart{display:flex;flex-direction:row;flex:1;gap:2em}.history-list{display:flex;flex-direction:column;overflow:hidden}.history-list .header{height:3.7rem;font-weight:700;flex-shrink:0;display:flex;align-items:center;justify-content:center;gap:1em}.history-list .header .label{margin-right:auto}.history-list .header .clickable{cursor:pointer}.history-list .header .switch{display:flex;gap:.5em}.history-list .header svg.active{color:var(--highlight-color)}.history-list{background:#fff}.history-list .entries{flex-grow:1;background:var(--background-color);padding:1em;border-radius:4px;overflow:auto}.history-list .entries>.scroll{white-space:nowrap;min-width:100%;width:fit-content;display:grid;column-gap:2em}.history-list .entries>.scroll:has(> .status-entry){grid-template-columns:auto auto auto auto}.history-list .entries>.scroll:has(> .operational-entry){grid-template-columns:auto auto auto}.history-list .entries>.scroll:has(> .safety-chain-entry){grid-template-columns:auto auto}.history-list .entries>.scroll:has(> .error-entry){grid-template-columns:auto auto auto auto auto auto}.history-list .entries>.scroll>div.header{align-items:center;margin:-.5em -.5em .5em;line-height:2}.history-list .entries>.scroll>div.header>span{padding-left:.5em;padding-right:.5em}.history-list .entries>.scroll>div{line-height:1.5;display:grid;grid-column:1/-1;grid-template-columns:subgrid}.history-list .entries>.scroll>div>span{flex:1}.history-list .entries>.scroll>div:nth-child(odd){background:#fff}.labeled-value{display:flex;flex-direction:column}@media (min-width:801px){.labeled-value{flex-direction:row}}.labeled-value>.value{text-align:right}@media (min-width:801px){.labeled-value>.value{text-align:left}}.labeled-value{justify-content:space-between;line-height:1.5}.labeled-value>.label{white-space:nowrap}.nav-bar{width:100%;height:54px;color:var(--font-color);background:var(--base-background);position:fixed;top:0;margin:0;z-index:100;display:flex;flex-direction:row;align-content:center;box-shadow:4px 4px 5px 0 rgba(0,0,0,.1019607843)}.nav-bar+*{margin-top:54px}.nav-bar .spacer{flex-grow:1}.nav-bar .logo{display:flex;flex-direction:row;align-items:center;padding:var(--logo-padding);gap:20px}.nav-bar .logo img{height:100%}.nav-bar .logo span{font-size:1.6em;white-space:nowrap}.nav-bar button{background:0 0;color:inherit;border:none;font:inherit;cursor:pointer;outline:inherit;padding:0 1em}.nav-bar button:hover{background:var(--background-color);color:var(--dark-font-color)}.nav-bar .back{width:3em;align-items:center;justify-content:center;display:flex}@media (min-width:801px){.nav-bar .back{display:none}}.nav-bar .back:hover{background:var(--background-color);color:var(--dark-font-color)}.search-bar{width:100%;height:5.5rem;display:flex;align-items:center;border-bottom:2px solid #dbdada;gap:1em;padding-left:1em;padding-right:1em;overflow:hidden}.search-bar input{flex:1 1 90%;max-width:calc(100% - 3em);border:none;font-weight:700;font-size:inherit;background:0 0;line-height:2em;outline:0}.search-bar input::placeholder{color:var(--light-font-color)}.search-bar input{color:var(--font-color)}.search-bar{color:var(--light-font-color)}.search-bar svg.fa-xmark:hover{color:var(--dark-font-color)}.change-chart{display:flex;flex-direction:column;flex:1}.change-chart .loading{flex:1;display:flex;align-items:center;justify-content:center}.tooltip{position:relative}.tooltip>.text{font-weight:400;color:var(--font-color);position:absolute;right:1em;top:1.5em;background:#fff;width:fit-content;text-wrap:nowrap;padding:1em 2em;box-shadow:10px 10px 20px 0 rgba(0,0,0,.2);z-index:200;border-radius:4px;opacity:0;transition:opacity .5s;pointer-events:none}.tooltip:hover>.text{opacity:1}.time-range-selector{container-name:time-range-selector;container-type:inline-size;background:var(--background-color);display:flex;flex:1;justify-content:center;align-items:center;padding-left:25px;gap:10px;border-radius:18px;border:2px solid var(--light-grey);height:36px;min-width:220px;font-size:12px}.time-range-selector.active{background:var(--dark-font-color);color:var(--background-color)}.time-range-selector .since,.time-range-selector .until{flex:1;display:flex;gap:10px}.time-range-selector .since span,.time-range-selector .until span{flex:1;text-align:center}.time-range-selector .since,.time-range-selector .until{cursor:pointer;position:relative}.time-range-selector .since .tooltip,.time-range-selector .until .tooltip{position:absolute;bottom:40px;white-space:nowrap;opacity:0;padding:1em 2em;box-shadow:10px 10px 20px 0 rgba(0,0,0,.2);z-index:200;border-radius:4px;color:var(--dark-font-color)}.time-range-selector .since:hover>.tooltip,.time-range-selector .until:hover>.tooltip{opacity:1}@container time-range-selector (max-width:330px){.time-range-selector .presets{display:none!important}}.time-range-selector .hidden{width:0;height:0}.time-range-selector .reset{display:flex;align-items:center;justify-content:center;padding-right:1em;margin-left:-1em;padding-left:1em;cursor:pointer;height:100%;border-radius:18px;color:var(--light-font-color)}.time-range-selector .presets{height:100%;max-width:150px;display:flex;align-items:center;justify-content:center;flex-direction:row;flex:2;border-radius:18px;border:none;border-left:solid 2px var(--light-grey);border-right:solid 2px var(--light-grey)}.time-range-selector .presets .one,.time-range-selector .presets .seven,.time-range-selector .presets .thirty{color:var(--dark-font-color)}.time-range-selector .presets .one.active,.time-range-selector .presets .seven.active,.time-range-selector .presets .thirty.active{background:var(--dark-font-color);color:var(--background-color)}.time-range-selector .presets .one,.time-range-selector .presets .seven,.time-range-selector .presets .thirty{background:var(--background-color);cursor:pointer;flex:1;height:100%;gap:6px;display:flex;align-items:center;justify-content:center;flex-direction:row;font-size:12px}.time-range-selector .presets .one span,.time-range-selector .presets .seven span,.time-range-selector .presets .thirty span{font-weight:700;font-size:10px;text-align:center}.time-range-selector .presets .one{border-right:1px solid var(--light-grey);border-bottom-left-radius:18px;border-top-left-radius:18px}.time-range-selector .presets .seven{border-right:1px solid var(--light-grey)}.time-range-selector .presets .thirty{border-left:1px solid var(--light-grey);border-bottom-right-radius:18px;border-top-right-radius:18px}.login-form{display:flex;flex-direction:column;align-items:center;justify-content:center;flex:1;gap:2em;padding:1em}.login-form .logo{display:flex;align-items:center;font-size:2.8rem;gap:.5em;height:9rem}.login-form .logo img{height:100%}.login-form .logo{margin-bottom:2em}.login-form input{max-width:22rem;width:100%;line-height:3.6rem;border-radius:4px;outline:0;border:2px solid #dbdada;padding:0 1rem;color:var(--font-color);font-size:1.3rem;font-weight:700}.login-form input::placeholder{opacity:.5}.login-form button{margin-top:3rem}.login-form .error{font-size:1.3rem;font-weight:700;color:var(--highlight-color-dark)}.login-form .about{align-self:flex-end;position:absolute;bottom:1em;right:1em;left:1em;display:flex;flex:1;gap:1em}.login-form .about a{color:var(--light-font-color);text-decoration:none}.login-form .about a.legal-notice{margin-right:auto}.histogram-chart{display:flex;flex:1;flex-direction:column}.histogram-chart .loading{flex:1;display:flex;align-items:center;justify-content:center}.histogram-chart .parameters{display:flex;flex-direction:row;gap:1em}.time-unit-selector{display:flex;border-radius:18px;height:36px;font-size:10px;border:2px solid var(--light-grey)}.time-unit-selector .month,.time-unit-selector .week,.time-unit-selector .year{cursor:pointer;display:flex;align-items:center;justify-content:center}.time-unit-selector .month.active,.time-unit-selector .week.active,.time-unit-selector .year.active{background:var(--dark-font-color);color:var(--background-color)}.time-unit-selector .month,.time-unit-selector .week,.time-unit-selector .year{padding:0 1em;font-weight:700}.time-unit-selector .week{border-right:1px solid var(--light-grey);border-bottom-left-radius:18px;border-top-left-radius:18px}.time-unit-selector .month{border-right:1px solid var(--light-grey)}.time-unit-selector .year{border-left:1px solid var(--light-grey);border-bottom-right-radius:18px;border-top-right-radius:18px}.floor-chart{display:flex;flex:1;flex-direction:column}.floor-chart .loading{flex:1;display:flex;align-items:center;justify-content:center}.floor-chart .parameters{display:flex;flex-direction:row;gap:1em}.chart-panel .parameters{padding-top:1em}@font-face{font-family:"Plus Jakarta Sans";src:url("/assets/fonts/PlusJakartaSans-ExtraLight.ttf") format("truetype");font-weight:200;font-style:normal}@font-face{font-family:"Plus Jakarta Sans";src:url("/assets/fonts/PlusJakartaSans-ExtraLightItalic.ttf") format("truetype");font-weight:200;font-style:italic}@font-face{font-family:"Plus Jakarta Sans";src:url("/assets/fonts/PlusJakartaSans-Light.ttf") format("truetype");font-weight:300;font-style:normal}@font-face{font-family:"Plus Jakarta Sans";src:url("/assets/fonts/PlusJakartaSans-LightItalic.ttf") format("truetype");font-weight:300;font-style:italic}@font-face{font-family:"Plus Jakarta Sans";src:url("/assets/fonts/PlusJakartaSans-Regular.ttf") format("truetype");font-weight:400;font-style:normal}@font-face{font-family:"Plus Jakarta Sans";src:url("/assets/fonts/PlusJakartaSans-RegularItalic.ttf") format("truetype");font-weight:400;font-style:italic}@font-face{font-family:"Plus Jakarta Sans";src:url("/assets/fonts/PlusJakartaSans-Medium.ttf") format("truetype");font-weight:500;font-style:normal}@font-face{font-family:"Plus Jakarta Sans";src:url("/assets/fonts/PlusJakartaSans-MediumItalic.ttf") format("truetype");font-weight:500;font-style:italic}@font-face{font-family:"Plus Jakarta Sans";src:url("/assets/fonts/PlusJakartaSans-SemiBold.ttf") format("truetype");font-weight:600;font-style:normal}@font-face{font-family:"Plus Jakarta Sans";src:url("/assets/fonts/PlusJakartaSans-SemiBoldItalic.ttf") format("truetype");font-weight:600;font-style:italic}@font-face{font-family:"Plus Jakarta Sans";src:url("/assets/fonts/PlusJakartaSans-Bold.ttf") format("truetype");font-weight:700;font-style:normal}@font-face{font-family:"Plus Jakarta Sans";src:url("/assets/fonts/PlusJakartaSans-BoldItalic.ttf") format("truetype");font-weight:700;font-style:italic}@font-face{font-family:"Plus Jakarta Sans";src:url("/assets/fonts/PlusJakartaSans-ExtraBold.ttf") format("truetype");font-weight:800;font-style:normal}@font-face{font-family:"Plus Jakarta Sans";src:url("/assets/fonts/PlusJakartaSans-ExtraBoldItalic.ttf") format("truetype");font-weight:800;font-style:italic}html{color:rgba(0,0,0,.9);font-family:var(--font-family);font-size:14px}body{height:100vh;width:100vw;overflow:hidden;background:var(--background-color);margin:0;padding:0;flex:1 0 100%}body *{box-sizing:border-box}body button,body input{font-family:inherit}.show-sm{display:none}@media (min-width:801px){.show-sm{display:flex}}.main{max-height:100vh;height:100vh;max-width:100vw;display:flex;overflow:auto}@media (min-width:801px){.main{overflow:hidden}}.device-details{min-height:880px;flex:1 0 75%}@media (min-width:801px){.device-details{min-height:0;flex:0 0 75%}}.device-details{padding:1em;height:calc(100vh - 54px);margin-top:54px;display:flex;gap:1em;flex-direction:column;align-content:flex-start;overflow:hidden}.device-details .status{display:flex;gap:1em;flex-direction:column;flex:1 1;flex-grow:3}@media (min-width:801px){.device-details .status{flex-direction:row;flex-grow:1}}.device-details .status>div{flex:1 1}.device-details .status{padding:1em;margin:-1em;overflow:auto}.device-details .operational{flex:1 1}.not-connected{flex:1;display:flex;flex-direction:column;justify-content:center;align-items:center}.not-connected>span:first-child{font-size:1.5em;margin-bottom:.5em}.not-connected>.connecting{margin-top:1rem}button{cursor:pointer}button.disabled{pointer-events:none;opacity:.5}.chart-container{display:flex;flex-direction:column;flex:1 1 auto;position:relative;min-height:0;min-width:0;height:0}.chart-container canvas{flex:1 1 auto;width:100%!important;height:100%!important;display:block}