.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;left:0;top:0}.leaflet-container{overflow:hidden}.leaflet-tile,.leaflet-marker-icon,.leaflet-marker-shadow{-webkit-user-select:none;-moz-user-select:none;user-select:none;-webkit-user-drag:none}.leaflet-tile::selection{background:transparent}.leaflet-safari .leaflet-tile{image-rendering:-webkit-optimize-contrast}.leaflet-safari .leaflet-tile-container{width:1600px;height:1600px;-webkit-transform-origin:0 0}.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{max-width:none!important;max-height:none!important;width:auto;padding:0}.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:rgba(51,181,229,.4)}.leaflet-tile{filter:inherit;visibility:hidden}.leaflet-tile-loaded{visibility:inherit}.leaflet-zoom-box{width:0;height:0;-moz-box-sizing:border-box;box-sizing:border-box;z-index:800}.leaflet-overlay-pane svg{-moz-user-select:none}.leaflet-pane{z-index:400}.leaflet-tile-pane{z-index:200}.leaflet-overlay-pane{z-index:400}.leaflet-shadow-pane{z-index:500}.leaflet-marker-pane{z-index:600}.leaflet-tooltip-pane{z-index:650}.leaflet-popup-pane{z-index:700}.leaflet-map-pane canvas{z-index:100}.leaflet-map-pane svg{z-index:200}.leaflet-vml-shape{width:1px;height:1px}.lvml{behavior:url(#default#VML);display:inline-block;position:absolute}.leaflet-control{position:relative;z-index:800;pointer-events:visiblePainted;pointer-events:auto}.leaflet-top,.leaflet-bottom{position:absolute;z-index:1000;pointer-events:none}.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;-webkit-transition:opacity .2s linear;-moz-transition:opacity .2s linear;transition:opacity .2s linear}.leaflet-fade-anim .leaflet-map-pane .leaflet-popup{opacity:1}.leaflet-zoom-animated{-webkit-transform-origin:0 0;-ms-transform-origin:0 0;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{-webkit-transition:none;-moz-transition:none;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{background:#ddd;outline-offset:1px}.leaflet-container a{color:#0078a8}.leaflet-zoom-box{border:2px dotted #38f;background:#ffffff80}.leaflet-container{font-family:Helvetica Neue,Arial,Helvetica,sans-serif;font-size:12px;font-size:.75rem;line-height:1.5}.leaflet-bar{box-shadow:0 1px 5px #000000a6;border-radius:4px}.leaflet-bar a{background-color:#fff;border-bottom:1px solid #ccc;width:26px;height:26px;line-height:26px;display:block;text-align:center;text-decoration:none;color:#000}.leaflet-bar a,.leaflet-control-layers-toggle{background-position:50% 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-left-radius:4px;border-bottom-right-radius:4px;border-bottom:none}.leaflet-bar a.leaflet-disabled{cursor:default;background-color:#f4f4f4;color:#bbb}.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-left-radius:2px;border-bottom-right-radius:2px}.leaflet-control-zoom-in,.leaflet-control-zoom-out{font:700 18px Lucida Console,Monaco,monospace;text-indent:1px}.leaflet-touch .leaflet-control-zoom-in,.leaflet-touch .leaflet-control-zoom-out{font-size:22px}.leaflet-control-layers{box-shadow:0 1px 5px #0006;background:#fff;border-radius:5px}.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{padding:6px 10px 6px 6px;color:#333;background:#fff}.leaflet-control-layers-scrollbar{overflow-y:scroll;overflow-x:hidden;padding-right:5px}.leaflet-control-layers-selector{margin-top:2px;position:relative;top:1px}.leaflet-control-layers label{display:block;font-size:13px;font-size:1.08333em}.leaflet-control-layers-separator{height:0;border-top:1px solid #ddd;margin:5px -10px 5px -6px}.leaflet-default-icon-path{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABkAAAApCAYAAADAk4LOAAAFgUlEQVR4Aa1XA5BjWRTN2oW17d3YaZtr2962HUzbDNpjszW24mRt28p47v7zq/bXZtrp/lWnXr337j3nPCe85NcypgSFdugCpW5YoDAMRaIMqRi6aKq5E3YqDQO3qAwjVWrD8Ncq/RBpykd8oZUb/kaJutow8r1aP9II0WmLKLIsJyv1w/kqw9Ch2MYdB++12Onxee/QMwvf4/Dk/Lfp/i4nxTXtOoQ4pW5Aj7wpici1A9erdAN2OH64x8OSP9j3Ft3b7aWkTg/Fm91siTra0f9on5sQr9INejH6CUUUpavjFNq1B+Oadhxmnfa8RfEmN8VNAsQhPqF55xHkMzz3jSmChWU6f7/XZKNH+9+hBLOHYozuKQPxyMPUKkrX/K0uWnfFaJGS1QPRtZsOPtr3NsW0uyh6NNCOkU3Yz+bXbT3I8G3xE5EXLXtCXbbqwCO9zPQYPRTZ5vIDXD7U+w7rFDEoUUf7ibHIR4y6bLVPXrz8JVZEql13trxwue/uDivd3fkWRbS6/IA2bID4uk0UpF1N8qLlbBlXs4Ee7HLTfV1j54APvODnSfOWBqtKVvjgLKzF5YdEk5ewRkGlK0i33Eofffc7HT56jD7/6U+qH3Cx7SBLNntH5YIPvODnyfIXZYRVDPqgHtLs5ABHD3YzLuespb7t79FY34DjMwrVrcTuwlT55YMPvOBnRrJ4VXTdNnYug5ucHLBjEpt30701A3Ts+HEa73u6dT3FNWwflY86eMHPk+Yu+i6pzUpRrW7SNDg5JHR4KapmM5Wv2E8Tfcb1HoqqHMHU+uWDD7zg54mz5/2BSnizi9T1Dg4QQXLToGNCkb6tb1NU+QAlGr1++eADrzhn/u8Q2YZhQVlZ5+CAOtqfbhmaUCS1ezNFVm2imDbPmPng5wmz+gwh+oHDce0eUtQ6OGDIyR0uUhUsoO3vfDmmgOezH0mZN59x7MBi++WDL1g/eEiU3avlidO671bkLfwbw5XV2P8Pzo0ydy4t2/0eu33xYSOMOD8hTf4CrBtGMSoXfPLchX+J0ruSePw3LZeK0juPJbYzrhkH0io7B3k164hiGvawhOKMLkrQLyVpZg8rHFW7E2uHOL888IBPlNZ1FPzstSJM694fWr6RwpvcJK60+0HCILTBzZLFNdtAzJaohze60T8qBzyh5ZuOg5e7uwQppofEmf2++DYvmySqGBuKaicF1blQjhuHdvCIMvp8whTTfZzI7RldpwtSzL+F1+wkdZ2TBOW2gIF88PBTzD/gpeREAMEbxnJcaJHNHrpzji0gQCS6hdkEeYt9DF/2qPcEC8RM28Hwmr3sdNyht00byAut2k3gufWNtgtOEOFGUwcXWNDbdNbpgBGxEvKkOQsxivJx33iow0Vw5S6SVTrpVq11ysA2Rp7gTfPfktc6zhtXBBC+adRLshf6sG2RfHPZ5EAc4sVZ83yCN00Fk/4kggu40ZTvIEm5g24qtU4KjBrx/BTTH8ifVASAG7gKrnWxJDcU7x8X6Ecczhm3o6YicvsLXWfh3Ch1W0k8x0nXF+0fFxgt4phz8QvypiwCCFKMqXCnqXExjq10beH+UUA7+nG6mdG/Pu0f3LgFcGrl2s0kNNjpmoJ9o4B29CMO8dMT4Q5ox8uitF6fqsrJOr8qnwNbRzv6hSnG5wP+64C7h9lp30hKNtKdWjtdkbuPA19nJ7Tz3zR/ibgARbhb4AlhavcBebmTHcFl2fvYEnW0ox9xMxKBS8btJ+KiEbq9zA4RthQXDhPa0T9TEe69gWupwc6uBUphquXgf+/FrIjweHQS4/pduMe5ERUMHUd9xv8ZR98CxkS4F2n3EUrUZ10EYNw7BWm9x1GiPssi3GgiGRDKWRYZfXlON+dfNbM+GgIwYdwAAAAASUVORK5CYII=)}.leaflet-container .leaflet-control-attribution{background:#fff;background:#fffc;margin:0}.leaflet-control-attribution,.leaflet-control-scale-line{padding:0 5px;color:#333;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{display:inline!important;vertical-align:baseline!important;width:1em;height:.6669em}.leaflet-left .leaflet-control-scale{margin-left:5px}.leaflet-bottom .leaflet-control-scale{margin-bottom:5px}.leaflet-control-scale-line{border:2px solid #777;border-top:none;line-height:1.1;padding:2px 5px 1px;white-space:nowrap;-moz-box-sizing:border-box;box-sizing:border-box;background:#fffc;text-shadow:1px 1px #fff}.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{border:2px solid rgba(0,0,0,.2);background-clip:padding-box}.leaflet-popup{position:absolute;text-align:center;margin-bottom:20px}.leaflet-popup-content-wrapper{padding:1px;text-align:left;border-radius:12px}.leaflet-popup-content{margin:13px 24px 13px 20px;line-height:1.3;font-size:13px;font-size:1.08333em;min-height:1px}.leaflet-popup-content p{margin:1.3em 0}.leaflet-popup-tip-container{width:40px;height:20px;position:absolute;left:50%;margin-top:-1px;margin-left:-20px;overflow:hidden;pointer-events:none}.leaflet-popup-tip{width:17px;height:17px;padding:1px;margin:-10px auto 0;pointer-events:auto;-webkit-transform:rotate(45deg);-moz-transform:rotate(45deg);-ms-transform:rotate(45deg);transform:rotate(45deg)}.leaflet-popup-content-wrapper,.leaflet-popup-tip{background:#fff;color:#333;box-shadow:0 3px 14px #0006}.leaflet-container a.leaflet-popup-close-button{position:absolute;top:0;right:0;border:none;text-align:center;width:24px;height:24px;font:16px/24px Tahoma,Verdana,sans-serif;color:#757575;text-decoration:none;background:transparent}.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{width:24px;margin:0 auto;-ms-filter:"progid:DXImageTransform.Microsoft.Matrix(M11=0.70710678, M12=0.70710678, M21=-0.70710678, M22=0.70710678)";filter:progid:DXImageTransform.Microsoft.Matrix(M11=.70710678,M12=.70710678,M21=-.70710678,M22=.70710678)}.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{position:absolute;padding:6px;background-color:#fff;border:1px solid #fff;border-radius:3px;color:#222;white-space:nowrap;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;pointer-events:none;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{position:absolute;pointer-events:none;border:6px solid transparent;background:transparent;content:""}.leaflet-tooltip-bottom{margin-top:6px}.leaflet-tooltip-top{margin-top:-6px}.leaflet-tooltip-bottom:before,.leaflet-tooltip-top:before{left:50%;margin-left:-6px}.leaflet-tooltip-top:before{bottom:0;margin-bottom:-12px;border-top-color:#fff}.leaflet-tooltip-bottom:before{top:0;margin-top:-12px;margin-left:-6px;border-bottom-color:#fff}.leaflet-tooltip-left{margin-left:-6px}.leaflet-tooltip-right{margin-left:6px}.leaflet-tooltip-left:before,.leaflet-tooltip-right:before{top:50%;margin-top:-6px}.leaflet-tooltip-left:before{right:0;margin-right:-12px;border-left-color:#fff}.leaflet-tooltip-right:before{left:0;margin-left:-12px;border-right-color:#fff}@media print{.leaflet-control{-webkit-print-color-adjust:exact;print-color-adjust:exact}}:root{font-family:Microsoft YaHei,PingFang SC,Noto Sans SC,sans-serif;color:#eaf4ff;background:#020d22;font-synthesis:none;--bg:#020d22;--panel:#061a3a;--panel2:#082653;--line:#126ebc;--cyan:#37d5ff;--blue:#238dff;--green:#79df3f;--orange:#ffa516;--purple:#a783ff;--muted:#8baad3;--text:#eaf4ff;--shadow:0 0 24px rgba(21,123,255,.18)}*{box-sizing:border-box}html,body,#root{margin:0;min-width:1180px;min-height:100%;background:var(--bg)}button,input,select{font:inherit;color:inherit}button{cursor:pointer;border:0}button:disabled{opacity:.65;cursor:wait}.app-root{min-height:100vh;background:#020d22;color:var(--text);position:relative;overflow-x:hidden}.app-root:before{content:"";position:fixed;top:0;right:0;bottom:0;left:0;pointer-events:none;background-image:linear-gradient(rgba(17,90,160,.06) 1px,transparent 1px),linear-gradient(90deg,rgba(17,90,160,.04) 1px,transparent 1px);background-size:48px 48px;opacity:.48}.topbar{height:108px;border-bottom:1px solid #0d78cc;background:#03122f;display:flex;align-items:center;justify-content:space-between;padding:14px 26px 12px 32px;position:relative;z-index:1}.topbar:after{content:"";position:absolute;left:0;right:48%;bottom:-2px;height:5px;background:#208eff;clip-path:polygon(0 0,96% 0,100% 100%,0 100%)}.top-brand,.login-brand{display:flex;align-items:center;gap:16px;cursor:pointer}.brand-mark{width:72px;height:72px;display:grid;place-items:center;color:#48c9ff;filter:drop-shadow(0 0 10px rgba(32,150,255,.55))}.brand-mark svg{width:62px;height:62px}.top-brand h1,.login-brand h1{font-size:27px;letter-spacing:0;margin:0 0 5px;font-weight:800;white-space:nowrap}.top-brand p,.login-brand p{margin:0;color:#48c5ff;font-size:17px}.top-status{display:flex;gap:25px;align-items:center;font-size:15px;white-space:nowrap}.top-status span{display:flex;align-items:center;gap:8px;border-left:1px solid rgba(71,129,194,.22);padding-left:20px}.top-status svg{color:#a9d7ff;font-size:22px}.top-status b,.green-text{color:var(--green)}.workspace{display:flex;min-height:calc(100vh - 108px);position:relative;z-index:1}.content{width:100%;padding:26px 28px 28px}.has-sidebar .content{padding-left:20px}.sidebar{width:284px;min-width:284px;margin:26px 0 26px 24px;border:1px solid var(--line);border-radius:10px;background:#041630;position:relative;overflow:hidden;box-shadow:var(--shadow)}.sidebar:after{content:"";position:absolute;inset:auto 0 0;height:48%;background:linear-gradient(transparent,#082b5e8a);pointer-events:none}.side-title{height:90px;padding:24px;display:flex;gap:15px;align-items:center;font-size:22px;font-weight:800;border-bottom:1px solid rgba(21,123,255,.25)}.side-title svg{font-size:33px;color:var(--cyan)}.sidebar-blue .side-title svg{color:#71bdff}.sidebar-purple .side-title svg{color:var(--purple)}.side-link{height:72px;margin:0 10px;padding:0 22px;display:flex;align-items:center;gap:16px;border:1px solid transparent;border-radius:8px;color:#d8e9ff;text-decoration:none;font-size:18px;position:relative}.side-link svg{font-size:30px;color:#9dc6ff}.side-link.active{background:#0b4690;border-color:#27adff;box-shadow:0 0 17px #1f8cff47}.side-link.active:after{content:"";position:absolute;right:-11px;border-width:11px 0 11px 11px;border-style:solid;border-color:transparent transparent transparent #29aefe}.side-illustration{position:absolute;bottom:24px;left:72px;opacity:.1;color:#178fff;font-size:150px}.screen-heading{height:54px;display:flex;align-items:center;gap:11px;margin-bottom:12px}.screen-heading .heading-line{width:5px;height:30px;background:#42b9ff}.screen-heading svg{font-size:30px;color:#3fc8ff}.screen-heading h2{font-size:29px;margin:0}.panel{border:1px solid var(--line);border-radius:10px;background:#061b3c;box-shadow:var(--shadow);position:relative}.panel-heading{display:flex;align-items:center;gap:11px;margin-bottom:13px}.panel-heading svg{font-size:28px;color:var(--cyan)}.panel-heading h3{font-size:20px;margin:0;font-weight:800}.panel-heading h3 small{font-size:13px;font-weight:400;color:var(--muted)}.toolbar{display:flex;gap:22px;justify-content:flex-end;align-items:center;padding:16px 24px;margin-bottom:12px}.ghost-btn,.success-btn,.primary-btn,.purple-btn,.cyan-btn,.orange-btn{height:50px;padding:0 25px;border:1px solid #1c89e1;border-radius:7px;background:#062653;color:#e8f4ff;font-weight:700;display:inline-flex;gap:10px;align-items:center;justify-content:center;white-space:nowrap}.ghost-btn svg,.primary-btn svg,.success-btn svg{font-size:23px}.ghost-btn:hover,.ghost-btn:focus{background:#0b4487}.success-btn{background:#1c4b2c;border-color:#79db40;color:#d6ffd0}.primary-btn{background:#126dcc;border-color:#3cb8ff;box-shadow:0 0 13px #1b8fff47}.purple-btn{background:#33206f;border-color:#9f73ff}.cyan-btn{background:#064d65;border-color:#2ad5ff}.orange-btn{background:#6b4a12;border-color:#ffa516}.small{height:40px;padding:0 15px}.wide{width:100%}.page-grid{display:grid;grid-template-columns:minmax(0,2fr) minmax(310px,1fr);gap:14px}.parameters-page .toolbar,.parameters-page .tabs{grid-column:1/-1}.tabs{height:60px;display:flex;align-items:stretch;overflow:hidden}.tabs button{width:178px;border-right:1px solid rgba(37,111,191,.3);background:transparent;color:#b9d3f5;font-size:18px}.tabs button.active{background:#0a4b94;border-bottom:2px solid #24b4ff;color:#fff}.parameter-main{padding:21px}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:15px;background:#071f46;padding:14px;border-radius:8px}.form-grid label,.split-forms label{display:flex;align-items:center;gap:9px;font-size:17px;color:#d6e8ff}.form-grid input,.split-forms input,.calibration-settings input,.report-config input,.report-config select,.filter-panel input,.filter-panel select{margin-left:auto;width:170px;height:43px;border:1px solid #1d5c9c;border-radius:5px;background:#031737;padding:0 15px;text-align:center;font-size:18px;outline:none}.form-grid span,.split-forms span{color:#aac6e5;min-width:34px}.split-forms{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-top:15px}.split-forms>div{border:1px solid rgba(34,113,197,.44);border-radius:8px;padding:14px}.split-forms h4{margin:0 0 13px;font-size:18px;color:#ddecff}.split-forms h4 svg{color:#5abfff;margin-right:8px}.split-forms label{margin-top:13px}.sensor-panel{padding:21px}.sensor-mini{display:grid;grid-template-columns:54px 1fr 66px 22px;gap:11px;align-items:center;padding:15px;border:1px solid #134d88;background:#071f46;border-radius:8px;margin:10px 0}.sensor-mini>svg{font-size:35px;color:#69b8ff}.sensor-mini b,.sensor-mini strong{display:block}.sensor-mini small{display:block;color:var(--muted);margin:4px 0}.sensor-mini .signal-icon{font-size:25px;color:var(--green)}.muted{color:var(--muted)}.large-panel,.calibration-settings,.guide{padding:18px}.data-table{width:100%;border-collapse:separate;border-spacing:0;overflow:hidden;border:1px solid #174c80;border-radius:8px;font-size:14px}.data-table th,.data-table td{padding:12px 10px;border-right:1px solid rgba(52,105,165,.35);border-bottom:1px solid rgba(52,105,165,.35);text-align:center;white-space:nowrap}.data-table th{background:#0a2d5d;color:#d7e9ff;font-weight:700}.data-table tr:last-child td{border-bottom:0}.data-table td:last-child,.data-table th:last-child{border-right:0}.value-strong{font-size:21px;font-weight:800}.cyan-text{color:var(--cyan)}.orange-text{color:var(--orange)}.red-text{color:#ff5c51}.status-dot{display:inline-block;width:12px;height:12px;background:var(--green);border-radius:50%;margin-right:6px}.result-banner{border:1px solid #2c986d;background:#0a3b49;padding:15px 24px;border-radius:8px;display:flex;gap:25px;align-items:center;margin-bottom:10px}.result-banner svg{font-size:50px;color:var(--green)}.result-banner strong{font-size:24px;color:var(--green);display:block}.result-banner span{font-size:16px}.calibration-settings label{height:50px;display:flex;align-items:center;gap:12px;padding:6px 5px;border-bottom:1px solid rgba(38,91,147,.35);font-size:17px}.calibration-settings label>svg{font-size:27px;color:#67bcff}.calibration-settings input{height:39px}.guide ol{padding:0;margin:0;list-style:none}.guide li{display:flex;align-items:center;gap:12px;padding:7px 0;font-size:15px}.guide li b{display:grid;place-items:center;width:31px;height:31px;border-radius:50%;background:#156cd1;font-size:18px}.realtime-page{display:grid;grid-template-columns:minmax(0,3fr) 310px;gap:14px}.sensor-cards,.table-panel{padding:18px}.sensor-cards{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;grid-column:1}.sensor-card{padding:18px 15px;border:1px solid #1a71bd;border-radius:8px;background:#071f46}.sensor-value{display:flex;align-items:center;gap:13px;padding-bottom:16px;border-bottom:1px solid rgba(42,100,166,.4)}.sensor-value>svg{font-size:56px;color:#7ebdff}.sensor-value b{font-size:16px;color:#c8e5ff;display:block}.sensor-value strong{display:block;font-size:45px;line-height:1.15}.sensor-value em,.overview-card em,.result-metrics em{font-size:17px;font-style:normal}.stat-row{display:grid;grid-template-columns:1fr 1fr;gap:8px 12px;padding-top:12px}.stat-row span{color:#c9ddf7;font-size:15px}.stat-row b{display:block;color:#eaf4ff;margin-top:4px}.stat-row i{display:inline-block;width:12px;height:12px;background:var(--green);border-radius:50%;margin-right:5px}.table-panel{grid-column:1}.table-panel .panel-heading{justify-content:space-between}.switch{margin-left:auto;font-size:14px;color:var(--muted);display:flex;gap:8px;align-items:center}.switch input{display:none}.switch span{width:34px;height:18px;background:#115084;border-radius:20px;position:relative}.switch span:after{content:"";position:absolute;width:14px;height:14px;border-radius:50%;left:2px;top:2px;background:#8bbce7;transition:.2s}.switch input:checked+span{background:#1278d1}.switch input:checked+span:after{left:18px;background:#fff}.side-stack{grid-column:2;grid-row:1/3;display:flex;flex-direction:column;gap:14px}.side-stack .panel{padding:18px}.status-list p{border-bottom:1px solid rgba(42,103,169,.35);padding:11px 0;margin:0;display:flex;justify-content:space-between}.status-list b{color:var(--green)}.quick-stat>strong{display:block;font-size:22px;text-align:center;margin:20px 0}.quick-stat>span{display:block;text-align:center;color:var(--muted);margin-bottom:14px}.quick-stat .ghost-btn{margin:0 auto;display:flex}.prediction-result,.impact,.depth-chart,.model-status,.trend-chart{padding:18px}.prediction-result{grid-column:1}.impact{grid-column:2}.result-metrics{display:grid;grid-template-columns:1fr 1fr;gap:10px}.result-metrics>div{display:grid;grid-template-columns:57px 1fr;column-gap:12px;align-items:center;border-right:1px solid rgba(29,108,191,.4)}.result-metrics>div:last-child{border:0}.result-metrics svg{grid-row:span 2;font-size:45px;color:var(--orange)}.result-metrics>div:last-child svg{color:var(--green)}.result-metrics small{color:#bfd6f3}.result-metrics strong{font-size:40px;color:var(--orange)}.impact-row{display:grid;grid-template-columns:120px 24px 1fr 58px;align-items:center;gap:7px;height:29px;font-size:14px}.impact-row i{height:14px;border-radius:3px;background:#3b9dff}.impact-row i.purple{background:#9f69f5}.impact-row i.cyan{background:#2ccfe3}.impact-row i.green{background:#71d846}.impact-row i.orange{background:#ffb52c}.depth-chart{grid-column:1}.model-status{grid-column:2}.model-status p{margin:0;padding:9px 0;border-bottom:1px solid rgba(42,103,169,.35);display:flex;align-items:center;gap:9px}.model-status p svg{color:var(--green)}.model-status p b{margin-left:auto;color:var(--green)}.trend-chart{grid-column:1/-1}.action-bar{grid-column:1/-1;display:grid;grid-template-columns:repeat(4,1fr);gap:18px}.action-bar button{height:58px;font-size:19px}.charts-page .chart-grid{display:grid;grid-template-columns:1.1fr 1.1fr .7fr;gap:14px}.chart-panel,.indicators,.donut-panel,.anomaly{padding:18px}.chart-canvas{height:265px;width:100%}.lower{grid-template-columns:1fr 1fr .62fr .88fr!important;margin-top:14px}.lower .chart-canvas{height:300px}.indicator-item{display:flex;gap:14px;align-items:center;padding:13px 11px;border:1px solid #1b5e9f;border-radius:7px;margin-top:9px;background:#071f46}.indicator-item>svg{font-size:38px;color:#60b8ff}.indicator-item small,.indicator-item span{display:block;color:#a6c6ea}.indicator-item strong{display:block;font-size:24px}.indicator-item em{font-size:13px;font-style:normal}.donut{width:180px;height:180px;border-radius:50%;margin:15px auto;border:30px solid #4dad45;border-right-color:#2987e4;border-bottom-color:#f28d28;display:grid;place-items:center}.donut>div{text-align:center}.donut strong,.donut span{display:block}.donut strong{font-size:29px}.donut span{color:#bdd4f4}.donut-panel p{margin:9px 8px;font-size:14px}.green-dot,.blue-dot,.orange-dot{display:inline-block;width:14px;height:14px;margin-right:8px}.green-dot{background:#51ad43}.blue-dot{background:#2785de}.orange-dot{background:#ee8c24}.filter-panel{padding:18px 25px;margin-bottom:14px}.filter-row{display:grid;grid-template-columns:1.2fr .8fr .8fr auto auto;gap:22px;align-items:end;margin-bottom:15px}.filter-row:first-child{grid-template-columns:1.2fr .8fr .8fr}.filter-row:last-child{margin-bottom:0}.filter-row label{display:flex;flex-direction:column;gap:7px;color:#c6dbf6;font-size:14px}.filter-row input,.filter-row select{width:100%;height:43px;text-align:left}.history-layout{display:grid;grid-template-columns:minmax(0,1fr) 224px;gap:14px}.history-results{padding:18px;overflow:hidden}.history-results .panel-heading{justify-content:space-between}.panel-heading h3 small{margin-left:8px}.pager{margin-left:auto;color:var(--muted);font-size:13px}.pager b{color:#fff;background:#103d74;padding:7px 12px;border-radius:4px}.export-panel{padding:18px}.export-panel p{color:#bdd4f3;margin:17px 0 10px}.radio{display:block;margin:13px 0;color:#d9e8fb}.radio input{accent-color:#239bff}.format-btn{height:47px;width:100%;display:flex;align-items:center;gap:10px;margin:9px 0;border:1px solid #1d7bba;border-radius:6px;background:#0b3b5d}.format-btn.excel{border-color:#258b76;background:#0b3f3a}.format-btn.pdf{border-color:#b34443;background:#4a2735}.history-chart{padding:18px;margin-top:14px}.history-chart .chart-canvas{height:210px}.report-page .page-toolbar{margin-bottom:12px}.page-toolbar{background:transparent;border:0;box-shadow:none;padding:0}.report-layout{display:grid;grid-template-columns:415px minmax(0,1fr);gap:14px}.report-preview,.report-config,.recent-reports{padding:18px}.report-paper{height:620px;background:#edf1f5;color:#173763;padding:37px 27px;text-align:center;border-radius:7px;box-shadow:0 0 18px #4b8cce38}.report-paper>svg{font-size:63px;color:#2676cf}.report-paper h2{font-size:22px;margin:22px 0 8px}.report-paper p{font-size:13px}.report-paper .paper-divider{border-top:1px solid #a8bad2;margin:28px 0 18px}.report-paper>b{display:block;text-align:left;margin-bottom:14px}.report-paper p{display:flex;justify-content:space-between;border-bottom:1px solid #c6d1de;padding:12px 0;margin:0}.report-paper strong{font-size:16px}.report-config label{display:block;padding:11px 0;color:#c5dbf5}.report-config label>select,.report-config label>input{width:100%;margin:8px 0 0}.date-pair{display:flex;gap:12px;align-items:center}.date-pair>*{flex:1!important;width:auto!important;margin:8px 0 0!important}.chapter-row{background:#092652;border-radius:7px;padding:13px;display:flex;gap:13px;align-items:center;flex-wrap:wrap}.chapter-row>span{width:100%}.chapter-row label{padding:0}.chapter-row input{accent-color:#238dff}.format-options{display:flex;gap:12px;margin-top:8px}.format-options button{height:44px;flex:1;border:1px solid #285f98;border-radius:5px;background:#0a2c59}.format-options button.active{border-color:#26b6ff;background:#0c5896}.radio-row{display:flex;gap:20px;background:#092652;padding:12px;border-radius:6px}.radio-row label{padding:0}.radio-row input{accent-color:#238dff}.recent-reports{grid-column:2;margin-top:-1px}.sync-stats{display:grid;grid-template-columns:repeat(5,1fr);gap:14px}.stat-card{padding:17px;display:flex;gap:14px;align-items:center}.stat-card>svg{font-size:50px}.stat-card>svg.green{color:var(--green)}.stat-card>svg.blue{color:#68a8ff}.stat-card>svg.orange{color:var(--orange)}.stat-card small,.stat-card span{display:block;color:#b1c9e8}.stat-card strong{display:block;font-size:27px;color:var(--green);margin:7px 0}.sync-layout{display:grid;grid-template-columns:1.2fr .8fr;gap:14px;margin-top:14px}.workflow,.diagnostics,.task-log,.backup{padding:18px}.workflow-row{display:flex;justify-content:space-between;gap:10px}.workflow-step{text-align:center;flex:1}.workflow-step>div{width:82px;height:82px;margin:10px auto;border:1px solid #2aa7f5;border-radius:50%;display:grid;place-items:center;position:relative;background:#092852}.workflow-step svg{font-size:42px;color:#86c8ff}.workflow-step b{position:absolute;right:-2px;bottom:4px;width:21px;height:21px;border-radius:50%;background:#42be6a;color:#021225;font-size:13px}.workflow-step strong,.workflow-step span{display:block}.workflow-step span{font-size:13px;color:#99b5d8;margin-top:7px}.progress{height:5px;background:#08234a;margin-top:19px;overflow:hidden}.progress span{display:block;height:100%;background:#29bfff;transition:width .18s}.diagnostics p{display:grid;grid-template-columns:1fr 1.5fr auto;gap:8px;padding:9px 10px;margin:0;border-bottom:1px solid rgba(42,103,169,.34);background:#08264f;border-radius:5px}.diagnostics p+p{margin-top:6px}.diagnostics p span{color:#b2cbed}.diagnostics p strong{color:var(--green)}.sync-bottom{display:grid;grid-template-columns:1.25fr .75fr;gap:14px;margin-top:14px}.backup-metrics{display:grid;grid-template-columns:1fr 1fr;gap:14px}.backup-metrics>div{padding:20px 10px;border:1px solid #1c5d9e;border-radius:7px;display:flex;gap:13px;align-items:center}.backup-metrics strong{font-size:24px;color:var(--orange)}.backup-metrics span{line-height:1.7;color:#bfd3ef}.backup-actions{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-top:14px}.backup-actions button{padding:0 8px}.home-page{padding-top:4px}.home-modules{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}.module-card{padding:22px;border-radius:12px;border:1px solid var(--line);box-shadow:var(--shadow);background:#061b3c}.module-blue{border-color:#238dff}.module-cyan{border-color:#1ebfd7}.module-purple{border-color:#8e68ef}.module-heading{display:flex;align-items:center;gap:14px;margin-bottom:19px}.module-heading svg{font-size:38px;color:#59c9ff}.module-purple .module-heading svg{color:#b18aff}.module-heading h2{margin:0;font-size:23px}.module-card button{width:100%;height:63px;display:flex;align-items:center;gap:15px;padding:0 22px;margin:10px 0;border:1px solid #1b7bc9;border-radius:8px;background:#092a56;color:#e4f2ff;font-size:19px;font-weight:700;text-align:left}.module-card button svg:first-child{font-size:29px;color:#5ed2ff}.module-card button svg:last-child{margin-left:auto;font-size:20px;color:#5bb3f4}.module-card button:hover{background:#0e4e95}.home-section{margin-top:18px;padding:18px;border:1px solid var(--line);border-radius:10px;background:#051a39}.section-title{display:flex;align-items:center;gap:12px;margin-bottom:15px}.section-title svg{font-size:28px;color:#4dcaff}.section-title h2{font-size:22px;margin:0}.overview-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:16px}.overview-card{min-height:110px;border:1px solid #1d86d4;border-radius:8px;background:#071f46;padding:18px 22px;display:flex;align-items:center;gap:18px}.overview-card>svg{font-size:48px;color:#6ab5ff}.overview-card.orange{border-color:#e39b1f}.overview-card.orange>svg{color:var(--orange)}.overview-card.green{border-color:#51ba58}.overview-card.green>svg{color:var(--green)}.overview-card small{display:block;color:#b5ceee}.overview-card strong{font-size:33px;display:block;margin-top:6px}.overview-card.green strong{color:var(--green)}.sensor-strip{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}.sensor-strip-card{display:grid;grid-template-columns:48px 1fr 70px 65px;gap:10px;align-items:center;padding:14px 16px;border:1px solid #197fc5;border-radius:8px;background:#071f46}.sensor-strip-card>svg{font-size:38px;color:#78c5ff}.sensor-strip-card b,.sensor-strip-card small,.sensor-strip-card strong{display:block}.sensor-strip-card small{color:var(--muted);font-size:12px;margin:4px 0}.sensor-strip-card strong{font-size:19px}.sensor-strip-card em{font-size:12px;font-style:normal}.login-root{min-width:0}.login-screen{min-height:100vh;display:grid;place-items:center;position:relative;background:#020e2a}.login-screen:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background-image:linear-gradient(rgba(17,90,160,.08) 1px,transparent 1px),linear-gradient(90deg,rgba(17,90,160,.05) 1px,transparent 1px);background-size:48px 48px;opacity:.5}.login-brand{position:absolute;top:44px;left:50%;transform:translate(-50%);z-index:1}.login-brand h1{font-size:30px}.login-brand p{font-size:19px;text-align:center}.login-card{width:670px;margin-top:70px;padding:34px 64px 28px;border:1px solid #138fe0;border-radius:13px;background:#041b43;box-shadow:0 0 40px #1682ff47;position:relative;z-index:1}.login-title{display:flex;align-items:center;gap:18px;justify-content:center;margin-bottom:26px}.login-title span{height:2px;width:125px;background:#1e86db}.login-title h2{color:#5cc9ff;font-size:28px;margin:0}.login-input{height:59px;border:1px solid #205b9c;background:#061b42;border-radius:8px;display:flex;align-items:center;gap:15px;padding:0 17px;margin:14px 0}.login-input>svg{font-size:26px;color:#87bdf6}.login-input input{border:0;background:transparent;outline:none;flex:1;font-size:20px;color:#eaf4ff}.captcha-input b{background:#fff;color:#2c2b43;padding:6px 12px;letter-spacing:6px;font-size:20px}.remember{display:flex;gap:8px;align-items:center;color:#cbe3ff;font-size:16px;margin:17px 0}.remember input{width:19px;height:19px;accent-color:#238dff}.primary-login{width:100%;height:58px;border-radius:7px;background:#167fe1;border:1px solid #46caff;color:#fff;font-size:23px;font-weight:800;box-shadow:0 0 19px #209cff99}.login-support{text-align:center;margin-top:28px;color:#bdd8f8}.login-support svg{color:#5cbaff;font-size:22px;vertical-align:middle}.login-card small{display:block;text-align:center;color:#7e9fca;margin-top:16px;font-size:15px}.login-decor{position:absolute;z-index:0;color:#1479df;opacity:.24}.decor-left{left:8%;bottom:17%;font-size:390px}.decor-right{right:9%;bottom:26%;display:grid;gap:70px;font-size:170px}.toast{position:fixed;top:126px;left:50%;transform:translate(-50%);z-index:20;padding:12px 22px;border:1px solid #35bdff;border-radius:7px;background:#092e5d;color:#eff9ff;box-shadow:0 0 20px #1994ff73;display:flex;align-items:center;gap:8px}.toast svg{color:var(--green)}.toast-enter-active,.toast-leave-active{transition:.2s}.toast-enter-from,.toast-leave-to{opacity:0;transform:translate(-50%,-8px)}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#000512ad;z-index:15;display:grid;place-items:center}.modal{width:450px;padding:20px}.modal .icon-btn{margin-left:auto;background:transparent;color:#8eb8e8;font-size:22px}.detail-grid{display:grid;grid-template-columns:120px 1fr;gap:12px;padding:10px 0}.detail-grid span{color:var(--muted)}.link-btn{background:transparent;color:#43b8ff;font-weight:700}.icon-btn{background:transparent}.compact td,.compact th{padding:9px 8px}@media(max-width:1360px){.top-status{gap:11px}.top-status span{padding-left:10px}.sidebar{width:250px;min-width:250px}.content{padding-right:18px}.charts-page .chart-grid{grid-template-columns:1fr 1fr}.charts-page .indicators{grid-column:1/-1;display:grid;grid-template-columns:repeat(4,1fr);gap:10px}.indicators .panel-heading{grid-column:1/-1}.lower{grid-template-columns:1fr 1fr!important}.donut-panel,.anomaly{grid-column:auto}.report-layout{grid-template-columns:350px 1fr}.report-paper{height:580px}}.login-input select{border:0;background:transparent;outline:none;flex:1;font-size:20px;color:#eaf4ff;-webkit-appearance:none;-moz-appearance:none;appearance:none}.login-input select option{background:#061b42;color:#eaf4ff}.login-context-back{display:block;margin:12px auto 0;background:transparent;color:#8fc8ff;font-size:14px}.brand-mark img{width:72px;height:72px;object-fit:contain}html,body,#root{height:100%;overflow:hidden}.app-root{height:100vh;overflow:hidden}.workspace{height:calc(100vh - 108px);min-height:0;overflow:hidden}.content{overflow:auto;scrollbar-width:none}.content::-webkit-scrollbar{display:none}.module-card{position:relative;overflow:hidden}.module-card:after{content:"";position:absolute;right:2px;bottom:0;width:49%;height:74%;background:url(/assets/sidebar-rig.png) center bottom/contain no-repeat;opacity:.52;filter:brightness(1.9) saturate(1.6);pointer-events:none}.module-card>*{position:relative;z-index:1}.module-card button{position:relative;z-index:1}.topbar{background-color:#03122f;background-image:linear-gradient(90deg,#021333fa,#021333e6 48%,#031431c2),url(/assets/header-tech-strip.png);background-position:center,bottom center;background-repeat:no-repeat;background-size:100% 100%,100% 25px;overflow:hidden;isolation:isolate}.panel:after{content:"";position:absolute;top:1px;right:1px;bottom:1px;left:1px;border-radius:9px;background:url(/assets/panel-grid-texture.png) top right/100% 70px repeat-x;opacity:.16;pointer-events:none;z-index:0}.panel>*{position:relative;z-index:1}.topbar:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(90deg,transparent 0 50%,rgba(30,140,255,.12) 66%,transparent 86%),repeating-linear-gradient(115deg,transparent 0 25px,rgba(34,151,255,.06) 26px,transparent 27px 52px);opacity:.72;pointer-events:none;z-index:-1}.header-angle{position:absolute;left:46%;top:0;width:132px;height:95px;object-fit:cover;opacity:.9;mix-blend-mode:screen;pointer-events:none;z-index:0}.header-scanline{position:absolute;left:0;top:0;width:30%;height:1px;background:linear-gradient(90deg,transparent,rgba(72,202,255,.95),transparent);box-shadow:0 0 13px #31b6ffcc;animation:headerScan 7s linear infinite;pointer-events:none;z-index:2}.top-brand,.top-status{position:relative;z-index:3}.module-heading .module-asset-icon{width:50px;height:50px;object-fit:contain;filter:drop-shadow(0 0 9px rgba(47,177,255,.45))}.module-purple .module-heading .module-asset-icon{filter:drop-shadow(0 0 10px rgba(173,122,255,.48))}.module-dots{height:4px;width:88px;margin-left:5px;background:radial-gradient(circle,#2b89da 2px,transparent 3px) 0 center/10px 4px repeat-x;opacity:.56}.module-purple .module-dots{background-image:radial-gradient(circle,#a77aff 2px,transparent 3px)}.module-card button .button-asset-icon{width:44px;height:44px;object-fit:contain;flex:none;filter:drop-shadow(0 0 7px rgba(52,158,255,.35))}.sensor-strip-card .sensor-asset-icon{width:46px;height:46px;object-fit:contain;filter:drop-shadow(0 0 8px rgba(61,162,255,.4))}.side-illustration{position:absolute;bottom:9px;left:50%;transform:translate(-50%);width:184px;height:408px;object-fit:contain;opacity:.32;filter:brightness(1.7) saturate(1.5) drop-shadow(0 0 9px rgba(20,143,255,.7));font-size:0;z-index:0;pointer-events:none}.side-illustration+*{position:relative;z-index:1}.report-preview .panel-heading{position:relative}.preview-open-btn{margin-left:auto;height:33px;padding:0 10px;border:1px solid #2a91dc;border-radius:5px;background:#0a386c;color:#bfe7ff;font-size:13px;display:inline-flex;align-items:center;gap:6px}.report-logo{width:66px;height:66px;object-fit:contain;filter:drop-shadow(0 0 8px rgba(36,123,215,.35))}.paper-hint{display:block;margin-top:22px;color:#56738f;font-size:11px}.pdf-modal-backdrop{align-items:center;padding:20px}.pdf-modal{width:min(1120px,calc(100vw - 64px));height:min(860px,calc(100vh - 42px));display:flex;flex-direction:column;padding:16px;background:linear-gradient(145deg,#061b3e,#03122b 78%);border-color:#238bd7;box-shadow:0 0 38px #1786ff6b}.pdf-modal>.panel-heading{margin-bottom:10px;border-bottom:1px solid rgba(57,151,226,.32);padding:0 0 12px}.pdf-toolbar{display:flex;align-items:center;gap:10px;min-height:44px;color:#bdd8f4;font-size:13px}.pdf-toolbar i{flex:1}.pdf-toolbar b{color:#72caff;min-width:46px;text-align:center}.pdf-stage{flex:1;min-height:0;display:grid;place-items:center;overflow:auto;padding:18px;background:radial-gradient(circle at 50% 25%,rgba(22,98,176,.24),transparent 56%),#020d22;border:1px solid rgba(46,132,206,.35)}.pdf-stage canvas{display:block;max-width:100%;height:auto;background:#fff;box-shadow:0 12px 32px #0000006b}.pdf-loading{position:absolute;display:flex;align-items:center;gap:8px;color:#78caff;background:#06295a;padding:11px 17px;border-radius:5px;border:1px solid #2697e5}.pdf-loading svg{animation:spin 1s linear infinite}.panel{animation:panelBreath 8s ease-in-out infinite}.module-card,.overview-card,.sensor-card,.sensor-strip-card,.side-link,.format-btn,.primary-btn,.ghost-btn,.success-btn,.purple-btn,.cyan-btn,.orange-btn{transition:transform .22s ease,box-shadow .22s ease,background-color .22s ease,border-color .22s ease}.module-card:hover{transform:translateY(-2px);box-shadow:0 0 30px #1f8dff4d}.module-card button:hover,.side-link:hover{transform:translate(3px)}.sensor-strip-card>img,.sensor-mini>svg,.sensor-value>svg{animation:sensorPulse 3s ease-in-out infinite}.status-dot{animation:statusPulse 2.2s ease-in-out infinite}.home-modules .module-card:nth-child(1){animation:cardIn .45s ease-out both}.home-modules .module-card:nth-child(2){animation:cardIn .55s .08s ease-out both}.home-modules .module-card:nth-child(3){animation:cardIn .65s .16s ease-out both}@keyframes headerScan{0%{transform:translate(-20%);opacity:0}12%{opacity:1}80%{opacity:.9}to{transform:translate(345%);opacity:0}}@keyframes panelBreath{0%,to{box-shadow:0 0 24px #157bff26}50%{box-shadow:0 0 28px #157bff40}}@keyframes sensorPulse{0%,to{filter:drop-shadow(0 0 5px rgba(61,162,255,.3))}50%{filter:drop-shadow(0 0 13px rgba(61,195,255,.78))}}@keyframes statusPulse{0%,to{box-shadow:0 0 #79df3f59}50%{box-shadow:0 0 0 5px #79df3f00}}@keyframes cardIn{0%{opacity:0;transform:translateY(9px)}to{opacity:1;transform:translateY(0)}}@keyframes spin{to{transform:rotate(360deg)}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}.header-logout{display:inline-grid;place-items:center;width:34px;height:34px;border:1px solid rgba(84,174,237,.55);border-radius:5px;background:#062c57b8;color:#8fd6ff;cursor:pointer}.header-logout:hover{color:#fff;border-color:#39bfff;box-shadow:0 0 13px #24b0ff73}.refresh-input{width:46px;height:26px;padding:0 5px;margin:0 3px;background:#082853;border:1px solid #2785ca;color:#e5f3ff;border-radius:4px;text-align:center}.pager-btn{min-width:25px;height:27px;margin:0 2px;border:1px solid #1c5e9c;border-radius:3px;background:#082957;color:#aed4f5;cursor:pointer}.pager-btn:disabled{opacity:.4;cursor:not-allowed}.page-size select{width:48px;height:27px;padding:0 3px}.panel-heading>.muted{margin-left:auto}.client-map-page{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(320px,.75fr);gap:14px}.client-map-card,.client-location-list{padding:18px}.client-map-stage{height:600px;position:relative;overflow:hidden;border:1px solid rgba(44,137,208,.55);background:#edf3f8}.client-location-list{height:max-content}.client-location-row{display:grid;grid-template-columns:12px minmax(120px,1fr) 1fr 110px;gap:9px;align-items:center;padding:13px 4px;border-bottom:1px solid rgba(42,103,169,.34)}.client-location-row>div{min-width:0}.client-location-row b,.client-location-row small,.client-location-row>span:not(.status-dot),.client-location-row strong{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.client-location-row small,.client-location-row>span:not(.status-dot){color:#8baad3;font-size:12px;margin-top:4px}.client-location-row strong{color:#70c7ff;font-size:12px;text-align:right}.client-location-row .status-dot{margin-left:2px}.backup-file-input{display:none}.alarm-panel{max-height:180px;overflow:auto}.alarm-row{display:flex;align-items:center;gap:8px;padding:7px 0;border-bottom:1px solid rgba(42,103,169,.3);font-size:12px}.alarm-row span{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.alarm-row .link-btn{padding:0;font-size:12px}.engine-caption{margin:17px 0 0;color:#a8c9ec;font-size:14px}.engine-caption span{color:#69d9ff}.model-warnings{display:grid;gap:5px;margin-top:12px;padding:9px 10px;border:1px solid rgba(255,165,22,.45);background:#6b4a1240;border-radius:5px;color:#ffd18a;font-size:12px}.impact-bar{display:block;height:14px;border-radius:3px;background:#3b9dff}.impact-bar.purple{background:#9f69f5}.impact-bar.cyan{background:#2ccfe3}.impact-bar.green{background:#71d846}.impact-bar.orange{background:#ffb52c}.client-map-stage{background:#edf3f8!important;background-image:none!important;isolation:isolate}.client-map-stage.leaflet-container{height:100%;width:100%;font-family:inherit}.client-map-state{position:absolute;z-index:10;top:0;right:0;bottom:0;left:0;display:grid;place-content:center;justify-items:center;gap:10px;padding:28px;background:#f4f8fcf5;color:#637990;text-align:center}.client-map-state>.iconify{font-size:44px;color:#6f9ec5}.client-map-state strong{max-width:440px;color:#304c68;font-size:15px}.client-map-state small{max-width:440px;color:#8194a7;font-size:12px}.client-map-state .ghost-btn{margin-top:2px}.client-map-empty-overlay{position:absolute;z-index:5;top:0;right:0;bottom:0;left:0;display:grid;place-items:center;pointer-events:none;color:#60758a;background:#f4f8fcb8}.map-heading-actions{display:flex;align-items:center;gap:12px;margin-left:auto}.map-connected{display:inline-flex;align-items:center;gap:6px;color:#229254;font-size:12px;white-space:nowrap}.map-connected i{display:inline-block;width:7px;height:7px;border-radius:50%;background:#29a75f;box-shadow:0 0 0 4px #e1f4e8}.client-leaflet-marker-wrapper{background:transparent;border:0}.client-leaflet-marker{display:block;width:18px;height:18px;border:3px solid #fff;border-radius:50% 50% 50% 0;background:#27a05c;box-shadow:0 2px 8px #17345257;transform:rotate(-45deg)}.client-leaflet-marker.offline{background:#e49a26}.client-leaflet-marker.disabled{background:#8b9aab;box-shadow:none}.client-location-empty{padding:24px 4px;text-align:center}.client-location-row strong.muted{color:#9aaaba}.password-toggle,.captcha-code,.captcha-refresh{border:0;background:transparent;color:#8fc9f7;display:inline-grid;place-items:center;flex:0 0 auto}.password-toggle{width:32px;height:32px;font-size:22px}.password-toggle:hover,.captcha-refresh:hover{color:#fff}.captcha-code{min-width:80px;height:38px;padding:0 10px;border:1px solid #68a9d9;border-radius:4px;background:#edf6ff;color:#182c55;font-size:20px;font-weight:800;letter-spacing:5px;line-height:1}.captcha-code:hover{border-color:#40caff;box-shadow:0 0 12px #37caff59}.captcha-refresh{width:30px;height:32px;font-size:21px}.prediction-history{grid-column:1/-1;padding:18px;overflow:hidden}.prediction-history .panel-heading{margin-bottom:11px}.prediction-history .panel-heading button{margin-left:auto}.prediction-history .data-table{table-layout:fixed}.prediction-history th,.prediction-history td{overflow:hidden;text-overflow:ellipsis}.sensor-value strong,.overview-card strong,.result-metrics strong{font-variant-numeric:tabular-nums}.sensor-card,.sensor-strip-card,.sensor-mini{transition:transform .28s ease,box-shadow .28s ease,border-color .28s ease}.sensor-card:hover,.sensor-strip-card:hover,.sensor-mini:hover{transform:translateY(-2px);border-color:#39c2ff;box-shadow:0 0 22px #26a3ff40}.api-status-chip{gap:8px!important;padding-left:16px!important;min-height:42px}.api-status-chip>svg{font-size:23px!important}.api-status-chip>strong{color:#d7eaff;font-weight:800}.api-status-chip>b{font-size:16px}.api-status-chip>small{color:#a8c9eb;font-size:12px}.api-status-light{width:10px;height:10px;display:inline-block;border-radius:50%;background:#8298b5;box-shadow:0 0 0 4px #8298b529}.api-status-connected .api-status-light{background:var(--green);box-shadow:0 0 0 4px #79df3f29,0 0 11px #79df3fbf;animation:apiLightPulse 2.2s ease-in-out infinite}.api-status-connecting .api-status-light{background:var(--orange);box-shadow:0 0 0 4px #ffa51626,0 0 10px #ffa516a6;animation:apiLightPulseOrange 1.1s ease-in-out infinite}.api-status-error .api-status-light{background:#ff4f5b;box-shadow:0 0 0 4px #ff4f5b29,0 0 10px #ff4f5bb3}.api-status-error>b{color:#ff747e}.api-status-idle>b{color:#a9bed7}.api-inline-connected{color:var(--green)!important}.api-inline-connecting{color:var(--orange)!important}.api-inline-error{color:#ff6470!important}.api-inline-idle{color:#a9bed7!important}.api-inline-connected>.status-dot{background:var(--green)}.api-inline-connecting>.status-dot{background:var(--orange)}.api-inline-error>.status-dot{background:#ff4f5b}.api-inline-idle>.status-dot{background:#8298b5;animation:none}.sensor-alarm,.sensor-mini.sensor-alarm{border-color:#ff4f5b!important;background:linear-gradient(135deg,#6b1a2f6b,#201535bf)!important;box-shadow:0 0 18px #ff3d5a3b!important}.sensor-alarm .sensor-value>svg,.sensor-alarm .sensor-value strong{color:#ff6a72}.sensor-alarm-row td{background:#6f192e47;color:#ffe4e6}.sensor-alarm-row td:first-child{box-shadow:inset 3px 0 #ff4f5b}.status-dot.alarm{background:#ff4f5b!important;box-shadow:0 0 0 4px #ff4f5b24,0 0 10px #ff4f5bb3;animation:alarmPulse 1.4s ease-in-out infinite}.status-dot.connecting{background:var(--orange)!important}.status-dot.error{background:#ff4f5b!important}.status-dot.idle{background:#8298b5!important;animation:none}.status-dot.offline{background:var(--orange)!important;animation:none}.status-dot.disabled{background:#7890aa!important;animation:none}.stat-row small{display:block;color:#91b0d3;font-size:11px;margin-top:3px}.sensor-empty{display:block;padding:22px;text-align:center}.status-list .status-dot{width:8px;height:8px;margin-right:5px;vertical-align:1px;animation:none}@keyframes apiLightPulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.65;transform:scale(.82)}}@keyframes apiLightPulseOrange{0%,to{opacity:.65}50%{opacity:1}}@keyframes alarmPulse{0%,to{box-shadow:0 0 0 3px #ff4f5b1f,0 0 8px #ff4f5b8c}50%{box-shadow:0 0 0 7px #ff4f5b00,0 0 14px #ff4f5bd9}}@media(max-width:1360px){.prediction-history{grid-column:1/-1}.prediction-history .data-table{font-size:12px}}
