.leaflet-pane,.leaflet-tile,.leaflet-marker-icon,.leaflet-marker-shadow,.leaflet-tile-container,.leaflet-pane>svg,.leaflet-pane>canvas,.leaflet-zoom-box,.leaflet-image-layer,.leaflet-layer{position:absolute;top:0;left:0}.leaflet-container{overflow:hidden}.leaflet-tile,.leaflet-marker-icon,.leaflet-marker-shadow{-webkit-user-select:none;user-select:none;-webkit-user-drag:none}.leaflet-tile::selection{background:0 0}.leaflet-safari .leaflet-tile{image-rendering:-webkit-optimize-contrast}.leaflet-safari .leaflet-tile-container{-webkit-transform-origin:0 0;width:1600px;height:1600px}.leaflet-marker-icon,.leaflet-marker-shadow{display:block}.leaflet-container .leaflet-overlay-pane svg{max-width:none!important;max-height:none!important}.leaflet-container .leaflet-marker-pane img,.leaflet-container .leaflet-shadow-pane img,.leaflet-container .leaflet-tile-pane img,.leaflet-container img.leaflet-image-layer,.leaflet-container .leaflet-tile{width:auto;padding:0;max-width:none!important;max-height:none!important}.leaflet-container img.leaflet-tile{mix-blend-mode:plus-lighter}.leaflet-container.leaflet-touch-zoom{-ms-touch-action:pan-x pan-y;touch-action:pan-x pan-y}.leaflet-container.leaflet-touch-drag{-ms-touch-action:pinch-zoom;touch-action:none;touch-action:pinch-zoom}.leaflet-container.leaflet-touch-drag.leaflet-touch-zoom{-ms-touch-action:none;touch-action:none}.leaflet-container{-webkit-tap-highlight-color:transparent}.leaflet-container a{-webkit-tap-highlight-color:#33b5e566}.leaflet-tile{filter:inherit;visibility:hidden}.leaflet-tile-loaded{visibility:inherit}.leaflet-zoom-box{box-sizing:border-box;z-index:800;width:0;height:0}.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{width:1px;height:1px}.lvml{behavior:url(#default#VML);display:inline-block;position:absolute}.leaflet-control{z-index:800;pointer-events:visiblePainted;pointer-events:auto;position:relative}.leaflet-top,.leaflet-bottom{z-index:1000;pointer-events:none;position:absolute}.leaflet-top{top:0}.leaflet-right{right:0}.leaflet-bottom{bottom:0}.leaflet-left{left:0}.leaflet-control{float:left;clear:both}.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{-webkit-transition:-webkit-transform .25s cubic-bezier(0,0,.25,1);-moz-transition:-moz-transform .25s cubic-bezier(0,0,.25,1);transition:transform .25s cubic-bezier(0,0,.25,1)}.leaflet-zoom-anim .leaflet-tile,.leaflet-pan-anim .leaflet-tile{transition:none}.leaflet-zoom-anim .leaflet-zoom-hide{visibility:hidden}.leaflet-interactive{cursor:pointer}.leaflet-grab{cursor:-webkit-grab;cursor:-moz-grab;cursor:grab}.leaflet-crosshair,.leaflet-crosshair .leaflet-interactive{cursor:crosshair}.leaflet-popup-pane,.leaflet-control{cursor:auto}.leaflet-dragging .leaflet-grab,.leaflet-dragging .leaflet-grab .leaflet-interactive,.leaflet-dragging .leaflet-marker-draggable{cursor:move;cursor:-webkit-grabbing;cursor:-moz-grabbing;cursor:grabbing}.leaflet-marker-icon,.leaflet-marker-shadow,.leaflet-image-layer,.leaflet-pane>svg path,.leaflet-tile-container{pointer-events:none}.leaflet-marker-icon.leaflet-interactive,.leaflet-image-layer.leaflet-interactive,.leaflet-pane>svg path.leaflet-interactive,svg.leaflet-image-layer.leaflet-interactive path{pointer-events:visiblePainted;pointer-events:auto}.leaflet-container{outline-offset:1px;background:#ddd}.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:.75rem;line-height:1.5}.leaflet-bar{border-radius:4px;box-shadow:0 1px 5px #000000a6}.leaflet-bar a{text-align:center;color:#000;background-color:#fff;border-bottom:1px solid #ccc;width:26px;height:26px;line-height:26px;text-decoration:none;display:block}.leaflet-bar a,.leaflet-control-layers-toggle{background-position:50%;background-repeat:no-repeat;display:block}.leaflet-bar a:hover,.leaflet-bar a:focus{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-right-radius:4px;border-bottom-left-radius:4px}.leaflet-bar a.leaflet-disabled{cursor:default;color:#bbb;background-color:#f4f4f4}.leaflet-touch .leaflet-bar a{width:30px;height:30px;line-height: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-right-radius:2px;border-bottom-left-radius:2px}.leaflet-control-zoom-in,.leaflet-control-zoom-out{text-indent:1px;font:700 18px Lucida Console,Monaco,monospace}.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);width:36px;height: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{width:44px;height: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{color:#333;background:#fff;padding:6px 10px 6px 6px}.leaflet-control-layers-scrollbar{padding-right:5px;overflow:hidden scroll}.leaflet-control-layers-selector{margin-top:2px;position:relative;top:1px}.leaflet-control-layers label{font-size:1.08333em;display:block}.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:#fffc;margin:0}.leaflet-control-attribution,.leaflet-control-scale-line{color:#333;padding:0 5px;line-height:1.4}.leaflet-control-attribution a{text-decoration:none}.leaflet-control-attribution a:hover,.leaflet-control-attribution a:focus{text-decoration:underline}.leaflet-attribution-flag{width:1em;height:.6669em;vertical-align:baseline!important;display:inline!important}.leaflet-left .leaflet-control-scale{margin-left:5px}.leaflet-bottom .leaflet-control-scale{margin-bottom:5px}.leaflet-control-scale-line{white-space:nowrap;box-sizing:border-box;text-shadow:1px 1px #fff;background:#fffc;border:2px solid #777;border-top:none;padding:2px 5px 1px;line-height:1.1}.leaflet-control-scale-line:not(:first-child){border-top:2px solid #777;border-bottom:none;margin-top:-2px}.leaflet-control-scale-line:not(:first-child):not(:last-child){border-bottom:2px solid #777}.leaflet-touch .leaflet-control-attribution,.leaflet-touch .leaflet-control-layers,.leaflet-touch .leaflet-bar{box-shadow:none}.leaflet-touch .leaflet-control-layers,.leaflet-touch .leaflet-bar{background-clip:padding-box;border:2px solid #0003}.leaflet-popup{text-align:center;margin-bottom:20px;position:absolute}.leaflet-popup-content-wrapper{text-align:left;border-radius:12px;padding:1px}.leaflet-popup-content{min-height:1px;margin:13px 24px 13px 20px;font-size:1.08333em;line-height:1.3}.leaflet-popup-content p{margin:1.3em 0}.leaflet-popup-tip-container{pointer-events:none;width:40px;height:20px;margin-top:-1px;margin-left:-20px;position:absolute;left:50%;overflow:hidden}.leaflet-popup-tip{pointer-events:auto;width:17px;height:17px;margin:-10px auto 0;padding:1px;transform:rotate(45deg)}.leaflet-popup-content-wrapper,.leaflet-popup-tip{color:#333;background:#fff;box-shadow:0 3px 14px #0006}.leaflet-container a.leaflet-popup-close-button{text-align:center;color:#757575;background:0 0;border:none;width:24px;height:24px;font:16px/24px Tahoma,Verdana,sans-serif;text-decoration:none;position:absolute;top:0;right:0}.leaflet-container a.leaflet-popup-close-button:hover,.leaflet-container a.leaflet-popup-close-button:focus{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)";width:24px;filter:progid:DXImageTransform.Microsoft.Matrix(M11=.707107, M12=.707107, M21=-.707107, M22=.707107);margin:0 auto}.leaflet-oldie .leaflet-control-zoom,.leaflet-oldie .leaflet-control-layers,.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{color:#222;white-space:nowrap;-webkit-user-select:none;user-select:none;pointer-events:none;background-color:#fff;border:1px solid #fff;border-radius:3px;padding:6px;position:absolute;box-shadow:0 1px 3px #0006}.leaflet-tooltip.leaflet-interactive{cursor:pointer;pointer-events:auto}.leaflet-tooltip-top:before,.leaflet-tooltip-bottom:before,.leaflet-tooltip-left:before,.leaflet-tooltip-right:before{pointer-events:none;content:"";background:0 0;border:6px solid #0000;position:absolute}.leaflet-tooltip-bottom{margin-top:6px}.leaflet-tooltip-top{margin-top:-6px}.leaflet-tooltip-bottom:before,.leaflet-tooltip-top:before{margin-left:-6px;left:50%}.leaflet-tooltip-top:before{border-top-color:#fff;margin-bottom:-12px;bottom:0}.leaflet-tooltip-bottom:before{border-bottom-color:#fff;margin-top:-12px;margin-left:-6px;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;margin-left:-12px;left:0}@media print{.leaflet-control{-webkit-print-color-adjust:exact;print-color-adjust:exact}}.ls-root{--ls-teal:#4fd1c5;--ls-teal-dim:#319795;--ls-blue:#63b3ed;--ls-gold:#ecc94b;--ls-warm:#ed8936;--ls-green:#68d391;--ls-red:#e06040;--ls-panel-bg:linear-gradient(175deg, #111c2ee6, #0b1220f0);--ls-panel-border:#4755694d;--ls-panel-accent:#38b2ac59;color:#d4dce8;background:radial-gradient(65% 40% at 50% -5%,#38b2ac14,#0000 50%),radial-gradient(50% 35% at 95% 75%,#63b3ed0d,#0000 50%),radial-gradient(45% 35% at 5% 70%,#48bb780a,#0000 50%),linear-gradient(175deg,#060d18 0%,#080e18 45%,#050b14 100%);min-height:100%;position:relative;overflow:hidden}.ls-root.fullscreen{z-index:1000;min-height:100vh;position:fixed;inset:0}.ls-particles{pointer-events:none;z-index:0;position:absolute;inset:0;overflow:hidden}.ls-particle{background:#4fd1c580;border-radius:50%;width:1.5px;height:1.5px;animation:linear infinite ls-float;position:absolute}.ls-scanline{pointer-events:none;z-index:1;background:repeating-linear-gradient(#0000 0 4px,#8899aa04 4px 5px);position:absolute;inset:0}.ls-beam{pointer-events:none;z-index:1;background:linear-gradient(90deg,#0000,#38b2ac08,#0000);width:30%;height:100%;animation:10s linear infinite ls-beam;position:absolute;left:-15%}.ls-content{z-index:2;grid-template-rows:auto 1fr auto;gap:10px;height:100%;min-height:100vh;padding:14px 16px 16px;display:grid;position:relative}.ls-header{grid-template-columns:1fr auto 1fr;align-items:center;gap:16px;display:grid}.ls-title-wrap{text-align:center;padding:6px 40px 12px;position:relative}.ls-title-wrap:before,.ls-title-wrap:after{content:"";background:linear-gradient(90deg,#0000,#4fd1c573,#0000);height:1px;position:absolute;left:50%;transform:translate(-50%)}.ls-title-wrap:before{width:60%;top:0}.ls-title-wrap:after{opacity:.4;width:45%;bottom:0}.ls-title{letter-spacing:.22em;color:var(--ls-teal);margin:0;font-size:clamp(22px,2.2vw,30px);font-weight:700}.ls-subtitle{letter-spacing:.3em;color:#4fd1c580;text-transform:uppercase;margin-top:3px;font-size:11px}.ls-header-side{color:#d4dce8b3;align-items:center;gap:10px;font-size:13px;display:flex}.ls-header-side.right{justify-content:flex-end}.ls-body{grid-template-columns:320px minmax(0,1fr) 320px;gap:12px;min-height:0;display:grid}.ls-col{flex-direction:column;gap:12px;min-height:0;display:flex}.ls-panel{border:1px solid var(--ls-panel-border);background:var(--ls-panel-bg);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);padding:14px;position:relative;overflow:hidden;box-shadow:inset 0 1px #ffffff05,0 4px 16px #02060e40}.ls-panel:before,.ls-panel:after{content:"";opacity:.6;border:1px solid #4fd1c559;width:10px;height:10px;position:absolute}.ls-panel:before{border-bottom:none;border-right:none;top:-1px;left:-1px}.ls-panel:after{border-top:none;border-left:none;bottom:-1px;right:-1px}.ls-panel-corner{opacity:.6;border:1px solid #4fd1c559;width:10px;height:10px;position:absolute}.ls-panel-corner.tr{border-bottom:none;border-left:none;top:-1px;right:-1px}.ls-panel-corner.bl{border-top:none;border-right:none;bottom:-1px;left:-1px}.ls-panel-title{letter-spacing:.08em;text-transform:uppercase;color:#89a;align-items:center;gap:8px;margin-bottom:10px;font-size:12px;font-weight:600;display:flex}.ls-panel-title:before{content:"";background:var(--ls-teal);opacity:.7;border-radius:1px;width:7px;height:7px;transform:rotate(45deg)}.ls-kpi-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;display:grid}.ls-kpi{background:linear-gradient(165deg,#31979514,#0e182840);border:1px solid #4755692e;padding:12px 10px;position:relative;overflow:hidden}.ls-kpi:after{content:"";background:linear-gradient(120deg,#0000 30%,#ffffff08,#0000 70%);animation:5s ease-in-out infinite ls-shine;position:absolute;inset:0;transform:translate(-120%)}.ls-kpi-iconed{align-items:center;gap:10px;display:flex}.ls-kpi-icon{background:radial-gradient(circle at 30% 30%, color-mix(in srgb, var(--kpi-accent,#4fd1c5) 20%, transparent), #0b122080);border:1px solid color-mix(in srgb, var(--kpi-accent,#4fd1c5) 35%, transparent);border-radius:8px;flex:none;place-items:center;width:38px;height:38px;display:grid}.ls-kpi-meta{flex:1;min-width:0}.ls-tab-label{align-items:center;gap:6px;display:inline-flex}.ls-kpi-label{color:#89a;letter-spacing:.05em;text-transform:uppercase;font-size:11px;font-weight:500}.ls-kpi-value{font-variant-numeric:tabular-nums;color:var(--ls-gold);letter-spacing:-.01em;margin-top:4px;font-family:JetBrains Mono,DIN Alternate,monospace;font-size:24px;font-weight:700}.ls-kpi-value.cyan{color:var(--ls-teal)}.ls-kpi-value.green{color:var(--ls-green)}.ls-kpi-value.orange{color:var(--ls-warm)}.ls-kpi-unit{color:#89a;margin-left:4px;font-size:11px;font-weight:400}.ls-topo{z-index:1;width:100%;height:100%;min-height:360px;position:relative}.ls-topo-glow{pointer-events:none;background:radial-gradient(circle,#38b2ac1a,#0000 68%);border-radius:50%;width:42%;height:42%;animation:5s ease-in-out infinite ls-topo-breathe;position:absolute;top:48%;left:50%;transform:translate(-50%,-50%)}.ls-topo-svg{width:100%;height:100%;position:absolute;inset:0;overflow:visible}.ls-topo-node{border:1px solid color-mix(in srgb, var(--node-color,#4fd1c5) 40%, #4755694d);background:linear-gradient(160deg, color-mix(in srgb, var(--node-color,#4fd1c5) 15%, #111c2ed9), #0b1220e6);min-width:118px;box-shadow:0 0 20px color-mix(in srgb, var(--node-color,#4fd1c5) 12%, transparent), inset 0 0 18px #080e1840;z-index:2;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);color:inherit;font:inherit;cursor:default;border-radius:12px;align-items:center;gap:10px;padding:10px 12px 10px 10px;display:flex;position:absolute;transform:translate(-50%,-50%)}.ls-topo-node.station{cursor:pointer;transition:transform .2s,box-shadow .2s}.ls-topo-node.station:hover{box-shadow:0 0 28px color-mix(in srgb, var(--node-color,#4fd1c5) 25%, transparent);transform:translate(-50%,-50%)scale(1.04)}.ls-topo-node.hub{text-align:center;z-index:3;flex-direction:column;gap:6px;min-width:132px;padding:14px 16px}.ls-topo-icon{background:radial-gradient(circle at 35% 30%, color-mix(in srgb, var(--node-color,#4fd1c5) 25%, transparent), #0b122099);border:1px solid color-mix(in srgb, var(--node-color,#4fd1c5) 40%, transparent);border-radius:10px;flex:none;place-items:center;width:44px;height:44px;display:grid}.ls-topo-node.hub .ls-topo-icon{border-radius:50%;width:56px;height:56px}.ls-topo-body{min-width:0}.ls-topo-label{color:#89a;letter-spacing:.05em;font-size:11px}.ls-topo-sub{color:#64748b;margin-top:1px;font-size:10px}.ls-topo-value{font-variant-numeric:tabular-nums;color:var(--node-color,var(--ls-teal));letter-spacing:-.01em;flex-wrap:wrap;align-items:baseline;gap:4px;margin-top:2px;font-family:JetBrains Mono,DIN Alternate,monospace;font-size:18px;font-weight:700;display:flex}.ls-topo-value.mini{align-items:center;font-size:14px}.ls-topo-value small{color:#89a;font-size:10px;font-weight:500}.ls-topo-pulse{border-radius:inherit;border:1px solid color-mix(in srgb, var(--node-color,#4fd1c5) 30%, transparent);pointer-events:none;animation:2.8s ease-out infinite ls-topo-ring;position:absolute;inset:-5px}.ls-topo-pulse.delay{animation-delay:1.4s}.ls-topo-node.hub .ls-topo-pulse{border-radius:16px}.ls-map-wrap{border:1px solid var(--ls-panel-border);background:#050b14;flex:1;min-height:420px;position:relative;overflow:hidden}.ls-map-wrap .leaflet-container{background:#050b14;width:100%;height:100%;font-family:inherit}.ls-map-overlay-top{z-index:500;pointer-events:none;justify-content:space-between;gap:12px;display:flex;position:absolute;top:12px;left:12px;right:12px}.ls-map-overlay-top>*{pointer-events:auto}.ls-map-overlay-bottom{z-index:500;pointer-events:none;justify-content:space-between;gap:12px;display:flex;position:absolute;bottom:12px;left:12px;right:12px}.ls-map-overlay-bottom>*{pointer-events:auto}.ls-glass{border:1px solid var(--ls-panel-border);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#0b122099;padding:10px 12px}.ls-cabinet{grid-template-columns:repeat(6,1fr);gap:5px;display:grid}.ls-cabinet-cell{text-align:center;background:#3197950f;border:1px solid #47556926;border-radius:3px;padding:8px 4px}.ls-cabinet-cell .idx{color:#89a;font-size:10px}.ls-cabinet-cell .val{color:var(--ls-teal);margin-top:2px;font-size:13px;font-weight:700}.ls-eco-bars{flex-direction:column;gap:10px;display:flex}.ls-eco-row{align-items:center;gap:10px;font-size:12px;display:flex}.ls-eco-row .bar{background:#8899aa1f;border-radius:3px;flex:1;height:6px;overflow:hidden}.ls-eco-row .fill{border-radius:3px;height:100%;transition:width 1s}.ls-ticker{white-space:nowrap;gap:24px;display:flex;overflow:hidden;-webkit-mask-image:linear-gradient(90deg,#0000,#000 8% 92%,#0000);mask-image:linear-gradient(90deg,#0000,#000 8% 92%,#0000)}.ls-ticker-track{gap:28px;animation:28s linear infinite ls-marquee;display:flex}.ls-ticker-item{color:#89a;font-size:12px}.ls-ticker-item strong{color:var(--ls-gold);margin:0 4px}.ls-list-row{border-bottom:1px solid #4755691a;justify-content:space-between;gap:8px;padding:7px 0;font-size:12px;display:flex}.ls-dot{border-radius:50%;width:7px;height:7px;margin-right:6px;display:inline-block;box-shadow:0 0 5px}.ls-ring-stat{border:1.5px solid #4fd1c540;border-radius:50%;place-items:center;width:88px;height:88px;animation:3s ease-in-out infinite ls-pulse;display:grid;box-shadow:inset 0 0 18px #38b2ac14,0 0 12px #38b2ac1a}.leaflet-station-marker,.leaflet-device-marker{background:0 0!important;border:none!important;overflow:visible!important}.ld-china-map{width:100%;height:100%;position:relative}.ld-china-map .leaflet-container{background:#0a1420;font-family:inherit;position:relative}.ld-china-map--normal .leaflet-container{background:#080e18}.ld-china-map--dark .leaflet-tile-pane{filter:invert()hue-rotate(180deg)brightness(.88)contrast(1.05)saturate(.55)}.ls-map-pin{--cat:#89a;filter:drop-shadow(0 4px 10px #02060e73);cursor:pointer;flex-direction:column;align-items:center;width:96px;height:58px;display:flex;position:relative}.ls-map-pin-icon{width:36px;height:36px;color:var(--cat);border:1.5px solid var(--cat);box-shadow:0 0 0 2px color-mix(in srgb, var(--cat) 20%, transparent);filter:drop-shadow(0 2px 4px #02060e73);background:#0b122073;border-radius:8px;flex:none;place-items:center;display:grid}.ls-map-pin-icon svg{width:24px;height:24px;display:block}.ls-map-pin-name{max-width:92px;color:var(--ld-text-bright);text-align:center;white-space:nowrap;text-overflow:ellipsis;letter-spacing:.02em;text-shadow:0 1px 2px #02060ecc;border:1px solid color-mix(in srgb, var(--cat) 35%, transparent);pointer-events:none;background:#0b1220a6;border-radius:3px;margin-top:3px;padding:1px 5px;font-size:11px;font-weight:650;line-height:1.25;overflow:hidden}.ls-map-pin-card{border-radius:var(--ld-radius);border:1px solid color-mix(in srgb, var(--cat) 50%, #4755694d);width:420px;max-width:min(420px,70vw);box-shadow:var(--ld-shadow-elevated);color:var(--ld-text-bright);text-align:left;z-index:20;pointer-events:none;background:linear-gradient(160deg,#111c2ef7,#0b1220f5);padding:11px 12px 12px;display:none;position:absolute;bottom:calc(100% + 10px);left:50%;transform:translate(-50%)}.ls-map-pin-card:after{content:"";border-right:1px solid color-mix(in srgb, var(--cat) 50%, #4755694d);border-bottom:1px solid color-mix(in srgb, var(--cat) 50%, #4755694d);background:#0b1220f5;width:10px;height:10px;position:absolute;bottom:-5px;left:50%;transform:translate(-50%)rotate(45deg)}.ls-map-pin:hover .ls-map-pin-card{display:block}.ls-map-pin.alerting .ls-map-pin-card{display:none!important}.ls-map-pin-card-head{justify-content:space-between;align-items:center;gap:8px;margin-bottom:2px;display:flex}.ls-map-pin-card-status{border:1px solid #0000;border-radius:999px;flex:none;padding:1px 7px;font-size:10px;font-weight:700}.ls-map-pin-card-status.on{color:#68d391;background:#48bb781a;border-color:#48bb7840}.ls-map-pin-card-status.off{color:#fc8181;background:#e060401a;border-color:#e0604040}.ls-map-pin-card-status.alarm{color:#ecc94b;background:#d69e2e1a;border-color:#d69e2e4d}.ls-map-pin-card-detail.hover{grid-template-columns:1fr 1fr;gap:5px 14px;max-height:none;margin-top:8px;display:grid}.ls-map-pin-card-voice{color:var(--ls-red);margin:2px 0 6px;font-size:12px;font-weight:700}.ls-map-pin-card-detail{border-radius:var(--ld-radius-sm);background:#0e182866;border:1px solid #4755692e;gap:5px;margin-top:8px;padding:8px 10px;display:grid}.ls-map-pin-card-kv{justify-content:space-between;gap:10px;font-size:11px;line-height:1.35;display:flex}.ls-map-pin-card-kv span{color:#89a;flex:none}.ls-map-pin-card-kv b{color:var(--ld-text);text-align:right;font-weight:650}.ls-map-pin-card-type{color:#0d1b1a;background:var(--cat);border-radius:999px;margin-bottom:0;padding:1px 7px;font-size:10px;font-weight:700;display:inline-block}.ls-map-pin-card-name{color:var(--ld-text-bright);font-size:13px;font-weight:700;line-height:1.3}.ls-map-pin-card-meta{color:#89a;margin-top:4px;font-size:11px;line-height:1.4}.ls-map-pin-card-stats{flex-wrap:wrap;gap:8px;margin-top:8px;font-family:JetBrains Mono,monospace;font-size:12px;font-weight:700;display:flex}.ls-map-pin-card-stats .on{color:var(--ls-green)}.ls-map-pin-card-stats .off{color:var(--ls-red)}.ls-map-pin-card-stats .alarm{color:var(--ls-warm)}.ls-map-pin-card-foot{color:#89a;border-top:1px solid #47556926;margin-top:8px;padding-top:7px;font-size:11px;line-height:1.5}.ls-alert-overlay{z-index:1200;pointer-events:auto;margin-top:-8px;position:absolute;transform:translate(-50%,-100%)}.ls-alert-overlay-card.ls-map-pin-card,.ls-map-pin-card.is-alert{pointer-events:auto;border-color:#e0604080;width:286px;display:block;position:relative;bottom:auto;left:auto;transform:none;box-shadow:0 14px 32px #5014144d,0 0 0 1px #e060401f}.ls-map-pin-card-msg{border-radius:var(--ld-radius-sm);color:#fc8181;background:#e0604014;border:1px solid #e0604040;margin-top:8px;padding:8px 10px;font-size:12px;line-height:1.45}.ls-map-pin-card-queue{color:var(--ls-warm);margin-top:6px;font-size:11px}.ls-map-pin-card-actions{gap:8px;margin-top:10px;display:flex}.ls-map-pin-btn{border-radius:var(--ld-radius-sm);cursor:pointer;border:1px solid #0000;flex:1;height:30px;font-size:12px;font-weight:600;line-height:1}.ls-map-pin-btn.ghost{color:var(--ld-text);background:#8899aa14;border-color:#8899aa40}.ls-map-pin-btn.danger{background:var(--ls-red);border-color:var(--ls-red);color:#fff}.ls-map-pin-btn:hover{filter:brightness(1.1)}.ls-map-pin.alerting .ls-map-pin-icon{color:var(--ls-red);border-color:var(--ls-red);animation:.9s ease-in-out infinite ls-alarm-pulse;box-shadow:0 0 0 3px #e0604040,0 0 12px #e0604066}.ls-project-pin{color:#0d1b1a;border:1px solid #ffffff4d;border-radius:6px;place-items:center;min-width:44px;height:26px;font-size:11px;font-weight:700;display:grid;box-shadow:0 4px 12px #02060e4d}.ls-project-pin.online{background:linear-gradient(135deg,#4fd1c5,#319795)}.ls-project-pin.alarm{background:linear-gradient(135deg,#ed8936,#dd6b20)}.ls-project-pin.offline{color:#e2e8f0;background:linear-gradient(135deg,#64748b,#475569)}.ls-project-card{--cat:#89a;border-radius:var(--ld-radius);width:132px;color:var(--ld-text-bright);border:1.5px solid var(--cat);box-shadow:0 8px 20px #02060e59, 0 0 0 1px color-mix(in srgb, var(--cat) 15%, transparent);text-align:left;background:linear-gradient(160deg,#111c2ef2,#0b1220eb);padding:8px 10px 9px;position:relative}.ls-project-card:after{content:"";border-right:1.5px solid var(--cat);border-bottom:1.5px solid var(--cat);background:#0b1220f2;width:12px;height:12px;position:absolute;bottom:-6px;left:50%;transform:translate(-50%)rotate(45deg)}.ls-project-card.cat-pv{--cat:#68d391}.ls-project-card.cat-es{--cat:#4fd1c5}.ls-project-card.cat-power{--cat:#ecc94b}.ls-project-card.cat-charge{--cat:#ed8936}.ls-project-card.cat-hybrid{--cat:#63b3ed}.ls-project-card-type{letter-spacing:.06em;color:#0d1b1a;background:var(--cat);border-radius:999px;margin-bottom:4px;padding:1px 7px;font-size:10px;font-weight:700;display:inline-block}.ls-project-card-name{color:var(--ld-text-bright);font-size:12px;font-weight:700;line-height:1.25}.ls-project-card-meta{color:#89a;margin-top:3px;font-size:10px}.ls-project-card-stats{letter-spacing:.02em;align-items:baseline;gap:3px;margin-top:4px;font-family:JetBrains Mono,monospace;font-size:12px;font-weight:700;display:flex}.ls-project-card-stats i{color:#64748b;font-size:11px;font-style:normal;font-weight:500}.ls-dev-pin{--c:#4fd1c5;filter:drop-shadow(0 6px 10px #02060e59);cursor:pointer;flex-direction:column;align-items:center;width:52px;height:64px;display:flex}.ls-dev-pin-head{width:40px;height:40px;color:var(--c);background:linear-gradient(160deg, var(--ld-panel) 0%, var(--ld-bg) 100%);border:1.5px solid var(--c);box-shadow:0 0 0 2px color-mix(in srgb, var(--c) 16%, transparent), inset 0 0 10px color-mix(in srgb, var(--c) 12%, transparent);border-radius:12px;place-items:center;display:grid}.ls-dev-pin-head svg{display:block}.ls-dev-pin-point{background:var(--c);width:8px;height:8px;box-shadow:0 2px 4px color-mix(in srgb, var(--c) 30%, transparent);border-radius:0 0 2px;margin-top:-3px;transform:rotate(45deg)}.ls-dev-pin-label{letter-spacing:.04em;color:var(--ld-text-bright);text-shadow:0 1px 3px #02060ebf;white-space:nowrap;background:color-mix(in srgb, var(--c) 25%, #0b1220bf);border:1px solid color-mix(in srgb, var(--c) 40%, transparent);border-radius:999px;margin-top:2px;padding:0 6px;font-size:10px;font-weight:700;line-height:16px}.ls-dev-pin.online .ls-dev-pin-head{animation:2.6s ease-in-out infinite ls-dev-breathe}.ls-dev-pin.alarm .ls-dev-pin-head{border-color:var(--ls-warm);color:var(--ls-warm);animation:1.1s ease-in-out infinite ls-dev-alarm}.ls-map-detail-btn{width:100%;color:var(--ls-teal);border-radius:var(--ld-radius-sm);cursor:pointer;background:#111c2eb3;border:1px solid #4fd1c54d;margin-top:8px;padding:6px 8px;font-size:12px}.ls-map-detail-btn:hover{background:#3197954d}.ld-map-provider{z-index:500;color:#89a;pointer-events:none;background:#0b122073;border:1px solid #4755692e;border-radius:4px;padding:2px 8px;font-size:11px;position:absolute;bottom:8px;left:10px}.ld-map-legend{z-index:500;border-radius:var(--ld-radius);width:176px;box-shadow:var(--ld-shadow-elevated);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);color:var(--ld-text);pointer-events:none;background:#0b1220cc;border:1px solid #47556940;padding:10px 12px;position:absolute;bottom:12px;right:12px}.ld-map-legend-title{letter-spacing:.08em;color:var(--ld-text-bright);margin-bottom:8px;font-size:12px;font-weight:700}.ld-map-legend-block+.ld-map-legend-block{border-top:1px solid #47556926;margin-top:10px;padding-top:9px}.ld-map-legend-label{color:#89a;margin-bottom:6px;font-size:11px}.ld-map-legend-rows{gap:5px;font-size:12px;display:grid}.ld-map-legend-rows span{align-items:center;gap:8px;display:flex}.ld-map-legend-rows .swatch{background:#0e1828b3;border:1px solid #89a;border-radius:2px;flex:none;width:14px;height:10px}.ld-map-legend-rows .icon-box{background:0 0;border:1.5px solid #8899aa4d;border-radius:6px;flex:none;place-items:center;width:28px;height:28px;display:grid}.ld-map-legend-rows .icon-box svg{width:20px;height:20px}.ld-map-legend-rows .icon-box.cat-pv,.ld-map-legend-rows .swatch.cat-pv{border-color:var(--ls-green);color:var(--ls-green)}.ld-map-legend-rows .icon-box.cat-es,.ld-map-legend-rows .swatch.cat-es{border-color:var(--ls-teal);color:var(--ls-teal)}.ld-map-legend-rows .icon-box.cat-power,.ld-map-legend-rows .swatch.cat-power{border-color:var(--ls-gold);color:var(--ls-gold)}.ld-map-legend-rows .icon-box.cat-charge,.ld-map-legend-rows .swatch.cat-charge{border-color:var(--ls-warm);color:var(--ls-warm)}.ld-map-legend-rows .icon-box.cat-hybrid,.ld-map-legend-rows .swatch.cat-hybrid{border-color:var(--ls-blue);color:var(--ls-blue)}.ld-map-legend-rows.nums{grid-template-columns:1fr}.ld-map-legend-rows.nums b{min-width:14px;font-family:JetBrains Mono,monospace;font-size:13px;font-weight:700}.ld-map-legend-rows.nums .on{color:var(--ls-green)}.ld-map-legend-rows.nums .off{color:var(--ls-red)}.ld-map-legend-rows.nums .alarm{color:var(--ls-gold)}.ld-legend-item{border:1px solid color-mix(in srgb, var(--c,#4fd1c5) 22%, #4755694d);background:color-mix(in srgb, var(--c,#4fd1c5) 6%, #0b122059);color:var(--ld-text);cursor:pointer;text-align:left;border-radius:6px;align-items:center;gap:6px;padding:4px 6px;font-size:12px;display:flex}.ld-legend-item:hover{border-color:color-mix(in srgb, var(--c,#4fd1c5) 45%, transparent)}.ld-legend-icon{transform-origin:50%;pointer-events:none;place-items:center;width:28px;height:34px;display:grid;overflow:hidden;transform:scale(.55)}.ld-legend-icon .ls-dev-pin-label{display:none}.ls-marker{border-radius:50%;width:16px;height:16px;position:relative;transform:translate(-50%,-50%)}.ls-marker:before{content:"";opacity:.4;border:1px solid;border-radius:50%;animation:2s ease-out infinite ls-ripple;position:absolute;inset:-6px}.ls-marker.online{color:var(--ls-teal);background:radial-gradient(circle,#4fd1c5 0%,#319795 70%);box-shadow:0 0 12px #38b2ac80}.ls-marker.alarm{color:var(--ls-warm);background:radial-gradient(circle,#ed8936 0%,#c05621 70%);box-shadow:0 0 12px #ed893680}.ls-marker.offline{color:#64748b;background:radial-gradient(circle,#89a 0%,#475569 70%);box-shadow:0 0 8px #64748b4d}.ls-radar{pointer-events:none;z-index:450;background:radial-gradient(circle,#38b2ac0f,#0000 70%);border:1px solid #4fd1c533;border-radius:50%;width:140px;height:140px;position:absolute;bottom:16px;right:16px;overflow:hidden;box-shadow:0 0 20px #38b2ac14,inset 0 0 20px #38b2ac0d}.ls-radar-ring{border:1px dashed #4fd1c533;border-radius:50%;margin:auto;position:absolute;inset:0}.ls-radar-ring.r1{width:40%;height:40%}.ls-radar-ring.r2{width:68%;height:68%}.ls-radar-ring.r3{width:92%;height:92%}.ls-radar-sweep{background:conic-gradient(#0000 0deg,#4fd1c533 50deg,#0000 70deg);animation:4s linear infinite ls-spin;position:absolute;inset:0}.ls-radar-core{background:var(--ls-teal);width:6px;height:6px;box-shadow:0 0 10px var(--ls-teal);border-radius:50%;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.biz-map-shell{border-radius:var(--ld-radius);border:1px solid var(--ls-panel-border);background:#050b14;min-height:calc(100vh - 210px);position:relative;overflow:hidden}.biz-map-shell .leaflet-container{background:#050b14;width:100%;height:100%;min-height:calc(100vh - 210px)}.ld-ops-home .biz-map-shell{background:#080e18;border-color:#4755692e;min-height:calc(100vh - 160px)}.ld-ops-home .biz-map-shell .leaflet-container{min-height:calc(100vh - 160px)}.ls-body--microgrid{grid-template-columns:290px minmax(0,1fr) 290px}.ls-body--microgrid .ls-col--center{gap:10px}.ls-topo-stage{background:radial-gradient(50% 40% at 50% 55%,#38b2ac0f,#0000 55%),radial-gradient(35% 30% at 20% 20%,#ecc94b08,#0000 45%),radial-gradient(35% 30% at 80% 80%,#68d39108,#0000 45%),#080e1873;border:1px solid #47556938;flex:1;place-items:center;min-height:0;padding:16px;display:grid;position:relative;overflow:hidden;box-shadow:inset 0 0 60px #38b2ac08,0 0 24px #3197950f}.ls-topo-stage:before,.ls-topo-stage:after{content:"";pointer-events:none;border:1px solid #4fd1c54d;width:14px;height:14px;position:absolute}.ls-topo-stage:before{border-bottom:none;border-right:none;top:-1px;left:-1px}.ls-topo-stage:after{border-top:none;border-left:none;bottom:-1px;right:-1px}.ls-bottom-charts{flex:0 0 260px;grid-template-columns:1fr 1fr;gap:10px;min-height:0;display:grid}.ls-bottom-charts .ls-panel{flex-direction:column;display:flex}.ls-bottom-charts .ls-panel-title{flex:none}.ls-es-health{justify-content:center;align-items:center;gap:16px;padding:4px 0;display:flex}.ls-es-mini-grid{grid-template-columns:1fr 1fr;gap:8px;width:120px;display:grid}.ls-revenue-cards{grid-template-columns:1fr 1fr;gap:8px;display:grid}.ls-revenue-card{--rev-color:#4fd1c5;border-radius:var(--ld-radius-sm);border:1px solid color-mix(in srgb, var(--rev-color) 25%, #4755694d);background:linear-gradient(160deg, color-mix(in srgb, var(--rev-color) 8%, #111c2e99), #0b1220a6);padding:12px;position:relative;overflow:hidden}.ls-revenue-card:before{content:"";background:linear-gradient(90deg, transparent, var(--rev-color), transparent);opacity:.5;height:1px;position:absolute;top:0;left:0;right:0}.ls-revenue-label{color:#89a;letter-spacing:.06em;text-transform:uppercase;font-size:10px}.ls-revenue-value{font-variant-numeric:tabular-nums;color:var(--ld-text-bright);margin-top:4px;font-family:JetBrains Mono,monospace;font-size:18px;font-weight:700}.ls-revenue-unit{opacity:.5;margin-left:3px;font-size:10px}.ls-revenue-trend{border-radius:999px;align-items:center;gap:4px;width:fit-content;margin-top:4px;padding:2px 7px;font-size:10px;font-weight:600;display:inline-flex}.ls-revenue-trend.up{color:var(--ls-green);background:#48bb7814}.ls-revenue-trend.down{color:var(--ls-warm);background:#ed893614}.ls-topo-labels{z-index:3;pointer-events:none;position:absolute;inset:0}.ls-float-label{--fl-color:#4fd1c5;border-radius:var(--ld-radius-sm);border:1px solid color-mix(in srgb, var(--fl-color) 35%, #4755694d);background:linear-gradient(160deg, color-mix(in srgb, var(--fl-color) 10%, #111c2ed9), #0b1220e6);min-width:120px;box-shadow:0 8px 20px #02060e4d, 0 0 12px color-mix(in srgb, var(--fl-color) 10%, transparent);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);padding:10px 12px;animation:.5s ease-out both ls-float-label-in;position:absolute}.ls-float-label:nth-child(2){animation-delay:80ms}.ls-float-label:nth-child(3){animation-delay:.16s}.ls-float-label:nth-child(4){animation-delay:.24s}.ls-float-label:nth-child(5){animation-delay:.32s}.ls-float-label-title{color:var(--fl-color);border-bottom:1px solid color-mix(in srgb, var(--fl-color) 18%, transparent);align-items:center;gap:6px;margin-bottom:6px;padding-bottom:5px;font-size:11px;font-weight:700;display:flex}.ls-float-label-row{justify-content:space-between;align-items:center;gap:10px;font-size:11px;line-height:1.6;display:flex}.ls-float-label-row span:first-child{color:#89a}.ls-float-label-row strong{color:var(--ld-text);font-variant-numeric:tabular-nums;font-weight:600}@keyframes ls-float{0%{opacity:0;transform:translateY(0)}15%{opacity:.6}85%{opacity:.6}to{opacity:0;transform:translateY(-110vh)}}@keyframes ls-beam{0%{transform:translate(0)}to{transform:translate(380%)}}@keyframes ls-shine{0%,60%{transform:translate(-120%)}to{transform:translate(120%)}}@keyframes ls-marquee{0%{transform:translate(0)}to{transform:translate(-50%)}}@keyframes ls-pulse{0%,to{box-shadow:inset 0 0 18px #38b2ac14,0 0 10px #38b2ac1a}50%{box-shadow:inset 0 0 24px #38b2ac26,0 0 20px #38b2ac33}}@keyframes ls-ripple{0%{opacity:.6;transform:scale(.6)}to{opacity:0;transform:scale(1.8)}}@keyframes ls-topo-breathe{0%,to{opacity:.35;transform:translate(-50%,-50%)scale(.92)}50%{opacity:.7;transform:translate(-50%,-50%)scale(1.06)}}@keyframes ls-topo-ring{0%{opacity:.5;transform:scale(.92)}to{opacity:0;transform:scale(1.28)}}@keyframes ls-spin{to{transform:rotate(360deg)}}@keyframes ls-float-label-in{0%{opacity:0;transform:translateY(10px)scale(.97)}to{opacity:1;transform:translateY(0)scale(1)}}@keyframes ls-dev-breathe{0%,to{box-shadow:0 0 6px color-mix(in srgb, var(--c,#4fd1c5) 20%, transparent);transform:scale(1)}50%{box-shadow:0 0 12px color-mix(in srgb, var(--c,#4fd1c5) 35%, transparent);transform:scale(1.05)}}@keyframes ls-dev-alarm{0%,to{transform:scale(1);box-shadow:0 0 6px #ed893640}50%{transform:scale(1.06);box-shadow:0 0 14px #ed893680}}@keyframes ls-alarm-pulse{0%,to{transform:scale(1)}50%{transform:scale(1.06)}}@media (width<=1400px){.ls-body--microgrid{grid-template-columns:260px minmax(0,1fr) 260px}.ls-float-label{min-width:110px;padding:8px 10px}.ls-float-label-row{font-size:10px}}@media (width<=1200px){.ls-body,.ls-body--microgrid{grid-template-columns:1fr}.ls-map-wrap{min-height:360px}.ls-bottom-charts{flex:0 0 500px;grid-template-columns:1fr}.ls-topo-stage{min-height:400px}}.ld-sec-kpis{grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-bottom:16px;display:grid}.ld-sec-kpis>div{border:1px solid var(--ld-border);background:#08142459;border-radius:12px;padding:14px 16px}.ld-sec-kpis em{color:var(--ld-muted);margin-bottom:6px;font-size:12px;font-style:normal;display:block}.ld-sec-kpis b{color:#e2e8f0;font-size:22px;font-weight:700}.ld-sec-kpis b i{color:#94a3b8;margin-left:4px;font-size:13px;font-style:normal;font-weight:500}.ld-sec-kpis b.ok{color:#4ade80}.ld-sec-kpis b.warn{color:#fb923c}.ld-sec-video-grid{grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:12px;display:grid}.ld-sec-video-card{border:1px solid var(--ld-border);text-align:left;color:inherit;background:#08142473;border-radius:12px;flex-direction:column;padding:0;transition:border-color .15s,transform .15s;display:flex;overflow:hidden}.ld-sec-video-card:hover{border-color:#a78bfa8c;transform:translateY(-1px)}.ld-sec-card-main{color:inherit;cursor:pointer;text-align:left;font:inherit;background:0 0;border:none;flex-direction:column;flex:1;padding:0;display:flex}.ld-sec-card-main.is-row{flex-direction:row;flex:1;align-items:center;gap:12px;min-width:0}.ld-sec-card-actions{justify-content:flex-end;padding:0 12px 12px;display:flex}.ld-sec-video-card.is-off .ld-sec-video-stage{opacity:.55}.ld-sec-video-stage{color:#c4b5fd;background:linear-gradient(160deg,#5b21b659,#0f172ae6);place-content:center;gap:8px;height:120px;font-size:13px;display:grid}.ld-sec-video-stage .anticon{font-size:28px}.ld-sec-video-meta{gap:4px;padding:10px 12px 12px;display:grid}.ld-sec-video-meta strong{color:#f1f5f9;font-size:14px}.ld-sec-video-meta em{color:var(--ld-muted);font-size:12px;font-style:normal}.ld-sec-door-grid{grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:10px;display:grid}.ld-sec-door-card{border:1px solid var(--ld-border);color:inherit;text-align:left;background:#08142466;border-radius:12px;align-items:center;gap:10px;padding:10px 12px;display:flex}.ld-sec-door-card:hover{border-color:#f472b673}.ld-sec-door-card.is-bad{border-color:#fb923c73}.ld-sec-door-card .anticon{color:#f9a8d4;font-size:20px}.ld-sec-door-card strong{color:#f1f5f9;display:block}.ld-sec-door-card em{color:var(--ld-muted);font-size:12px;font-style:normal}.ld-sec-door-card .ant-tag{margin-inline-start:auto}.ld-sec-door-card .ld-sec-del{flex:none}@media (width<=900px){.ld-sec-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}}.ld-pscreen{--ps-bg:#020817;--ps-panel:#081930eb;--ps-line:#38bdf847;--ps-cyan:#67e8f9;box-sizing:border-box;background:radial-gradient(1000px 420px at 20% -10%, #0e749047, transparent 55%), radial-gradient(800px 360px at 90% 10%, #2563eb2e, transparent 50%), linear-gradient(180deg, #031022 0%, var(--ps-bg) 55%, #01050d 100%);color:#e2e8f0;flex-direction:column;gap:6px;height:100vh;min-height:100vh;padding:6px 10px 8px;display:flex;overflow:hidden}.ld-pscreen-empty{text-align:center;color:#94a3b8;margin:auto}.ld-pscreen-empty button{border:1px solid var(--ps-line);color:#e0f2fe;cursor:pointer;background:#0c4a6e;border-radius:8px;margin-top:12px;padding:8px 16px}.ld-pscreen-head{flex:none;align-items:center;gap:14px;min-height:48px;padding:0 4px 0 2px;display:flex}.ld-pscreen-brand{align-items:center;gap:10px;min-width:0;display:flex}.ld-pscreen-brand-mark{color:#ecfeff;letter-spacing:.02em;background:linear-gradient(145deg,#67e8f973,#0e74908c),#0c4a6e;border:1px solid #7dd3fc73;border-radius:10px;flex:none;place-items:center;width:36px;height:36px;font-size:16px;font-weight:800;display:grid;box-shadow:0 0 18px #38bdf840}.ld-pscreen-brand .anticon{color:var(--ps-cyan);font-size:22px}.ld-pscreen-brand strong{letter-spacing:.04em;color:#f0f9ff;font-size:20px;line-height:1.2;display:block}.ld-pscreen-brand span{color:#7dd3fc;opacity:.85;font-size:12px;display:block}.ld-pscreen-head-right{flex:none;align-items:center;gap:10px;margin-left:auto;display:flex}.ld-pscreen-status{border:1px solid #0000;border-radius:999px;margin-left:8px;padding:4px 12px;font-size:12px;font-weight:650}.ld-pscreen-status.ok{color:#86efac;background:#16653459;border-color:#4ade8059}.ld-pscreen-status.warn{color:#fde68a;background:#78350f66;border-color:#fbbf2466}.ld-pscreen-status.bad{color:#fecaca;background:#7f1d1d66;border-color:#f8717166}.ld-pscreen-clock{color:#bae6fd;letter-spacing:.04em;font-family:JetBrains Mono,ui-monospace,monospace;font-size:14px}.ld-pscreen-back{border:1px solid var(--ps-line);color:#e0f2fe;cursor:pointer;background:#0e749040;border-radius:8px;align-items:center;gap:6px;padding:7px 12px;font-size:13px;display:inline-flex}.ld-pscreen-back:hover{background:#0e749073}.ld-pscreen-kpis{flex-wrap:nowrap;flex:none;gap:8px;display:flex;overflow:hidden}.ld-pscreen-kpi{--kpi-accent:#67e8f9;border:1px solid color-mix(in srgb, var(--kpi-accent) 35%, transparent);background:radial-gradient(120% 80% at 100% 0%, color-mix(in srgb, var(--kpi-accent) 18%, transparent), transparent 55%), linear-gradient(145deg, #0e749033, transparent 48%), linear-gradient(180deg, #082f49f0, #020c1bfa);border-radius:12px;flex:1 1 0;min-width:0;padding:10px 12px 11px 14px;position:relative;overflow:hidden;box-shadow:inset 0 1px #7dd3fc24,0 8px 20px #02081452}.ld-pscreen-kpi:before{content:"";background:color-mix(in srgb, var(--kpi-accent) 12%, transparent);filter:blur(2px);border-radius:50%;width:64px;height:64px;position:absolute;top:-22px;right:-18px}.ld-pscreen-kpi:after{content:"";background:linear-gradient(180deg, var(--kpi-accent), color-mix(in srgb, var(--kpi-accent) 40%, #0284c7));opacity:.95;width:3px;position:absolute;top:0;bottom:0;left:0}.ld-pscreen-kpi.tone-cyan{--kpi-accent:#67e8f9}.ld-pscreen-kpi.tone-blue{--kpi-accent:#60a5fa}.ld-pscreen-kpi.tone-green{--kpi-accent:#4ade80}.ld-pscreen-kpi.tone-orange{--kpi-accent:#fb923c}.ld-pscreen-kpi em{color:color-mix(in srgb, var(--kpi-accent) 75%, #94a3b8);white-space:nowrap;text-overflow:ellipsis;letter-spacing:.04em;margin-bottom:3px;padding-left:4px;font-size:11px;font-style:normal;display:block;overflow:hidden}.ld-pscreen-kpi b{color:#f8fafc;font-variant-numeric:tabular-nums;white-space:nowrap;text-overflow:ellipsis;text-shadow:0 0 18px color-mix(in srgb, var(--kpi-accent) 35%, transparent);padding-left:4px;font-family:JetBrains Mono,ui-monospace,monospace;font-size:20px;font-weight:750;line-height:1.15;display:block;overflow:hidden}.ld-pscreen-kpi i{color:#94a3b8;margin-left:4px;font-family:inherit;font-size:11px;font-style:normal;font-weight:500}.ld-pscreen-menubar{background:linear-gradient(90deg,#082f498c,#020c1bb8),#020c1b8c;border:1px solid #38bdf838;border-radius:12px;flex:none;align-items:center;gap:12px;min-height:44px;padding:4px 6px 4px 4px;display:flex;box-shadow:inset 0 1px #7dd3fc14}.ld-pscreen-subnav{background:0 0;border:none;flex:1;align-items:center;gap:2px;min-width:0;margin:0;padding:0;display:flex;overflow-x:auto}.ld-pscreen-subnav-slot{flex:none;align-items:center;display:inline-flex}.ld-pscreen-subnav-divider{background:linear-gradient(#0000,#7dd3fc73,#0000);width:1px;height:28px;margin:0 8px;display:inline-block}.ld-pscreen-subnav-item{color:#94a3b8;cursor:pointer;white-space:nowrap;background:0 0;border:1px solid #0000;border-radius:10px;align-items:center;gap:8px;padding:8px 14px;font-size:13px;transition:color .15s,background .15s,border-color .15s,box-shadow .15s,transform .15s;display:inline-flex;position:relative}.ld-pscreen-subnav-item.group-aux .ico{background:#a78bfa1f}.ld-pscreen-subnav-item .ico{width:26px;height:26px;color:inherit;background:#94a3b81a;border-radius:8px;place-items:center;display:grid}.ld-pscreen-subnav-item .anticon{font-size:14px}.ld-pscreen-subnav-item em{color:#7dd3fc;background:#38bdf82e;border-radius:999px;min-width:18px;padding:0 6px;font-size:11px;font-style:normal}.ld-pscreen-subnav-item:hover{color:#e0f2fe;background:#0e749038;border-color:#38bdf833}.ld-pscreen-subnav-item:hover .ico{color:#67e8f9;background:#38bdf82e}.ld-pscreen-subnav-item.active{color:#f0f9ff;background:linear-gradient(#0e74908c,#082f49e6);border-color:#67e8f966;box-shadow:0 0 0 1px #67e8f91f,0 6px 16px #082f4973}.ld-pscreen-subnav-item.active .ico{color:#ecfeff;background:linear-gradient(145deg,#67e8f959,#0e749073);box-shadow:0 0 12px #38bdf859}.ld-pscreen-subnav-item.active em{color:#fdba74;background:#fb923c40}.ld-pscreen-subnav-item.group-aux.active{background:linear-gradient(#5b21b659,#1e1b4bd9);border-color:#a78bfa73}.ld-pscreen-video-grid{flex:1;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;min-height:0;padding:12px;display:grid;overflow:auto}.ld-pscreen-video-card{width:100%;min-height:180px;color:inherit;cursor:pointer;text-align:left;font:inherit;background:#020c1b8c;border:1px solid #38bdf838;border-radius:12px;flex-direction:column;padding:0;display:flex;overflow:hidden}.ld-pscreen-video-card.is-off{opacity:.55}.ld-pscreen-video-stage{color:#7dd3fc;background:radial-gradient(circle at 30% 20%,#38bdf82e,#0000 50%),linear-gradient(160deg,#0b1a2e,#071018);flex:1;place-items:center;gap:8px;min-height:120px;font-size:13px;display:grid}.ld-pscreen-video-stage .anticon{font-size:28px}.ld-pscreen-video-meta{border-top:1px solid #38bdf81f;padding:10px 12px}.ld-pscreen-video-meta strong{color:#e0f2fe;font-size:13px;display:block}.ld-pscreen-video-meta em{color:#64748b;margin-top:2px;font-size:12px;font-style:normal;display:block}.ld-pscreen-access-summary{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;padding:12px 12px 0;display:grid}.ld-pscreen-access-summary>div{background:#020c1b80;border:1px solid #38bdf82e;border-radius:10px;padding:10px 12px}.ld-pscreen-access-summary em{color:#7dd3fc;margin-bottom:4px;font-size:11px;font-style:normal;display:block}.ld-pscreen-access-summary b{color:#e2e8f0;font-size:14px}.ld-pscreen-access-summary b.ok{color:#86efac}.ld-pscreen-access-summary b.warn{color:#fbbf24}.ld-pscreen-access-list{flex:1;min-height:0;margin:0;padding:12px;list-style:none;overflow:auto}.ld-pscreen-access-list li{color:#94a3b8;background:#020c1b73;border:1px solid #38bdf81f;border-radius:10px;align-items:center;gap:10px;margin-bottom:6px;padding:10px 12px;display:flex}.ld-pscreen-access-list li.is-bad{border-color:#f8717159}.ld-pscreen-access-list strong{color:#e2e8f0;font-size:13px;display:block}.ld-pscreen-access-list em{color:#64748b;margin-top:2px;font-size:11px;font-style:normal;display:block}.ld-pscreen-access-list span{color:#86efac;margin-left:auto;font-size:12px}.ld-pscreen-access-list li.is-bad span{color:#fca5a5}.ld-pscreen-aux{min-height:0}.ld-pscreen-archive-body{flex:1;min-height:0;padding:12px 16px 20px;overflow:auto}.ld-pscreen-archive-body .ld-section-title{margin-top:0}.ld-pscreen-subnav-item.group-info .ico{background:#7dd3fc1f}.ld-pscreen-hint{color:#64748b;white-space:nowrap;flex:none;margin-left:auto;padding-right:4px;font-size:12px}.ld-pscreen-main{flex:1;min-height:0;display:flex}.ld-pscreen-panel.is-full{flex:1;width:100%;min-height:0}.ld-pscreen-topo.is-full .ld-pscreen-panel-title{padding:6px 12px}.ld-pscreen-topo.is-bleed{border-radius:12px}.ld-pscreen-topo.is-full .ld-pscreen-topo-body{flex-direction:column;flex:1;height:100%;min-height:0;display:flex}.ld-pscreen-topo.is-full .ld-scada.is-embedded,.ld-pscreen-topo.is-full .ld-scada-design.is-view-only{flex:1;height:100%;min-height:0}.ld-pscreen-topo.is-full .ld-scada.is-embedded .ld-scada-canvas,.ld-pscreen-topo.is-full .ld-scada.is-embedded .ld-scada-svg{height:100%;min-height:0;max-height:none}.ld-pscreen-topo.is-full .ld-scada-svg{width:100%;height:100%}.ld-pscreen-topo.is-full .ld-scada-design.is-view-only .ld-scada-design-stage,.ld-pscreen-topo.is-full .ld-scada-design.is-view-only .ld-scada-design-bg,.ld-pscreen-topo.is-full .ld-scada-design.is-view-only .ld-scada-design-main{height:100%;min-height:0}.ld-pscreen-topo.is-full .ld-scada-design.is-view-only .ld-scada-bg-img,.ld-pscreen-topo.is-full .ld-scada-design.is-view-only .ld-scada-dxf{object-fit:contain;width:100%;height:100%;min-height:0}.ld-pscreen-device-list.is-grid{grid-template-columns:repeat(auto-fill,minmax(260px,1fr));align-content:start;gap:8px;padding:12px;display:grid}.ld-pscreen-device-list.is-grid>li{margin:0}.ld-pscreen-device-list.is-grid .ld-pscreen-device-row{height:100%;margin:0}.ld-pscreen-alarm-list.is-wide{padding:12px 16px}.ld-pscreen-alarm-list.is-wide li{align-items:center}.ld-pscreen-alarm-go{color:#7dd3fc;cursor:pointer;background:#0e749033;border:1px solid #38bdf859;border-radius:6px;flex:none;margin-left:auto;padding:4px 10px;font-size:12px}.ld-pscreen-back.ghost{color:#cbd5e1;background:0 0;border-color:#94a3b859}.ld-pscreen-body{flex:1;grid-template-columns:minmax(0,1.55fr) minmax(300px,.85fr);gap:10px;min-height:0;display:grid}.ld-pscreen-body--ops{grid-template-columns:minmax(0,1.7fr) minmax(280px,.75fr)}.ld-pscreen-devices{min-height:0}.ld-pscreen-device-list{flex:1;min-height:0;margin:0;padding:8px;list-style:none;overflow:auto}.ld-pscreen-device-row{width:100%;color:inherit;text-align:left;cursor:pointer;background:#020c1b73;border:1px solid #38bdf824;border-radius:10px;grid-template-rows:auto auto;grid-template-columns:1fr auto;gap:2px 10px;margin-bottom:6px;padding:10px;display:grid}.ld-pscreen-device-row:hover,.ld-pscreen-device-row.active{background:#082f498c;border-color:#67e8f98c}.ld-pscreen-device-row.abnormal{border-color:#fb923c73}.ld-pscreen-device-main{grid-column:1;min-width:0}.ld-pscreen-device-main strong{color:#f1f5f9;white-space:nowrap;text-overflow:ellipsis;font-size:13px;display:block;overflow:hidden}.ld-pscreen-device-main em{color:#64748b;margin-top:2px;font-size:11px;font-style:normal;display:block}.ld-pscreen-device-row .st{border-radius:999px;grid-area:1/2;align-self:start;padding:2px 8px;font-size:11px}.ld-pscreen-device-row .st.ok{color:#86efac;background:#16653459}.ld-pscreen-device-row .st.warn{color:#fde68a;background:#78350f66}.ld-pscreen-device-row .st.bad{color:#fecaca;background:#7f1d1d66}.ld-pscreen-device-metric{color:#7dd3fc;font-variant-numeric:tabular-nums;grid-column:1/-1;font-size:12px}.ld-pscreen-device-foot{color:#64748b;border-top:1px solid #38bdf81f;flex:none;justify-content:space-between;align-items:center;gap:8px;padding:8px 12px 10px;font-size:12px;display:flex}.ld-pscreen-device-foot button{color:#fdba74;cursor:pointer;background:#78350f40;border:1px solid #fb923c66;border-radius:999px;padding:2px 10px;font-size:12px}.ld-pscreen-panel{border:1px solid var(--ps-line);background:var(--ps-panel);border-radius:12px;flex-direction:column;min-height:0;display:flex;overflow:hidden;box-shadow:inset 0 1px #7dd3fc14}.ld-pscreen-panel-title{border-bottom:1px solid #38bdf826;flex:none;justify-content:space-between;align-items:baseline;gap:8px;padding:10px 12px 8px;display:flex}.ld-pscreen-panel-title span{color:#e0f2fe;font-size:14px;font-weight:650}.ld-pscreen-panel-title small{color:#64748b;font-size:11px}.ld-pscreen-topo-body{flex:1;min-height:0;position:relative;overflow:hidden}.ld-pscreen-topo-body .ld-scada{background:0 0;border:none;border-radius:0;height:100%}.ld-pscreen-topo-body .ld-scada-toolbar{padding:6px 10px}.ld-pscreen-topo-body .ld-scada-body{min-height:0}.ld-pscreen-topo-fallback{color:#94a3b8;padding:20px;font-size:13px}.ld-pscreen-topo-fallback ul{color:#cbd5e1;margin-top:12px;padding-left:18px}.ld-pscreen-right{grid-template-rows:minmax(0,1.35fr) minmax(0,.85fr);gap:10px;min-height:0;display:grid}.ld-pscreen-3d-stage{perspective:900px;background:radial-gradient(at 50% 80%,#38bdf82e,#0000 55%),linear-gradient(#0b1a2e 0%,#07101d 100%);border:1px solid #38bdf82e;border-radius:10px;flex:1;min-height:180px;margin:8px 12px 0;position:relative;overflow:hidden}.ld-pscreen-3d-floor{background:linear-gradient(#0e749026,#02081433);border:1px solid #38bdf81f;border-radius:8px;height:42%;position:absolute;bottom:18%;left:8%;right:8%;transform:rotateX(68deg)}.ld-pscreen-3d-scene{transform-style:preserve-3d;justify-content:center;align-items:flex-end;gap:14px;padding:24px 16px 40px;animation:18s linear infinite ld-pscreen-orbit;display:flex;position:absolute;inset:0}@keyframes ld-pscreen-orbit{0%,to{transform:rotateX(12deg)rotateY(-8deg)translateY(0)}50%{transform:rotateX(14deg)rotateY(8deg)translateY(-4px)}}.ld-pscreen-3d-item{--i:0;cursor:pointer;width:48px;height:72px;transform-style:preserve-3d;transform:translateZ(calc(var(--i) * 2px));color:#e0f2fe;background:0 0;border:none;padding:0;position:relative}.ld-pscreen-3d-item.kind-xfmr{width:56px;height:64px}.ld-pscreen-3d-item.kind-box{width:40px;height:48px}.ld-pscreen-3d-item .face{background:linear-gradient(160deg,#38bdf859,#0f172aeb);border:1px solid #7dd3fc73;border-radius:4px;position:absolute;inset:0;box-shadow:inset 0 0 12px #38bdf833}.ld-pscreen-3d-item .face.side{transform-origin:0;background:linear-gradient(#0e74908c,#020c1bf2);width:18px;left:auto;right:-17px;transform:rotateY(90deg)}.ld-pscreen-3d-item .face.top{transform-origin:bottom;background:linear-gradient(90deg,#67e8f959,#0e749080);height:18px;top:-17px;transform:rotateX(90deg)}.ld-pscreen-3d-item.kind-xfmr .face.front{background:linear-gradient(#fbbf2473,#1e293bf2);border-color:#fbbf248c;border-radius:50%/12%}.ld-pscreen-3d-item em{white-space:nowrap;color:#94a3b8;text-shadow:0 1px 2px #000;text-overflow:ellipsis;max-width:72px;font-size:10px;font-style:normal;position:absolute;bottom:-18px;left:50%;overflow:hidden;transform:translate(-50%)}.ld-pscreen-3d-item.active .face{border-color:#67e8f9;box-shadow:0 0 16px #38bdf88c,inset 0 0 14px #38bdf859}.ld-pscreen-3d-item.active em{color:#e0f2fe;font-weight:650}.ld-pscreen-3d-item.abnormal .face.front{border-color:#fb923ccc;box-shadow:0 0 14px #fb923c73}.ld-pscreen-3d-hint{color:#64748b;font-size:11px;position:absolute;bottom:8px;left:10px}.ld-pscreen-device-metrics{flex:none;padding:10px 12px 12px}.ld-pscreen-device-name{justify-content:space-between;align-items:center;gap:8px;margin-bottom:8px;display:flex}.ld-pscreen-device-name strong{color:#f1f5f9;font-size:13px}.ld-pscreen-device-name span{border-radius:999px;padding:2px 8px;font-size:11px}.ld-pscreen-device-name span.ok{color:#86efac;background:#16653459}.ld-pscreen-device-name span.warn{color:#fde68a;background:#78350f66}.ld-pscreen-device-name span.bad{color:#fecaca;background:#7f1d1d66}.ld-pscreen-device-grid{grid-template-columns:1fr 1fr;gap:6px;display:grid}.ld-pscreen-device-grid>div{background:#020c1b8c;border:1px solid #38bdf81f;border-radius:6px;padding:6px 8px}.ld-pscreen-device-grid em{color:#64748b;font-size:11px;font-style:normal;display:block}.ld-pscreen-device-grid b{color:#e0f2fe;font-variant-numeric:tabular-nums;font-size:14px}.ld-pscreen-link{color:#7dd3fc;cursor:pointer;background:#0e749033;border:1px solid #38bdf859;border-radius:8px;width:100%;margin-top:10px;padding:7px 10px;font-size:12px}.ld-pscreen-link:hover{color:#e0f2fe;background:#0e749066}.ld-pscreen-alarm-list{flex:1;min-height:0;margin:0;padding:8px 10px 12px;list-style:none;overflow:auto}.ld-pscreen-alarm-list li{background:#020c1b73;border:1px solid #38bdf81a;border-radius:8px;gap:8px;margin-bottom:6px;padding:8px;display:flex}.ld-pscreen-alarm-list li.empty{color:#64748b;border-style:dashed;justify-content:center}.ld-pscreen-alarm-list .lv{color:#fde68a;background:#78350f73;border-radius:4px;flex:none;align-self:flex-start;padding:2px 6px;font-size:11px}.ld-pscreen-alarm-list .lv.urgent{color:#fecaca;background:#7f1d1d80}.ld-pscreen-alarm-list strong{color:#e2e8f0;font-size:12px;font-weight:600;display:block}.ld-pscreen-alarm-list em{color:#64748b;margin-top:2px;font-size:11px;font-style:normal;display:block}.ld-pscreen-cta{align-items:center;gap:6px;display:inline-flex}@media (width<=1200px){.ld-pscreen-kpis{flex-wrap:nowrap}.ld-pscreen-kpi b{font-size:15px}.ld-pscreen-hint{display:none}}.ld-scada{background:radial-gradient(circle at 12% 0,#38bdf81f,#0000 40%),linear-gradient(#081224fa,#040a16fa);border:1px solid #38bdf847;border-radius:14px;margin-bottom:16px;overflow:hidden}.ld-scada.is-embedded{background:radial-gradient(circle at 18% 0,#38bdf81a,#0000 42%),linear-gradient(#040e1cfa,#020812fc);border:none;border-radius:0;flex-direction:column;height:100%;margin:0;display:flex}.ld-scada.is-embedded .ld-scada-toolbar{background:#020c1bb8;flex:none;padding:5px 12px}.ld-scada.is-embedded .ld-scada-toolbar-left strong{font-size:13px}.ld-scada.is-embedded .ld-scada-body{flex-direction:column;flex:1;grid-template-columns:1fr;height:100%;min-height:0;display:flex}.ld-scada.is-embedded .ld-scada-canvas{flex-direction:column;flex:1;height:100%;min-height:0;padding:2px 4px 4px;display:flex;overflow:hidden}.ld-scada.is-embedded .ld-scada-svg{flex:1;width:100%;height:100%;min-height:0}.ld-scada-hot:hover rect,.ld-scada-hot:hover circle{filter:drop-shadow(0 0 6px #38bdf8a6)}.ld-scada.is-full{z-index:1100;border:none;border-radius:0;margin:0;position:fixed;inset:56px 0 0}.ld-scada-toolbar{background:#020c1b8c;border-bottom:1px solid #94a3b82e;justify-content:space-between;align-items:center;gap:12px;padding:12px 14px;display:flex}.ld-scada-toolbar-left,.ld-scada-toolbar-right{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.ld-scada-toolbar-left strong{color:#f1f5f9;font-size:15px}.ld-scada-full-btn{color:#e2e8f0;cursor:pointer;background:#94a3b81a;border:1px solid #94a3b84d;border-radius:8px;align-items:center;gap:6px;height:32px;padding:0 12px;font-size:12px;display:inline-flex}.ld-scada-full-btn:hover{color:#67e8f9;border-color:#38bdf88c}.ld-scada-body{grid-template-columns:1fr 240px;min-height:520px;display:grid}.ld-scada.is-full .ld-scada-body{height:calc(100vh - 113px)}.ld-scada-canvas{background:linear-gradient(#0f172a59,#02081433),repeating-linear-gradient(0deg,#0000,#0000 49px,#33415540 49px 50px),repeating-linear-gradient(90deg,#0000,#0000 49px,#33415540 49px 50px);padding:8px;position:relative;overflow:auto}.ld-scada-svg{width:100%;height:auto;min-height:480px;display:block}.ld-scada.is-full .ld-scada-svg{height:100%;min-height:0}.ld-scada-title{fill:#f8fafc;font-size:16px;font-weight:700}.ld-scada-sub{fill:#94a3b8;font-size:12px}.ld-scada-label{fill:#cbd5e1;font-size:11px}.ld-scada-value{fill:#67e8f9;font-family:JetBrains Mono,DIN Alternate,monospace;font-size:11px}.ld-scada-bus-text{fill:#e0f2fe;font-size:11px;font-weight:700}.ld-scada-legend{fill:#94a3b8;font-size:11px}.ld-scada-panel-line{fill:#cbd5e1;font-size:12px}.ld-scada-pulse{animation:1.4s ease-in-out infinite ld-scada-blink}.ld-scada-flow-base{fill:none;stroke:#475569;stroke-width:2.5px;stroke-linecap:round}.ld-scada-flow-base.is-live{stroke:#38bdf873}.ld-scada-flow-anim{fill:none;stroke:#67e8f9;stroke-width:2.2px;stroke-linecap:round;stroke-dasharray:7 11;filter:drop-shadow(0 0 5px #67e8f9a6);pointer-events:none;animation:.9s linear infinite ld-scada-current-flow}.ld-scada-flow-anim.is-bus{stroke:#38bdf8;stroke-width:3.5px;stroke-dasharray:10 14;animation-duration:1.4s}.ld-scada-flow-anim.is-lv{stroke:#22d3ee;animation-duration:1.1s}.ld-scada-flow-anim.is-slow{animation-duration:1.6s}@keyframes ld-scada-current-flow{to{stroke-dashoffset:-18px}}@keyframes ld-scada-blink{0%,to{opacity:1}50%{opacity:.45}}.ld-scada-side{background:#020c1bb8;border-left:1px solid #94a3b82e;flex-direction:column;gap:10px;padding:12px;display:flex}.ld-scada-side-title{color:#e2e8f0;font-size:13px;font-weight:700}.ld-scada-points{flex:1;gap:8px;display:grid;overflow:auto}.ld-scada-point{color:#94a3b8;background:#0f172aa6;border:1px solid #94a3b829;border-radius:8px;justify-content:space-between;gap:8px;padding:8px 10px;font-size:12px;display:flex}.ld-scada-point b{color:#f1f5f9;font-family:JetBrains Mono,DIN Alternate,monospace;font-weight:700}.ld-scada-point b i{color:#64748b;margin-left:3px;font-style:normal;font-weight:500}.ld-scada-point.tone-warn{border-color:#eab30873}.ld-scada-point.tone-warn b{color:#fbbf24}.ld-scada-point.tone-bad{border-color:#ef444473}.ld-scada-point.tone-bad b{color:#f87171}.ld-scada-hint{color:#64748b;border-top:1px solid #94a3b824;padding-top:4px;font-size:11px;line-height:1.5}@media (width<=1100px){.ld-scada-body{grid-template-columns:1fr}.ld-scada-side{border-top:1px solid #94a3b82e;border-left:none}}.ld-scada-hub{flex-direction:column;min-height:calc(100vh - 56px);padding-top:12px;padding-bottom:12px;display:flex}.ld-scada-hub-bar{border-bottom:1px solid #38bdf81f;flex:none;justify-content:space-between;align-items:center;gap:12px;margin-bottom:10px;padding-bottom:10px;display:flex}.ld-scada-hub-title{color:#f1f5f9;font-size:18px;font-weight:650}.ld-scada-hub-label{color:#94a3b8;font-size:13px}.ld-scada-hub .ld-scada-design{flex-direction:column;flex:1;min-height:0;margin-bottom:0;display:flex}.ld-scada-design-body{flex:1;min-height:calc(100vh - 170px);display:block;position:relative;overflow:hidden}.ld-scada-design.is-view-only{background:0 0;border:none;border-radius:0;flex-direction:column;height:100%;margin:0;display:flex}.ld-scada-design.is-view-only .ld-scada-design-body,.ld-scada-design.is-view-only .ld-scada-design-body.is-view-only-body{flex:1;height:100%;min-height:0;display:block}.ld-scada-design.is-view-only .ld-scada-design-main{justify-content:stretch;align-items:stretch;height:100%;min-height:0;padding:0;display:flex;overflow:auto}.ld-scada-design.is-view-only .ld-scada-design-stage{width:100%;min-width:0;height:100%;min-height:0;box-shadow:none;border:none;flex:1;display:block;position:relative}.ld-scada-design.is-view-only .ld-scada-design-bg,.ld-scada-design.is-view-only .ld-scada-dxf,.ld-scada-design.is-view-only .ld-scada-bg-img{object-fit:contain;width:100%;min-width:0;height:100%;min-height:0}.ld-pscreen-topo-body .ld-scada-design.is-view-only{height:100%;min-height:100%}.ld-scada-design-body.has-var-panel{grid-template-columns:1fr 300px;display:grid;overflow:hidden}.ld-scada-var-panel{background:#020c1beb;border-left:1px solid #94a3b833;min-height:0;max-height:calc(100vh - 170px);padding:12px;overflow:auto}.ld-scada-design.is-canvas-full .ld-scada-var-panel{max-height:calc(100vh - 52px)}.ld-scada-var-list{flex-direction:column;gap:6px;margin:0;padding:0;list-style:none;display:flex}.ld-scada-var-item{color:#e2e8f0;cursor:pointer;text-align:left;background:#0f172a8c;border:1px solid #94a3b82e;border-radius:8px;justify-content:space-between;align-items:center;gap:8px;width:100%;padding:8px 10px;display:flex}.ld-scada-var-item strong{font-size:12px;display:block}.ld-scada-var-item small{color:#64748b;margin-top:2px;font-size:11px;display:block}.ld-scada-var-item:hover{border-color:#38bdf873}.ld-scada-var-item.is-used{background:#16653438;border-color:#22c55e8c;box-shadow:inset 3px 0 #22c55e}.ld-scada-var-item.is-active{border-color:#a855f7a6;box-shadow:inset 3px 0 #a855f7}.ld-scada-lib-page .ld-scada-lib-grid{grid-template-columns:1fr 1.2fr;gap:16px;display:grid}.ld-scada-lib-page .ld-scada-lib-grid--3{grid-template-columns:1fr 1fr 1.1fr}.ld-gb-asset-card{background:#0f172a8c;border:1px solid #94a3b82e;border-radius:10px;grid-template-columns:120px 1fr;gap:10px;padding:10px;display:grid}.ld-gb-asset-preview{cursor:pointer;background:#0b1220;border:none;border-radius:8px;width:120px;height:88px;margin:0;padding:0;display:block;overflow:hidden}.ld-gb-asset-svg{width:100%;height:100%;display:block}.ld-gb-asset-svg svg{max-width:100%;max-height:100%;width:100%!important;height:100%!important}.ld-gb-asset-dxf{color:#94a3b8;flex-direction:column;justify-content:center;align-items:center;gap:4px;height:100%;display:flex}.ld-gb-asset-dxf em{letter-spacing:.08em;font-size:12px;font-style:normal}.ld-gb-asset-meta{flex-direction:column;gap:6px;min-width:0;display:flex}.ld-gb-asset-meta strong{color:#e2e8f0;text-overflow:ellipsis;white-space:nowrap;font-size:13px;overflow:hidden}.ld-gb-asset-meta>span{color:#64748b;font-size:12px}.ld-scada-lib-section{padding:16px}.ld-scada-lib-section h3{color:#f1f5f9;margin:0 0 6px;font-size:16px}.ld-gb-tpl-list--page{margin-top:12px}.ld-gb-sym-grid--page{grid-template-columns:repeat(4,1fr)}@media (width<=1100px){.ld-scada-design-body.has-var-panel{grid-template-columns:1fr}.ld-scada-var-panel{border-top:1px solid #94a3b833;border-left:none;max-height:40vh}.ld-scada-lib-page .ld-scada-lib-grid,.ld-scada-lib-page .ld-scada-lib-grid--3{grid-template-columns:1fr}.ld-gb-sym-grid--page{grid-template-columns:repeat(3,1fr)}}.ld-scada-design.is-canvas-full{z-index:1200;background:#071018;border:none;border-radius:0;margin:0;position:fixed;inset:0}.ld-scada-design.is-canvas-full .ld-scada-design-body{height:calc(100vh - 52px);min-height:calc(100vh - 52px)}.ld-scada-drawer-mask{z-index:15;cursor:pointer;background:#02081459;border:none;margin:0;padding:0;position:absolute;inset:0}.ld-gb-guide{background:#fbbf240f;border:1px solid #fbbf2447;border-radius:10px;padding:10px}.ld-gb-guide h4{color:#fbbf24!important}.ld-gb-guide b,.ld-gb-guide strong{color:#e2e8f0;font-weight:650}.ld-gb-steps{color:#94a3b8;margin:8px 0 0;padding-left:18px;font-size:12px;line-height:1.7}.ld-gb-steps li.on{color:#e2e8f0;font-weight:600}.ld-scada-underlay-switch{color:#94a3b8;justify-content:space-between;align-items:center;gap:8px;font-size:12px;display:flex}.ld-scada-underlay{opacity:.28;pointer-events:none;z-index:0;position:absolute;inset:0}.ld-scada-design-bg{position:relative}.ld-scada-extract{z-index:3;cursor:pointer;color:#fde68a;background:#020c1bd1;border:1px dashed #fbbf24a6;border-radius:8px;flex-direction:column;align-items:center;gap:2px;padding:4px 6px;display:flex;position:absolute;transform:translate(-50%,-50%)}.ld-scada-extract.active{border-style:solid;box-shadow:0 0 0 1px #fbbf2473}.ld-scada-extract-preview{place-items:center;height:36px;display:grid}.ld-scada-extract em{text-overflow:ellipsis;white-space:nowrap;max-width:72px;font-size:10px;font-style:normal;overflow:hidden}.ld-gb-tpl-list{flex-direction:column;gap:8px;display:flex}.ld-gb-tpl-card{color:#e2e8f0;text-align:left;cursor:pointer;background:#0f172aa6;border:1px solid #94a3b833;border-radius:10px;flex-direction:column;gap:4px;padding:10px;display:flex}.ld-gb-tpl-card:hover{border-color:#38bdf880}.ld-gb-tpl-card strong{flex-wrap:wrap;align-items:center;gap:2px;font-size:12px;display:flex}.ld-gb-tpl-card span{color:#64748b;font-size:11px;line-height:1.4}.ld-gb-sym-group{margin-top:10px}.ld-gb-sym-cat{color:#94a3b8;margin-bottom:6px;font-size:11px}.ld-gb-sym-grid{grid-template-columns:1fr 1fr;gap:6px;display:grid}.ld-gb-sym-btn{cursor:pointer;color:#cbd5e1;background:#0f172a8c;border:1px solid #94a3b82e;border-radius:8px;flex-direction:column;align-items:center;gap:2px;padding:6px 4px;display:flex}.ld-gb-sym-btn:hover,.ld-gb-sym-btn.active{background:#0e74902e;border-color:#38bdf88c}.ld-gb-sym-preview{place-items:center;height:44px;display:grid}.ld-gb-sym-btn em{color:#94a3b8;text-align:center;font-size:10px;font-style:normal;line-height:1.2}.ld-gb-empty-tpls{flex-wrap:wrap;justify-content:center;gap:8px;margin-top:8px;display:flex}.ld-scada-svg-bg svg{min-height:520px;height:auto!important}@keyframes ld-sym-pulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.45;transform:scale(1.15)}}@keyframes ld-sym-blink{0%,to{opacity:1}50%{opacity:.2}}@keyframes ld-sym-spin{to{transform:rotate(360deg)}}@keyframes ld-sym-flow{to{stroke-dashoffset:-24px}}@keyframes ld-sym-breathe{0%,to{opacity:.55}50%{opacity:1}}@keyframes ld-sym-soc{0%,to{transform:scaleX(.45)}50%{transform:scaleX(1)}}.ld-gb-sym-preview .ld-sym-pulse,.ld-scada-svg-bg .ld-sym-pulse,.ld-gb-sym .ld-sym-pulse{transform-box:fill-box;transform-origin:50%;animation:1.4s ease-in-out infinite ld-sym-pulse}.ld-gb-sym-preview .ld-sym-blink,.ld-scada-svg-bg .ld-sym-blink,.ld-gb-sym .ld-sym-blink{animation:.9s step-end infinite ld-sym-blink}.ld-gb-sym-preview .ld-sym-spin,.ld-scada-svg-bg .ld-sym-spin,.ld-gb-sym .ld-sym-spin{transform-box:fill-box;transform-origin:50%;animation:2.4s linear infinite ld-sym-spin}.ld-gb-sym-preview .ld-sym-flow,.ld-scada-svg-bg .ld-sym-flow,.ld-gb-sym .ld-sym-flow{stroke-dasharray:6 6;animation:.8s linear infinite ld-sym-flow}.ld-gb-sym-preview .ld-sym-breathe,.ld-scada-svg-bg .ld-sym-breathe,.ld-gb-sym .ld-sym-breathe{animation:1.8s ease-in-out infinite ld-sym-breathe}.ld-gb-sym-preview .ld-sym-soc,.ld-scada-svg-bg .ld-sym-soc,.ld-gb-sym .ld-sym-soc{transform-box:fill-box;transform-origin:0;animation:2.2s ease-in-out infinite ld-sym-soc}.ld-scada-design-main{z-index:1;background:linear-gradient(#0f172a59,#02081433),repeating-linear-gradient(0deg,#0000,#0000 19px,#33415559 20px),repeating-linear-gradient(90deg,#0000,#0000 19px,#33415559 20px);width:100%;height:100%;min-height:calc(100vh - 170px);padding:10px;position:relative;overflow:auto}.ld-scada-design.is-canvas-full .ld-scada-design-main{height:calc(100vh - 52px);min-height:calc(100vh - 52px)}.ld-scada-design-empty{color:#94a3b8;place-items:center;min-height:calc(100vh - 220px);display:grid}.ld-scada-design-stage{background:#0b1220;border:1px solid #38bdf840;min-width:720px;min-height:420px;display:inline-block;position:relative;box-shadow:0 12px 40px #02081473}.ld-scada-flow-layer{z-index:1;pointer-events:none;width:100%;height:100%;position:absolute;inset:0;overflow:visible}.ld-scada-flow-item .ld-scada-flow-hit{fill:none;stroke:#0000;stroke-width:10px;pointer-events:stroke;cursor:pointer}.ld-scada-flow-item.is-selected .ld-scada-flow-base{stroke:#fbbf24;stroke-width:3.2px}.ld-scada-flow-vertex{fill:#67e8f9;stroke:#0f172a;stroke-width:.3px;pointer-events:none}.ld-scada-flow-draft-line{fill:none;stroke:#fbbf24;stroke-width:2.2px;stroke-dasharray:4 4;pointer-events:none}.ld-scada-flow-draft-dot{fill:#fbbf24;pointer-events:none}.ld-scada-design-stage .ld-scada-hotspot,.ld-scada-design-stage .ld-scada-extract{z-index:2}.ld-scada-design-stage.is-placing{cursor:crosshair}.ld-scada-design-bg{line-height:0;display:block}.ld-scada-pdf-canvas,.ld-scada-bg-img{max-width:none;display:block}.ld-scada-dxf{background:#071018;min-width:720px;min-height:420px}.ld-scada-dxf svg{width:100%;height:auto;min-height:420px;display:block}.ld-scada-hotspot{cursor:pointer;z-index:2;text-align:left;background:0 0;border:none;width:22px;height:22px;padding:0;position:absolute;transform:translate(-50%,-50%)}.ld-scada-hotspot-dot{border:2px solid #f8fafc;border-radius:50%;width:14px;height:14px;margin:4px auto 0;display:block;box-shadow:0 0 0 2px #0f172a8c,0 0 12px #38bdf88c}.ld-scada-hotspot-live{pointer-events:none;white-space:nowrap;background:#020c1bdb;border:1px solid #38bdf861;border-radius:6px;flex-direction:column;gap:1px;min-width:72px;max-width:120px;padding:4px 7px 5px;display:flex;position:absolute;top:50%;left:18px;transform:translateY(-50%);box-shadow:0 4px 12px #02081459}.ld-scada-hotspot-live strong{color:#e0f2fe;text-overflow:ellipsis;font-size:11px;font-weight:650;overflow:hidden}.ld-scada-hotspot-live i{color:#67e8f9;font-variant-numeric:tabular-nums;font-family:JetBrains Mono,ui-monospace,monospace;font-size:10px;font-style:normal}.ld-scada-hotspot.tone-warn .ld-scada-hotspot-live{border-color:#eab30880}.ld-scada-hotspot.tone-warn .ld-scada-hotspot-live i{color:#fbbf24}.ld-scada-hotspot.tone-bad .ld-scada-hotspot-live{border-color:#ef444480}.ld-scada-hotspot.tone-bad .ld-scada-hotspot-live i{color:#f87171}.ld-scada-hotspot-card{color:#e2e8f0;opacity:0;visibility:hidden;pointer-events:none;z-index:5;background:#020c1bf0;border:1px solid #94a3b847;border-radius:8px;flex-direction:column;gap:2px;min-width:132px;padding:7px 9px;transition:opacity .15s;display:flex;position:absolute;bottom:calc(100% + 8px);left:50%;transform:translate(-50%);box-shadow:0 8px 18px #02081466}.ld-scada-hotspot.is-runtime:hover .ld-scada-hotspot-card,.ld-scada-hotspot.is-runtime:focus-visible .ld-scada-hotspot-card,.ld-scada-design:not(.is-view-only) .ld-scada-hotspot:not(.is-runtime) .ld-scada-hotspot-card,.ld-scada-design.is-view-only .ld-scada-hotspot.is-runtime:hover .ld-scada-hotspot-card{opacity:1;visibility:visible}.ld-scada-hotspot-card strong{font-size:12px;font-weight:650}.ld-scada-hotspot-card em{color:#67e8f9;font-size:11px;font-style:normal}.ld-scada-hotspot-card small{color:#94a3b8;font-size:11px}.ld-scada-hotspot-card small.tip{color:#64748b;border-top:1px solid #94a3b826;margin-top:2px;padding-top:3px}.ld-scada-hotspot.tone-warn .ld-scada-hotspot-card{border-color:#eab3088c}.ld-scada-hotspot.tone-warn .ld-scada-hotspot-card em{color:#fbbf24}.ld-scada-hotspot.tone-bad .ld-scada-hotspot-card{border-color:#ef44448c}.ld-scada-hotspot.tone-bad .ld-scada-hotspot-card em{color:#f87171}.ld-scada-hotspot.active .ld-scada-hotspot-card{border-color:#22d3eebf;box-shadow:0 0 0 1px #22d3ee59,0 8px 18px #02081466}.ld-scada-design-side{z-index:20;background:#020c1bf5;border-left:1px solid #94a3b838;width:min(300px,86vw);padding:12px;transition:transform .2s;position:absolute;top:0;bottom:0;right:0;overflow:auto;transform:translate(105%);box-shadow:-12px 0 32px #00000059}.ld-scada-design-side.is-open{transform:translate(0)}.ld-scada-design.is-compact .ld-scada-design-body{grid-template-columns:1fr 260px;min-height:520px;display:grid}.ld-scada-design.is-compact .ld-scada-design-main{height:auto;min-height:520px}.ld-scada-design.is-compact .ld-scada-design-side{width:auto;box-shadow:none;background:#020c1b8c;max-height:none;position:relative;transform:none}.ld-scada-side-block{margin-bottom:16px}.ld-scada-side-block h4{color:#e2e8f0;margin:0 0 8px;font-size:13px;font-weight:650}.ld-scada-side-hint{color:#64748b;font-size:12px;line-height:1.55}.ld-scada-field{color:#94a3b8;flex-direction:column;gap:6px;margin-bottom:10px;font-size:12px;display:flex}.ld-scada-bind-list,.ld-scada-dev-list{flex-direction:column;gap:6px;margin:0;padding:0;list-style:none;display:flex}.ld-scada-bind-list button{color:#e2e8f0;cursor:pointer;text-align:left;background:#0f172a8c;border:1px solid #94a3b82e;border-radius:8px;justify-content:space-between;align-items:center;gap:8px;width:100%;padding:8px 10px;display:flex}.ld-scada-bind-list button.active,.ld-scada-bind-list button:hover{border-color:#38bdf873}.ld-scada-dev-list li{color:#cbd5e1;border-bottom:1px solid #94a3b81a;align-items:flex-start;gap:8px;padding:6px 0;font-size:12px;display:flex}.ld-scada-dev-list strong{color:#f1f5f9;font-size:12px;display:block}.ld-scada-dev-list small{color:#64748b}.ld-scada-page-ind{color:#94a3b8;font-size:12px}@media (width<=1100px){.ld-scada-design.is-compact .ld-scada-design-body{grid-template-columns:1fr}.ld-scada-design.is-compact .ld-scada-design-side{border-top:1px solid #94a3b82e;border-left:none}}:root{--ld-bg:#080e18;--ld-bg-soft:#0b1320;--ld-panel:#0e1828;--ld-panel-2:#111d30;--ld-panel-3:#152238;--ld-card-bg:linear-gradient(175deg, #111c2ef0 0%, #0b1220f7 100%);--ld-glass-bg:#0e1828ad;--ld-border:#47556947;--ld-border-light:#47556929;--ld-border-accent:#38b2ac52;--ld-border-glow:#38b2ac24;--ld-accent:#38b2ac;--ld-accent-2:#4fd1c5;--ld-warn:#d69e2e;--ld-danger:#e06040;--ld-success:#48bb78;--ld-data-cyan:#4fd1c5;--ld-data-blue:#63b3ed;--ld-data-green:#68d391;--ld-data-amber:#ecc94b;--ld-data-orange:#ed8936;--ld-data-purple:#b794f4;--ld-data-pink:#f687b3;--ld-text:#d4dce8;--ld-text-dim:#89a;--ld-muted:#89a;--ld-text-bright:#f0f4fa;--ld-text-accent:#9ae6e0;--ld-header:#0c1422;--ld-sider:#0a111c;--ld-radius:12px;--ld-radius-sm:8px;--ld-radius-xs:6px;--ld-shadow-card:0 4px 20px #02060e59, 0 1px 3px #02060e40;--ld-shadow-elevated:0 12px 36px #02060e73, 0 2px 6px #02060e4d;--ld-shadow-hover:0 16px 40px #02060e80, 0 2px 8px #02060e59;--ld-transition:.22s cubic-bezier(.4, 0, .2, 1);color:var(--ld-text);background:var(--ld-bg);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-family:Outfit,Noto Sans SC,PingFang SC,Microsoft YaHei,sans-serif}*{box-sizing:border-box}html,body,#root{background:var(--ld-bg);min-height:100%;color:var(--ld-text);margin:0}a{color:inherit;text-decoration:none}.ld-scroll::-webkit-scrollbar{width:5px;height:5px}.ld-scroll::-webkit-scrollbar-thumb{background:#8899aa40;border-radius:999px}.ld-scroll::-webkit-scrollbar-thumb:hover{background:#89a6}.ld-page{background:radial-gradient(ellipse 60% 35% at 0% 0%, #38b2ac0a, transparent 55%), radial-gradient(ellipse 45% 30% at 100% 0%, #63b3ed08, transparent 50%), radial-gradient(ellipse 40% 35% at 50% 100%, #48bb7805, transparent 55%), var(--ld-bg);min-height:100%;padding:18px 20px 24px;position:relative}.ld-page:before{content:"";pointer-events:none;z-index:0;opacity:.6;background-image:linear-gradient(#4755690a 1px,#0000 1px),linear-gradient(90deg,#4755690a 1px,#0000 1px);background-size:52px 52px;position:absolute;inset:0;-webkit-mask-image:radial-gradient(80% 60% at 50% 40%,#000 20%,#0000 70%);mask-image:radial-gradient(80% 60% at 50% 40%,#000 20%,#0000 70%)}.ld-page>*{z-index:1;position:relative}.ld-card{background:var(--ld-card-bg);border:1px solid var(--ld-border);border-radius:var(--ld-radius);box-shadow:inset 0 1px 0 #ffffff08, var(--ld-shadow-card);transition:border-color var(--ld-transition), box-shadow var(--ld-transition), transform var(--ld-transition);padding:16px;position:relative}.ld-card:hover{border-color:var(--ld-border-accent);box-shadow:inset 0 1px 0 #ffffff0a, var(--ld-shadow-hover)}.ld-page-title{border-bottom:1px solid var(--ld-border-light);justify-content:space-between;align-items:center;gap:12px;margin-bottom:18px;padding-bottom:14px;display:flex}.ld-page-title-left{align-items:flex-start;gap:12px;min-width:0;display:flex}.ld-title-icon{width:44px;height:44px;color:var(--ld-accent-2);background:linear-gradient(135deg,#38b2ac1f,#38b2ac0a);border:1px solid #38b2ac38;border-radius:10px;flex:none;place-items:center;font-size:20px;display:grid}.ld-title-icon.hero{vertical-align:-8px;width:36px;height:36px;margin-right:10px;font-size:18px;display:inline-grid}.ld-page-title h2{letter-spacing:.02em;color:var(--ld-text-bright);margin:0;font-size:22px;font-weight:650}.ld-page-title p{color:var(--ld-muted);margin:6px 0 0;font-size:13px}.ld-section-title{justify-content:space-between;align-items:center;gap:10px;margin-bottom:12px;display:flex}.ld-section-title-main{color:var(--ld-text-dim);letter-spacing:.06em;text-transform:uppercase;align-items:center;gap:8px;font-size:13px;font-weight:650;display:inline-flex}.ld-section-icon{width:28px;height:28px;color:var(--icon-color,var(--ld-accent-2));background:color-mix(in srgb, var(--icon-color,var(--ld-accent-2)) 12%, transparent);border:1px solid color-mix(in srgb, var(--icon-color,var(--ld-accent-2)) 25%, transparent);border-radius:7px;place-items:center;font-size:14px;display:grid}.ld-section-extra{flex:none}.ld-stat-card{--stat-color:#63b3ed;border-radius:var(--ld-radius);border:1px solid color-mix(in srgb, var(--stat-color) 20%, #4755694d);background:linear-gradient(170deg, color-mix(in srgb, var(--stat-color) 6%, #0e1828e6), #0b1220f0);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);min-height:92px;transition:transform var(--ld-transition), box-shadow var(--ld-transition), border-color var(--ld-transition);padding:14px 14px 12px;position:relative;overflow:hidden}.ld-stat-card.clickable{cursor:pointer}.ld-stat-card.clickable:focus-visible{outline:2px solid color-mix(in srgb, var(--stat-color) 60%, transparent);outline-offset:2px}.ld-stat-card:hover{box-shadow:var(--ld-shadow-elevated);border-color:color-mix(in srgb, var(--stat-color) 35%, #47556966);transform:translateY(-2px)}.ld-stat-accent{background:linear-gradient(90deg, var(--stat-color), color-mix(in srgb, var(--stat-color) 12%, transparent));opacity:.75;height:1px;transition:opacity var(--ld-transition);position:absolute;top:0;left:0;right:0}.ld-stat-card:hover .ld-stat-accent{opacity:1}.ld-stat-label{color:var(--ld-text-dim);letter-spacing:.06em;text-transform:uppercase;font-size:11px;font-weight:500;position:relative}.ld-stat-value{align-items:baseline;gap:5px;margin-top:6px;display:flex;position:relative}.ld-stat-value .num{color:var(--ld-text-bright);letter-spacing:-.02em;font-family:JetBrains Mono,DIN Alternate,Courier New,monospace;font-size:26px;font-weight:700;line-height:1.1}.ld-stat-value .unit{color:var(--ld-muted);font-size:12px;font-weight:400}.ld-stat-trend{margin-left:4px;font-size:11px;font-weight:700;display:inline-block}.ld-stat-sub{color:var(--ld-muted);margin-top:4px;font-size:11px}.ld-stat-glow{background:radial-gradient(circle, color-mix(in srgb, var(--stat-color) 20%, transparent), transparent 70%);pointer-events:none;opacity:.5;border-radius:50%;width:100px;height:100px;position:absolute;top:-32px;right:-28px}.ld-stat-card.compact{border-radius:var(--ld-radius-sm);min-height:58px;padding:8px 10px}.ld-stat-card.compact .ld-stat-head{margin-bottom:0}.ld-stat-card.compact .ld-stat-label{font-size:10px}.ld-stat-card.compact .ld-stat-value{margin-top:2px}.ld-stat-card.compact .ld-stat-value .num{font-size:18px}.ld-stat-card.compact .ld-stat-value .unit{font-size:10px}.ld-stat-card.compact .ld-stat-glow{width:60px;height:60px;top:-20px;right:-16px}.ld-stat-card.compact .ld-stat-icon{border-radius:6px;width:22px;height:22px;font-size:12px}.ld-stat-card.compact .ld-stat-bar{height:1px}.ld-stat-head{justify-content:space-between;align-items:center;gap:8px;display:flex}.ld-stat-icon{background:color-mix(in srgb, var(--stat-color) 12%, transparent);border:1px solid color-mix(in srgb, var(--stat-color) 28%, transparent);width:34px;height:34px;color:var(--stat-color);border-radius:8px;place-items:center;font-size:16px;display:grid}.ld-stat-bar{background:linear-gradient(90deg, var(--stat-color), transparent 85%);opacity:.6;height:1px;position:absolute;bottom:0;left:0;right:0}.ld-chart-card{padding:16px 16px 10px;overflow:hidden}.ld-chart-title{--chart-accent:var(--ld-data-cyan);letter-spacing:.06em;color:var(--ld-text-dim);text-transform:uppercase;border-bottom:1px solid var(--ld-border-light);align-items:center;gap:8px;margin-bottom:12px;padding-bottom:8px;font-size:13px;font-weight:650;display:flex}.ld-chart-title:before{content:"";background:var(--chart-accent,var(--ld-data-cyan));border-radius:1px;width:3px;height:14px}.ld-kpi-bar{grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:10px;margin-bottom:16px;display:grid}.ld-kpi-bar-item{--kpi-accent:var(--ld-data-cyan);border-radius:var(--ld-radius);border:1px solid color-mix(in srgb, var(--kpi-accent) 18%, #4755694d);background:linear-gradient(160deg, color-mix(in srgb, var(--kpi-accent) 5%, #0e1828d9), #0b1220e0);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);transition:transform var(--ld-transition), box-shadow var(--ld-transition), border-color var(--ld-transition);flex-direction:column;gap:4px;padding:14px 16px;display:flex;position:relative;overflow:hidden}.ld-kpi-bar-item.clickable{cursor:pointer}.ld-kpi-bar-item:hover{box-shadow:var(--ld-shadow-elevated);border-color:color-mix(in srgb, var(--kpi-accent) 35%, #47556966);transform:translateY(-2px)}.ld-kpi-bar-dot{background:var(--kpi-accent);opacity:.65;border-radius:50%;width:6px;height:6px;animation:3s ease-in-out infinite kpi-dot-pulse;position:absolute;top:10px;right:14px}@keyframes kpi-dot-pulse{0%,to{opacity:.4}50%{opacity:.9}}.ld-kpi-bar-label{color:var(--ld-text-dim);letter-spacing:.06em;text-transform:uppercase;padding-right:16px;font-size:11px;font-weight:500}.ld-kpi-bar-value{align-items:baseline;gap:4px;display:flex}.ld-kpi-bar-value .num{color:var(--ld-text-bright);letter-spacing:-.02em;font-family:JetBrains Mono,DIN Alternate,monospace;font-size:24px;font-weight:700;line-height:1.15}.ld-kpi-bar-value .unit{color:var(--ld-muted);font-size:12px;font-weight:400}.ld-kpi-bar-icon{opacity:.12;color:var(--kpi-accent);pointer-events:none;font-size:28px;position:absolute;bottom:10px;right:10px}.ld-kpi-row{grid-template-columns:repeat(6,minmax(0,1fr));gap:12px;display:grid}.ld-kpi-row--compact{grid-template-columns:repeat(6,minmax(0,1fr));gap:8px;margin-bottom:0}.ld-kpi-row--status{flex:1;min-width:0}.ld-grid{gap:16px;display:grid}.ld-ops-home{flex-direction:column;gap:10px;min-height:calc(100vh - 72px);display:flex}.ld-ops-home-map{flex:1;min-height:calc(100vh - 160px)!important}.ld-ops-home-map .leaflet-container{min-height:calc(100vh - 160px)!important}.ld-ops-toolbar{align-items:stretch;gap:10px;display:flex}.ld-map-shell{border-radius:var(--ld-radius);border:1px solid var(--ld-border);background:radial-gradient(ellipse 55% 40% at 50% 40%, #38b2ac0f, transparent 50%), var(--ld-bg);min-height:calc(100vh - 140px);position:relative;overflow:hidden}.ld-map-canvas{background-image:linear-gradient(#4755690a 1px,#0000 1px),linear-gradient(90deg,#4755690a 1px,#0000 1px);background-size:48px 48px;position:absolute;inset:0}.ld-map-glow{filter:blur(60px);opacity:.25;pointer-events:none;background:radial-gradient(circle,#38b2ac59,#0000 70%);border-radius:50%;width:420px;height:420px;position:absolute;top:28%;left:42%}.ld-sider .ant-layout-sider-children{flex-direction:column;height:100%;display:flex}.ld-sider-brand{border-bottom:1px solid var(--ld-border-light);flex:none;align-items:center;gap:10px;height:56px;padding:0 16px;display:flex}.ld-sider-brand.collapsed{justify-content:center;padding:0}.ld-sider-logo{color:#e6fffa;background:linear-gradient(135deg,#319795,#2c7a7b);border-radius:9px;flex:none;place-items:center;width:34px;height:34px;font-size:15px;font-weight:800;display:grid;overflow:hidden}.ld-sider-logo.has-img{background:var(--ld-panel);color:#0000;border:1px solid #8899aa40;padding:0}.ld-sider-logo img{object-fit:cover;width:100%;height:100%;display:block}.ld-sider-brand-text{flex-direction:column;min-width:0;line-height:1.2;display:flex}.ld-sider-brand-text strong{letter-spacing:.06em;color:var(--ld-text-bright);font-size:15px}.ld-sider-brand-text span{color:var(--ld-muted);margin-top:2px;font-size:11px}.ld-sider-menu-wrap{flex:1;padding:8px 0 16px;overflow:auto}.ld-sider .ant-menu-dark.ant-menu-inline .ant-menu-sub.ant-menu-inline{background:#080e1859!important}.ld-sider .ant-menu-item-selected{background:linear-gradient(90deg,#38b2ac29,#38b2ac0a)!important}.ld-app-header{border-bottom:1px solid var(--ld-border-light);z-index:20;align-items:center;gap:12px;position:sticky;top:0;background:linear-gradient(#0c1422 0%,#0a111c 100%)!important;height:56px!important;padding:0 12px 0 16px!important;line-height:56px!important;display:flex!important}.ld-app-header-left,.ld-app-header-right{flex:none;align-items:center;gap:14px;display:flex}.ld-sider-trigger{border:1px solid var(--ld-border);width:36px;height:36px;color:var(--ld-text-dim);cursor:pointer;background:#0e18288c;border-radius:8px;place-items:center;transition:border-color .2s,background .2s;display:grid}.ld-sider-trigger:hover{border-color:var(--ld-border-accent);color:var(--ld-text-bright);background:#38b2ac14}.ld-app-header-crumb{align-items:center;gap:8px;font-size:13px;line-height:1;display:flex}.ld-app-header-crumb .group{color:var(--ld-muted)}.ld-app-header-crumb .sep{color:#475569}.ld-app-header-crumb .page{color:var(--ld-text);font-weight:600}.ld-user-chip{cursor:pointer;color:var(--ld-text);align-items:center;gap:8px;display:flex}.ld-project-scope{border:1px solid var(--ld-border);background:#0e182873;border-radius:8px;align-items:center;gap:8px;height:36px;padding:0 10px 0 12px;display:flex}.ld-project-scope em{color:var(--ld-text-accent);white-space:nowrap;font-size:12px;font-style:normal}.ld-project-scope .ant-select-selector{box-shadow:none!important;color:var(--ld-text)!important;background:0 0!important;border:none!important}.ld-project-scope .ant-select-selection-item,.ld-project-scope .ant-select-arrow{color:var(--ld-text)!important}.ld-work-tabs{flex:1;align-items:center;gap:6px;min-width:0;height:100%;padding:0 4px;display:flex;overflow:auto hidden}.ld-work-tabs::-webkit-scrollbar{height:3px}.ld-work-tab{border:1px solid var(--ld-border-light);max-width:140px;height:32px;color:var(--ld-text-dim);cursor:pointer;background:#0e182873;border-radius:7px;flex:none;align-items:center;gap:6px;padding:0 10px;line-height:1;display:inline-flex}.ld-work-tab:hover{color:var(--ld-text);border-color:var(--ld-border)}.ld-work-tab.active{color:var(--ld-text-bright);background:#38b2ac1a;border-color:#38b2ac4d}.ld-work-tab-title{text-overflow:ellipsis;white-space:nowrap;font-size:12px;overflow:hidden}.ld-work-tab-close{width:16px;height:16px;color:var(--ld-muted);border-radius:4px;place-items:center;font-size:10px;display:grid}.ld-work-tab-close:hover{color:var(--ld-text-bright);background:#ffffff14}.ld-work-tab.pinned .ld-work-tab-title{font-weight:600}.ld-layout-scada-focus .ld-app-header.is-scada-focus{padding-left:14px!important}.ld-top-nav-trigger{border:1px solid var(--ld-border-accent);height:36px;color:var(--ld-text-accent);cursor:pointer;background:linear-gradient(135deg,#38b2ac33,#3197951a);border-radius:8px;align-items:center;gap:8px;padding:0 12px;font-size:13px;font-weight:650;display:inline-flex}.ld-top-nav-trigger:hover{color:var(--ld-text-bright);border-color:#4fd1c566}.ld-top-nav-panel{border-radius:var(--ld-radius);border:1px solid var(--ld-border);background:var(--ld-panel-2);width:300px;max-height:min(72vh,640px);box-shadow:var(--ld-shadow-elevated);padding-bottom:8px;overflow:auto}.ld-top-nav-panel-head{border-bottom:1px solid var(--ld-border-light);align-items:center;gap:10px;padding:12px 14px;display:flex}.ld-top-nav-panel-head strong{color:var(--ld-text-bright);font-size:14px;line-height:1.2;display:block}.ld-top-nav-panel-head em{color:var(--ld-muted);margin-top:2px;font-size:11px;font-style:normal;display:block}.ld-top-nav-panel .ant-menu{background:0 0!important}.ld-scada-hub{min-height:calc(100vh - 56px)!important}.ld-station-row{border-radius:var(--ld-radius);border:1px solid color-mix(in srgb, var(--row-color,#48bb78) 22%, #4755694d);background:linear-gradient(135deg, color-mix(in srgb, var(--row-color,#48bb78) 8%, #0e182899), #0b1220a6);cursor:pointer;text-align:left;color:inherit;grid-template-columns:auto 1fr auto auto;align-items:center;gap:12px;padding:12px 14px;transition:transform .18s,box-shadow .18s;display:grid}.ld-station-row:hover{box-shadow:var(--ld-shadow-elevated);transform:translateY(-1px)}.ld-station-row-icon{background:#0b122073;border:1px solid #47556940;border-radius:10px;place-items:center;width:44px;height:44px;display:grid}.ld-device-hero{border-radius:var(--ld-radius);border:1px solid color-mix(in srgb, var(--dev-color,var(--ld-accent-2)) 28%, #4755694d);background:linear-gradient(135deg, color-mix(in srgb, var(--dev-color,var(--ld-accent-2)) 10%, #0e1828b3), #0b1220cc);align-items:center;gap:14px;margin-bottom:16px;padding:16px 18px;display:flex}.ld-device-hero-icon{border:1px solid color-mix(in srgb, var(--dev-color,var(--ld-accent-2)) 35%, transparent);background:#0b122073;border-radius:14px;place-items:center;width:64px;height:64px;display:grid}.ld-list-item{border-bottom:1px solid var(--ld-border-light);align-items:center;gap:10px;padding:8px 0;display:flex}.ld-list-item:last-child{border-bottom:none}.ld-list-item-icon{background:#38b2ac14;border:1px solid #38b2ac2e;border-radius:7px;flex:none;place-items:center;width:30px;height:30px;display:grid}.ld-list-item-icon.warn{background:#e060401a;border-color:#e0604047}.ld-list-item-icon.ok{color:var(--ld-success);background:#48bb781a;border-color:#48bb7847}.ld-quick-card{text-align:left;cursor:pointer;border:1px solid color-mix(in srgb, var(--q-color,var(--ld-accent-2)) 22%, #4755694d);border-radius:var(--ld-radius);background:linear-gradient(160deg, color-mix(in srgb, var(--q-color,var(--ld-accent-2)) 8%, #0e182899), #0b1220b3);color:inherit;padding:16px;transition:transform .18s,box-shadow .18s}.ld-quick-card:hover{box-shadow:var(--ld-shadow-elevated);transform:translateY(-2px)}.ld-quick-icon{width:40px;height:40px;color:var(--q-color,var(--ld-accent-2));background:color-mix(in srgb, var(--q-color,var(--ld-accent-2)) 12%, transparent);border:1px solid color-mix(in srgb, var(--q-color,var(--ld-accent-2)) 30%, transparent);border-radius:10px;place-items:center;margin-bottom:10px;font-size:20px;display:grid}.ld-device-grid{grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:10px;display:grid}.ld-device-tile{border-radius:var(--ld-radius);border:1px solid color-mix(in srgb, var(--c,var(--ld-accent-2)) 25%, #4755694d);background:linear-gradient(160deg, color-mix(in srgb, var(--c,var(--ld-accent-2)) 8%, #0e182899), #0b1220bf);color:inherit;cursor:pointer;text-align:left;align-items:flex-start;gap:12px;padding:12px 14px;transition:transform .15s,box-shadow .15s;display:flex}.ld-device-tile:hover{box-shadow:var(--ld-shadow-elevated);transform:translateY(-2px)}.ld-device-tile.warn{box-shadow:inset 0 0 0 1px #d69e2e40}.ld-device-tile-icon{border:1px solid color-mix(in srgb, var(--c,var(--ld-accent-2)) 35%, transparent);background:#0b122073;border-radius:10px;flex:none;place-items:center;width:48px;height:48px;display:grid}.ld-fault-row{width:100%;color:inherit;cursor:pointer;text-align:left;background:#e060400d;border:1px solid #e0604038;border-radius:8px;align-items:center;gap:10px;padding:10px 12px;display:flex}.ld-fault-row:hover{border-color:#e0604066}.ld-fault-row .rank{color:var(--ld-warn);width:28px;font-weight:700}.ld-param-list .row{border-bottom:1px solid var(--ld-border-light);color:var(--ld-text-dim);justify-content:space-between;gap:12px;padding:8px 0;font-size:13px;display:flex}.ld-param-list .row:last-child{border-bottom:none}.ld-param-list .row strong{color:var(--ld-text);font-weight:600}.ld-module-chip{color:var(--ld-text);background:color-mix(in srgb, var(--c,var(--ld-accent-2)) 10%, transparent);border:1px solid color-mix(in srgb, var(--c,var(--ld-accent-2)) 30%, transparent);border-radius:999px;align-items:center;gap:5px;padding:4px 10px;font-size:12px;display:inline-flex}.ld-level-trail{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;min-height:28px;display:flex}.ld-level-trail ol{flex-wrap:wrap;align-items:center;gap:2px;margin:0;padding:0;list-style:none;display:flex}.ld-level-trail li{color:var(--ld-text-dim);align-items:center;gap:6px;font-size:12px;display:inline-flex}.ld-level-trail li em{color:var(--ld-muted);background:#0e18284d;border:1px solid #8899aa40;border-radius:4px;padding:1px 6px;font-size:10px;font-style:normal}.ld-level-trail li button{color:var(--ld-text-accent);cursor:pointer;background:0 0;border:none;padding:0;font-size:12px}.ld-level-trail li button:hover{color:var(--ld-text-bright);text-decoration:underline}.ld-level-trail li.is-current span{color:var(--ld-text);font-weight:600}.ld-level-trail li .sep{color:#475569;margin-right:2px;font-size:9px}.ld-level-trail-extra{color:var(--ld-muted);font-size:11px}.ld-login{background:radial-gradient(circle at 20% 30%, #38b2ac1a, transparent 30%), linear-gradient(160deg, #050c16 0%, var(--ld-bg) 45%, var(--ld-panel) 100%);grid-template-columns:1.3fr .9fr;min-height:100vh;display:grid;position:relative}.ld-login-visual{padding:48px;position:relative;overflow:hidden}.ld-login-visual:before{content:"";opacity:.9;background:radial-gradient(circle at 50% 45%,#38b2ac1f,#0000 40%),url("data:image/svg+xml,%3Csvg width='60' height='60' viewBox='0 0 60 60' xmlns='http://www.w3.org/2000/svg'%3E%3Cg fill='none' fill-rule='evenodd'%3E%3Cg fill='%2338b2ac' fill-opacity='0.04'%3E%3Cpath d='M36 34v-4h-2v4h-4v2h4v4h2v-4h4v-2h-4zm0-30V0h-2v4h-4v2h4v4h2V6h4V4h-4zM6 34v-4H4v4H0v2h4v4h2v-4h4v-2H6zM6 4V0H4v4H0v2h4v4h2V6h4V4H6z'/%3E%3C/g%3E%3C/g%3E%3C/svg%3E");position:absolute;inset:0}.ld-login-brand{z-index:1;max-width:560px;position:relative}.ld-login-brand-en{color:var(--ld-text-accent);letter-spacing:.18em;margin-bottom:12px;font-size:12px;font-weight:600}.ld-login-brand h1{letter-spacing:4px;color:var(--ld-text-bright);margin:0 0 12px;font-family:Source Han Serif SC,Noto Serif SC,Songti SC,Georgia,serif;font-size:44px;font-weight:700}.ld-login-brand p{color:var(--ld-muted);margin:0;font-size:15px;line-height:1.7}.ld-login-panel{justify-content:center;align-items:center;padding:32px;display:flex}.ld-login-card{color:#1a202c;background:#fffffff7;border-radius:14px;width:min(420px,100%);padding:32px 28px 24px;box-shadow:0 20px 60px #02060e66}.ld-login-card-title{margin-bottom:20px}.ld-login-card-title h2{letter-spacing:2px;color:#1a202c;margin:0 0 6px;font-family:Source Han Serif SC,Noto Serif SC,Songti SC,Georgia,serif;font-size:28px}.ld-login-card-title p{color:var(--ld-muted);margin:0;font-size:13px}.ld-login-captcha-row{grid-template-columns:1fr 128px;align-items:stretch;gap:10px;display:grid}.ld-login-captcha-box{cursor:pointer;background:#1a202c;border:1px solid #e2e8f0;border-radius:6px;height:40px;padding:0;position:relative;overflow:hidden}.ld-login-captcha-box canvas{width:100%;height:100%;display:block}.ld-login-captcha-refresh{color:#f0f4faa6;pointer-events:none;font-size:11px;line-height:1;position:absolute;bottom:2px;right:4px}.ld-login-hint{color:var(--ld-muted);margin-top:14px;font-size:12px;line-height:1.5}.ld-login-foot{text-align:center;color:#d4dce899;letter-spacing:.04em;z-index:2;pointer-events:none;font-size:12px;position:absolute;bottom:14px;left:0;right:0}.ld-hex-grid{z-index:1;grid-template-columns:repeat(3,140px);gap:18px;display:grid;position:absolute;bottom:12%;left:12%}.ld-hex{height:140px;color:var(--ld-text-accent);background:#0e182873;border:1px solid #38b2ac47;border-radius:14px;flex-direction:column;justify-content:center;align-items:center;gap:8px;animation:5s ease-in-out infinite floaty;display:flex;box-shadow:inset 0 0 24px #38b2ac0d}.ld-hex:nth-child(2){animation-delay:.6s}.ld-hex:nth-child(3){animation-delay:1.2s}@keyframes floaty{0%,to{transform:translateY(0)}50%{transform:translateY(-10px)}}.ld-device-edit-modal .ant-modal-body{padding:12px 16px 8px}.ld-device-edit-modal .ant-form-item{margin-bottom:8px}.ld-device-edit-modal .ant-form-item .ant-form-item-label{padding-bottom:2px}.ld-device-edit-modal .ant-form-item .ant-form-item-label>label{height:auto;font-size:12px}.ld-device-edit-modal .ant-divider{margin:6px 0 10px;font-size:12px}.ld-device-edit-modal .ld-comm-compact .ld-comm-sec{color:var(--ld-text-dim);margin:0 0 6px;font-size:12px;font-weight:650}.ld-device-edit-modal .ld-comm-compact .ld-comm-toolbar{margin-bottom:6px;font-size:12px}.ld-device-edit-modal .ld-comm-compact .ant-table.ant-table-small .ant-table-thead>tr>th,.ld-device-edit-modal .ld-comm-compact .ant-table.ant-table-small .ant-table-tbody>tr>td{padding:4px 6px}.ld-device-edit-modal .ld-comm-compact .ant-table-wrapper{margin-bottom:0}.ld-device-tabs .ant-tabs-nav{margin-bottom:12px}.ld-project-shell>.ld-page-title{margin-bottom:12px;padding-bottom:10px}.ld-project-shell>.ld-page-title .ld-page-title-left{align-items:center}.ld-project-nav{border-radius:var(--ld-radius);border:1px solid var(--ld-border-light);background:#0e182866;flex-wrap:wrap;gap:6px;margin:0 0 16px;padding:6px;display:flex}.ld-project-nav-item{height:34px;color:var(--ld-text-dim);cursor:pointer;background:0 0;border:none;border-radius:7px;align-items:center;padding:0 14px;font-size:13px;font-weight:600;text-decoration:none;transition:all .15s;display:inline-flex}.ld-project-nav-item:hover{color:var(--ld-text);background:#8899aa14}.ld-project-nav-item.active{color:#0d1b1a;background:linear-gradient(135deg,#38b2ac,#319795)}.ld-project-quick{grid-template-columns:repeat(3,1fr);gap:12px;display:grid}.ld-project-quick-card{text-align:left;border-radius:var(--ld-radius);border:1px solid var(--ld-border);cursor:pointer;color:var(--ld-text);background:#0e182880;padding:14px 16px}.ld-project-quick-card strong{margin-bottom:4px;font-size:15px;display:block}.ld-project-quick-card span{color:var(--ld-muted);font-size:12px}.ld-project-quick-card:hover{border-color:var(--ld-border-accent);background:#152238b3}.ld-project-screen-banner{border-radius:var(--ld-radius);width:100%;color:var(--ld-text-accent);cursor:pointer;text-align:left;background:linear-gradient(110deg,#1a3634b3,#31979526,#0e182899);border:1px solid #38b2ac4d;align-items:center;gap:14px;margin-bottom:14px;padding:14px 16px;display:flex}.ld-project-screen-banner .anticon{font-size:22px}.ld-project-screen-banner strong{margin-bottom:2px;font-size:15px;display:block}.ld-project-screen-banner span{color:var(--ld-muted);font-size:12px;display:block}.ld-project-screen-banner em{white-space:nowrap;margin-left:auto;font-size:13px;font-style:normal}.ld-project-screen-banner:hover{border-color:#4fd1c580;box-shadow:0 0 24px #38b2ac1a}.ld-project-link-btn{color:var(--ld-accent-2);cursor:pointer;background:0 0;border:none;margin-top:10px;padding:0;font-size:12px}.ld-project-archive{border:1px solid var(--ld-border-light);border-radius:var(--ld-radius);background:#0e182866;padding:8px 16px}.ld-project-archive-row{border-bottom:1px solid var(--ld-border-light);justify-content:space-between;gap:16px;padding:10px 0;font-size:13px;display:flex}.ld-project-archive-row span{color:var(--ld-muted);flex:none}.ld-project-archive-row b{color:var(--ld-text-bright);text-align:right;font-weight:600}.ld-project-archive-block{padding:12px 0 8px}.ld-project-archive-block-title{color:var(--ld-text);margin-bottom:8px;font-size:13px;font-weight:700}.ld-project-archive-runtime{grid-template-columns:1fr 1fr;gap:8px 16px;display:grid}.ld-project-archive-runtime div{color:var(--ld-muted);justify-content:space-between;gap:8px;font-size:12px;display:flex}.ld-project-archive-runtime b{color:var(--ld-text)}.ld-loc-picker{flex-direction:column;gap:8px;display:flex}.ld-loc-picker-map{border:1px solid var(--ld-border);background:var(--ld-bg);border-radius:8px;position:relative;overflow:hidden}.ld-loc-picker-map .leaflet-container{background:var(--ld-bg);width:100%;height:100%;font:inherit}.ld-loc-picker-hint{z-index:500;border:1px solid var(--ld-border);color:var(--ld-text-dim);pointer-events:none;background:#0e1828bf;border-radius:999px;align-items:center;gap:6px;padding:4px 10px;font-size:12px;display:inline-flex;position:absolute;bottom:10px;left:10px}.ld-loc-pick-marker{background:0 0!important;border:none!important}.ld-loc-pick-pin{place-items:start center;width:28px;height:36px;display:grid}.ld-loc-pick-pin span{background:linear-gradient(135deg,#4fd1c5,#319795);border-radius:50% 50% 50% 0;width:18px;height:18px;margin-top:4px;transform:rotate(-45deg);box-shadow:0 0 0 3px #38b2ac33,0 6px 14px #02060e59}.ld-demo-sim-page .ld-demo-card{border:1px solid var(--ld-border-light);background:#0e182866}.ld-demo-sim-page .ld-demo-row{color:var(--ld-text);justify-content:space-between;align-items:center;gap:12px;margin-bottom:12px;font-size:14px;display:flex}.ld-demo-sim-page .ld-demo-field{margin-bottom:14px}.ld-demo-sim-page .ld-demo-field label{color:var(--ld-text-dim);margin-bottom:6px;font-size:12px;display:block}.ld-demo-sim-page .ld-demo-hint{color:var(--ld-muted);margin-top:4px;font-size:12px}@media (width<=1200px){.ld-kpi-row,.ld-kpi-row--compact{grid-template-columns:repeat(3,minmax(0,1fr))}}@media (width<=900px){.ld-kpi-row,.ld-kpi-row--compact{grid-template-columns:repeat(2,minmax(0,1fr))}.ld-project-quick,.ld-project-archive-runtime{grid-template-columns:1fr}}@media (width<=960px){.ld-login{grid-template-columns:1fr}.ld-login-visual{display:none}.ld-login-panel{padding:48px 20px 56px}}.mg-page{isolation:isolate;min-height:100%;padding:20px 22px 28px;position:relative}.mg-page:before{content:"";z-index:-1;pointer-events:none;background:radial-gradient(70% 45% at 8% -5%,#22d3ee24,#0000 55%),radial-gradient(50% 40% at 95% 10%,#fbbf2412,#0000 50%),radial-gradient(55% 35% at 70% 100%,#34d39914,#0000 55%),linear-gradient(#070d18 0%,#0b1220 40%,#0a1424 100%);position:absolute;inset:0}.mg-page:after{content:"";z-index:-1;pointer-events:none;opacity:.35;background-image:linear-gradient(#38bdf809 1px,#0000 1px),linear-gradient(90deg,#38bdf809 1px,#0000 1px);background-size:56px 56px;position:absolute;inset:0;-webkit-mask-image:linear-gradient(#0000008c,#0000 85%);mask-image:linear-gradient(#0000008c,#0000 85%)}.mg-hero{background:linear-gradient(120deg,#081c30eb,#0c1424bf 55%,#0f231c8c),radial-gradient(circle at 90% 20%,#22d3ee2e,#0000 40%);border:1px solid #38bdf838;border-radius:16px;justify-content:space-between;align-items:flex-end;gap:16px;margin-bottom:20px;padding:18px 20px 16px;display:flex;position:relative;overflow:hidden}.mg-hero:before{content:"";background:linear-gradient(#22d3ee,#34d399 55%,#fbbf24);width:3px;position:absolute;top:0;bottom:0;left:0;box-shadow:0 0 16px #22d3ee8c}.mg-hero:after{content:"";pointer-events:none;background:radial-gradient(circle,#22d3ee29,#0000 70%);border-radius:50%;width:220px;height:220px;position:absolute;top:-60px;right:-40px}.mg-hero-title{z-index:1;position:relative}.mg-hero-title h2{letter-spacing:.04em;background:linear-gradient(90deg,#f8fafc,#7dd3fc 70%,#67e8f9);color:#0000;-webkit-background-clip:text;background-clip:text;margin:0;font-family:Outfit,Noto Sans SC,PingFang SC,sans-serif;font-size:26px;font-weight:650}.mg-hero-title p{color:#94a3b8f2;margin:6px 0 0;font-size:13px}.mg-hero-extra{z-index:1;flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:10px;display:flex;position:relative}.mg-station-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin-bottom:16px;display:grid}@media (width<=1400px){.mg-station-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}.mg-station-card{cursor:pointer;background:linear-gradient(165deg,#0f2337f2,#0a1220fa);border:1px solid #38bdf833;border-radius:14px;padding:16px;transition:transform .25s,border-color .25s,box-shadow .25s;position:relative;overflow:hidden}.mg-station-card:before{content:"";background:linear-gradient(120deg,#0000 30%,#ffffff0a,#0000 70%);transition:transform .6s;position:absolute;inset:0;transform:translate(-120%)}.mg-station-card:hover{border-color:#22d3ee73;transform:translateY(-3px);box-shadow:0 12px 32px #02081473,0 0 24px #22d3ee1f}.mg-station-card:hover:before{transform:translate(120%)}.mg-station-card.alarm{border-color:#fb923c73;box-shadow:inset 0 0 30px #fb923c0f}.mg-station-card.offline{opacity:.72;border-color:#64748b59}.mg-station-card-top{justify-content:space-between;align-items:flex-start;gap:8px;margin-bottom:12px;display:flex}.mg-station-card-name{letter-spacing:.02em;font-size:15px;font-weight:650}.mg-station-card-city{color:var(--ld-muted);margin-top:3px;font-size:12px}.mg-station-metrics{grid-template-columns:repeat(2,1fr);gap:8px;display:grid}.mg-station-metric{background:#020c1b73;border:1px solid #94a3b81a;border-radius:10px;padding:8px 10px}.mg-station-metric .label{color:var(--ld-muted);align-items:center;gap:4px;font-size:11px;display:inline-flex}.mg-station-metric .value{color:#e2e8f0;margin-top:2px;font-family:JetBrains Mono,DIN Alternate,monospace;font-size:15px;font-weight:600}.mg-station-metric .value.gold{color:#fbbf24}.mg-station-metric .value.cyan{color:#22d3ee}.mg-station-metric .value.green{color:#34d399}.mg-panel{background:linear-gradient(#0e1c30e0,#08101ef2);border:1px solid #38bdf833;border-radius:14px;padding:16px;position:relative;overflow:hidden;box-shadow:inset 0 1px #94a3b80f,0 10px 28px #02081447}.mg-panel-title{letter-spacing:.04em;color:#bae6fd;align-items:center;gap:8px;margin-bottom:14px;font-weight:650;display:flex}.mg-panel-title:before{content:"";background:#22d3ee;border-radius:2px;width:8px;height:8px;transform:rotate(45deg);box-shadow:0 0 10px #22d3ee}.mg-summary-row{border-bottom:1px solid #94a3b81a;justify-content:space-between;align-items:center;gap:12px;padding:10px 0;font-size:13px;display:flex}.mg-summary-row:last-child{border-bottom:none}.mg-summary-row .label{color:var(--ld-muted)}.mg-summary-row .value{color:#e2e8f0;font-family:JetBrains Mono,monospace;font-weight:600}.mg-summary-row .value.warn{color:#fb923c}.mg-summary-row .value.eco{color:#34d399}.mg-mode-bar{background:linear-gradient(90deg,#0e74901f,#0f172aa6);border:1px solid #38bdf833;border-radius:14px;flex-wrap:wrap;align-items:center;gap:16px;margin-bottom:16px;padding:12px 16px;display:flex}.mg-flow-pro{background:radial-gradient(55% 45% at 50% 46%,#22d3ee24,#0000 60%),radial-gradient(circle at 12% 12%,#fbbf241a,#0000 28%),radial-gradient(circle at 88% 12%,#60a5fa1f,#0000 28%),radial-gradient(circle at 12% 88%,#34d3991a,#0000 28%),radial-gradient(circle at 88% 88%,#22d3ee1a,#0000 28%),linear-gradient(165deg,#051020fa,#030a16fc);border:1px solid #38bdf847;border-radius:16px;min-height:420px;padding:14px 14px 12px;position:relative;overflow:hidden;box-shadow:inset 0 1px #bae6fd0f,0 16px 40px #02081473,0 0 40px #22d3ee0f}.mg-flow-pro:before{content:"";pointer-events:none;background:linear-gradient(90deg,#0000,#22d3ee0d,#0000);animation:7s linear infinite mg-flow-sheen;position:absolute;inset:0}.mg-flow-pro-head{z-index:2;justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:8px;padding:0 4px;display:flex;position:relative}.mg-flow-pro-title{letter-spacing:.08em;color:#e0f2fe;font-size:15px;font-weight:700}.mg-flow-pro-title:before{content:"";vertical-align:1px;background:#22d3ee;border-radius:1px;width:7px;height:7px;margin-right:8px;display:inline-block;transform:rotate(45deg);box-shadow:0 0 12px #22d3ee}.mg-flow-pro-sub{letter-spacing:.22em;color:#7dd3fc8c;margin-top:3px;margin-left:18px;font-size:10px}.mg-flow-pro-live{color:#94a3b8;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#081e30bf;border:1px solid #22d3ee59;border-radius:999px;align-items:baseline;gap:6px;padding:6px 12px;font-size:12px;display:inline-flex}.mg-flow-pro-live strong{color:#67e8f9;text-shadow:0 0 16px #22d3ee8c;font-family:JetBrains Mono,monospace;font-size:18px}.mg-flow-pro-live em{color:#64748b;font-size:11px;font-style:normal}.mg-flow-pro-dot{background:#34d399;border-radius:50%;align-self:center;width:7px;height:7px;animation:1.4s ease-in-out infinite mg-blink;box-shadow:0 0 10px #34d399}.mg-flow-pro-stage{background:#02081459;border:1px solid #38bdf81f;border-radius:12px;height:320px;position:relative;overflow:hidden}.mg-flow-pro-grid{opacity:.35;background-image:linear-gradient(#38bdf812 1px,#0000 1px),linear-gradient(90deg,#38bdf812 1px,#0000 1px);background-size:28px 28px;animation:20s linear infinite mg-grid-drift;position:absolute;inset:0;-webkit-mask-image:radial-gradient(70% 70%,#000 30%,#0000 80%);mask-image:radial-gradient(70% 70%,#000 30%,#0000 80%)}.mg-flow-pro-glow{filter:blur(6px);pointer-events:none;background:radial-gradient(circle,#22d3ee29,#0000 68%);border-radius:50%;width:220px;height:220px;animation:3.5s ease-in-out infinite mg-pulse-core;position:absolute;top:46%;left:50%;transform:translate(-50%,-50%)}.mg-flow-pro-svg{width:100%;height:100%;position:absolute;inset:0;overflow:visible}.mg-flow-beam-label{paint-order:stroke;stroke:#020617e6;stroke-width:.7px;letter-spacing:.02em;font-size:3.4px;font-weight:700}.mg-flow-hub{z-index:3;pointer-events:none;width:78px;height:78px;position:absolute;top:46%;left:50%;transform:translate(-50%,-50%)}.mg-flow-hub-ring{border:1px solid #67e8f973;border-radius:50%;animation:12s linear infinite mg-spin;position:absolute;inset:0;box-shadow:0 0 24px #22d3ee59,inset 0 0 18px #22d3ee26}.mg-flow-hub-ring:after{content:"";border:1px dashed #7dd3fc59;border-radius:50%;animation:8s linear infinite reverse mg-spin;position:absolute;inset:8px}.mg-flow-hub-core{text-align:center;background:radial-gradient(circle at 35% 30%,#bae6fd59,#082f49eb 55%,#020c1bf2);border:1px solid #67e8f98c;border-radius:50%;flex-direction:column;justify-content:center;align-items:center;gap:1px;display:flex;position:absolute;inset:12px;box-shadow:0 0 28px #22d3ee59}.mg-flow-hub-core strong{letter-spacing:.12em;color:#ecfeff;text-shadow:0 0 12px #67e8f9cc;font-size:11px;line-height:1}.mg-flow-hub-core span{color:#7dd3fcbf;font-size:8px}.mg-flow-node-icon{place-items:center;display:grid}.mg-flow-node{--node-color:#22d3ee;z-index:4;border:1px solid color-mix(in srgb, var(--node-color) 55%, transparent);background:linear-gradient(145deg, color-mix(in srgb, var(--node-color) 22%, transparent), #040c18eb 55%);min-width:118px;box-shadow:0 0 22px color-mix(in srgb, var(--node-color) 22%, transparent), inset 0 1px 0 #ffffff0f;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-radius:14px;align-items:center;gap:8px;padding:8px 10px 8px 8px;transition:transform .25s,box-shadow .25s;display:flex;position:absolute;transform:translate(-50%,-50%)}.mg-flow-node:hover{box-shadow:0 0 30px color-mix(in srgb, var(--node-color) 35%, transparent), inset 0 1px 0 #ffffff14;transform:translate(-50%,-50%)scale(1.04)}.mg-flow-node-pulse{border:1px solid var(--node-color);opacity:.35;pointer-events:none;border-radius:16px;animation:2.4s ease-out infinite mg-ripple;position:absolute;inset:-5px}.mg-flow-node-icon{width:32px;height:32px;color:var(--node-color);background:color-mix(in srgb, var(--node-color) 16%, #020814e6);border:1px solid color-mix(in srgb, var(--node-color) 40%, transparent);box-shadow:0 0 14px color-mix(in srgb, var(--node-color) 25%, transparent);border-radius:10px;place-items:center;font-size:15px;display:grid}.mg-flow-node-label{color:#94a3b8;align-items:center;gap:6px;font-size:11px;display:flex}.mg-flow-node-label em{color:var(--node-color);border:1px solid color-mix(in srgb, var(--node-color) 40%, transparent);background:color-mix(in srgb, var(--node-color) 12%, transparent);border-radius:999px;padding:0 5px;font-size:10px;font-style:normal}.mg-flow-node-value{color:#f8fafc;text-shadow:0 0 14px color-mix(in srgb, var(--node-color) 40%, transparent);margin-top:1px;font-family:JetBrains Mono,monospace;font-size:17px;font-weight:700;line-height:1.1}.mg-flow-node-value small{color:#64748b;margin-left:3px;font-size:10px;font-weight:500}.mg-flow-pro-foot{z-index:2;border-top:1px solid #38bdf81f;flex-wrap:wrap;align-items:center;gap:14px;margin-top:10px;padding:8px 6px 2px;display:flex;position:relative}.mg-flow-metric{color:#94a3b8;align-items:baseline;gap:8px;font-size:12px;display:flex}.mg-flow-metric strong{font-family:JetBrains Mono,Noto Sans SC,monospace;font-size:13px}.mg-flow-legend{color:#64748b;align-items:center;gap:8px;margin-left:auto;font-size:11px;display:flex}.mg-flow-legend i{border-radius:50%;width:7px;height:7px;margin-right:-2px;display:inline-block;box-shadow:0 0 8px}@keyframes mg-flow-sheen{0%{transform:translate(-60%)}to{transform:translate(60%)}}@keyframes mg-grid-drift{0%{background-position:0 0,0 0}to{background-position:28px 28px,28px 28px}}@media (width<=1100px){.mg-flow-pro-stage{height:360px}.mg-flow-legend{width:100%;margin-left:0}}.mg-cap-item{background:linear-gradient(160deg,#0e74901f,#0f172a80);border:1px solid #38bdf826;border-radius:12px;padding:12px}.mg-visual-banner{border:1px solid #38bdf847;border-radius:16px;height:220px;margin-bottom:16px;position:relative;overflow:hidden;box-shadow:0 12px 36px #02081466}.mg-visual-banner-img{object-fit:cover;width:100%;height:100%;animation:18s ease-in-out infinite alternate mg-kenburns;position:absolute;inset:0;transform:scale(1.04)}.mg-visual-banner-mask{background:linear-gradient(90deg,#040c18e0 0%,#040c1873 48%,#040c1833 100%),linear-gradient(#0000 40%,#040c188c 100%);position:absolute;inset:0}.mg-visual-scan{pointer-events:none;background:linear-gradient(#0000,#22d3ee1a,#0000);height:40%;animation:5.5s linear infinite mg-scan;position:absolute;left:0;right:0}.mg-visual-particles{pointer-events:none;position:absolute;inset:0;overflow:hidden}.mg-visual-particles span{opacity:.7;background:#67e8f9;border-radius:50%;width:3px;height:3px;animation:linear infinite mg-float-up;position:absolute;bottom:-8%;box-shadow:0 0 8px #22d3ee}.mg-visual-banner-content{z-index:2;max-width:520px;padding:28px;position:relative}.mg-visual-kicker{letter-spacing:.18em;color:#7dd3fc;align-items:center;gap:8px;margin-bottom:10px;font-size:11px;display:inline-flex}.mg-live-dot{background:#34d399;border-radius:50%;width:8px;height:8px;animation:1.4s ease-in-out infinite mg-blink;box-shadow:0 0 10px #34d399}.mg-visual-banner-content h3{letter-spacing:.04em;color:#f8fafc;text-shadow:0 0 24px #22d3ee59;margin:0;font-family:Outfit,Noto Sans SC,sans-serif;font-size:28px;font-weight:700}.mg-visual-banner-content p{color:#bae6fdd9;margin:8px 0 0;font-size:14px}.mg-visual-tags{flex-wrap:wrap;gap:8px;margin-top:16px;display:flex}.mg-visual-tags span{color:#94a3b8;background:#0819308c;border:1px solid #38bdf847;border-radius:999px;padding:4px 10px;font-size:12px;transition:all .35s}.mg-visual-tags span.active{color:#041018;background:linear-gradient(90deg,#22d3ee,#67e8f9);border-color:#0000;box-shadow:0 0 16px #22d3ee73}.mg-orbit{z-index:2;pointer-events:none;width:150px;height:150px;position:absolute;top:50%;right:36px;transform:translateY(-50%)}.mg-orbit-ring{border:1px dashed #67e8f959;border-radius:50%;margin:auto;position:absolute;inset:0}.mg-orbit-ring.r1{width:70%;height:70%;animation:10s linear infinite mg-spin}.mg-orbit-ring.r2{border-style:solid;border-color:#22d3ee33;width:96%;height:96%;animation:16s linear infinite reverse mg-spin}.mg-orbit-core{background:radial-gradient(circle,#67e8f9,#0891b2);border-radius:50%;width:18px;height:18px;animation:2s ease-in-out infinite mg-pulse-core;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);box-shadow:0 0 24px #22d3ee}.mg-ring{place-items:center;display:grid;position:relative}.mg-ring-progress{filter:drop-shadow(0 0 6px #22d3ee8c);transition:stroke-dashoffset 1.2s cubic-bezier(.22,1,.36,1)}.mg-ring-center{text-align:center;place-content:center;display:grid;position:absolute;inset:0}.mg-ring-center strong{font-family:JetBrains Mono,monospace;font-size:28px;line-height:1}.mg-ring-center strong small{margin-left:2px;font-size:12px}.mg-ring-center span{color:var(--ld-muted);margin-top:6px;font-size:12px}.mg-ring-board{justify-content:space-around;align-items:center;gap:8px;min-height:200px;padding:18px 10px;display:flex}.mg-device-scene{background:radial-gradient(circle at 50% 60%,#22d3ee1f,#040c18f2);border:1px solid #38bdf838;border-radius:14px;height:280px;position:relative;overflow:hidden}.mg-device-scene-bg{opacity:.55;filter:drop-shadow(0 0 20px #22d3ee40);pointer-events:none;width:46%;max-width:220px;animation:4.5s ease-in-out infinite mg-float-soft;position:absolute;top:46%;left:50%;transform:translate(-50%,-50%)}.mg-device-scene-svg{width:100%;height:100%;position:absolute;inset:0}.mg-device-node{-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);text-align:center;z-index:2;background:#040c18d1;border:1px solid;border-radius:12px;flex-direction:column;align-items:center;gap:2px;min-width:92px;padding:8px 10px;display:flex;position:absolute;transform:translate(-50%,-50%)}.mg-device-node.hub{min-width:104px;padding:10px 12px}.mg-device-icon{place-items:center;margin-bottom:2px;display:grid}.mg-device-node .label{color:#94a3b8;font-size:11px}.mg-device-node .value{margin-top:2px;font-family:JetBrains Mono,monospace;font-size:14px;font-weight:700}.mg-device-pulse{opacity:.45;pointer-events:none;border:1px solid;border-radius:14px;animation:2.2s ease-out infinite mg-ripple;position:absolute;inset:-6px}.mg-station-card-media{align-items:center;gap:10px;margin-bottom:12px;display:flex}.mg-station-card-media img{object-fit:cover;border:1px solid #38bdf840;border-radius:12px;width:52px;height:52px;box-shadow:0 0 16px #22d3ee26}.mg-station-card .mg-status-pulse{border-radius:50%;width:8px;height:8px;margin-right:6px;animation:1.6s ease-in-out infinite mg-blink;display:inline-block}.mg-station-card.online .mg-status-pulse{background:#34d399;box-shadow:0 0 8px #34d399}.mg-station-card.alarm .mg-status-pulse{background:#fb923c;box-shadow:0 0 8px #fb923c}.mg-station-card.offline .mg-status-pulse{background:#64748b;animation:none}@keyframes mg-kenburns{0%{transform:scale(1.02)translate(0,0)}to{transform:scale(1.1)translate(-1.5%,-1%)}}@keyframes mg-scan{0%{top:-40%}to{top:100%}}@keyframes mg-float-up{0%{opacity:0;transform:translateY(0)}15%{opacity:.85}to{opacity:0;transform:translateY(-240px)}}@keyframes mg-blink{0%,to{opacity:1}50%{opacity:.35}}@keyframes mg-spin{to{transform:rotate(360deg)}}@keyframes mg-pulse-core{0%,to{transform:translate(-50%,-50%)scale(1);box-shadow:0 0 18px #22d3ee}50%{transform:translate(-50%,-50%)scale(1.25);box-shadow:0 0 32px #22d3ee}}@keyframes mg-float-soft{0%,to{transform:translate(-50%,-50%)translateY(0)}50%{transform:translate(-50%,-50%)translateY(-8px)}}@keyframes mg-ripple{0%{opacity:.55;transform:scale(.92)}to{opacity:0;transform:scale(1.18)}}@media (width<=1100px){.mg-orbit{display:none}.mg-visual-banner{height:200px}.mg-visual-banner-content h3{font-size:22px}}@keyframes cyber-border-flow{0%{background-position:0%}50%{background-position:100%}to{background-position:0%}}.cyber-border-run{position:relative}.cyber-border-run:after{content:"";background:linear-gradient(90deg,#0000 0%,#4fd1c500 20%,#4fd1c559 50%,#4fd1c500 80%,#0000 100%) 0 0/200% 100%;height:1px;animation:4s ease-in-out infinite cyber-border-flow;position:absolute;bottom:0;left:0;right:0}@keyframes data-stream-up{0%{opacity:0;transform:translateY(100%)}10%{opacity:.6}90%{opacity:.6}to{opacity:0;transform:translateY(-100%)}}.cyber-data-stream{pointer-events:none;position:absolute;inset:0;overflow:hidden}.cyber-data-dot{background:#4fd1c580;border-radius:50%;width:1.5px;height:1.5px;animation:linear infinite data-stream-up;position:absolute}@keyframes breath-glow{0%,to{opacity:.3;transform:scale(.95)}50%{opacity:.65;transform:scale(1.05)}}.cyber-breath{animation:3s ease-in-out infinite breath-glow}@keyframes panel-sheen{0%{transform:translate(-150%)skew(-15deg)}to{transform:translate(150%)skew(-15deg)}}.cyber-sheen{position:relative;overflow:hidden}.cyber-sheen:after{content:"";pointer-events:none;background:linear-gradient(90deg,#0000 0%,#ffffff05 40%,#ffffff0a 50%,#ffffff05 60%,#0000 100%);width:60%;height:100%;animation:6s ease-in-out infinite panel-sheen;position:absolute;top:0;left:0;transform:translate(-150%)skew(-15deg)}@keyframes value-pop-in{0%{opacity:0;transform:translateY(4px)scale(.97)}60%{transform:translateY(-1px)scale(1.01)}to{opacity:1;transform:translateY(0)scale(1)}}.cyber-value-in{animation:.4s ease-out both value-pop-in}@keyframes indicator-pulse{0%,to{opacity:.6;transform:scale(1)}50%{opacity:1;transform:scale(1.4)}}.cyber-indicator{border-radius:50%;width:6px;height:6px;animation:2.5s ease-in-out infinite indicator-pulse;display:inline-block}@keyframes status-bar-pulse{0%,to{opacity:.5}50%{opacity:.9}}.cyber-status-dot{border-radius:50%;width:7px;height:7px;margin-right:6px;animation:2s ease-in-out infinite status-bar-pulse;display:inline-block}@keyframes number-glint{0%,to{color:inherit}50%{color:#fff}}.cyber-number-update{animation:.5s ease-out number-glint}@keyframes side-line-breathe{0%,to{opacity:.3}50%{opacity:.7}}.cyber-side-line{animation:3.5s ease-in-out infinite side-line-breathe}@keyframes grid-drift{0%{background-position:0 0}to{background-position:52px 52px}}.cyber-grid-bg{background-image:linear-gradient(#4755690a 1px,#0000 1px),linear-gradient(90deg,#4755690a 1px,#0000 1px);background-size:52px 52px;animation:20s linear infinite grid-drift}@keyframes flow-dot{0%{offset-distance:0%;opacity:0}10%{opacity:1}90%{opacity:1}to{offset-distance:100%;opacity:0}}
