.app-loading{align-content:space-around;background-color:#eaeef3;display:flex;flex-direction:row;flex-wrap:wrap;height:100%;justify-content:center;position:absolute;width:100%}.lds-dual-ring{align-items:center;display:inline-block;display:flex;height:100px;justify-content:center;position:relative;width:100px}.lds-dual-ring:after{animation:lds-dual-ring 1.2s linear infinite;border-color:#1976d2 #0000;border-radius:50%;border-style:solid;border-width:2px;content:" ";display:block;height:100%;position:absolute;right:0;top:0;width:100%}@keyframes lds-dual-ring{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}.logo{background:#eaeef3;height:32px;margin:16px}.site-layout .site-layout-background{background:#fff}[data-theme=dark] .site-layout .site-layout-background{background:#141414}.site-layout-content{background:#fff;min-height:280px;padding:24px}#components-layout-demo-top .logo{background:#ffffff4d;float:left;height:31px;margin:16px 24px 16px 0;width:120px}.ant-row-rtl #components-layout-demo-top .logo{float:right;margin:16px 0 16px 24px}.session-main{padding:10px}.page-header-responsive{padding:0 10px 0 20px}#main-login{display:flex;flex-direction:column;flex-wrap:nowrap;justify-content:center}#login-container{margin-top:10px;width:450px}#login-container .title{font-size:33px;font-weight:100;margin:8px;padding:20px 0 30px;text-align:center;-webkit-user-select:none;user-select:none}#login-container .login-form-button{width:100%}.logo-icon{height:55px;width:100%}#title-main{color:#1976d2;font-size:37px;font-weight:400;margin:8px;text-align:center;-webkit-user-select:none;user-select:none}#box-logo{margin-left:0}#box-logo .ant-space-item{line-height:0px}.row-left,.row-right{display:inline-flex!important}#toolbarApp{align-items:center;display:flex;justify-content:space-between;position:relative;z-index:10}#toolbarApp .tool-right{padding-right:0}.icon-text{color:#1976d2;font-size:36px;margin:0;padding:0}.ant-layout-sider{background:linear-gradient(180deg,#001529,#0a1929)!important;box-shadow:2px 0 8px #00000026}.ant-layout-sider-collapsed .iot-header{display:none}.ant-layout-sider-collapsed .iot-status{border-radius:50%!important;bottom:10px!important;height:40px!important;left:50%!important;padding:6px!important;transform:translateX(-50%)!important;width:40px!important}.ant-layout-sider-collapsed .iot-status span{display:none}.ant-menu-dark .ant-menu-item:hover{background:linear-gradient(90deg,#1890ff26,#40a9ff1a)!important;transform:translateX(4px);transition:all .3s ease}.ant-menu-dark .ant-menu-item-selected{background:linear-gradient(90deg,#1890ff40,#40a9ff26)!important;border-left:3px solid #1890ff;box-shadow:0 2px 8px #1890ff33;transform:translateX(4px)}.ant-menu-item-group-title{background:#1890ff0d;border-left:2px solid #1890ff;border-radius:3px;font-size:11px!important;margin:6px 0 2px;padding:6px 16px!important}.ant-menu-item-divider{background:linear-gradient(90deg,#0000,#1890ff 50%,#0000);height:1px;opacity:.3}.ant-layout-sider-children::-webkit-scrollbar{width:4px}.ant-layout-sider-children::-webkit-scrollbar-track{background:#ffffff0d;border-radius:2px}.ant-layout-sider-children::-webkit-scrollbar-thumb{background:#1890ff;border-radius:2px}.ant-layout-sider-children::-webkit-scrollbar-thumb:hover{background:#40a9ff}#toolbarApp{backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px)}#toolbarApp .tool-right,#toolbarApp .toool-left{align-items:center;display:flex}#box-logo .logo-icon{transition:all .3s ease}#box-logo:hover .logo-icon{transform:rotate(1turn) scale(1.1)}.ant-btn-circle{transition:all .3s cubic-bezier(.4,0,.2,1)}.ant-btn-circle:hover{box-shadow:0 4px 16px #1890ff4d}.ant-badge-dot{animation:badgePulse 2s infinite;box-shadow:0 0 8px #f5222d99}@keyframes badgePulse{0%{opacity:1;transform:scale(1)}50%{opacity:.8;transform:scale(1.2)}to{opacity:1;transform:scale(1)}}@keyframes pulse{0%{opacity:1;transform:scale(1)}50%{opacity:.8;transform:scale(1.05)}to{opacity:1;transform:scale(1)}}@keyframes shimmer{0%{background-position:-200%}to{background-position:200%}}@keyframes glow{0%{box-shadow:0 0 5px #1890ff4d}50%{box-shadow:0 0 20px #1890ff99}to{box-shadow:0 0 5px #1890ff4d}}@keyframes statusPulse{0%{box-shadow:0 0 0 0 #52c41a99;opacity:1;transform:scale(1)}50%{box-shadow:0 0 0 8px #52c41a4d;opacity:.8;transform:scale(1.1)}to{box-shadow:0 0 0 0 #52c41a00;opacity:1;transform:scale(1)}}@keyframes floatUp{0%{transform:translateY(0)}50%{transform:translateY(-2px)}to{transform:translateY(0)}}.avatar-container{animation:floatUp 4s ease-in-out infinite}.avatar-container:hover{animation-play-state:paused}.crown-badge{animation:shimmer 3s linear infinite;background:linear-gradient(90deg,#faad14,#ffd53e 50%,#faad14);background-size:200% 100%}.status-indicator{animation:statusPulse 2s infinite}.status-indicator:before{animation:pulse 2s .3s infinite;border:2px solid #52c41a4d;border-radius:50%;content:"";height:12px;left:-3px;position:absolute;top:-3px;width:12px}.user-info-card{transition:all .3s cubic-bezier(.4,0,.2,1)}.user-info-card:hover{box-shadow:0 8px 25px #1890ff33;transform:translateY(-2px)}.gradient-text{-webkit-text-fill-color:#0000;background:linear-gradient(135deg,#fff,#e6f7ff);background-clip:text;-webkit-background-clip:text;background-size:200% 100%}.avatar-shine,.gradient-text{animation:shimmer 3s ease-in-out infinite}.avatar-shine{background:linear-gradient(90deg,#0000,#fff6 50%,#0000);border-radius:50%;height:100%;left:-100%;position:absolute;top:0;width:100%;z-index:3}.backdrop-blur{backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px)}@media (max-width:768px){#toolbarApp{height:52px;padding:0 12px}#title-main{font-size:16px!important}#toolbarApp .tool-right .ant-space>div:first-child{display:none}.ant-btn-circle{height:32px!important;width:32px!important}.avatar-container{margin:6px 4px!important;padding:12px 6px!important}.user-info-card{font-size:12px!important;padding:8px 10px!important}.gradient-text{font-size:13px!important}}.box{align-content:center;background-color:#fff;flex-direction:column;flex-wrap:wrap;height:100%;justify-content:center;-webkit-user-select:none;user-select:"none";width:100%}.box .ant-card-body{padding:0 10px}.box .title{font-size:14px;font-weight:600;margin:0;padding:5px;text-align:center;text-transform:uppercase}.chart{padding:10px;position:relative;width:100%}@keyframes ui-toolbar-enhanced_spin__qONsK{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}.ui-toolbar-enhanced_spinning__QmDxD{animation:ui-toolbar-enhanced_spin__qONsK 1s linear infinite}.header-form .ant-form-item{margin:0}.header-form h3{color:#6495ed;font-size:17px;font-weight:900;margin-left:30px}.header-form{border-bottom:1px solid #7a6149;display:flex;justify-content:space-between;margin-bottom:10px;padding:2px}.react-grid-layout{position:relative;transition:height .2s ease}.react-grid-item{transition:all .2s ease;transition-property:left,top,width,height}.react-grid-item img{pointer-events:none;-webkit-user-select:none;user-select:none}.react-grid-item.cssTransforms{transition-property:transform,width,height}.react-grid-item.resizing{transition:none;will-change:width,height;z-index:1}.react-grid-item.react-draggable-dragging{transition:none;will-change:transform;z-index:3}.react-grid-item.dropping{visibility:hidden}.react-grid-item.react-grid-placeholder{background:red;opacity:.2;transition-duration:.1s;-webkit-user-select:none;-o-user-select:none;user-select:none;z-index:2}.react-grid-item.react-grid-placeholder.placeholder-resizing{transition:none}.react-grid-item>.react-resizable-handle{height:20px;position:absolute;width:20px}.react-grid-item>.react-resizable-handle:after{border-bottom:2px solid #0006;border-right:2px solid #0006;bottom:3px;content:"";height:5px;position:absolute;right:3px;width:5px}.react-resizable-hide>.react-resizable-handle{display:none}.react-grid-item>.react-resizable-handle.react-resizable-handle-sw{bottom:0;cursor:sw-resize;left:0;transform:rotate(90deg)}.react-grid-item>.react-resizable-handle.react-resizable-handle-se{bottom:0;cursor:se-resize;right:0}.react-grid-item>.react-resizable-handle.react-resizable-handle-nw{cursor:nw-resize;left:0;top:0;transform:rotate(180deg)}.react-grid-item>.react-resizable-handle.react-resizable-handle-ne{cursor:ne-resize;right:0;top:0;transform:rotate(270deg)}.react-grid-item>.react-resizable-handle.react-resizable-handle-e,.react-grid-item>.react-resizable-handle.react-resizable-handle-w{cursor:ew-resize;margin-top:-10px;top:50%}.react-grid-item>.react-resizable-handle.react-resizable-handle-w{left:0;transform:rotate(135deg)}.react-grid-item>.react-resizable-handle.react-resizable-handle-e{right:0;transform:rotate(315deg)}.react-grid-item>.react-resizable-handle.react-resizable-handle-n,.react-grid-item>.react-resizable-handle.react-resizable-handle-s{cursor:ns-resize;left:50%;margin-left:-10px}.react-grid-item>.react-resizable-handle.react-resizable-handle-n{top:0;transform:rotate(225deg)}.react-grid-item>.react-resizable-handle.react-resizable-handle-s{bottom:0;transform:rotate(45deg)}.react-flow{direction:ltr}.react-flow__container{height:100%;left:0;position:absolute;top:0;width:100%}.react-flow__pane{cursor:grab;z-index:1}.react-flow__pane.selection{cursor:pointer}.react-flow__pane.dragging{cursor:grabbing}.react-flow__viewport{pointer-events:none;transform-origin:0 0;z-index:2}.react-flow__renderer{z-index:4}.react-flow__selection{z-index:6}.react-flow__nodesselection-rect:focus,.react-flow__nodesselection-rect:focus-visible{outline:none}.react-flow .react-flow__edges{overflow:visible;pointer-events:none}.react-flow__connection-path,.react-flow__edge-path{stroke:#b1b1b7;stroke-width:1;fill:none}.react-flow__edge{cursor:pointer;pointer-events:visibleStroke}.react-flow__edge.animated path{stroke-dasharray:5;animation:dashdraw .5s linear infinite}.react-flow__edge.animated path.react-flow__edge-interaction{stroke-dasharray:none;animation:none}.react-flow__edge.inactive{pointer-events:none}.react-flow__edge.selected,.react-flow__edge:focus,.react-flow__edge:focus-visible{outline:none}.react-flow__edge.selected .react-flow__edge-path,.react-flow__edge:focus .react-flow__edge-path,.react-flow__edge:focus-visible .react-flow__edge-path{stroke:#555}.react-flow__edge-textwrapper{pointer-events:all}.react-flow__edge-textbg{fill:#fff}.react-flow__edge .react-flow__edge-text{pointer-events:none;-webkit-user-select:none;user-select:none}.react-flow__connection{pointer-events:none}.react-flow__connection .animated{stroke-dasharray:5;animation:dashdraw .5s linear infinite}.react-flow__connectionline{z-index:1001}.react-flow__nodes{pointer-events:none;transform-origin:0 0}.react-flow__node{box-sizing:border-box;cursor:grab;pointer-events:all;position:absolute;transform-origin:0 0;-webkit-user-select:none;user-select:none}.react-flow__node.dragging{cursor:grabbing}.react-flow__nodesselection{pointer-events:none;transform-origin:left top;z-index:3}.react-flow__nodesselection-rect{cursor:grab;pointer-events:all;position:absolute}.react-flow__handle{background:#1a192b;border:1px solid #fff;border-radius:100%;height:6px;min-height:5px;min-width:5px;pointer-events:none;position:absolute;width:6px}.react-flow__handle.connectionindicator{cursor:crosshair;pointer-events:all}.react-flow__handle-bottom{bottom:-4px;left:50%;top:auto;transform:translate(-50%)}.react-flow__handle-top{left:50%;top:-4px;transform:translate(-50%)}.react-flow__handle-left{left:-4px;top:50%;transform:translateY(-50%)}.react-flow__handle-right{right:-4px;top:50%;transform:translateY(-50%)}.react-flow__edgeupdater{cursor:move;pointer-events:all}.react-flow__panel{margin:15px;position:absolute;z-index:5}.react-flow__panel.top{top:0}.react-flow__panel.bottom{bottom:0}.react-flow__panel.left{left:0}.react-flow__panel.right{right:0}.react-flow__panel.center{left:50%;transform:translateX(-50%)}.react-flow__attribution{background:#ffffff80;font-size:10px;margin:0;padding:2px 3px}.react-flow__attribution a{color:#999;text-decoration:none}@keyframes dashdraw{0%{stroke-dashoffset:10}}.react-flow__edgelabel-renderer{height:100%;pointer-events:none;position:absolute;-webkit-user-select:none;user-select:none;width:100%}.react-flow__edge.updating .react-flow__edge-path{stroke:#777}.react-flow__edge-text{font-size:10px}.react-flow__node.selectable:focus,.react-flow__node.selectable:focus-visible{outline:none}.react-flow__node-default,.react-flow__node-group,.react-flow__node-input,.react-flow__node-output{background-color:#fff;border:1px solid #1a192b;border-radius:3px;color:#222;font-size:12px;padding:10px;text-align:center;width:150px}.react-flow__node-default.selectable:hover,.react-flow__node-group.selectable:hover,.react-flow__node-input.selectable:hover,.react-flow__node-output.selectable:hover{box-shadow:0 1px 4px 1px #00000014}.react-flow__node-default.selectable.selected,.react-flow__node-default.selectable:focus,.react-flow__node-default.selectable:focus-visible,.react-flow__node-group.selectable.selected,.react-flow__node-group.selectable:focus,.react-flow__node-group.selectable:focus-visible,.react-flow__node-input.selectable.selected,.react-flow__node-input.selectable:focus,.react-flow__node-input.selectable:focus-visible,.react-flow__node-output.selectable.selected,.react-flow__node-output.selectable:focus,.react-flow__node-output.selectable:focus-visible{box-shadow:0 0 0 .5px #1a192b}.react-flow__node-group{background-color:#f0f0f040}.react-flow__nodesselection-rect,.react-flow__selection{background:#0059dc14;border:1px dotted #0059dccc}.react-flow__nodesselection-rect:focus,.react-flow__nodesselection-rect:focus-visible,.react-flow__selection:focus,.react-flow__selection:focus-visible{outline:none}.react-flow__controls{box-shadow:0 0 2px 1px #00000014}.react-flow__controls-button{align-items:center;background:#fefefe;border:none;border-bottom:1px solid #eee;box-sizing:initial;cursor:pointer;display:flex;height:16px;justify-content:center;padding:5px;-webkit-user-select:none;user-select:none;width:16px}.react-flow__controls-button:hover{background:#f4f4f4}.react-flow__controls-button svg{max-height:12px;max-width:12px;width:100%}.react-flow__controls-button:disabled{pointer-events:none}.react-flow__controls-button:disabled svg{fill-opacity:.4}.react-flow__minimap{background-color:#fff}.react-flow__minimap svg{display:block}.react-flow__resize-control{position:absolute}.react-flow__resize-control.left,.react-flow__resize-control.right{cursor:ew-resize}.react-flow__resize-control.bottom,.react-flow__resize-control.top{cursor:ns-resize}.react-flow__resize-control.bottom.right,.react-flow__resize-control.top.left{cursor:nwse-resize}.react-flow__resize-control.bottom.left,.react-flow__resize-control.top.right{cursor:nesw-resize}.react-flow__resize-control.handle{background-color:#3367d9;border:1px solid #fff;border-radius:1px;height:4px;transform:translate(-50%,-50%);width:4px}.react-flow__resize-control.handle.left{left:0;top:50%}.react-flow__resize-control.handle.right{left:100%;top:50%}.react-flow__resize-control.handle.top{left:50%;top:0}.react-flow__resize-control.handle.bottom{left:50%;top:100%}.react-flow__resize-control.handle.bottom.left,.react-flow__resize-control.handle.top.left{left:0}.react-flow__resize-control.handle.bottom.right,.react-flow__resize-control.handle.top.right{left:100%}.react-flow__resize-control.line{border:0 solid #3367d9}.react-flow__resize-control.line.left,.react-flow__resize-control.line.right{height:100%;top:0;transform:translate(-50%);width:1px}.react-flow__resize-control.line.left{border-left-width:1px;left:0}.react-flow__resize-control.line.right{border-right-width:1px;left:100%}.react-flow__resize-control.line.bottom,.react-flow__resize-control.line.top{height:1px;left:0;transform:translateY(-50%);width:100%}.react-flow__resize-control.line.top{border-top-width:1px;top:0}.react-flow__resize-control.line.bottom{border-bottom-width:1px;top:100%}