@import url(/webjars/fontawesome/4.7.0/css/font-awesome.min.css);@import url(/webjars/fontawesome/4.7.0/css/font-awesome.min.css);@font-face{font-family:"Open Sans";src:url("../fonts/OpenSans-Regular.woff2")}@font-face{font-family:"Open Sans";font-weight:bold;src:url("../fonts/OpenSans-Bold.woff2")}@font-face{font-family:"Open Sans Condensed";src:url("../fonts/OpenSans-CondLight.woff2")}@font-face{font-family:"Open Sans Condensed";font-weight:bold;src:url("../fonts/OpenSans-CondBold.woff2")}@font-face{font-family:"Open Sans";src:url("../fonts/OpenSans-Regular.woff2")}@font-face{font-family:"Open Sans";font-weight:bold;src:url("../fonts/OpenSans-Bold.woff2")}@font-face{font-family:"Open Sans Condensed";src:url("../fonts/OpenSans-CondLight.woff2")}@font-face{font-family:"Open Sans Condensed";font-weight:bold;src:url("../fonts/OpenSans-CondBold.woff2")}body{font-family:"Open Sans","Noto Sans",sans-serif;background-color:#222;color:#eee;margin:0;padding:0}header{position:fixed;border-bottom:1pt solid #98fb98;top:0;left:0;height:37pt;width:100%;background:#222;z-index:10}header h1{height:37pt;display:inline-block;padding:0 15pt;margin:0;font-weight:bold;font-size:15pt;line-height:35pt;float:left}header h1 img{vertical-align:middle;height:25px}header h1 .label{vertical-align:middle;margin-left:1ex}header .tab,header .btn{display:inline-block;padding:0 10pt;line-height:37pt;height:37pt;margin:0;border-bottom:1pt solid #98fb98;font-size:11pt;color:#eee}header .tab a,header .btn a,header .tab a:active,header .btn a:active,header .tab a:visited,header .btn a:visited{color:#eee;text-decoration:none;display:inline-block;vertical-align:middle}header .tab.active,header .btn.active,header .tab:hover,header .btn:hover{border-bottom:4pt solid #98fb98;height:34pt}header .tab.logout,header .btn.logout{padding-right:15pt;float:right}#container{margin:50pt 0 0;padding:2pt}#container.error{padding:1em 2em}#login-form h2{text-align:center}#login-form table{margin:2ex auto}#login-form table th{text-align:right;font-size:1rem}#login-form table td{padding:1ex}#login-form table #username,#login-form table #password,#login-form table #login-button{font-size:1rem;background-color:#222;border:solid 1px #79c779;border-radius:2px;padding:1.5ex 2.5ex;color:#eee}#login-form table .textfield{width:40ex}#login-form .message{text-align:center;border:1px solid #808080;color:#98fb98;border-radius:5px;margin:2ex auto;padding:1ex;max-width:50em}#login-form .message.error{color:#f66}#login-form .message .fa{margin-right:1ex}#charts{text-align:center}#charts .tabs{margin:10pt 10pt 20pt;line-height:20pt;display:block;font-size:11pt;border-bottom:1pt solid #808080}#charts .tabs .tabgroup{display:inline-block}#charts .tabs .tabgroup .tab{display:inline-block;padding:2pt 10pt 2pt;border-bottom:3pt solid transparent;cursor:pointer}#charts .tabs .tabgroup .tab.active,#charts .tabs .tabgroup .tab:hover{border-bottom-color:#808080}#charts .tabs .tabgroup .tab .unit .short{display:none}#charts .tabs .tabgroup-separator{display:inline-block;text-align:center;width:1em}#charts .chart{display:block;overflow-x:scroll;font-size:8pt;height:520px}#charts .chart::-webkit-scrollbar{display:none}#charts .chart .axis path,#charts .chart .axis line{fill:none;stroke:#79c779;shape-rendering:crispEdges}#charts .chart .axis .tick .gridline{stroke:#333}#charts .chart .line{fill:none;stroke:#4682b4;stroke-width:1.5px}#charts .chart .tick text,#charts .chart .axis.y text,#charts .chart .value text,#charts .chart .legend text{fill:#eee}#charts.chart-weather .chart.temperature,#charts.chart-indoor .chart.temperature,#charts.chart-weather .chart.humidity,#charts.chart-indoor .chart.humidity{display:block}#charts.chart-weather .chart.energy,#charts.chart-indoor .chart.energy,#charts.chart-weather .chart.power,#charts.chart-indoor .chart.power{display:none}#charts.chart-energy .chart.temperature,#charts.chart-energy .chart.humidity{display:none}#charts.chart-energy .chart.energy,#charts.chart-energy .chart.power{display:block}#eventlog{margin-bottom:20pt}#eventlog .search{display:block;text-align:center;margin:0 auto 10pt;width:12em}#eventlog .search .searchbox{display:block;text-align:left;position:relative}#eventlog .search .searchbox label{position:absolute;padding:1pt 0 0 8pt}#eventlog .search .searchbox input{width:12em;border:1px solid #eee;padding:3pt 5pt 3pt 23pt;border-radius:9pt;color:#eee;background-color:#222}#eventlog .events{display:block;overflow-x:scroll}#eventlog .events::-webkit-scrollbar{display:none}#eventlog .events table{font-size:10pt;border-collapse:collapse;min-width:100%}#eventlog .events table tr.odd td{background-color:#333}#eventlog .events table tr.even td{background-color:#222}#eventlog .events table th{border-bottom:1px solid #fff;text-align:left;padding:8pt 10pt;margin:0}#eventlog .events table td{padding:8pt 10pt;margin:0;white-space:nowrap}#eventlog .events table td .source{font-weight:bold}#cameras{text-align:center;margin:20pt 0}#cameras .camblock{width:220pt;height:230pt;border:solid 1px #79c779;border-radius:2px;display:inline-block;margin:0 3pt 6pt;position:relative;background-color:#222}#cameras .camblock .name{text-align:center;font-size:9pt;padding:3pt 0 0;height:20pt;overflow:hidden;background-color:#222}#cameras .camblock .controls{text-align:center;margin-bottom:10pt}#cameras .camblock .controls .camcontrol{width:40pt;height:25pt;line-height:25pt;border-top:solid 1px #79c779;border-bottom:solid 1px #79c779;border-right:solid 1px #79c779;display:inline-block;margin:0;background-color:#222;color:#ccc;cursor:pointer}#cameras .camblock .controls .camcontrol:first-child{border-left:solid 1px #79c779;border-bottom-left-radius:5px;border-top-left-radius:5px}#cameras .camblock .controls .camcontrol:last-child{border-top-right-radius:5px;border-bottom-right-radius:5px}#cameras .camblock .controls .camcontrol.active,#cameras .camblock .controls .camcontrol:active{background-color:#98fb98;color:#222}#cameras .camblock .photo{text-align:center}#cameras .camblock .photo img{width:260px}#cameras .camblock .tstamp{text-align:center;font-size:9pt;position:absolute;padding:3pt 0;bottom:0;width:100%}#sensors,#devices,#switches,#energy,#specials{text-align:center;margin:20pt 0}#sensors h2,#devices h2,#switches h2,#energy h2,#specials h2{border-bottom:solid 2px #333;margin:3ex 5pt 2ex;text-align:right;padding:0 3ex;color:#444;text-transform:lowercase}#sensors .infoblock,#devices .infoblock,#switches .infoblock,#energy .infoblock,#specials .infoblock{width:112pt;height:112pt;border:solid 1px #79c779;border-radius:2px;display:inline-block;margin:0 3pt 6pt;position:relative;background-color:#222}#sensors .infoblock .name,#devices .infoblock .name,#switches .infoblock .name,#energy .infoblock .name,#specials .infoblock .name{text-align:center;font-size:9pt;padding:3pt 0 0;height:23pt;overflow:hidden;background-color:#222}#sensors .infoblock .low-battery-warning,#devices .infoblock .low-battery-warning,#switches .infoblock .low-battery-warning,#energy .infoblock .low-battery-warning,#specials .infoblock .low-battery-warning{color:#f33;margin-left:1ex}#sensors .infoblock .updated,#devices .infoblock .updated,#switches .infoblock .updated,#energy .infoblock .updated,#specials .infoblock .updated,#sensors .infoblock .since,#devices .infoblock .since,#switches .infoblock .since,#energy .infoblock .since,#specials .infoblock .since{text-align:center;font-size:9pt;position:absolute;padding:3pt 0;bottom:0;width:100%}#sensors .infoblock .sensor-value,#devices .infoblock .sensor-value,#switches .infoblock .sensor-value,#energy .infoblock .sensor-value,#specials .infoblock .sensor-value{display:inline-block;margin:0;padding:0;width:55pt;height:55pt;background-color:#282828}#sensors .infoblock .sensor-value .location,#devices .infoblock .sensor-value .location,#switches .infoblock .sensor-value .location,#energy .infoblock .sensor-value .location,#specials .infoblock .sensor-value .location,#sensors .infoblock .sensor-value .description,#devices .infoblock .sensor-value .description,#switches .infoblock .sensor-value .description,#energy .infoblock .sensor-value .description,#specials .infoblock .sensor-value .description{font-size:7pt;text-align:center;margin-top:4pt;color:#808080}#sensors .infoblock .sensor-value .value,#devices .infoblock .sensor-value .value,#switches .infoblock .sensor-value .value,#energy .infoblock .sensor-value .value,#specials .infoblock .sensor-value .value{font-family:"Open Sans Condensed",sans-serif;font-size:18pt;font-weight:bold;text-align:center;margin-top:3pt;color:#98fb98}#sensors .infoblock .sensor-value .value .unit,#devices .infoblock .sensor-value .value .unit,#switches .infoblock .sensor-value .value .unit,#energy .infoblock .sensor-value .value .unit,#specials .infoblock .sensor-value .value .unit{font-size:9pt;font-weight:normal;color:#c0c0c0}#sensors .infoblock .sensor-value.wide,#devices .infoblock .sensor-value.wide,#switches .infoblock .sensor-value.wide,#energy .infoblock .sensor-value.wide,#specials .infoblock .sensor-value.wide{width:inherit;text-align:center}#sensors .infoblock .sensor-value.temperature,#devices .infoblock .sensor-value.temperature,#switches .infoblock .sensor-value.temperature,#energy .infoblock .sensor-value.temperature,#specials .infoblock .sensor-value.temperature{float:left}#sensors .infoblock .sensor-value.humidity,#devices .infoblock .sensor-value.humidity,#switches .infoblock .sensor-value.humidity,#energy .infoblock .sensor-value.humidity,#specials .infoblock .sensor-value.humidity{float:right}#sensors .infoblock .icon,#devices .infoblock .icon,#switches .infoblock .icon,#energy .infoblock .icon,#specials .infoblock .icon{text-align:center;font-size:26pt;color:#777;background-color:#222;border-bottom-left-radius:2px;border-bottom-right-radius:2px;padding:7pt 0 17pt}#sensors .infoblock .predefined-colors,#devices .infoblock .predefined-colors,#switches .infoblock .predefined-colors,#energy .infoblock .predefined-colors,#specials .infoblock .predefined-colors{cursor:pointer;height:90pt;overflow:hidden}#sensors .infoblock .predefined-colors .colorbox-outer,#devices .infoblock .predefined-colors .colorbox-outer,#switches .infoblock .predefined-colors .colorbox-outer,#energy .infoblock .predefined-colors .colorbox-outer,#specials .infoblock .predefined-colors .colorbox-outer{display:inline-block;width:20pt;height:20pt;border:1pt solid #555;margin:2pt 5pt;padding:1pt}#sensors .infoblock .predefined-colors .colorbox-outer.selected,#devices .infoblock .predefined-colors .colorbox-outer.selected,#switches .infoblock .predefined-colors .colorbox-outer.selected,#energy .infoblock .predefined-colors .colorbox-outer.selected,#specials .infoblock .predefined-colors .colorbox-outer.selected{border-color:#fff}#sensors .infoblock .predefined-colors .colorbox-outer .colorbox-inner,#devices .infoblock .predefined-colors .colorbox-outer .colorbox-inner,#switches .infoblock .predefined-colors .colorbox-outer .colorbox-inner,#energy .infoblock .predefined-colors .colorbox-outer .colorbox-inner,#specials .infoblock .predefined-colors .colorbox-outer .colorbox-inner{display:block;height:100%;width:100%}#sensors .infoblock .predefined-colors .whitelevel-outer,#devices .infoblock .predefined-colors .whitelevel-outer,#switches .infoblock .predefined-colors .whitelevel-outer,#energy .infoblock .predefined-colors .whitelevel-outer,#specials .infoblock .predefined-colors .whitelevel-outer{display:inline-block;width:14pt;height:20pt;border:1pt solid #555;margin:2pt 2pt;padding:1pt}#sensors .infoblock .predefined-colors .whitelevel-outer.selected,#devices .infoblock .predefined-colors .whitelevel-outer.selected,#switches .infoblock .predefined-colors .whitelevel-outer.selected,#energy .infoblock .predefined-colors .whitelevel-outer.selected,#specials .infoblock .predefined-colors .whitelevel-outer.selected{border-color:#fff}#sensors .infoblock .predefined-colors .whitelevel-outer .whitelevel-inner,#devices .infoblock .predefined-colors .whitelevel-outer .whitelevel-inner,#switches .infoblock .predefined-colors .whitelevel-outer .whitelevel-inner,#energy .infoblock .predefined-colors .whitelevel-outer .whitelevel-inner,#specials .infoblock .predefined-colors .whitelevel-outer .whitelevel-inner{display:block;height:100%;width:100%}#sensors .infoblock.device,#devices .infoblock.device,#switches .infoblock.device,#energy .infoblock.device,#specials .infoblock.device{cursor:pointer}#sensors .infoblock.device-on,#devices .infoblock.device-on,#switches .infoblock.device-on,#energy .infoblock.device-on,#specials .infoblock.device-on{background-color:#79c779}#sensors .infoblock.device-on .icon,#devices .infoblock.device-on .icon,#switches .infoblock.device-on .icon,#energy .infoblock.device-on .icon,#specials .infoblock.device-on .icon{color:#eee}#sensors .infoblock.switch .icon,#devices .infoblock.switch .icon,#switches .infoblock.switch .icon,#energy .infoblock.switch .icon,#specials .infoblock.switch .icon{color:#eee;padding:3pt 0 9pt}#sensors .infoblock.system-status,#devices .infoblock.system-status,#switches .infoblock.system-status,#energy .infoblock.system-status,#specials .infoblock.system-status{cursor:pointer}#sensors .infoblock.system-status .icon,#devices .infoblock.system-status .icon,#switches .infoblock.system-status .icon,#energy .infoblock.system-status .icon,#specials .infoblock.system-status .icon{color:#eee;padding:3pt 0 9pt}#sensors .infoblock.system-status .alert-counter,#devices .infoblock.system-status .alert-counter,#switches .infoblock.system-status .alert-counter,#energy .infoblock.system-status .alert-counter,#specials .infoblock.system-status .alert-counter{font-weight:bold}#sensors .infoblock.not-updated,#devices .infoblock.not-updated,#switches .infoblock.not-updated,#energy .infoblock.not-updated,#specials .infoblock.not-updated,#sensors .infoblock.left-open,#devices .infoblock.left-open,#switches .infoblock.left-open,#energy .infoblock.left-open,#specials .infoblock.left-open{border-color:#ff8c00}#sensors .infoblock.not-updated .sensor-value .value,#devices .infoblock.not-updated .sensor-value .value,#switches .infoblock.not-updated .sensor-value .value,#energy .infoblock.not-updated .sensor-value .value,#specials .infoblock.not-updated .sensor-value .value,#sensors .infoblock.left-open .sensor-value .value,#devices .infoblock.left-open .sensor-value .value,#switches .infoblock.left-open .sensor-value .value,#energy .infoblock.left-open .sensor-value .value,#specials .infoblock.left-open .sensor-value .value{color:#ffa500}#sensors .infoblock.not-updated .icon,#devices .infoblock.not-updated .icon,#switches .infoblock.not-updated .icon,#energy .infoblock.not-updated .icon,#specials .infoblock.not-updated .icon,#sensors .infoblock.left-open .icon,#devices .infoblock.left-open .icon,#switches .infoblock.left-open .icon,#energy .infoblock.left-open .icon,#specials .infoblock.left-open .icon{color:#ffa500}#sensors .infoblock.rgbw,#devices .infoblock.rgbw,#switches .infoblock.rgbw,#energy .infoblock.rgbw,#specials .infoblock.rgbw{background-color:#222;cursor:default;height:120pt;width:212pt}#large-photo-overlay{position:fixed;top:0;left:0;bottom:0;right:0;background-color:#222;opacity:.9;z-index:5}#photo-frame{position:fixed;text-align:center;top:37pt;left:0;bottom:0;right:0;background-color:#222;z-index:6}#photo-frame .photo-header{position:relative;display:flex;flex-flow:row wrap;align-items:center;margin:2ex}#photo-frame .photo-header .browse{display:block;flex:1 auto}#photo-frame .photo-header .browse.prev{order:1}#photo-frame .photo-header .browse.next{order:3}#photo-frame .photo-header .tstamp{flex:10 auto;text-align:center;order:2}#photo-frame .photo-header .tstamp span{margin:1ex 1ex}#photo-frame .photo-header .tstamp span.camera-name{font-weight:bold}#photo-frame .photo{position:relative;display:block;text-align:center}#photo-frame .photo img{max-width:80%}#offline-overlay{position:fixed;top:0;left:0;bottom:0;right:0;background:#222;opacity:.9;color:#eee;font-size:x-large;text-align:center;padding-top:10em;cursor:wait;z-index:7}footer{clear:both;font-size:x-small;padding:10ex 0 3ex;color:#808080;text-align:center}footer .current-user{color:#98fb98}a{color:#98fb98}a :visited{color:#79c779}header.navi h1>.label{display:none}header .tab a .label,header .btn a .label,header .tab a:active .label,header .btn a:active .label,header .tab a:visited .label,header .btn a:visited .label{display:none}#charts .tabs .tabgroup .tab>.label{display:none}#charts .tabs .tabgroup .tab>.unit .long{display:none}#charts .tabs .tabgroup .tab>.unit .short{display:inline}#charts .chart{display:block;width:95%;margin:0 auto}#charts .chart .ac-chart{width:100%}#offline-overlay{padding-top:2em}#login-form table .textfield{width:20ex}#photo-frame .photo-header{margin:1ex}#photo-frame .photo-header .browse{flex:2 auto}#photo-frame .photo{overflow-y:scroll;max-height:78%}#photo-frame .photo img{max-width:90%}
