body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;margin:0}code{font-family:source-code-pro,Menlo,Monaco,Consolas,Courier New,monospace}.notification-dropdown{background-color:#fff;border-radius:8px;box-shadow:0 6px 16px -8px #00000014,0 9px 28px 0 #0000000d,0 12px 48px 16px #00000008;max-width:90vw;overflow:hidden;width:350px}.notification-dropdown.dark{background-color:#1f1f1f;box-shadow:0 6px 16px -8px #00000052,0 9px 28px 0 #0003,0 12px 48px 16px #0000001f}.notification-header{align-items:center;display:flex;justify-content:space-between;padding:12px 16px}.notification-header h5{margin:0}.notification-content{max-height:400px;overflow-y:auto;padding:0 8px}.notification-empty{align-items:center;display:flex;flex-direction:column;justify-content:center;padding:24px 0}.notification-footer{border-top:1px solid #f0f0f0;padding:8px 16px;text-align:center}.notification-dropdown.dark .notification-footer{border-top:1px solid #303030}.notification-item{border-radius:6px;margin-bottom:4px;padding:8px 12px;transition:background-color .3s}.notification-item:hover{background-color:#f5f5f5}.notification-dropdown.dark .notification-item:hover{background-color:#2a2a2a}.notification-item.unread{background-color:#e6f7ff}.notification-dropdown.dark .notification-item.unread{background-color:#111d2c}.notification-item-content{margin-left:12px}.notification-item-title{font-weight:500;margin-bottom:4px}.notification-item-time{color:#00000073;font-size:12px}.notification-item-action{margin-top:8px}.notification-dropdown-overlay{z-index:1050}.fullscreen-notification-center{background:#f0f2f5;min-height:calc(100vh - 64px);padding:24px}.notification-unread-indicator{background-color:#1890ff;border-radius:50%;height:8px;margin-left:8px;width:8px}.notification-loading{align-items:center;display:flex;flex-direction:column;gap:12px;justify-content:center;padding:24px 0}.gauge-main-value{font-size:2.2em}.gauge-unit{font-size:.6em}.gauge-range-info{font-size:.9em}.gauge-percent-info{font-size:.85em}@media (max-width:768px){.gauge-main-value{font-size:2em}.gauge-range-info{font-size:.8em}.gauge-percent-info{font-size:.75em}}@media (max-width:480px){.gauge-main-value{font-size:1.8em}.gauge-unit{font-size:.55em}.gauge-range-info{font-size:.75em;line-height:1.2}.gauge-percent-info{font-size:.7em;line-height:1.2}.gauge-value-display{top:52%}}.gauge-widget-content{align-items:center;display:flex;justify-content:center;position:relative}.leaflet-image-layer,.leaflet-layer,.leaflet-marker-icon,.leaflet-marker-shadow,.leaflet-pane,.leaflet-pane>canvas,.leaflet-pane>svg,.leaflet-tile,.leaflet-tile-container,.leaflet-zoom-box{left:0;position:absolute;top:0}.leaflet-container{overflow:hidden}.leaflet-marker-icon,.leaflet-marker-shadow,.leaflet-tile{-webkit-user-drag:none;-webkit-user-select:none;user-select:none}.leaflet-tile::selection{background:#0000}.leaflet-safari .leaflet-tile{image-rendering:-webkit-optimize-contrast}.leaflet-safari .leaflet-tile-container{height:1600px;-webkit-transform-origin:0 0;width:1600px}.leaflet-marker-icon,.leaflet-marker-shadow{display:block}.leaflet-container .leaflet-overlay-pane svg{max-height:none!important;max-width:none!important}.leaflet-container .leaflet-marker-pane img,.leaflet-container .leaflet-shadow-pane img,.leaflet-container .leaflet-tile,.leaflet-container .leaflet-tile-pane img,.leaflet-container img.leaflet-image-layer{max-height:none!important;max-width:none!important;padding:0;width:auto}.leaflet-container img.leaflet-tile{mix-blend-mode:plus-lighter}.leaflet-container.leaflet-touch-zoom{touch-action:pan-x pan-y}.leaflet-container.leaflet-touch-drag{touch-action:none;touch-action:pinch-zoom}.leaflet-container.leaflet-touch-drag.leaflet-touch-zoom{touch-action:none}.leaflet-container{-webkit-tap-highlight-color:transparent}.leaflet-container a{-webkit-tap-highlight-color:rgba(51,181,229,.4)}.leaflet-tile{filter:inherit;visibility:hidden}.leaflet-tile-loaded{visibility:inherit}.leaflet-zoom-box{box-sizing:border-box;height:0;width:0;z-index:800}.leaflet-overlay-pane svg{-moz-user-select:none}.leaflet-pane{z-index:400}.leaflet-tile-pane{z-index:200}.leaflet-overlay-pane{z-index:400}.leaflet-shadow-pane{z-index:500}.leaflet-marker-pane{z-index:600}.leaflet-tooltip-pane{z-index:650}.leaflet-popup-pane{z-index:700}.leaflet-map-pane canvas{z-index:100}.leaflet-map-pane svg{z-index:200}.leaflet-vml-shape{height:1px;width:1px}.lvml{behavior:url(#default#VML);display:inline-block;position:absolute}.leaflet-control{pointer-events:visiblePainted;pointer-events:auto;position:relative;z-index:800}.leaflet-bottom,.leaflet-top{pointer-events:none;position:absolute;z-index:1000}.leaflet-top{top:0}.leaflet-right{right:0}.leaflet-bottom{bottom:0}.leaflet-left{left:0}.leaflet-control{clear:both;float:left}.leaflet-right .leaflet-control{float:right}.leaflet-top .leaflet-control{margin-top:10px}.leaflet-bottom .leaflet-control{margin-bottom:10px}.leaflet-left .leaflet-control{margin-left:10px}.leaflet-right .leaflet-control{margin-right:10px}.leaflet-fade-anim .leaflet-popup{opacity:0;transition:opacity .2s linear}.leaflet-fade-anim .leaflet-map-pane .leaflet-popup{opacity:1}.leaflet-zoom-animated{transform-origin:0 0}svg.leaflet-zoom-animated{will-change:transform}.leaflet-zoom-anim .leaflet-zoom-animated{transition:transform .25s cubic-bezier(0,0,.25,1)}.leaflet-pan-anim .leaflet-tile,.leaflet-zoom-anim .leaflet-tile{transition:none}.leaflet-zoom-anim .leaflet-zoom-hide{visibility:hidden}.leaflet-interactive{cursor:pointer}.leaflet-grab{cursor:grab}.leaflet-crosshair,.leaflet-crosshair .leaflet-interactive{cursor:crosshair}.leaflet-control,.leaflet-popup-pane{cursor:auto}.leaflet-dragging .leaflet-grab,.leaflet-dragging .leaflet-grab .leaflet-interactive,.leaflet-dragging .leaflet-marker-draggable{cursor:move;cursor:grabbing}.leaflet-image-layer,.leaflet-marker-icon,.leaflet-marker-shadow,.leaflet-pane>svg path,.leaflet-tile-container{pointer-events:none}.leaflet-image-layer.leaflet-interactive,.leaflet-marker-icon.leaflet-interactive,.leaflet-pane>svg path.leaflet-interactive,svg.leaflet-image-layer.leaflet-interactive path{pointer-events:visiblePainted;pointer-events:auto}.leaflet-container{background:#ddd;outline-offset:1px}.leaflet-container a{color:#0078a8}.leaflet-zoom-box{background:#ffffff80;border:2px dotted #38f}.leaflet-container{font-family:Helvetica Neue,Arial,Helvetica,sans-serif;font-size:12px;font-size:.75rem;line-height:1.5}.leaflet-bar{border-radius:4px;box-shadow:0 1px 5px #000000a6}.leaflet-bar a{background-color:#fff;border-bottom:1px solid #ccc;color:#000;display:block;height:26px;line-height:26px;text-align:center;text-decoration:none;width:26px}.leaflet-bar a,.leaflet-control-layers-toggle{background-position:50% 50%;background-repeat:no-repeat;display:block}.leaflet-bar a:focus,.leaflet-bar a:hover{background-color:#f4f4f4}.leaflet-bar a:first-child{border-top-left-radius:4px;border-top-right-radius:4px}.leaflet-bar a:last-child{border-bottom:none;border-bottom-left-radius:4px;border-bottom-right-radius:4px}.leaflet-bar a.leaflet-disabled{background-color:#f4f4f4;color:#bbb;cursor:default}.leaflet-touch .leaflet-bar a{height:30px;line-height:30px;width:30px}.leaflet-touch .leaflet-bar a:first-child{border-top-left-radius:2px;border-top-right-radius:2px}.leaflet-touch .leaflet-bar a:last-child{border-bottom-left-radius:2px;border-bottom-right-radius:2px}.leaflet-control-zoom-in,.leaflet-control-zoom-out{font:700 18px Lucida Console,Monaco,monospace;text-indent:1px}.leaflet-touch .leaflet-control-zoom-in,.leaflet-touch .leaflet-control-zoom-out{font-size:22px}.leaflet-control-layers{background:#fff;border-radius:5px;box-shadow:0 1px 5px #0006}.leaflet-control-layers-toggle{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABoAAAAaCAQAAAADQ4RFAAACf0lEQVR4AY1UM3gkARTePdvdoTxXKc+qTl3aU5U6b2Kbkz3Gtq3Zw6ziLGNPzrYx7946Tr6/ee/XeCQ4D3ykPtL5tHno4n0d/h3+xfuWHGLX81cn7r0iTNzjr7LrlxCqPtkbTQEHeqOrTy4Yyt3VCi/IOB0v7rVC7q45Q3Gr5K6jt+3Gl5nCoDD4MtO+j96Wu8atmhGqcNGHObuf8OM/x3AMx38+4Z2sPqzCxRFK2aF2e5Jol56XTLyggAMTL56XOMoS1W4pOyjUcGGQdZxU6qRh7B9Zp+PfpOFlqt0zyDZckPi1ttmIp03jX8gyJ8a/PG2yutpS/Vol7peZIbZcKBAEEheEIAgFbDkz5H6Zrkm2hVWGiXKiF4Ycw0RWKdtC16Q7qe3X4iOMxruonzegJzWaXFrU9utOSsLUmrc0YjeWYjCW4PDMADElpJSSQ0vQvA1Tm6/JlKnqFs1EGyZiFCqnRZTEJJJiKRYzVYzJck2Rm6P4iH+cmSY0YzimYa8l0EtTODFWhcMIMVqdsI2uiTvKmTisIDHJ3od5GILVhBCarCfVRmo4uTjkhrhzkiBV7SsaqS+TzrzM1qpGGUFt28pIySQHR6h7F6KSwGWm97ay+Z+ZqMcEjEWebE7wxCSQwpkhJqoZA5ivCdZDjJepuJ9IQjGGUmuXJdBFUygxVqVsxFsLMbDe8ZbDYVCGKxs+W080max1hFCarCfV+C1KATwcnvE9gRRuMP2prdbWGowm1KB1y+zwMMENkM755cJ2yPDtqhTI6ED1M/82yIDtC/4j4BijjeObflpO9I9MwXTCsSX8jWAFeHr05WoLTJ5G8IQVS/7vwR6ohirYM7f6HzYpogfS3R2OAAAAAElFTkSuQmCC);height:36px;width:36px}.leaflet-retina .leaflet-control-layers-toggle{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADQAAAA0CAQAAABvcdNgAAAEsklEQVR4AWL4TydIhpZK1kpWOlg0w3ZXP6D2soBtG42jeI6ZmQTHzAxiTbSJsYLjO9HhP+WOmcuhciVnmHVQcJnp7DFvScowZorad/+V/fVzMdMT2g9Cv9guXGv/7pYOrXh2U+RRR3dSd9JRx6bIFc/ekqHI29JC6pJ5ZEh1yWkhkbcFeSjxgx3L2m1cb1C7bceyxA+CNjT/Ifff+/kDk2u/w/33/IeCMOSaWZ4glosqT3DNnNZQ7Cs58/3Ce5HL78iZH/vKVIaYlqzfdLu8Vi7dnvUbEza5Idt36tquZFldl6N5Z/POLof0XLK61mZCmJSWjVF9tEjUluu74IUXvgttuVIHE7YxSkaYhJZam7yiM9Pv82JYfl9nptxZaxMJE4YSPty+vF0+Y2up9d3wwijfjZbabqm/3bZ9ecKHsiGmRflnn1MW4pjHf9oLufyn2z3y1D6n8g8TZhxyzipLNPnAUpsOiuWimg52psrTZYnOWYNDTMuWBWa0tJb4rgq1UvmutpaYEbZlwU3CLJm/ayYjHW5/h7xWLn9Hh1vepDkyf7dE7MtT5LR4e7yYpHrkhOUpEfssBLq2pPhAqoSWKUkk7EDqkmK6RrCEzqDjhNDWNE+XSMvkJRDWlZTmCW0l0PHQGRZY5t1L83kT0Y3l2SItk5JAWHl2dCOBm+fPu3fo5/3v61RMCO9Jx2EEYYhb0rmNQMX/vm7gqOEJLcXTGw3CAuRNeyaPWwjR8PRqKQ1PDA/dpv+on9Shox52WFnx0KY8onHayrJzm87i5h9xGw/tfkev0jGsQizqezUKjk12hBMKJ4kbCqGPVNXudyyrShovGw5CgxsRICxF6aRmSjlBnHRzg7Gx8fKqEubI2rahQYdR1YgDIRQO7JvQyD52hoIQx0mxa0ODtW2Iozn1le2iIRdzwWewedyZzewidueOGqlsn1MvcnQpuVwLGG3/IR1hIKxCjelIDZ8ldqWz25jWAsnldEnK0Zxro19TGVb2ffIZEsIO89EIEDvKMPrzmBOQcKQ+rroye6NgRRxqR4U8EAkz0CL6uSGOm6KQCdWjvjRiSP1BPalCRS5iQYiEIvxuBMJEWgzSoHADcVMuN7IuqqTeyUPq22qFimFtxDyBBJEwNyt6TM88blFHao/6tWWhuuOM4SAK4EI4QmFHA+SEyWlp4EQoJ13cYGzMu7yszEIBOm2rVmHUNqwAIQabISNMRstmdhNWcFLsSm+0tjJH1MdRxO5Nx0WDMhCtgD6OKgZeljJqJKc9po8juskR9XN0Y1lZ3mWjLR9JCO1jRDMd0fpYC2VnvjBSEFg7wBENc0R9HFlb0xvF1+TBEpF68d+DHR6IOWVv2BECtxo46hOFUBd/APU57WIoEwJhIi2CdpyZX0m93BZicktMj1AS9dClteUFAUNUIEygRZCtik5zSxI9MubTBH1GOiHsiLJ3OCoSZkILa9PxiN0EbvhsAo8tdAf9Seepd36lGWHmtNANTv5Jd0z4QYyeo/UEJqxKRpg5LZx6btLPsOaEmdMyxYdlc8LMaJnikDlhclqmPiQnTEpLUIZEwkRagjYkEibQErwhkTAKCLQEbUgkzJQWc/0PstHHcfEdQ+UAAAAASUVORK5CYII=);background-size:26px 26px}.leaflet-touch .leaflet-control-layers-toggle{height:44px;width:44px}.leaflet-control-layers .leaflet-control-layers-list,.leaflet-control-layers-expanded .leaflet-control-layers-toggle{display:none}.leaflet-control-layers-expanded .leaflet-control-layers-list{display:block;position:relative}.leaflet-control-layers-expanded{background:#fff;color:#333;padding:6px 10px 6px 6px}.leaflet-control-layers-scrollbar{overflow-x:hidden;overflow-y:scroll;padding-right:5px}.leaflet-control-layers-selector{margin-top:2px;position:relative;top:1px}.leaflet-control-layers label{display:block;font-size:13px;font-size:1.08333em}.leaflet-control-layers-separator{border-top:1px solid #ddd;height:0;margin:5px -10px 5px -6px}.leaflet-default-icon-path{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABkAAAApCAYAAADAk4LOAAAFgUlEQVR4Aa1XA5BjWRTN2oW17d3YaZtr2962HUzbDNpjszW24mRt28p47v7zq/bXZtrp/lWnXr337j3nPCe85NcypgSFdugCpW5YoDAMRaIMqRi6aKq5E3YqDQO3qAwjVWrD8Ncq/RBpykd8oZUb/kaJutow8r1aP9II0WmLKLIsJyv1w/kqw9Ch2MYdB++12Onxee/QMwvf4/Dk/Lfp/i4nxTXtOoQ4pW5Aj7wpici1A9erdAN2OH64x8OSP9j3Ft3b7aWkTg/Fm91siTra0f9on5sQr9INejH6CUUUpavjFNq1B+Oadhxmnfa8RfEmN8VNAsQhPqF55xHkMzz3jSmChWU6f7/XZKNH+9+hBLOHYozuKQPxyMPUKkrX/K0uWnfFaJGS1QPRtZsOPtr3NsW0uyh6NNCOkU3Yz+bXbT3I8G3xE5EXLXtCXbbqwCO9zPQYPRTZ5vIDXD7U+w7rFDEoUUf7ibHIR4y6bLVPXrz8JVZEql13trxwue/uDivd3fkWRbS6/IA2bID4uk0UpF1N8qLlbBlXs4Ee7HLTfV1j54APvODnSfOWBqtKVvjgLKzF5YdEk5ewRkGlK0i33Eofffc7HT56jD7/6U+qH3Cx7SBLNntH5YIPvODnyfIXZYRVDPqgHtLs5ABHD3YzLuespb7t79FY34DjMwrVrcTuwlT55YMPvOBnRrJ4VXTdNnYug5ucHLBjEpt30701A3Ts+HEa73u6dT3FNWwflY86eMHPk+Yu+i6pzUpRrW7SNDg5JHR4KapmM5Wv2E8Tfcb1HoqqHMHU+uWDD7zg54mz5/2BSnizi9T1Dg4QQXLToGNCkb6tb1NU+QAlGr1++eADrzhn/u8Q2YZhQVlZ5+CAOtqfbhmaUCS1ezNFVm2imDbPmPng5wmz+gwh+oHDce0eUtQ6OGDIyR0uUhUsoO3vfDmmgOezH0mZN59x7MBi++WDL1g/eEiU3avlidO671bkLfwbw5XV2P8Pzo0ydy4t2/0eu33xYSOMOD8hTf4CrBtGMSoXfPLchX+J0ruSePw3LZeK0juPJbYzrhkH0io7B3k164hiGvawhOKMLkrQLyVpZg8rHFW7E2uHOL888IBPlNZ1FPzstSJM694fWr6RwpvcJK60+0HCILTBzZLFNdtAzJaohze60T8qBzyh5ZuOg5e7uwQppofEmf2++DYvmySqGBuKaicF1blQjhuHdvCIMvp8whTTfZzI7RldpwtSzL+F1+wkdZ2TBOW2gIF88PBTzD/gpeREAMEbxnJcaJHNHrpzji0gQCS6hdkEeYt9DF/2qPcEC8RM28Hwmr3sdNyht00byAut2k3gufWNtgtOEOFGUwcXWNDbdNbpgBGxEvKkOQsxivJx33iow0Vw5S6SVTrpVq11ysA2Rp7gTfPfktc6zhtXBBC+adRLshf6sG2RfHPZ5EAc4sVZ83yCN00Fk/4kggu40ZTvIEm5g24qtU4KjBrx/BTTH8ifVASAG7gKrnWxJDcU7x8X6Ecczhm3o6YicvsLXWfh3Ch1W0k8x0nXF+0fFxgt4phz8QvypiwCCFKMqXCnqXExjq10beH+UUA7+nG6mdG/Pu0f3LgFcGrl2s0kNNjpmoJ9o4B29CMO8dMT4Q5ox8uitF6fqsrJOr8qnwNbRzv6hSnG5wP+64C7h9lp30hKNtKdWjtdkbuPA19nJ7Tz3zR/ibgARbhb4AlhavcBebmTHcFl2fvYEnW0ox9xMxKBS8btJ+KiEbq9zA4RthQXDhPa0T9TEe69gWupwc6uBUphquXgf+/FrIjweHQS4/pduMe5ERUMHUd9xv8ZR98CxkS4F2n3EUrUZ10EYNw7BWm9x1GiPssi3GgiGRDKWRYZfXlON+dfNbM+GgIwYdwAAAAASUVORK5CYII=)}.leaflet-container .leaflet-control-attribution{background:#fff;background:#fffc;margin:0}.leaflet-control-attribution,.leaflet-control-scale-line{color:#333;line-height:1.4;padding:0 5px}.leaflet-control-attribution a{text-decoration:none}.leaflet-control-attribution a:focus,.leaflet-control-attribution a:hover{text-decoration:underline}.leaflet-attribution-flag{display:inline!important;height:.6669em;vertical-align:initial!important;width:1em}.leaflet-left .leaflet-control-scale{margin-left:5px}.leaflet-bottom .leaflet-control-scale{margin-bottom:5px}.leaflet-control-scale-line{background:#fffc;border:2px solid #777;border-top:none;box-sizing:border-box;line-height:1.1;padding:2px 5px 1px;text-shadow:1px 1px #fff;white-space:nowrap}.leaflet-control-scale-line:not(:first-child){border-bottom:none;border-top:2px solid #777;margin-top:-2px}.leaflet-control-scale-line:not(:first-child):not(:last-child){border-bottom:2px solid #777}.leaflet-touch .leaflet-bar,.leaflet-touch .leaflet-control-attribution,.leaflet-touch .leaflet-control-layers{box-shadow:none}.leaflet-touch .leaflet-bar,.leaflet-touch .leaflet-control-layers{background-clip:padding-box;border:2px solid #0003}.leaflet-popup{margin-bottom:20px;position:absolute;text-align:center}.leaflet-popup-content-wrapper{border-radius:12px;padding:1px;text-align:left}.leaflet-popup-content{font-size:13px;font-size:1.08333em;line-height:1.3;margin:13px 24px 13px 20px;min-height:1px}.leaflet-popup-content p{margin:1.3em 0}.leaflet-popup-tip-container{height:20px;left:50%;margin-left:-20px;margin-top:-1px;overflow:hidden;pointer-events:none;position:absolute;width:40px}.leaflet-popup-tip{height:17px;margin:-10px auto 0;padding:1px;pointer-events:auto;transform:rotate(45deg);width:17px}.leaflet-popup-content-wrapper,.leaflet-popup-tip{background:#fff;box-shadow:0 3px 14px #0006;color:#333}.leaflet-container a.leaflet-popup-close-button{background:#0000;border:none;color:#757575;font:16px/24px Tahoma,Verdana,sans-serif;height:24px;position:absolute;right:0;text-align:center;text-decoration:none;top:0;width:24px}.leaflet-container a.leaflet-popup-close-button:focus,.leaflet-container a.leaflet-popup-close-button:hover{color:#585858}.leaflet-popup-scrolled{overflow:auto}.leaflet-oldie .leaflet-popup-content-wrapper{-ms-zoom:1}.leaflet-oldie .leaflet-popup-tip{-ms-filter:"progid:DXImageTransform.Microsoft.Matrix(M11=0.70710678, M12=0.70710678, M21=-0.70710678, M22=0.70710678)";filter:progid:DXImageTransform.Microsoft.Matrix(M11=0.70710678,M12=0.70710678,M21=-0.70710678,M22=0.70710678);margin:0 auto;width:24px}.leaflet-oldie .leaflet-control-layers,.leaflet-oldie .leaflet-control-zoom,.leaflet-oldie .leaflet-popup-content-wrapper,.leaflet-oldie .leaflet-popup-tip{border:1px solid #999}.leaflet-div-icon{background:#fff;border:1px solid #666}.leaflet-tooltip{background-color:#fff;border:1px solid #fff;border-radius:3px;box-shadow:0 1px 3px #0006;color:#222;padding:6px;pointer-events:none;position:absolute;-webkit-user-select:none;user-select:none;white-space:nowrap}.leaflet-tooltip.leaflet-interactive{cursor:pointer;pointer-events:auto}.leaflet-tooltip-bottom:before,.leaflet-tooltip-left:before,.leaflet-tooltip-right:before,.leaflet-tooltip-top:before{background:#0000;border:6px solid #0000;content:"";pointer-events:none;position:absolute}.leaflet-tooltip-bottom{margin-top:6px}.leaflet-tooltip-top{margin-top:-6px}.leaflet-tooltip-bottom:before,.leaflet-tooltip-top:before{left:50%;margin-left:-6px}.leaflet-tooltip-top:before{border-top-color:#fff;bottom:0;margin-bottom:-12px}.leaflet-tooltip-bottom:before{border-bottom-color:#fff;margin-left:-6px;margin-top:-12px;top:0}.leaflet-tooltip-left{margin-left:-6px}.leaflet-tooltip-right{margin-left:6px}.leaflet-tooltip-left:before,.leaflet-tooltip-right:before{margin-top:-6px;top:50%}.leaflet-tooltip-left:before{border-left-color:#fff;margin-right:-12px;right:0}.leaflet-tooltip-right:before{border-right-color:#fff;left:0;margin-left:-12px}@media print{.leaflet-control{-webkit-print-color-adjust:exact;print-color-adjust:exact}}.marker-cluster-small{background-color:#b5e28c99}.marker-cluster-small div{background-color:#6ecc3999}.marker-cluster-medium{background-color:#f1d35799}.marker-cluster-medium div{background-color:#f0c20c99}.marker-cluster-large{background-color:#fd9c7399}.marker-cluster-large div{background-color:#f1801799}.leaflet-oldie .marker-cluster-small{background-color:#b5e28c}.leaflet-oldie .marker-cluster-small div{background-color:#6ecc39}.leaflet-oldie .marker-cluster-medium{background-color:#f1d357}.leaflet-oldie .marker-cluster-medium div{background-color:#f0c20c}.leaflet-oldie .marker-cluster-large{background-color:#fd9c73}.leaflet-oldie .marker-cluster-large div{background-color:#f18017}.marker-cluster{background-clip:padding-box;border-radius:20px}.marker-cluster div{border-radius:15px;font:12px Helvetica Neue,Arial,Helvetica,sans-serif;height:30px;margin-left:5px;margin-top:5px;text-align:center;width:30px}.marker-cluster span{line-height:30px}.leaflet-cluster-anim .leaflet-marker-icon,.leaflet-cluster-anim .leaflet-marker-shadow{transition:transform .3s ease-out,opacity .3s ease-in}.leaflet-cluster-spider-leg{transition:stroke-dashoffset .3s ease-out,stroke-opacity .3s ease-in}.camera-widget{box-shadow:0 2px 8px #0000001a;display:flex;flex-direction:column;height:100%;height:auto;min-height:300px;overflow:hidden}.camera-header{min-height:32px!important;padding:4px 12px!important}.camera-header .MuiCardHeader-title{font-size:.85rem!important;font-weight:500!important}.camera-header .MuiCardHeader-action{margin:0!important}.camera-content{display:flex;flex-direction:column;height:auto;overflow:visible;padding:0!important}.video-container{background-color:#000;flex:1 1;min-height:240px;overflow:hidden;position:relative}.camera-video{object-fit:contain}.error-overlay,.loading-overlay{background-color:#000000b3;flex-direction:column;height:100%;justify-content:center;top:0;z-index:2}.error-overlay,.loading-overlay,.video-controls{align-items:center;display:flex;left:0;position:absolute;width:100%}.video-controls{background:linear-gradient(0deg,#000000b3,#0000);bottom:0;justify-content:space-between;padding:2px 6px;z-index:3}.camera-info{align-items:center;display:flex}.timestamp{font-size:.7rem!important;margin-right:10px}.live-indicator{align-items:center;display:flex}.live-dot{animation:pulse 1.5s infinite;background-color:#f44336;border-radius:50%;height:6px;margin-right:4px;width:6px}.camera-tabs{background-color:#f5f5f5;border-top:1px solid #ddd;min-height:32px!important}.tab-content{font-size:.8rem;height:auto;max-height:120px;overflow:visible;overflow-y:auto;padding:6px 10px}.alerts-tab,.live-tab,.playback-tab{display:flex;flex-direction:column;gap:6px}.date-selector,.time-selector{margin-bottom:8px}.date-input{font-size:.75rem;margin-top:2px;padding:4px}.alerts-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:6px}.alerts-list{display:flex;flex-direction:column;gap:4px}.alert-item{align-items:center;background-color:#f5f5f5;border-left:3px solid #f44336;border-radius:4px;display:flex;font-size:.75rem;justify-content:space-between;padding:4px 6px}.alert-content{flex:1 1}.no-alerts{color:#757575;font-size:.75rem;padding:8px;text-align:center}.motion-indicator{align-items:center;animation:blink 1s infinite;background-color:#000000b3;border-radius:4px;color:#fff;display:flex;padding:2px 4px;position:absolute;right:8px;top:8px;z-index:3}@keyframes blink{0%{opacity:1}50%{opacity:.5}to{opacity:1}}.camera-settings{font-size:.85rem;height:100%;overflow-y:auto;padding:10px}.setting-group{margin:8px 0}.ptz-controls{align-items:center;background-color:#00000080;border-radius:8px;bottom:40px;display:flex;flex-direction:column;padding:4px;position:absolute;right:8px;transform:scale(.85);transform-origin:bottom right;z-index:4}.ptz-controls .MuiIconButton-root{color:#fff;padding:2px}.dark-theme .camera-widget{background-color:#1e1e1e;color:#e0e0e0}.dark-theme .camera-tabs{background-color:#2d2d2d;border-top:1px solid #444}.dark-theme .tab-content{background-color:#1e1e1e;color:#e0e0e0}.dark-theme .alert-item{background-color:#2d2d2d;border-left:3px solid #f44336}.dark-theme .date-input{background-color:#2d2d2d;border:1px solid #444;color:#e0e0e0}.dark-theme .no-alerts{color:#aaa}.dark-theme .MuiCardHeader-root{background-color:#2d2d2d}.dark-theme .MuiCardHeader-title,.dark-theme .MuiIconButton-root{color:#e0e0e0}@media (max-width:600px){.tab-content{max-height:100px}.ptz-controls{bottom:35px;right:6px;transform:scale(.7);transform-origin:bottom right}.video-controls{padding:2px}.camera-header{min-height:28px!important;padding:2px 8px!important}.camera-header .MuiCardHeader-title{font-size:.75rem!important}}.event-sidebar{background:#fff;border-left:1px solid #eee;font-size:.75rem;height:100%;overflow-y:auto;padding:0;width:100%}.dark-theme .event-sidebar{background:#1e1e1e;border-left:1px solid #333;color:#e0e0e0}.event-sidebar-toggle{position:absolute;right:6px;top:6px;z-index:10}.overlay-chat{bottom:35px;display:flex;flex-direction:column;gap:3px;left:8px;max-width:80%;position:absolute;z-index:5}.chat-msg{background-color:#0009;border-radius:4px;color:#fff;font-size:.7rem;max-width:100%;padding:3px 6px;word-break:break-word}.chat-msg.live{border-left:2px solid #4caf50}.chat-msg.recorded{border-left:2px solid #2196f3}.alert-config-modal{background-color:#fff;border-radius:8px;box-shadow:0 4px 20px #00000026;left:50%;max-width:500px;padding:12px;position:absolute;top:50%;transform:translate(-50%,-50%);width:90%}.dark-theme .alert-config-modal{background-color:#1e1e1e;color:#e0e0e0}.alert-config-content{margin-top:12px;max-height:70vh;overflow-y:auto}.config-item{align-items:center;display:flex;justify-content:space-between;margin:6px 0}.alert-config-actions{display:flex;gap:6px;justify-content:flex-end;margin-top:12px}.camera-grid-widget{display:flex;flex-direction:column;height:100%;overflow:hidden}.camera-grid-widget .MuiCardHeader-root{min-height:48px;padding:8px 16px}.camera-grid-widget .MuiCardContent-root{height:calc(100% - 48px);overflow:hidden;padding:8px!important}.grid-layout-controls{align-items:center;background-color:#f8f9fa;border-radius:6px;display:flex;flex-wrap:wrap;gap:8px;margin-bottom:12px;padding:8px}.grid-layout-controls .layout-label{color:#666;font-size:12px;font-weight:500;margin-right:4px}.grid-layout-button{border-radius:4px!important;font-size:11px!important;height:32px!important;min-width:48px!important;padding:4px 8px!important}.grid-layout-button.active{background-color:#1976d2!important;color:#fff!important}.camera-grid-main{display:flex;gap:8px;height:calc(100% - 60px)}.camera-grid-content{display:flex;flex:1 1;flex-direction:column;min-height:0}.camera-free-form-container{min-height:400px;overflow:hidden;position:relative}.camera-free-form-container,.camera-grid-container{background-color:#fafafa;border-radius:8px;flex:1 1}.camera-grid-container{grid-gap:8px;display:grid;gap:8px;min-height:300px;padding:8px}.camera-grid-container.layout-1x1{grid-template-columns:1fr;grid-template-rows:1fr}.camera-grid-container.layout-2x2{grid-template-columns:1fr 1fr;grid-template-rows:1fr 1fr}.camera-grid-container.layout-2x3{grid-template-columns:1fr 1fr;grid-template-rows:1fr 1fr 1fr}.camera-grid-container.layout-3x2{grid-template-columns:1fr 1fr 1fr;grid-template-rows:1fr 1fr}.camera-grid-container.layout-3x3{grid-template-columns:1fr 1fr 1fr;grid-template-rows:1fr 1fr 1fr}.camera-grid-container.layout-4x4{grid-template-columns:1fr 1fr 1fr 1fr;grid-template-rows:1fr 1fr 1fr 1fr}.camera-rnd-item{border:2px solid #0000;border-radius:8px;transition:border-color .3s ease}.camera-rnd-item:hover{border-color:#1976d2}.camera-rnd-item.selected{border-color:#1976d2;box-shadow:0 0 0 2px #1976d233}.camera-rnd-item .react-resizable-handle{background-color:#1976d2;opacity:0;transition:opacity .3s ease}.camera-rnd-item.selected .react-resizable-handle,.camera-rnd-item:hover .react-resizable-handle{opacity:1}.camera-rnd-item .react-resizable-handle-se{border-radius:0 0 6px 0;bottom:3px;height:12px;right:3px;width:12px}.camera-rnd-item .react-resizable-handle-sw{border-radius:0 0 0 6px;bottom:3px;height:12px;left:3px;width:12px}.camera-rnd-item .react-resizable-handle-ne{border-radius:0 6px 0 0;height:12px;right:3px;top:3px;width:12px}.camera-rnd-item .react-resizable-handle-nw{border-radius:6px 0 0 0;height:12px;left:3px;top:3px;width:12px}.camera-rnd-item .react-resizable-handle-n,.camera-rnd-item .react-resizable-handle-s{border-radius:3px;height:6px;left:50%;transform:translateX(-50%);width:20px}.camera-rnd-item .react-resizable-handle-e,.camera-rnd-item .react-resizable-handle-w{border-radius:3px;height:20px;top:50%;transform:translateY(-50%);width:6px}.camera-grid-item{align-items:center;background-color:#000;border-radius:8px;cursor:pointer;display:flex;height:100%;justify-content:center;min-height:120px;overflow:hidden;position:relative;transition:all .3s ease;width:100%}.camera-grid-item:hover{box-shadow:0 4px 12px #00000026;transform:scale(1.02)}.camera-grid-item.selected{border:3px solid #1976d2;box-shadow:0 0 0 2px #1976d233}.camera-grid-item.empty{background-color:#f5f5f5;border:2px dashed #ddd;cursor:default}.camera-grid-item.empty:hover{box-shadow:none;transform:none}.camera-drag-handle{background-color:#1976d2cc;border-radius:4px;color:#fff;cursor:move;left:4px;opacity:0;padding:2px;position:absolute;top:4px;transition:opacity .3s ease;z-index:10}.camera-rnd-item.selected .camera-drag-handle,.camera-rnd-item:hover .camera-drag-handle{opacity:1}.camera-resize-handle{background-color:#1976d2cc;border-radius:4px;bottom:4px;color:#fff;left:4px;opacity:0;padding:2px;position:absolute;transition:opacity .3s ease;z-index:10}.camera-rnd-item.selected .camera-resize-handle,.camera-rnd-item:hover .camera-resize-handle{opacity:1}.camera-video-container{align-items:center;background-color:#000;display:flex;height:100%;justify-content:center;position:relative;width:100%}.camera-video{height:100%;object-fit:cover;width:100%}.camera-video-placeholder{color:#fff;font-size:14px;text-align:center}.camera-loading-overlay{align-items:center;display:flex;flex-direction:column;gap:8px}.camera-error-overlay,.camera-loading-overlay{left:50%;position:absolute;top:50%;transform:translate(-50%,-50%);z-index:10}.camera-error-overlay{color:#f44336;text-align:center}.camera-label{align-items:center;background:linear-gradient(0deg,#000c,#0000);bottom:0;color:#fff;display:flex;justify-content:space-between;left:0;padding:8px 12px;position:absolute;right:0}.camera-label-text{font-size:12px;font-weight:500}.camera-motion-chip{font-size:10px!important;height:20px!important}.camera-live-indicator{align-items:center;background-color:#f44336;border-radius:4px;color:#fff;display:flex;font-size:10px;font-weight:700;gap:4px;padding:2px 6px;position:absolute;right:8px;top:8px}.camera-live-dot{animation:pulse 1.5s infinite;background-color:#fff;border-radius:50%;height:6px;width:6px}.camera-info{background:#0009;border-radius:4px;color:#fff;font-size:10px;left:8px;padding:2px 6px;position:absolute;top:8px}.timestamp{font-family:monospace}.camera-play-control{left:50%;transform:translate(-50%,-50%)}.camera-play-control,.camera-volume-control{opacity:0;position:absolute;top:50%;transition:opacity .3s ease}.camera-volume-control{right:8px;transform:translateY(-50%)}.camera-grid-item.selected .camera-play-control,.camera-grid-item.selected .camera-volume-control,.camera-grid-item:hover .camera-play-control,.camera-grid-item:hover .camera-volume-control{opacity:1}.camera-control-button{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background-color:#0009!important;color:#fff!important}.camera-control-button:hover{background-color:#000c!important}.camera-ptz-controls{bottom:40px;display:flex;flex-direction:column;gap:2px;opacity:0;position:absolute;right:8px;transition:opacity .3s ease}.camera-grid-item.selected .camera-ptz-controls{opacity:1}.ptz-row{display:flex;gap:2px;justify-content:center}.ptz-control-button{background-color:#0009!important;color:#fff!important;height:28px!important;min-width:28px!important;padding:0!important;width:28px!important}.camera-empty-slot{align-items:center;color:#999;display:flex;flex-direction:column;gap:8px;height:100%;justify-content:center}.camera-empty-icon{color:#ccc;font-size:48px!important}.camera-empty-text{color:#666;font-size:14px}.selected-camera-details{background-color:#fafafa;border-top:1px solid #e0e0e0;max-height:300px;overflow-y:auto;padding:16px}.selected-camera-details .MuiTabs-root{min-height:36px}.selected-camera-details .MuiTab-root{font-size:12px;min-height:36px;padding:6px 12px}.selected-camera-tab-content{margin-top:16px}.camera-status-item{align-items:center;border-bottom:1px solid #eee;display:flex;justify-content:space-between;padding:4px 0}.camera-alert-item{background-color:#fff;border-left:3px solid #f44336;border-radius:4px;margin-bottom:8px;padding:8px}.camera-alert-message{font-size:13px;margin-bottom:4px}.camera-alert-time{color:#666;font-size:11px}.date-selector{margin-bottom:16px}.date-input{border:1px solid #ddd;border-radius:4px;margin-top:4px;padding:8px;width:100%}.time-selector{margin-bottom:16px}.camera-events-sidebar{background-color:#fafafa;border-left:1px solid #e0e0e0;display:flex;flex-direction:column;width:280px}.camera-events-header{background-color:#fff;border-bottom:1px solid #e0e0e0;padding:16px}.camera-events-content{flex:1 1;overflow-y:auto;padding:8px}.camera-events-list{display:flex;flex-direction:column;gap:8px}.camera-event-item{background-color:#fff;border-left:3px solid #ddd;border-radius:6px;padding:12px;transition:all .2s ease}.camera-event-item.selected{background-color:#f3f7ff;border-left-color:#1976d2}.camera-event-item:hover{box-shadow:0 2px 4px #0000001a}.camera-event-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:8px}.camera-event-camera{font-size:13px;font-weight:500}.camera-event-time{color:#666;font-size:11px}.camera-event-content{align-items:center;display:flex;gap:8px}.camera-event-type{align-items:center;background-color:#f5f5f5;border-radius:50%;display:flex;height:24px;justify-content:center;width:24px}.camera-event-type.motion{background-color:#ffebee;color:#f44336}.camera-event-message{color:#333;flex:1 1;font-size:12px}.camera-grid-settings{height:100%;overflow-y:auto;padding:16px}.camera-grid-settings .MuiFormControl-root{margin-bottom:16px}.settings-actions{border-top:1px solid #e0e0e0;display:flex;gap:8px;justify-content:flex-end;margin-top:24px;padding-top:16px}.add-camera-dialog .MuiDialogContent-root{padding:20px}.add-camera-dialog .MuiTextField-root{margin-bottom:16px}.add-camera-dialog .MuiFormControlLabel-root{margin-bottom:8px}@media (max-width:768px){.camera-grid-main{flex-direction:column}.camera-events-sidebar{max-height:200px;width:100%}.grid-layout-controls{flex-wrap:wrap;gap:4px}.grid-layout-button{font-size:10px!important;min-width:40px!important}.camera-free-form-container,.camera-grid-container{min-height:200px}.selected-camera-details{max-height:200px}.camera-rnd-item{min-height:100px!important;min-width:150px!important}}@media (max-width:480px){.camera-grid-container.layout-3x3,.camera-grid-container.layout-4x4{grid-template-columns:1fr 1fr;grid-template-rows:repeat(auto-fit,1fr)}.camera-ptz-controls{transform:scale(.8);transform-origin:bottom right}.camera-free-form-container{min-height:300px}}.dark-theme .camera-grid-widget{background-color:#1e1e1e}.dark-theme .camera-free-form-container,.dark-theme .camera-grid-container,.dark-theme .grid-layout-controls{background-color:#2d2d2d}.dark-theme .camera-grid-item.empty{background-color:#333;border-color:#555}.dark-theme .selected-camera-details{background-color:#2d2d2d;border-top-color:#444}.dark-theme .camera-events-sidebar{background-color:#2d2d2d;border-left-color:#444}.dark-theme .camera-alert-item,.dark-theme .camera-event-item{background-color:#333}.dark-theme .camera-status-item{border-bottom-color:#444}.dark-theme .camera-rnd-item:hover{border-color:#90caf9}.dark-theme .camera-rnd-item.selected{border-color:#90caf9;box-shadow:0 0 0 2px #90caf933}.dark-theme .camera-rnd-item .react-resizable-handle{background-color:#90caf9}.fan-card{transition:all .3s ease}.fan-blade{height:80px;margin:0 auto;position:relative;width:80px}.fan-center{background:#333;height:16px;width:16px;z-index:10}.blade{background:linear-gradient(45deg,#666,#999);border-radius:50% 10% 50% 10%;height:8px;left:50%;position:absolute;top:50%;transform-origin:0 0;width:35px}.blade1{transform:translate(-50%,-50%) rotate(0deg)}.blade2{transform:translate(-50%,-50%) rotate(90deg)}.blade3{transform:translate(-50%,-50%) rotate(180deg)}.blade4{transform:translate(-50%,-50%) rotate(270deg)}.fan-blade.spinning{animation:spin linear infinite}.fan-card .MuiCardContent-root{position:relative}.fan-card.running:before{animation:pulse 2s ease-in-out infinite;background:linear-gradient(90deg,#4caf50,#8bc34a,#4caf50);background-size:200% 100%}.fan-card.failed:before,.fan-card.running:before{content:"";height:3px;left:0;position:absolute;right:0;top:0}.fan-card.failed:before{animation:pulse 1s ease-in-out infinite;background:linear-gradient(90deg,#f44336,#ff5722,#f44336);background-size:200% 100%}@keyframes pulse{0%,to{background-position:0 50%}50%{background-position:100% 50%}}@media (max-width:768px){.fan-blade{height:60px;width:60px}.blade{height:6px;width:25px}.fan-center{height:12px;width:12px}}.temperature-normal{color:#4caf50}.temperature-warning{color:#ff9800}.temperature-critical{color:#f44336}.power-indicator{border-radius:50%;display:inline-block;height:8px;margin-right:4px;width:8px}.power-low{background-color:#4caf50}.power-medium{background-color:#ff9800}.power-high{background-color:#f44336}.fan-grid-widget{background:linear-gradient(135deg,#f5f7fa,#c3cfe2);height:100%;width:100%}.widget-header{border-bottom:2px solid #e0e0e0;padding-bottom:12px}.widget-title{color:#1976d2}.header-controls{align-items:center;display:flex;gap:8px}.system-overview{align-items:center;background:#ffffffd9;border:1px solid #e0e0e0;border-radius:8px;display:flex;flex-wrap:wrap;gap:10px;justify-content:space-between;margin-bottom:20px;padding:16px}.overview-stats{display:flex;gap:24px}.stat-item{text-align:center}.stat-item h4{font-weight:700;margin:0}.stat-item .MuiTypography-caption{color:#666;font-weight:500}.system-controls{display:flex;gap:8px}.fan-grid{margin-top:16px}.fan-card{background:#f7fafc;border:2px solid #0000;border-radius:13px;height:290px;overflow:visible;position:relative;transition:all .3s cubic-bezier(.4,0,.2,1)}.fan-card:hover{box-shadow:0 8px 25px #00000029;transform:translateY(-2px) scale(1.012)}.fan-card.fan-running{border-color:#4caf50;box-shadow:0 0 10px #4caf5047}.fan-card.fan-stopped{border-color:#757575}.fan-card.fan-failed{animation:pulse-red 1.6s infinite;border-color:#f44336;box-shadow:0 0 12px #f4433657}@keyframes pulse-red{0%,to{box-shadow:0 0 12px #f4433640}50%{box-shadow:0 0 22px #f4433699}}.fan-card-content{display:flex;flex-direction:column;height:100%;padding:12px!important}.fan-visual{height:84px;margin-bottom:10px}.fan-container,.fan-visual{align-items:center;display:flex;justify-content:center;position:relative}.fan-container{background:linear-gradient(150deg,#e8e8e8 60%,#fafcff);border-radius:50%;box-shadow:0 1px 4px #e0e0e099,inset 0 4px 24px #d0d0d0aa;height:68px;max-height:86px;max-width:86px;min-height:40px;min-width:40px;width:68px}.fan-container.running{background:linear-gradient(135deg,#e4fce4 50%,#f0f8f0)}.fan-container.failed{background:linear-gradient(135deg,#ffeaea 60%,#fff5f5)}.fan-blades{height:94%;left:50%;pointer-events:none;position:absolute;top:50%;transform:translate(-50%,-50%);width:94%;z-index:1}.fan-blades.spinning{animation:fan-spin 1s linear infinite}@keyframes fan-spin{to{transform:translate(-50%,-50%) rotate(1turn)}}.fan-blades .blade{background:linear-gradient(90deg,#adb2b8,#e5ecf1 35%,#768390);border-radius:60% 50% 90% 80%/90% 80% 90% 80%;box-shadow:0 1px 5px 0 #7878781a;height:18%;left:50%;max-height:13px;max-width:44px;min-height:4px;min-width:16px;opacity:.94;position:absolute;top:50%;transform-origin:13% 50%;width:62%}.fan-blades .blade:first-child{transform:rotate(0deg) translate(-50%,-50%)}.fan-blades .blade:nth-child(2){transform:rotate(60deg) translate(-50%,-50%)}.fan-blades .blade:nth-child(3){transform:rotate(120deg) translate(-50%,-50%)}.fan-blades .blade:nth-child(4){transform:rotate(180deg) translate(-50%,-50%)}.fan-blades .blade:nth-child(5){transform:rotate(240deg) translate(-50%,-50%)}.fan-blades .blade:nth-child(6){transform:rotate(300deg) translate(-50%,-50%)}.fan-center{background:radial-gradient(circle at 70% 35%,#c0c2c6 60%,#535353 100%);border:2px solid #c4c4c4;border-radius:50%;box-shadow:0 2px 8px 1px #38383835,0 0 0 3px #f0f0f066;height:22%;left:50%;position:absolute;top:50%;transform:translate(-50%,-50%);width:22%;z-index:2}.status-badge{background:#fff;border-radius:50%;box-shadow:0 2px 8px #00000021;padding:4px;position:absolute;right:-6px;top:-6px}.fan-info{margin-bottom:10px;text-align:center}.fan-name{color:#333;font-weight:700;margin-bottom:2px}.fan-parameters{background:#0000000d;border-radius:6px;display:flex;justify-content:space-around;margin-bottom:10px;padding:7px}.parameter{text-align:center}.parameter .MuiTypography-caption{color:#666;font-size:10px}.parameter .MuiTypography-body2{margin-top:2px}.fan-controls{gap:8px;margin-bottom:6px}.fan-alarms,.fan-controls{display:flex;justify-content:center}.fan-alarms{flex-wrap:wrap;gap:4px;margin-top:auto}.fan-alarms .MuiChip-root{font-size:9px;height:20px}@media (max-width:900px){.system-overview{flex-direction:column;gap:16px}.overview-stats,.system-controls{justify-content:center}.fan-card{height:245px}.fan-visual{height:62px}.fan-container{height:40px;width:40px}.fan-blades{height:90%;width:90%}}@media (max-width:600px){.fan-card{height:210px}.fan-visual{height:46px}.fan-container{height:30px;width:30px}.fan-blades{height:74%;width:74%}.blade{max-height:7px;max-width:22px;min-height:3px;min-width:8px}}.image-card-widget{background:#fafbfc;background:var(--component-background,#fafbfc);border-radius:10px;box-shadow:0 1.5px 10px #1e283c12;color:#1a1a1a;color:var(--text-color,#1a1a1a);display:flex;flex-direction:column;height:100%;transition:background .2s,color .2s;width:100%}.dark-theme .image-card-widget,[data-theme=dark] .image-card-widget{background:#18191c;background:var(--component-background-dark,#18191c);box-shadow:0 2px 14px #0a0a0f3b;color:#f2f3f4;color:var(--text-color-dark,#f2f3f4)}.image-card-widget .ant-card-head{background:#0000;border-bottom:1px solid #e6e8eb;border-bottom:1px solid var(--border-color-split,#e6e8eb);min-height:38px;padding:0 12px}.image-card-widget .ant-card-head-title{color:#1a1a1a;color:var(--heading-color,#1a1a1a);font-size:1.01rem;font-weight:600}.dark-theme .image-card-widget .ant-card-head-title,[data-theme=dark] .image-card-widget .ant-card-head-title{color:#fff;color:var(--heading-color-dark,#fff)}.image-card-widget .ant-card-body{display:flex;flex:1 1 auto;flex-direction:column;min-height:0;padding:12px 12px 8px}.image-card-controls{align-items:center;display:flex;flex-wrap:wrap;gap:7px;margin-bottom:8px}.image-card-multiple-view,.image-card-single-view{align-items:center;display:flex;flex:1 1 auto;flex-direction:column;min-height:140px}.image-card-image-wrapper{background:#fff;background:var(--background-color-light,#fff);border-radius:8px;box-shadow:0 1px 7px #00000012;margin-bottom:10px;max-width:350px;min-width:180px;overflow:hidden;position:relative;width:100%}.dark-theme .image-card-image-wrapper,[data-theme=dark] .image-card-image-wrapper{background:#232428;background:var(--background-color-dark,#232428);box-shadow:0 2px 10px #0a0a142b}.image-card-main-image{background:#f4f5f7;border-radius:8px;box-shadow:none;display:block;min-height:140px;object-fit:contain;transition:box-shadow .15s;width:100%}.image-card-navigation{display:flex;justify-content:space-between;left:0;padding:0 3px;position:absolute;right:0;top:50%;transform:translateY(-50%);z-index:3}.image-card-metadata{background:#f6f7f8;background:var(--background-color-light,#f6f7f8);border-radius:7px;font-size:.93em;margin-top:5px;max-width:540px;padding:6px 9px;transition:background .2s;width:100%}.dark-theme .image-card-metadata,[data-theme=dark] .image-card-metadata{background:#222325;background:var(--background-color-dark,#222325)}.image-card-metadata .ant-descriptions-item-label{color:#7b7c7f;color:var(--text-color-secondary,#7b7c7f);font-size:.98em}.dark-theme .image-card-metadata .ant-descriptions-item-label,[data-theme=dark] .image-card-metadata .ant-descriptions-item-label{color:#bbb}.image-card-metadata .ant-descriptions-item-content{color:#222;color:var(--text-color,#222)}.dark-theme .image-card-metadata .ant-descriptions-item-content,[data-theme=dark] .image-card-metadata .ant-descriptions-item-content{color:#f0f3f5}.image-card-multiple-view{flex-grow:1;overflow-y:auto;padding-right:4px;width:100%}.image-card-thumb-outer{background:#f8fafd;border-radius:7px;box-shadow:0 .7px 4px #181e281a;cursor:pointer;margin-bottom:5px;overflow:hidden;position:relative;transition:box-shadow .15s,transform .15s}.image-card-thumb-outer:hover{box-shadow:0 2px 12px 0 #5078dc21;transform:scale(1.025) translateY(-1px)}.dark-theme .image-card-thumb-outer,[data-theme=dark] .image-card-thumb-outer{background:#232528;box-shadow:0 1.5px 10px #08080829}.image-card-thumb{background:#eaeaea;border-radius:7px;display:block;height:112px;object-fit:cover;transition:filter .2s;width:100%}.image-card-thumbnail-overlay{align-items:flex-end;background:linear-gradient(0deg,#161620ab,#16162008);border-radius:0 0 7px 7px;bottom:0;color:#fff;display:flex;font-size:.88em;font-weight:500;justify-content:space-between;left:0;min-height:27px;padding:5px 11px 3px 9px;position:absolute;right:0;z-index:2}.image-card-thumbnail-time{font-weight:700;letter-spacing:.04em}.image-card-thumbnail-badge{align-items:center;background:#171d2e45;border-radius:4px;display:inline-flex;font-size:.94em;margin-left:8px;padding:1px 7px}.image-card-empty,.image-card-loading{align-items:center;color:#babec3;display:flex;flex-grow:1;font-size:1em;justify-content:center;min-height:120px}@media (max-width:900px){.image-card-metadata,.image-card-single-view .image-card-image-wrapper{max-width:97vw}}@media (max-width:700px){.image-card-widget .ant-card-body{padding:9px 5px 4px}.image-card-controls{gap:5px;margin-bottom:6px}.image-card-metadata{padding:5px}}@media (max-width:480px){.image-card-widget{border-radius:5px}.image-card-metadata{font-size:.83em}.image-card-thumbnail-overlay{font-size:.76em;padding:3px 6px 1px}}.door-status-card-widget{background-color:#fff;background-color:var(--widget-background-color,#fff);border-radius:7px;border-radius:var(--widget-border-radius,7px);box-shadow:0 1px 4px #00000017;box-shadow:var(--widget-drop-shadow,0 1px 4px #00000017);color:#333;color:var(--widget-text-color,#333);display:flex;flex-direction:column;font-family:Segoe UI,Tahoma,Geneva,Verdana,sans-serif;font-size:13px;height:100%;max-width:350px;min-width:210px}.door-status-card-widget.dark-mode{background-color:#23232a;background-color:var(--widget-background-color,#23232a);box-shadow:0 2px 8px #00000073;box-shadow:var(--widget-drop-shadow,0 2px 8px #00000073);color:#e2e2e2;color:var(--widget-text-color,#e2e2e2)}.door-status-card-widget .ant-card-head{border-bottom:none;font-size:1.07rem;font-weight:600;letter-spacing:.02em;padding-bottom:6px;padding-top:5px}.door-status-card-widget.dark-mode .ant-card-head{color:#e2e2e2}.door-status-card-widget .ant-card-body{align-items:center;display:flex;flex-direction:column;flex-grow:1;gap:8px;justify-content:flex-start;padding:8px 8px 5px}.door-status-loading{align-items:center;display:flex;flex-grow:1;justify-content:center;min-height:90px}.door-content{align-items:center;display:flex;flex-direction:column;gap:8px;margin:0 auto;max-width:220px;width:100%}.door-animation-container{height:100px;margin-bottom:4px;perspective:800px;width:84px}.door-animation-container,.door-frame{align-items:center;display:flex;justify-content:center}.door-frame{background-color:#927c6c;border:4px solid #7a604f;border-radius:3px;height:100%;overflow:hidden;position:relative;width:100%}.door-status-card-widget.dark-mode .door-frame{background-color:#54483e;border-color:#463a30}.door-panel{background-color:#ab998e;border-radius:2px;box-shadow:2px 0 5px #00000021;height:calc(100% - 8px);left:0;position:absolute;top:0;transform-origin:left center;transition:transform .8s cubic-bezier(.6,.15,.2,1);width:calc(100% - 8px)}.door-status-card-widget.dark-mode .door-panel{background-color:#746357}.door-panel.open{transform:rotateY(-98deg)}.door-panel.closed{transform:rotateY(0deg)}.door-handle{background-color:#bdbdbd;border-radius:2px;box-shadow:0 0 2px #00000017;height:17px;position:absolute;right:8px;top:50%;transform:translateY(-50%);width:7px}.door-status-card-widget.dark-mode .door-handle{background-color:#aaa}.status-display{margin-bottom:4px}.status-tag{align-items:center;border-radius:12px;display:flex;font-size:.97em;font-weight:600;gap:4px;letter-spacing:.02em;min-height:22px;min-width:72px;padding:2px 8px}.ant-descriptions{margin-top:0!important;width:100%}.ant-descriptions-view{margin-top:2px!important}.ant-descriptions-row{line-height:1.07;min-height:10px!important;padding:0!important}.ant-descriptions-item-content,.ant-descriptions-item-label{font-size:12px!important;line-height:1.1;padding:2px 3px!important}.ant-descriptions-item-label{color:#666;color:var(--widget-text-color,#666);font-weight:600}.door-status-card-widget.dark-mode .ant-descriptions-item-label{color:#b8b8b8;color:var(--widget-text-color,#b8b8b8)}@media (max-width:768px){.door-status-card-widget .ant-card-body{padding:5px}.door-animation-container{height:74px;width:62px}.door-frame{border-width:3px}.door-panel{height:calc(100% - 6px);width:calc(100% - 6px)}.door-handle{height:13px;right:6px;width:5px}.status-tag{font-size:.93em;padding:1px 7px}}@media (max-width:480px){.door-status-card-widget{font-size:12.2px;max-width:95vw;min-width:140px}.door-content{max-width:140px}.door-animation-container{height:48px;width:42px}.door-frame{border-width:2px}.door-panel{height:calc(100% - 3px);width:calc(100% - 3px)}.door-handle{height:10px;right:3px;width:4px}.status-tag{font-size:.85em;padding:1px 5px}}.water-logging-widget-compact{background:#f7f9fb;background:var(--colorBgContainer,#f7f9fb);border:1px solid #e0e0e0;border:1px solid var(--colorBorder,#e0e0e0);border-radius:14px;box-shadow:0 2px 8px 0 #1890ff14;box-shadow:var(--boxShadow,0 2px 8px 0 #1890ff14);box-sizing:border-box;color:#23272f;color:var(--colorText,#23272f);display:flex;flex-direction:column;height:100%;justify-content:flex-start;max-width:420px;min-width:220px;overflow:hidden;transition:background .2s,color .2s,box-shadow .2s;width:100%}.water-logging-widget-compact.dark-mode{background:#101010;background:var(--colorBgContainer,#101010);border:1px solid #181818;border:1px solid var(--colorBorder,#181818);color:#e3e3e3;color:var(--colorText,#e3e3e3)}.widget-title{color:#23272f;color:var(--colorText,#23272f);font-size:1.17em;font-weight:700;letter-spacing:.01em;margin-bottom:0}.water-icon-outer{display:flex;height:60px;margin:8px 0 22px;width:100%}.icon-wrapper,.water-icon-outer{align-items:center;justify-content:center;position:relative}.icon-wrapper{display:inline-flex;height:56px;width:56px}.water-drop-icon{color:#1890ff;color:var(--accent,#1890ff);filter:drop-shadow(0 2px 8px rgba(24,144,255,.16));font-size:48px!important;transition:color .2s;z-index:2}.water-logging-widget-compact.water-detected .water-drop-icon{color:#f5222d;color:var(--err,#f5222d);filter:drop-shadow(0 2px 16px #f5222d66)}.water-ripple{animation:ripple-expand 1.3s cubic-bezier(.4,1,.4,1) infinite;background:#f5222d2b;background:var(--rippleColor,#f5222d2b);border-radius:50%;height:0;left:50%;opacity:.7;pointer-events:none;position:absolute;top:50%;transform:translate(-50%,-50%);width:0;z-index:1}@keyframes ripple-expand{0%{height:0;opacity:.45;width:0}to{height:70px;opacity:0;width:70px}}.status-display{margin-bottom:18px;text-align:center;width:100%}.metadata-list{display:flex;flex-direction:column}.meta-row{font-size:1.03em;padding:3px 0}.water-logging-widget-compact.dark-mode .meta-row{color:#bababa;color:var(--colorTextSecondary,#bababa)}.meta-icon{opacity:.85}.meta-label{color:inherit}.meta-label,.meta-value{color:var(--colorText,inherit)}.meta-value{opacity:.93}@media (max-width:540px){.water-logging-widget-compact{border-radius:10px;max-width:98vw;min-width:140px;padding:0!important}.icon-wrapper{height:38px;width:38px}.water-drop-icon{font-size:32px!important}.meta-label{font-size:.99em;min-width:58px}.meta-row{font-size:.98em;gap:5px}.status-display{margin-bottom:12px}.water-ripple{animation:ripple-expand .85s cubic-bezier(.4,1,.4,1) infinite}.metadata-list{gap:5px}}.fire-detection-widget{align-items:stretch;background:#f7f9fb;background:var(--colorBgContainer,#f7f9fb);border-radius:14px;border-radius:var(--borderRadius,14px);box-shadow:0 4px 16px #0000001a;box-shadow:var(--boxShadow,0 4px 16px #0000001a);box-sizing:border-box;color:#23272f;color:var(--colorText,#23272f);display:flex;flex-direction:column;height:100%;justify-content:flex-start;max-width:400px;min-width:220px;overflow:hidden;padding:0!important;position:relative;transition:background .2s,color .2s,box-shadow .2s;width:100%}.fire-detection-widget.dark-mode{background:#191c24;background:var(--colorBgContainer,#191c24);box-shadow:0 2px 8px #0000004d;box-shadow:var(--boxShadow,0 2px 8px #0000004d);color:#e3e3e3;color:var(--colorText,#e3e3e3)}.fire-detection-widget .ant-card-head{border-bottom:none;margin-bottom:12px;padding-bottom:0;text-align:center;width:100%}.fire-detection-widget .widget-title{color:#222;color:var(--colorText,#222);font-size:1.18em;font-weight:700;letter-spacing:.01em;margin-bottom:0}.fire-detection-widget.dark-mode .widget-title{color:#fff;color:var(--colorText,#fff)}.widget-loading{flex-grow:1;min-height:110px}.fire-icon-container,.widget-loading{align-items:center;display:flex;justify-content:center}.fire-icon-container{height:68px;margin:18px auto 12px;position:relative;width:68px}.fire-icon{color:#f5222d;color:var(--colorErr,#f5222d);filter:drop-shadow(0 2px 10px rgba(250,34,45,.09));font-size:46px!important;transition:color .3s;z-index:2}.fire-detection-widget.fire-detected .fire-icon{color:#faad14;color:var(--colorWarn,#faad14);filter:drop-shadow(0 2px 12px #faad1475)}.fire-detection-widget.alarm-triggered .fire-icon{color:#ff4d4f;color:var(--colorErr,#ff4d4f);filter:drop-shadow(0 2px 20px #ff4d4f99)}.fire-animation{animation:fire-glow 1.3s cubic-bezier(.4,1,.4,1) infinite;background:#faad1424;border-radius:50%;height:0;left:50%;opacity:.6;pointer-events:none;position:absolute;top:50%;transform:translate(-50%,-50%);width:0;z-index:1}.fire-detection-widget.alarm-triggered .fire-animation{animation:fire-glow 1s cubic-bezier(.4,1,.4,1) infinite;background:#ff4d4f30}@keyframes fire-glow{0%{height:0;opacity:.55;width:0}to{height:90px;opacity:0;width:90px}}.alarm-pulse{animation:alarm-pulse 1s infinite alternate;background:#ff4d4f2b;border-radius:50%;height:100%;left:0;position:absolute;top:0;width:100%;z-index:0}@keyframes alarm-pulse{0%{opacity:.82;transform:scale(1)}to{opacity:.48;transform:scale(1.17)}}.status-display{align-items:center;display:flex;font-size:1.05em;font-weight:600;gap:10px;justify-content:center;margin:10px 0 14px}.status-label{color:#555;color:var(--colorTextSecondary,#555)}.fire-detection-widget.dark-mode .status-label{color:#ccc;color:var(--colorTextSecondary,#ccc)}.status-tag{border:none;border-radius:8px;box-shadow:none;font-size:1em;font-weight:700;letter-spacing:.01em;margin-left:6px;min-width:120px;padding:4px 15px;text-align:center}.metadata-list{grid-gap:10px;display:grid;gap:10px;margin:0 auto;max-width:290px;padding-bottom:8px;width:100%}.meta-row{align-items:center;color:#6a6f7a;color:var(--colorTextSecondary,#6a6f7a);display:flex;font-size:.98em;font-weight:500;gap:10px;line-height:1.55;padding:4px 0}.fire-detection-widget.dark-mode .meta-row{color:#bababa;color:var(--colorTextSecondary,#bababa)}.meta-icon{font-size:18px!important;margin-right:2px;opacity:.82}.meta-label{font-weight:600;min-width:85px;opacity:.86}.meta-value{color:inherit;flex:1 1;font-weight:500;letter-spacing:.01em;opacity:.96;text-align:right}@media (max-width:600px){.fire-detection-widget{border-radius:11px;max-width:99vw;min-width:140px}.fire-icon-container{height:54px;width:54px}.fire-icon{font-size:34px!important}.meta-label{font-size:.97em;min-width:52px}.meta-row{font-size:.96em;gap:5px}.status-tag{font-size:.91em;min-width:90px}.metadata-list{gap:7px}}@media (max-width:420px){.fire-detection-widget{border-radius:8px}.fire-icon-container{height:38px;width:38px}.fire-icon{font-size:24px!important}.meta-label{font-size:.94em;min-width:38px}.meta-row{font-size:.92em;gap:3px}.status-tag{font-size:.88em;min-width:60px;padding:3px 6px}.metadata-list{gap:4px}}.alert-system-card-widget{background-color:var(--card-background);border-radius:8px;box-shadow:0 2px 8px #0000001a;color:var(--text-color);display:flex;flex-direction:column;height:100%;overflow:hidden}.alert-system-card-widget .ant-card-head{background-color:var(--card-header-background);border-bottom:1px solid var(--border-color);color:var(--text-color)}.alert-system-card-widget .ant-card-head-title{color:var(--text-color)}.alert-card-header{align-items:center;display:flex;justify-content:space-between;width:100%}.alert-card-title{color:var(--text-color);margin-bottom:0!important}.alert-badge .ant-badge-count{background-color:#f5222d;box-shadow:0 0 0 1px #fff}.alert-bell-icon{animation:bell-shake .8s ease-in-out infinite alternate;color:#faad14;font-size:24px}@keyframes bell-shake{0%{transform:rotate(0deg)}25%{transform:rotate(10deg)}50%{transform:rotate(-10deg)}75%{transform:rotate(5deg)}to{transform:rotate(0deg)}}.alert-system-card-widget .ant-card-body{display:flex;flex-direction:column;flex-grow:1;overflow-y:auto;padding:16px}.alert-system-loading{align-items:center;display:flex;flex-grow:1;justify-content:center;min-height:150px}.alert-system-content,.no-alerts-empty{display:flex;flex-direction:column;flex-grow:1}.no-alerts-empty{align-items:center;justify-content:center;padding:20px}.no-alerts-empty .ant-empty-description{color:var(--text-color-secondary)}.alert-list-item{border-bottom:1px solid var(--border-color-light);padding:12px 0;position:relative;transition:background-color .3s ease}.alert-list-item:last-child{border-bottom:none}.alert-list-item.unread{background-color:#ffc53d0d;border-left:4px solid #faad14;padding-left:12px}.alert-list-item.read .read-text{color:var(--text-color-secondary)}.alert-list-item.new-alert-animation{animation:new-alert-fade-in .8s ease-out}@keyframes new-alert-fade-in{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}.alert-icon-wrapper{align-items:center;border-radius:50%;color:#fff;display:flex;font-size:24px;height:40px;justify-content:center;width:40px}.alert-icon-wrapper.red{background-color:#f5222d}.alert-icon-wrapper.gold,.alert-icon-wrapper.orange{background-color:#faad14}.alert-icon-wrapper.blue{background-color:#1890ff}.alert-icon-wrapper.default{background-color:#bfbfbf}.alert-list-item .ant-list-item-meta-title{color:var(--text-color);margin-bottom:4px}.alert-list-item .ant-list-item-meta-description{color:var(--text-color-secondary)}.alert-meta{display:flex;flex-wrap:wrap;gap:8px;margin-top:4px}.alert-meta .ant-tag{border-radius:4px;font-size:11px;padding:3px 7px}.alert-actions{border-top:1px solid var(--border-color);margin-top:15px;padding-top:15px;text-align:center}.alert-system-card-widget.dark-mode{background-color:#1e1e1e;box-shadow:0 2px 8px #0000004d;color:#e0e0e0}.alert-system-card-widget.dark-mode .ant-card-head{background-color:#2a2a2a;border-bottom-color:#3a3a3a}.alert-system-card-widget.dark-mode .alert-card-title{color:#e0e0e0}.alert-system-card-widget.dark-mode .alert-bell-icon{color:#ffc53d}.alert-system-card-widget.dark-mode .ant-card-body{color:#e0e0e0}.alert-system-card-widget.dark-mode .no-alerts-empty .ant-empty-description{color:#a0a0a0}.alert-system-card-widget.dark-mode .alert-list-item{border-bottom-color:#3a3a3a}.alert-system-card-widget.dark-mode .alert-list-item.unread{background-color:#ffc53d14;border-left-color:#ffc53d}.alert-system-card-widget.dark-mode .alert-list-item.read .read-text{color:#a0a0a0}.alert-system-card-widget.dark-mode .ant-list-item-meta-title{color:#e0e0e0}.alert-system-card-widget.dark-mode .ant-list-item-meta-description{color:#a0a0a0}.alert-system-card-widget.dark-mode .alert-actions{border-top-color:#3a3a3a}.alert-system-card-widget.dark-mode .ant-btn-link{color:#1890ff}.alert-system-card-widget.dark-mode .ant-btn-link:hover{color:#40a9ff}.alert-system-card-widget.dark-mode .ant-btn-danger{background-color:#cf1322;border-color:#cf1322}.alert-system-card-widget.dark-mode .ant-btn-danger:hover{background-color:#ff4d4f;border-color:#ff4d4f}@media (max-width:768px){.alert-icon-wrapper{font-size:20px;height:36px;width:36px}.alert-list-item .ant-list-item-meta-title{font-size:14px}.alert-meta .ant-tag{font-size:10px;padding:2px 5px}.alert-list-item .ant-list-item-meta-description{font-size:12px}}@media (max-width:576px){.alert-card-title{font-size:18px}.alert-bell-icon{font-size:20px}.alert-list-item{padding:8px 0}.alert-list-item.unread{padding-left:8px}.alert-actions .ant-btn{width:100%}}.dynamic-json-form-widget{background:linear-gradient(135deg,#f5f7fa,#c3cfe2);border-radius:12px!important;box-shadow:0 8px 32px #0000001a!important;min-height:300px;transition:all .3s ease}.dynamic-json-form-widget:hover{box-shadow:0 12px 40px #00000026!important;transform:translateY(-2px)}.dynamic-json-form-widget .MuiCardContent-root{padding:24px!important}.dynamic-json-form-widget .MuiTypography-h5{color:#2c3e50!important;font-weight:600!important;margin-bottom:8px!important}.dynamic-json-form-widget .MuiTextField-root{margin-bottom:16px!important}.dynamic-json-form-widget .MuiTextField-root .MuiOutlinedInput-root{background:#ffffffe6;border-radius:8px!important;transition:all .3s ease}.dynamic-json-form-widget .MuiTextField-root .MuiOutlinedInput-root:hover{background:#fff;box-shadow:0 2px 8px #0000001a}.dynamic-json-form-widget .MuiTextField-root .MuiOutlinedInput-root.Mui-focused{background:#fff;box-shadow:0 4px 12px #1976d233}.dynamic-json-form-widget .MuiButton-contained{background:linear-gradient(45deg,#1976d2 30%,#42a5f5 90%)!important;border-radius:8px!important;box-shadow:0 4px 12px #1976d24d!important;font-weight:600!important;padding:12px 24px!important;text-transform:none!important;transition:all .3s ease!important}.dynamic-json-form-widget .MuiButton-contained:hover{background:linear-gradient(45deg,#1565c0 30%,#1e88e5 90%)!important;box-shadow:0 6px 16px #1976d266!important;transform:translateY(-1px)}.dynamic-json-form-widget .MuiButton-outlined{border:2px solid #1976d2!important;border-radius:8px!important;color:#1976d2!important;font-weight:600!important;padding:12px 24px!important;text-transform:none!important;transition:all .3s ease!important}.dynamic-json-form-widget .MuiButton-outlined:hover{background:#1976d20a!important;border-color:#1565c0!important;transform:translateY(-1px)}.dynamic-json-form-widget .MuiAccordion-root{border-radius:8px!important;box-shadow:0 2px 8px #0000001a!important;margin-bottom:16px!important}.dynamic-json-form-widget .MuiAccordion-root:before{display:none}.dynamic-json-form-widget .MuiAccordionSummary-root{background:#1976d20a;border-radius:8px 8px 0 0!important;min-height:56px!important}.dynamic-json-form-widget .MuiAccordionSummary-root.Mui-expanded{min-height:56px!important}.dynamic-json-form-widget .MuiAccordionDetails-root{background:#ffffffe6;padding:20px!important}.dynamic-json-form-widget .MuiFormControlLabel-root{margin-bottom:16px!important}.dynamic-json-form-widget .MuiSwitch-root .MuiSwitch-switchBase.Mui-checked{color:#1976d2!important}.dynamic-json-form-widget .MuiSwitch-root .MuiSwitch-switchBase.Mui-checked+.MuiSwitch-track{background-color:#1976d2!important}.dynamic-json-form-widget .MuiSelect-root{background:#ffffffe6;border-radius:8px!important}.dynamic-json-form-widget .MuiChip-root{border-radius:16px!important;margin:2px!important}.dynamic-json-form-widget pre{border:1px solid #e0e0e0!important;font-family:Monaco,Menlo,Ubuntu Mono,monospace!important;font-size:12px!important;line-height:1.5!important;max-height:300px!important;overflow-y:auto!important}.dynamic-json-form-widget .field-builder-card{background:#ffffffb3!important;border:2px dashed #e0e0e0!important;transition:all .3s ease!important}.dynamic-json-form-widget .field-builder-card:hover{background:#ffffffe6!important;border-color:#1976d2!important}.dynamic-json-form-widget .MuiIconButton-root{transition:all .3s ease!important}.dynamic-json-form-widget .MuiIconButton-root:hover{transform:scale(1.1)}.dynamic-json-form-widget .MuiAlert-root{border-radius:8px!important}.dark .dynamic-json-form-widget{background:linear-gradient(135deg,#2c3e50,#34495e)}.dark .dynamic-json-form-widget .MuiTypography-h5{color:#ecf0f1!important}.dark .dynamic-json-form-widget .MuiTextField-root .MuiOutlinedInput-root{background:#34495ecc;color:#ecf0f1}.dark .dynamic-json-form-widget .MuiTextField-root .MuiOutlinedInput-root:hover{background:#34495ee6}.dark .dynamic-json-form-widget .MuiAccordionSummary-root{background:#34495e99}.dark .dynamic-json-form-widget .MuiAccordionDetails-root{background:#2c3e50cc}.dark .dynamic-json-form-widget pre{background:#2c3e50e6!important;border-color:#34495e!important;color:#ecf0f1!important}@media (max-width:768px){.dynamic-json-form-widget .MuiCardContent-root{padding:16px!important}.dynamic-json-form-widget .grid-2-cols{grid-template-columns:1fr!important}.dynamic-json-form-widget .MuiButton-root{margin-bottom:8px!important;width:100%!important}}@keyframes slideInUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.dynamic-json-form-widget .field-enter{animation:slideInUp .3s ease-out}.dynamic-json-form-widget .loading-overlay{align-items:center;background:#fffc;border-radius:12px;bottom:0;display:flex;justify-content:center;left:0;position:absolute;right:0;top:0;z-index:10}.dark .dynamic-json-form-widget .loading-overlay{background:#2c3e50cc}.device-command-control-widget{display:flex;flex-direction:column;height:100%}.device-command-control-widget .MuiCardContent-root{display:flex;flex-direction:column;height:100%;padding:16px!important}.device-command-control-widget .spinning{animation:spin 1s linear infinite}@keyframes spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}.device-command-control-widget .MuiAlert-root{margin-bottom:16px}.device-command-control-widget .MuiFormControl-root{margin-bottom:8px}.device-command-control-widget .MuiButton-root{font-weight:600;min-height:48px}.device-command-control-widget pre{margin:0;white-space:pre-wrap;word-break:break-word}.device-command-control-widget .MuiChip-root{font-size:.75rem}@media (max-width:768px){.device-command-control-widget .MuiCardContent-root{padding:12px!important}.device-command-control-widget .MuiButton-root{min-height:44px}}.device-command-control-widget .MuiCard-root[data-theme=dark]{background-color:#1e1e1e;color:#fff}.device-command-control-widget .MuiCard-root[data-theme=dark] pre{background-color:#2d2d2d;color:#fff}.json-table-widget-root .ant-table-tbody>tr>td{border-bottom:1px solid #ececec;font-size:13px}.json-table-widget-root .ant-table-row:hover td{background:#e7f1fc!important}.json-table-widget-root .ant-table-thead th{background:#f7fafc;font-weight:700}.json-table-widget-root{transition:box-shadow .2s}.json-table-widget-root .ant-table-thead>tr>th{border-bottom:2px solid #e0e0e0!important}.json-table-raw-block{background:#f6f8fa;border:1px solid #eee;border-radius:7px;color:#182232;font-family:Fira Mono,SFMono-Regular,Menlo,Monaco,Consolas,monospace;font-size:13px;margin:10px 0 0;overflow-x:auto;padding:14px 12px 14px 15px;white-space:pre}.json-table-raw-block.dark{background:#181e21;border:1px solid #232c35;color:#d8f4fe}.control-widget{background:#fff;border-radius:8px;box-shadow:0 2px 8px #0000001a;display:flex;flex-direction:column;height:100%;transition:all .3s ease}.control-widget:hover{box-shadow:0 4px 16px #00000026}.widget-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:16px}.widget-badge{background-color:#e0e0e0;border-radius:12px;color:#666;font-size:12px;font-weight:500;min-width:20px;padding:2px 8px;text-align:center}.single-switch-widget .switch-container{align-items:center;display:flex;gap:12px;justify-content:center}.single-switch-widget .switch-label{color:#424242;font-weight:500}.command-button-widget .command-button-container{align-items:center;display:flex;justify-content:center;min-height:80px}.command-button-widget .response-indicator{text-align:center}.toggle-button-widget .toggle-buttons-container{display:flex;flex-direction:column;gap:8px}.two-segment-button-widget .segment-container{display:flex;justify-content:center}.value-stepper-widget .stepper-container{align-items:center;display:flex;gap:16px;justify-content:space-between;padding:0 8px}.value-stepper-widget .value-display{background-color:#f8f9ff;border:2px solid #1976d2;border-radius:8px;flex:1 1;padding:8px 16px;text-align:center}.power-button-widget .power-button-container{align-items:center;display:flex;justify-content:center;min-height:140px}.slider-widget .slider-container{padding:16px 0}.switch-control-widget .switch-control-container{align-items:center;display:flex;flex-direction:column;justify-content:center;min-height:120px}.round-switch-widget .round-switch-container{align-items:center;display:flex;flex-direction:column;justify-content:center;min-height:140px}.led-indicator-widget .led-indicator-container{align-items:center;display:flex;flex-direction:column;justify-content:center;min-height:120px}.rpc-button-widget .rpc-button-container{align-items:center;display:flex;justify-content:center;min-height:80px}.knob-control-widget .knob-control-container{align-items:center;display:flex;flex-direction:column;justify-content:center;min-height:160px;padding:16px 0}@media (max-width:768px){.control-widget{margin-bottom:16px}.widget-header{margin-bottom:12px}.value-stepper-widget .stepper-container{gap:8px}.value-stepper-widget .value-display{padding:6px 12px}}@media (max-width:480px){.control-widget{margin-bottom:12px}.toggle-button-widget .toggle-buttons-container{gap:6px}.power-button-widget .power-button-container{min-height:120px}.knob-control-widget .knob-control-container{min-height:140px}}.dark-theme .control-widget{background:#1e1e1e;color:#fff}.dark-theme .widget-badge{background-color:#424242;color:#fff}.dark-theme .value-stepper-widget .value-display{background-color:#2a2a2a;border-color:#1976d2;color:#fff}.react-grid-layout{position:relative;transition:height .2s ease}.react-grid-item{transition:all .2s ease}.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-resizable{position:relative}.react-resizable-handle{background-image:url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHN0eWxlPSJiYWNrZ3JvdW5kLWNvbG9yOiNmZmZmZmYwMCIgd2lkdGg9IjYiIGhlaWdodD0iNiI+PHBhdGggZD0iTTYgNkgwVjQuMmg0LjJWMEg2djZaIiBvcGFjaXR5PSIuMzAyIi8+PC9zdmc+);background-origin:content-box;background-position:100% 100%;background-repeat:no-repeat;box-sizing:border-box;height:20px;padding:0 3px 3px 0;position:absolute;width:20px}.react-resizable-handle-sw{bottom:0;cursor:sw-resize;left:0;transform:rotate(90deg)}.react-resizable-handle-se{bottom:0;cursor:se-resize;right:0}.react-resizable-handle-nw{cursor:nw-resize;left:0;top:0;transform:rotate(180deg)}.react-resizable-handle-ne{cursor:ne-resize;right:0;top:0;transform:rotate(270deg)}.react-resizable-handle-e,.react-resizable-handle-w{cursor:ew-resize;margin-top:-10px;top:50%}.react-resizable-handle-w{left:0;transform:rotate(135deg)}.react-resizable-handle-e{right:0;transform:rotate(315deg)}.react-resizable-handle-n,.react-resizable-handle-s{cursor:ns-resize;left:50%;margin-left:-10px}.react-resizable-handle-n{top:0;transform:rotate(225deg)}.react-resizable-handle-s{bottom:0;transform:rotate(45deg)}.dashboard-root{background:#f0f2f5;background:var(--background-color,#f0f2f5)}.dashboard-content{background:#fff;background:var(--component-background,#fff)}.dashboard-toolbar{align-items:center;display:flex;gap:20px;justify-content:space-between;margin-bottom:20px}.dashboard-title{color:#222;color:var(--title-color,#222);font-weight:600;margin:0}.dashboard-loading{align-items:center;display:flex;justify-content:center;min-height:100vh}.dashboard-layout{background:#f0f2f5;background:var(--background,#f0f2f5);min-height:100vh}.dashboard-header{align-items:center;background:#fff;background:var(--header-background,#fff);box-shadow:0 1px 4px #00152914;display:flex;height:64px;justify-content:space-between;padding:0 16px}.dark-theme .dashboard-header{background:#000}.dashboard-title-input{font-size:18px;font-weight:600;width:300px}.dashboard-content{background:#f0f2f5;background:var(--background,#f0f2f5);min-height:calc(100vh - 64px);overflow:auto;padding:10px 2px 0 0}.dashboard-main-content{background:#fff;background:var(--component-background,#fff);box-shadow:0 1px 4px #00152914;display:flex;flex-direction:column;min-height:calc(100vh - 64px);padding:0}.dark-theme .dashboard-content,.dark-theme .dashboard-main-content{background:#000}.dashboard-empty-state{align-items:center;color:#999;display:flex;flex:1 1;flex-direction:column;justify-content:center;min-height:200px}.dashboard-empty-icon{font-size:64px;margin-bottom:16px}.dashboard-empty-add-btn{margin-top:16px}.dashboard-import-modal{padding:20px 0}.dashboard-import-input{margin-bottom:20px}.react-grid-item{margin:0!important;min-height:0!important;overflow:visible!important;transition:all .15s cubic-bezier(.23,1.12,.59,1);transition-property:left,top,width,height}.widget-container{background-color:var(--component-background);border:1px solid var(--border-color);border-radius:2px;box-shadow:0 1px 2px #000f1d12;box-sizing:border-box;display:flex;flex-direction:column;height:100%;max-width:100vw!important;min-height:0!important;min-width:0!important;overflow:visible;padding:0;position:relative;width:100%}.widget-controls{background:#fffffff2;border-radius:4px;box-shadow:0 0 4px #0000001a;display:flex;gap:4px;opacity:0;padding:2px;position:absolute;right:4px;top:4px;transition:opacity .18s;z-index:10}.widget-container:hover>.widget-controls,.widget-container>.widget-controls:focus-within{opacity:1}.dark-theme .widget-controls{background:#fff;background:var(--component-background,#fff);box-shadow:0 0 6px #0000004d}.widget-drag-handle{align-items:center;background:#f5f5f5;border-bottom:1px solid #eee;border-radius:4px 4px 0 0;color:#333;cursor:move;display:flex;flex:0 0 38px;font-size:14px;font-weight:500;line-height:28px;max-height:38px;min-height:38px;padding:5px;transition:background .2s,color .2s,border-bottom .2s;-webkit-user-select:none;user-select:none}.widget-drag-handle:hover{background-color:#e6f7ff}.dark-theme .widget-drag-handle{background:#18181c;border-bottom:1px solid #222;color:#eee}.widget-body,.widget-container>div:last-child{align-items:stretch;background:inherit;display:flex;flex:1 1 auto!important;flex-direction:column;justify-content:flex-start;min-height:0!important;min-width:0!important;overflow:auto;padding:0}.widget-container .ant-card,.widget-container .ant-card-body,.widget-container .ant-table-wrapper,.widget-container .echarts-for-react,.widget-container .recharts-responsive-container{flex:1 1 auto!important;height:100%!important;min-height:0!important}.widget-container .ant-card,.widget-container .ant-card-body{background:#0000;border:none;box-shadow:none;display:flex;flex-direction:column;padding:0}@media (max-width:768px){.widget-container{border-radius:2px;max-width:100vw!important;min-width:0!important;padding:0 2px!important}.widget-drag-handle{flex:0 0 28px;font-size:13px;min-height:24px;padding:4px 7px}}@media (hover:none){.widget-controls{background:#f5f5f5f5;opacity:1}.dark-theme .widget-controls{background:#141414f2}}.widget-content,.widget-inner{display:flex;flex:1 1 auto!important;flex-direction:column;height:100%!important;min-height:0!important;overflow:auto}.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%}.widget-config-modal .ant-modal-content{background:var(--component-background);border-radius:8px;box-shadow:var(--box-shadow);color:var(--text-color)}.widget-config-modal .ant-modal-header{background:var(--component-background);border-bottom:1px solid var(--border-color-split);border-radius:8px 8px 0 0;color:var(--heading-color);padding:16px 24px}.widget-config-modal .ant-modal-title{color:var(--heading-color);font-size:18px;font-weight:600}.widget-config-modal .ant-modal-close-x{color:var(--text-color-secondary)}.widget-config-modal .ant-modal-body{padding:24px}.widget-config-modal .ant-tabs-nav{margin-bottom:18px}.widget-config-modal .ant-tabs-tab{font-weight:500}.widget-config-modal .ant-form-item-label>label{color:var(--heading-color)}.widget-config-modal .ant-input,.widget-config-modal .ant-input-number,.widget-config-modal .ant-select{background:var(--component-background);border-radius:4px;color:var(--text-color)}.widget-config-modal .ant-select-selector{background:var(--component-background)!important;color:var(--text-color)!important}.widget-config-modal .ant-divider{color:var(--primary-color);font-weight:500}.widget-config-modal .ant-alert-message{color:var(--warning-color)}.widget-config-modal .ant-alert-info{color:var(--primary-color)}.widget-config-modal .ant-btn-primary{background:var(--primary-color);border-color:var(--primary-color)}.widget-config-modal .ant-btn-primary:hover{background:var(--primary-color-hover);border-color:var(--primary-color-hover)}.widget-config-modal .ant-btn{border-radius:4px}.widget-config-modal .ant-select-item-option-selected:not(.ant-select-item-option-disabled){background:var(--primary-color-light)!important;color:var(--primary-color)!important}.widget-config-modal .mqtt-log-box{background:#fafafa;border:1px solid #eee;font-size:12px;margin-bottom:8px;max-height:80px;overflow:auto;padding:6px}.dark-theme .widget-config-modal .ant-modal-content,.dark-theme .widget-config-modal .ant-modal-header{background:#181d23!important;border-color:#222!important;color:#eee!important}.dark-theme .widget-config-modal .ant-form-item-label>label,.dark-theme .widget-config-modal .ant-modal-title{color:#d7e0ee!important}.dark-theme .widget-config-modal .ant-input,.dark-theme .widget-config-modal .ant-input-number,.dark-theme .widget-config-modal .ant-select,.dark-theme .widget-config-modal .ant-select-selector{background:#23232a!important;color:#eee!important}.dark-theme .widget-config-modal .ant-btn-primary{background:#4080ff!important;border-color:#4080ff!important}.dark-theme .widget-config-modal .ant-btn-primary:hover{background:#5a94ff!important;border-color:#5a94ff!important}.dark-theme .widget-config-modal .mqtt-log-box{background:#23232a!important;border-color:#222!important;color:#eee!important}@media (max-width:768px){.widget-config-modal .ant-modal-body{padding:12px}.widget-config-modal .ant-modal-header{padding:10px 12px}}:root{--primary-color:#304269;--primary-color-hover:#3d5280;--primary-color-active:#263452;--primary-color-light:#eef2ff;--success-color:#52c41a;--warning-color:#faad14;--error-color:#f5222d;--info-color:#1890ff;--text-color:#000000d9;--text-color-secondary:#00000073;--border-color:#d9d9d9;--border-color-split:#f0f0f0;--background-color:#f0f2f5;--component-background:#fff;--heading-color:#000000d9;--disabled-color:#00000040;--box-shadow:0 1px 4px #00152914;--border-radius-base:4px}.dark-theme{--primary-color:#4080ff;--primary-color-hover:#5a94ff;--primary-color-active:#2b6bdf;--primary-color-light:#111a2c;--text-color:#ffffffd9;--text-color-secondary:#ffffff73;--border-color:#434343;--border-color-split:#303030;--background-color:#000;--component-background:#141414;--heading-color:#ffffffd9;--disabled-color:#ffffff40;--box-shadow:0 1px 4px #00000073}*{box-sizing:border-box;margin:0;padding:0}body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;color:#000000d9;color:var(--text-color);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;transition:background-color .3s,color .3s}.site-content,body{background-color:#f0f2f5;background-color:var(--background-color)}.site-content{min-height:calc(100vh - 64px);padding:12px}.site-header{background-color:#fff;background-color:var(--component-background);box-shadow:0 1px 4px #00152914;box-shadow:var(--box-shadow);height:64px;justify-content:space-between;padding:0 24px;position:-webkit-sticky;position:sticky;top:0;transition:background-color .3s,box-shadow .3s;z-index:1000}.header-actions,.header-title,.site-header{align-items:center;display:flex}.header-actions{gap:16px}.header-icon-button{align-items:center;display:flex;justify-content:center}.user-dropdown{border-radius:4px;border-radius:var(--border-radius-base);cursor:pointer;padding:4px 8px;transition:background-color .3s}.user-dropdown:hover{background-color:#00000008}.dark-theme .user-dropdown:hover{background-color:#ffffff14}.user-info{display:flex;flex-direction:column;margin-left:8px}.user-name{color:#000000d9;color:var(--text-color);font-size:14px;font-weight:500}.user-role{color:#00000073;color:var(--text-color-secondary);font-size:12px}.logo-container{align-items:center;color:#fff;display:flex;height:64px;overflow:hidden;padding:0 16px}.logo{height:32px;margin-right:8px}.logo-text{font-size:18px;font-weight:600;white-space:nowrap}.card-actions{display:flex;justify-content:flex-end;margin-top:16px}.statistic-card{background-color:#fff;background-color:var(--component-background);margin-bottom:16px;transition:background-color .3s}.statistic-card.active{background-color:#f6ffed}.dark-theme .statistic-card.active{background-color:#162312}.statistic-card.inactive{background-color:#fff7e6}.dark-theme .statistic-card.inactive{background-color:#2b2111}.statistic-card.critical{background-color:#fff1f0}.dark-theme .statistic-card.critical{background-color:#2a1215}.statistic-card.assigned{background-color:#e6f7ff}.dark-theme .statistic-card.assigned{background-color:#111d2c}.statistic-card.total{background-color:#f9f0ff}.dark-theme .statistic-card.total{background-color:#120338}.quick-links-grid{grid-gap:16px;display:grid;gap:16px;grid-template-columns:repeat(auto-fill,minmax(120px,1fr))}.doc-link-button,.quick-link-button{align-items:center;background-color:#fff;background-color:var(--component-background);color:#000000d9;color:var(--text-color);display:flex;flex-direction:column;height:auto;padding:16px 8px;text-align:center;transition:background-color .3s,color .3s}.doc-link-button span,.quick-link-button span{margin-top:8px}.documentation-links{grid-gap:16px;display:grid;gap:16px;grid-template-columns:repeat(auto-fill,minmax(120px,1fr))}.use-case-card{background-color:#fff;background-color:var(--component-background);height:100%;transition:background-color .3s}.carousel-controls{display:flex;gap:8px}.mobile-app-container{flex-direction:column;gap:16px}.mobile-app-container,.qr-code{align-items:center;display:flex}.qr-code{background-color:#f0f2f5;background-color:var(--background-color);height:150px;justify-content:center;transition:background-color .3s;width:150px}.app-links{display:flex;gap:16px}.app-store-button,.play-store-button{height:40px;overflow:hidden;padding:0}.app-store-button img,.play-store-button img{height:100%;width:auto}.usage-stats{align-items:flex-end;display:flex;flex-direction:column;min-width:120px}.step-avatar{background-color:#304269;background-color:var(--primary-color);color:#fff}.device-details-page{padding:24px}.device-details-header{display:flex;flex-direction:column}.close-button{position:absolute;right:16px;top:16px}.device-details-content{padding:16px 0}.device-actions{margin-bottom:24px}.device-form{max-width:600px}.editable-field{align-items:center;display:flex;justify-content:space-between}.empty-field{color:#00000073;color:var(--text-color-secondary)}.unread-row{background-color:#fffbe6;font-weight:500}@media (max-width:1200px){.site-content{padding:16px}.documentation-links,.quick-links-grid{grid-template-columns:repeat(auto-fill,minmax(100px,1fr))}.doc-link-button,.quick-link-button{padding:12px 8px}}@media (max-width:992px){.site-header{padding:0 16px}.header-page-title{font-size:18px!important}.documentation-links,.quick-links-grid{grid-template-columns:repeat(auto-fill,minmax(90px,1fr))}}@media (max-width:768px){.site-content{padding:12px}.site-header{padding:0 12px}.header-title{margin-left:32px}.documentation-links,.quick-links-grid{grid-template-columns:repeat(auto-fill,minmax(80px,1fr))}.doc-link-button,.quick-link-button{font-size:12px;padding:8px 4px}.doc-link-button span,.quick-link-button span{margin-top:4px}.device-actions{overflow-x:auto;padding-bottom:8px;white-space:nowrap}.device-actions .ant-space{display:inline-flex;flex-wrap:nowrap}}@media (max-width:576px){.site-content{padding:8px}.header-page-title{font-size:16px!important}.documentation-links,.quick-links-grid{gap:8px;grid-template-columns:repeat(auto-fill,minmax(70px,1fr))}.device-details-header h4{font-size:18px!important}}@media (max-width:480px){.user-dropdown{padding:0}.header-actions{gap:8px}}@media print{.ant-layout-sider,.site-header{display:none}.site-content{margin:0;padding:0}.ant-card{border:1px solid #d9d9d9;border:1px solid var(--border-color);box-shadow:none}}.rule-chain-editor{display:flex;height:calc(100vh - 64px);overflow:hidden}.rule-chain-sidebar{background:#fff;border-right:1px solid #e8e8e8;display:flex;flex-direction:column;overflow-y:auto;width:250px}.rule-chain-content{display:flex;flex:1 1;flex-direction:column;overflow:hidden}.rule-chain-header{align-items:center;background:#fff;border-bottom:1px solid #e8e8e8;display:flex;justify-content:space-between;padding:16px}.rule-chain-canvas{background:#f0f2f5;flex:1 1;position:relative}.search-nodes{margin:16px}.nodes-collapse{border:none;flex:1 1;overflow-y:auto}.nodes-collapse .ant-collapse-header{font-weight:500}.node-list{display:flex;flex-direction:column;gap:8px;padding:8px 0}.draggable-node{align-items:center;border:1px solid #0000001a;border-radius:4px;cursor:grab;display:flex;font-size:12px;gap:8px;padding:8px 12px}.node-icon{font-size:16px}.node-label{flex:1 1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.custom-node{background:#fff;border:1px solid;border-radius:4px;font-size:12px;min-width:150px;padding:0;position:relative}.custom-node.selected{border-width:2px}.custom-node-header{align-items:center;display:flex;font-weight:500;gap:6px;padding:6px 10px}.custom-node-content{padding:6px 10px}.node-config-header{align-items:center;display:flex;justify-content:space-between}.help-button{margin-left:auto}.close-button{margin-left:8px}.alarm-status-options{grid-gap:8px;display:grid;gap:8px;grid-template-columns:1fr 1fr}.connection-types{border:1px solid #f0f0f0;border-radius:4px;margin-top:16px;padding:16px}.connection-type{border-bottom:1px solid #f0f0f0;display:flex;flex-direction:column;margin-bottom:12px;padding-bottom:12px}.connection-type:last-child{border-bottom:none;margin-bottom:0;padding-bottom:0}.connection-label{font-weight:500}.connection-description{color:#00000073;font-size:12px}.device-success-header{align-items:center;display:flex;justify-content:space-between}.platform-tabs,.protocol-tabs{margin-bottom:16px}.platform-icon{font-size:16px;margin-right:4px}.code-block{background:#f5f5f5;border-radius:4px;margin:16px 0;padding:16px;position:relative}.code-block pre{font-family:monospace;margin:0;white-space:pre-wrap}.code-block pre.http{color:#d63200}.code-block pre.mqtt{color:#06c}.code-block pre.coap{color:green}.copy-button{position:absolute;right:8px;top:8px}.device-state{margin-top:24px}.no-telemetry{color:#00000073;flex-direction:column;justify-content:center;padding:24px}.modal-footer,.no-telemetry{align-items:center;display:flex}.modal-footer{border-top:1px solid #f0f0f0;justify-content:space-between;margin-top:24px;padding-top:16px}.react-flow__handle{background-color:#555;border-radius:50%;height:10px;width:10px}.react-flow__handle-top{top:-5px}.react-flow__handle-bottom{bottom:-5px}.react-flow__handle-left{left:-5px}.react-flow__handle-right{right:-5px}.react-flow__edge-path{stroke-width:2}.react-flow__edge.selected .react-flow__edge-path{stroke-width:3}.react-flow__edge-text{font-size:12px;font-weight:500}.timeseries-config{border:1px solid #f0f0f0;border-radius:4px;margin-top:16px;padding:16px}.import-instructions{background-color:#f9f9f9;border-radius:4px;margin-top:16px;padding:8px}
/*# sourceMappingURL=main.87366e1c.css.map*/