.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{color-scheme:dark;--bg:#0b131e;--bg-lowest:#070d15;--sidebar:#0e1724;--canvas-bg:#051424;--canvas-edge-stroke:#051424;--card:#131d2b;--card2:#182436;--card-high:#202f45;--card-highest:#283a54;--input:#0c1420;--border:#1e2c3f;--border-bright:#2b3e58;--primary:#60a5fa;--primary-fixed:#93c5fd;--primary-dim:#3b82f6;--action:#2563eb;--action-hover:#3b82f6;--text:#e2e8f0;--soft:#94a3b8;--dim:#475569;--green:#6ee7b7;--red:#fca5a5;--red-dim:#fecdd3;--amber:#fcd34d;--blue:#93c5fd;--violet:#c4b5fd;--topbar:rgba(11,19,30,.96);--detail:#0e1724;--nav-open:#132030;--nav-open-border:#1e2c3f;--clock:#0e1724;--clock-border:#1e2c3f;--ip-text:#93c5fd;--overlay:rgba(11,19,30,.92);--radius:8px;font-family:Inter,system-ui,-apple-system,sans-serif;background:var(--bg);color:var(--text)}:root[data-theme=light]{color-scheme:light;--bg:#f1f5f9;--bg-lowest:#e2e8f0;--sidebar:#ffffff;--canvas-bg:#ffffff;--canvas-edge-stroke:#ffffff;--card:#ffffff;--card2:#f8fafc;--card-high:#e2e8f0;--card-highest:#cbd5e1;--input:#f8fafc;--border:#cbd5e1;--border-bright:#94a3b8;--primary:#2563eb;--primary-fixed:#3b82f6;--primary-dim:#1d4ed8;--action:#2563eb;--action-hover:#1d4ed8;--text:#0f172a;--soft:#64748b;--dim:#94a3b8;--green:#059669;--red:#e11d48;--red-dim:#9f1239;--amber:#d97706;--blue:#2563eb;--violet:#7c3aed;--topbar:rgba(241,245,249,.97);--detail:#e2e8f0;--nav-open:#e2e8f0;--nav-open-border:#cbd5e1;--clock:#f8fafc;--clock-border:#cbd5e1;--ip-text:#2563eb;--overlay:rgba(255,255,255,.97);--radius:8px;font-family:Inter,system-ui,-apple-system,sans-serif;background:var(--bg);color:var(--text)}*{box-sizing:border-box}html,body,#root{min-height:100%;margin:0}body{background:var(--bg)}button,input,select,textarea{font:inherit}button,a{-webkit-tap-highlight-color:transparent}a{color:inherit;text-decoration:none}code,.mono{font-family:JetBrains Mono,monospace}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:2px solid #7bb0ff;outline-offset:2px}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.skip-link{position:fixed;left:1rem;top:-5rem;background:var(--primary);padding:.75rem;z-index:1000}.skip-link:focus{top:1rem}.app-shell{min-height:100vh;display:flex}.sidebar{position:fixed;inset:0 auto 0 0;width:220px;overflow:hidden;background:var(--sidebar);border-right:1px solid var(--border);display:flex;flex-direction:column;z-index:30}.brand{height:64px;display:flex;align-items:center;gap:10px;padding:10px 14px;border-bottom:1px solid var(--border);background:var(--sidebar)}.brand img{width:34px;height:34px;border-radius:8px;object-fit:cover;border:none}.brand strong{font-size:13px;line-height:1.2;letter-spacing:.04em;color:var(--primary-fixed)}.brand strong span{display:block;color:var(--soft);font-size:9px;font-weight:600;letter-spacing:.12em;text-transform:uppercase;font-family:JetBrains Mono,monospace}.live-clock{margin:10px;padding:10px 12px;background:var(--clock);border:1px solid var(--clock-border);border-radius:8px;display:grid;gap:3px;box-shadow:inset 0 1px 4px #0000001a}.live-clock small{color:var(--soft);font-size:10px;font-family:JetBrains Mono,monospace;letter-spacing:.05em}.live-clock b{color:var(--primary-fixed);font:600 17px JetBrains Mono,monospace;letter-spacing:.06em}.sidebar nav{display:grid;gap:3px;padding:4px 8px}.sidebar nav a,.sidebar-bottom a,.sidebar-bottom button{min-height:40px;border:1px solid transparent;border-radius:7px;display:flex;align-items:center;gap:10px;padding:0 10px;background:transparent;color:var(--soft);cursor:pointer;text-align:left;transition:all .15s ease}.sidebar nav a:hover,.sidebar-bottom a:hover{background:var(--card-high);color:var(--text)}.sidebar nav a.active,.sidebar-bottom a.active{color:var(--primary-fixed);background:#60a5fa1f;border-color:#60a5fa40}.sidebar-bottom{margin-top:auto;padding:8px;border-top:1px solid var(--border);display:grid}.sidebar-bottom button{width:100%}.main-wrap{margin-left:220px;min-width:0;width:calc(100% - 220px)}.topbar{height:48px;position:sticky;top:0;z-index:20;background:#0b131ef5;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-bottom:1px solid var(--border);display:flex;align-items:center;justify-content:space-between;padding:0 18px;color:var(--soft);font-size:12px}.topbar-heading{display:flex;align-items:center;gap:8px;font-family:JetBrains Mono,monospace;font-size:11px}.topbar-heading span{color:var(--primary-fixed);font-weight:700;letter-spacing:.05em}.topbar-heading strong{color:var(--soft);font-weight:400}.top-stats{display:flex;align-items:center;gap:7px}.top-stats b{color:var(--text);margin-right:2px}.top-stats .top-pill{display:inline-flex;align-items:center;gap:6px;padding:4px 9px;border-radius:6px;background:var(--card);border:1px solid var(--border);font-size:11px;font-family:JetBrains Mono,monospace}.top-stats .top-pill.alarm{background:#fca5a51f;border-color:#fca5a559;color:var(--red)}.top-stats .top-pill.alarm b{color:var(--red)}.dot{width:7px;height:7px;border-radius:50%;background:currentColor;display:inline-block}.green,.dot.green{color:var(--green)}.red,.dot.red{color:var(--red)}.amber,.dot.amber{color:var(--amber)}.blue,.dot.blue{color:var(--primary)}.gray,.dot.gray{color:var(--dim)}.top-actions{display:flex;align-items:center;gap:6px}.top-actions button,.top-actions a{border:1px solid var(--border);background:var(--card);color:var(--soft);min-height:32px;padding:5px 10px;border-radius:6px;cursor:pointer;display:inline-flex;align-items:center;gap:6px;transition:all .15s ease}.top-actions button:hover,.top-actions a:hover{color:var(--primary);border-color:var(--primary);background:var(--card-high)}.top-actions a.active{background:#60a5fa1f;border-color:#60a5fa40;color:var(--primary-fixed)}#main-content{padding:24px;max-width:1900px;margin:auto}.page-header{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;margin-bottom:22px}.page-header h1{font-size:23px;margin:5px 0 0;letter-spacing:-.01em}.eyebrow{font-size:10px;font-weight:700;letter-spacing:.12em;color:var(--primary);font-family:JetBrains Mono,monospace}.page-actions{display:flex;gap:8px;align-items:center}.worker-pill{display:inline-flex;align-items:center;gap:7px;border:1px solid var(--border);padding:8px 11px;border-radius:7px;color:var(--soft);font-size:12px;background:var(--card)}.worker-pill.online .dot{color:var(--green)}.worker-pill.offline .dot{color:var(--red)}.stat-grid{display:grid;grid-template-columns:repeat(6,minmax(120px,1fr));gap:8px;margin-bottom:14px;overflow-x:auto;scrollbar-width:thin}.stat-card{min-width:120px;background:var(--card);border:1px solid var(--border);border-radius:var(--radius);min-height:80px;padding:12px 14px;display:flex;align-items:center;gap:10px;box-shadow:0 4px 12px #00000040;transition:all .15s ease}.stat-card:hover{border-color:var(--border-bright);transform:translateY(-1px);box-shadow:0 6px 18px #00000059}.stat-card i{width:3px;height:38px;border-radius:4px;background:currentColor;flex:0 0 auto}.stat-card div{display:grid;min-width:0}.stat-card strong{font-size:22px;line-height:1.05;color:currentColor;font-family:JetBrains Mono,monospace}.stat-card span{color:var(--soft);font-size:10px;line-height:1.2}.stat-card div span{overflow-wrap:normal}.stat-card.green{color:var(--green)}.stat-card.red{color:var(--red)}.stat-card.amber{color:var(--amber)}.stat-card.blue{color:var(--primary-fixed)}.panel{background:var(--card);border:1px solid var(--border);border-radius:var(--radius);overflow:hidden;margin-bottom:16px;box-shadow:0 4px 14px #0003}.panel-head{min-height:48px;border-bottom:1px solid var(--border);display:flex;justify-content:space-between;align-items:center;padding:12px 17px;background:var(--card2)}.panel-head h2{font-size:13px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;margin:0;color:var(--text);font-family:JetBrains Mono,monospace}.panel-body{padding:16px}.dashboard-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.dashboard-grid>.wide{grid-column:1/-1}.device-list{display:grid;gap:8px}.device-card{background:var(--card2);border:1px solid var(--border);border-radius:8px;padding:12px 14px;display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:12px;transition:all .15s ease}.device-card:hover{border-color:var(--border-bright);transform:translateY(-1px)}.device-card.down{border-color:#ef444459;background:#93000a1f}.device-icon{display:grid;place-items:center;width:36px;height:36px;border-radius:7px;background:#00f2fe1a;color:var(--primary);font-size:20px;border:1px solid rgba(0,242,254,.2)}.device-card div{display:grid;gap:2px}.device-card strong{font-size:12px;color:var(--text)}.device-card code{color:var(--primary-fixed);font-family:JetBrains Mono,monospace;font-size:11px}.device-card small{color:var(--soft);font-size:10px}.monitoring-panel,.status-chart-panel{min-width:0}.monitoring-panel .panel-body,.status-chart-panel .panel-body{min-height:240px}.health-list{margin:0;padding:0;display:grid;list-style:none}.health-list>li{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:10px;padding:13px 0;border-bottom:1px solid var(--border)}.health-list>li:last-child{border:0}.health-label{color:var(--soft)}.health-list strong{text-align:right}.health-icon{width:32px;height:32px;display:grid;place-items:center;border-radius:7px;background:color-mix(in srgb,currentColor 12%,transparent)}.health-item.neutral .health-icon,.health-item.neutral strong{color:var(--text)}.health-item.red .health-icon,.health-item.red strong{color:var(--red)}.health-item.amber .health-icon,.health-item.amber strong{color:var(--amber)}.status-chart{min-height:208px;display:grid;grid-template-columns:minmax(150px,1fr) minmax(170px,1fr);align-items:center;gap:24px}.status-donut{--status-gradient:var(--border);position:relative;width:min(178px,100%);aspect-ratio:1;margin:auto;border-radius:50%;display:grid;place-items:center;background:var(--status-gradient)}.status-donut:after{content:"";position:absolute;inset:24%;border-radius:50%;background:var(--card);box-shadow:0 0 0 1px var(--border)}.status-donut>span{position:relative;z-index:1;display:grid;place-items:center;line-height:1.05;color:var(--soft)}.status-donut b{margin-top:4px;color:var(--text);font-size:27px}.status-donut small{font-size:10px}.status-legend{display:grid;gap:8px;margin:0;padding:0;list-style:none}.status-legend li{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:8px;padding:6px 0;color:var(--soft)}.status-legend li.green svg,.status-legend li.green b{color:var(--green)}.status-legend li.red svg,.status-legend li.red b{color:var(--red)}.status-legend li.amber svg,.status-legend li.amber b{color:var(--amber)}.status-legend li.gray svg,.status-legend li.gray b{color:var(--dim)}.panel-link{color:var(--primary);font-size:11px;font-weight:700}.panel-link:hover{text-decoration:underline}.plant-recap-panel,.status-chart-panel{min-width:0}.plant-recap-panel .panel-body{min-height:240px;max-height:310px;overflow:auto}.plant-recap-list{display:grid}.plant-recap-row{position:relative;min-width:0;display:grid;grid-template-columns:auto minmax(100px,1fr) 56px 56px auto;align-items:center;gap:10px;padding:10px 3px 10px 10px;border-bottom:1px solid var(--border);border-left:3px solid var(--dim)}.plant-recap-row:last-child{border-bottom:0}.plant-recap-row.status-up{border-left-color:var(--green)}.plant-recap-row.status-degraded{border-left-color:var(--amber)}.plant-recap-row.status-down{border-left-color:var(--red)}.plant-recap-row.status-paused{border-left-color:var(--soft)}.plant-recap-row:hover{background:color-mix(in srgb,var(--primary) 5%,transparent)}.plant-recap-icon{width:34px;height:34px;display:grid;place-items:center;border-radius:7px;background:#5596ff1a;color:var(--primary)}.plant-recap-name,.plant-recap-devices{min-width:0;display:grid;gap:2px}.plant-recap-name strong,.plant-recap-name small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.plant-recap-name small,.plant-recap-devices small{color:var(--soft);font-size:10px}.plant-recap-devices{text-align:center}.plant-recap-devices b{font-size:14px}.plant-recap-row.status-up .plant-recap-devices.online b{color:var(--green)}.button{min-height:38px;padding:8px 14px;border-radius:7px;border:1px solid var(--border);cursor:pointer;font-weight:600;display:inline-flex;align-items:center;justify-content:center;gap:6px}.button.primary{background:var(--action);border-color:var(--action);color:#fff}.button.secondary{background:#ffffff08;color:var(--text)}.button.danger{background:#ef44441f;border-color:#ef444459;color:#ff6565}.button.small{min-height:30px;padding:4px 9px;font-size:11px}.button.full{width:100%}.button:disabled{opacity:.55;cursor:not-allowed}.icon-button{width:36px;height:36px;background:transparent;border:1px solid var(--border);border-radius:7px;color:var(--soft);cursor:pointer}.danger-text{color:var(--red)!important}.filterbar{display:flex;gap:8px;margin-bottom:14px}.filterbar.multi{flex-wrap:wrap}.filterbar.multi>label,.filterbar.multi>select,.filterbar.multi>.filter-type{min-width:0;flex:1 1 150px}.filterbar label{flex:1}.filterbar input{width:100%}.filterbar input,.filterbar select,input,select,textarea{background:var(--input);border:1px solid var(--border);color:var(--text);border-radius:7px;min-height:40px;padding:8px 11px}.responsive-table{min-width:0}.table-head,.table-row{display:grid;grid-template-columns:minmax(210px,1.4fr) minmax(120px,1fr) 100px 110px 100px 80px;gap:12px;align-items:center}.table-head{padding:0 13px 10px;color:var(--dim);font-size:10px;text-transform:uppercase;font-weight:700;letter-spacing:.06em}.table-row{min-height:68px;padding:10px 13px;border-top:1px solid var(--border);border-left:3px solid var(--dim)}.table-row.status-up{border-left-color:var(--green)}.table-row.status-down{border-left-color:var(--red)}.table-row.status-degraded{border-left-color:var(--amber)}.table-row>span:first-child{display:grid;gap:3px}.table-row code{color:var(--soft);font-size:12px}.row-actions{display:flex;gap:5px}.expanded-detail{background:#0b1626;border-top:1px solid var(--border);padding:16px}.detail-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}.detail-stats>div{background:var(--input);border:1px solid var(--border);border-radius:7px;padding:10px;display:grid;gap:6px}.expanded-detail h3{font-size:12px;color:var(--soft);margin:16px 0 8px}.check-row{display:flex;align-items:center;gap:16px;border-top:1px solid var(--border);padding:8px}.check-row span{color:var(--soft);font-size:12px;flex:1}.ping-bars{height:34px;display:flex;align-items:flex-end;gap:3px}.ping-bars i{width:7px;border-radius:2px 2px 0 0}.ping-bars .ok{background:var(--green)}.ping-bars .fail{background:var(--red)}.badge{display:inline-flex;align-items:center;justify-content:center;width:max-content;padding:3px 8px;border-radius:5px;border:1px solid;font-size:11px;font-weight:700}.badge-up{color:var(--green);background:#22c55e1a;border-color:#22c55e4d}.badge-down{color:var(--red);background:#ef44441a;border-color:#ef44444d}.badge-degraded{color:var(--amber);background:#f59e0b1a;border-color:#f59e0b4d}.badge-paused,.badge-unknown{color:var(--soft);background:#7a8fa81a;border-color:#7a8fa84d}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.field{display:grid;gap:6px;color:var(--soft);font-size:12px}.field input,.field select,.field textarea{width:100%}.field small{color:var(--dim)}.field-error,.form-alert{color:#f77!important}.form-alert,.form-success{grid-column:1/-1;padding:10px;border-radius:7px;background:#ef44441a;border:1px solid rgba(239,68,68,.25)}.form-success{background:#22c55e1a;border-color:#22c55e40;color:var(--green)}.form-actions{grid-column:1/-1;display:flex;justify-content:flex-end;gap:8px}.checkbox{display:flex;align-items:center;gap:8px;color:var(--text)}.checkbox input{min-height:auto}.stack-form{display:grid;gap:13px}.page-intro{margin:-7px 0 18px;color:var(--soft)}.subnet-grid{display:grid;grid-template-columns:repeat(3,minmax(250px,1fr));gap:12px}.subnet-card{background:var(--card2);border:1px solid var(--border);border-radius:8px;padding:15px}.subnet-card header{display:grid;grid-template-columns:auto auto minmax(0,1fr) auto auto;align-items:center;gap:10px}.subnet-card h3{margin:0;font-size:15px}.subnet-card code{color:var(--primary);font-size:12px}.subnet-card .subnet-cidr{justify-self:end}.subnet-card dl{display:grid;gap:8px;margin:11px 0 16px}.subnet-card dl div{display:flex;justify-content:space-between;gap:14px}.subnet-card dt{color:var(--soft)}.subnet-card dd{margin:0;text-align:right}.card-actions{display:flex;gap:7px;justify-content:flex-end;flex-wrap:wrap}.card-actions .button,.button svg,.type-label,.type-picker{display:inline-flex;align-items:center;gap:6px}.type-picker select{flex:1}.tabs{display:flex;gap:6px;margin-bottom:12px}.tabs button{min-height:38px;padding:7px 14px;border-radius:7px;border:1px solid var(--border);background:transparent;color:var(--soft);cursor:pointer}.tabs button.active{background:var(--primary);color:#fff;border-color:var(--primary)}.timeline{display:grid}.timeline article{display:grid;grid-template-columns:auto 1fr auto;gap:12px;align-items:center;padding:13px;border-bottom:1px solid var(--border)}.timeline article i{width:8px;height:8px;border-radius:50%;background:var(--soft)}.timeline article.success i{background:var(--green)}.timeline article.failure i{background:var(--red)}.timeline article div{display:grid;gap:4px}.timeline span,.timeline time{color:var(--soft);font-size:12px}.admin-grid{display:grid;grid-template-columns:minmax(0,2.5fr) minmax(290px,1fr);gap:16px}.user-list{display:grid}.user-list article{display:grid;grid-template-columns:auto 1fr auto auto;gap:12px;align-items:center;padding:12px 0;border-bottom:1px solid var(--border)}.user-list article>div:nth-child(2){display:grid;gap:3px}.user-list span,.user-list small{color:var(--soft);font-size:12px}.avatar{width:38px;height:38px;border-radius:50%;display:grid;place-items:center;background:var(--primary);color:#fff;font-weight:700}.avatar.large{width:72px;height:72px;font-size:28px}.settings-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.settings-grid>.wide{grid-column:1/-1}.settings-fields{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:13px}.muted{color:var(--soft)}.code-block{background:var(--input);border:1px solid var(--border);padding:12px;border-radius:7px;display:grid;gap:8px;color:var(--primary)}.backup-intro{margin:0 0 16px;line-height:1.55}.backup-intro code{color:var(--primary)}.backup-list{display:grid}.backup-list article{display:grid;grid-template-columns:minmax(0,1fr) auto auto auto;align-items:center;gap:10px;padding:11px 0;border-bottom:1px solid var(--border)}.backup-list article:last-child{border-bottom:0}.backup-list article>div{min-width:0;display:grid;gap:4px}.backup-list strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font:600 12px JetBrains Mono,monospace}.backup-list span{color:var(--soft);font-size:11px}.backup-status{margin:2px 0;display:grid;border:1px solid var(--border);border-radius:7px}.backup-status>div{display:grid;grid-template-columns:minmax(100px,.7fr) minmax(0,1.3fr);gap:10px;padding:9px 10px;border-bottom:1px solid var(--border)}.backup-status>div:last-child{border:0}.backup-status dt{color:var(--soft)}.backup-status dd{margin:0;text-align:right;overflow-wrap:anywhere}.profile-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.profile-card{display:flex;align-items:center;gap:18px;margin-bottom:18px}.profile-card h2{margin:0 0 4px}.profile-card>div:last-child{display:grid;gap:6px}.profile-card span{color:var(--soft)}.state{min-height:260px;display:grid;place-items:center;align-content:center;text-align:center;color:var(--soft);padding:25px}.state span:first-child{font-size:30px;color:var(--primary)}.state h3,.state h1{color:var(--text);margin:8px}.state p{max-width:520px}.state-error span:first-child{color:var(--red)}.spinner{width:34px;height:34px;border-radius:50%;border:3px solid var(--border);border-top-color:var(--primary);animation:spin .8s linear infinite}.modal-backdrop{position:fixed;inset:0;z-index:100;background:#000000a6;display:grid;place-items:center;padding:20px}.modal{width:min(440px,100%);background:var(--card);border:1px solid var(--border);border-radius:10px;padding:20px}.modal h2{margin-top:0}.modal p{color:var(--soft)}.modal-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:20px}.toast{position:fixed;right:20px;bottom:20px;z-index:100;padding:12px;background:var(--card);border:1px solid var(--red);border-radius:8px}.login-page{min-height:100vh;display:grid;place-items:center;padding:24px;background:radial-gradient(circle at 50% 0%,#14294b 0%,var(--bg) 45%)}.login-card{width:min(430px,100%);background:#111c2ef5;border:1px solid var(--border);border-radius:14px;padding:28px;box-shadow:0 25px 70px #00000059}.login-brand{height:82px;display:flex;align-items:center;justify-content:center;margin-bottom:20px}.login-brand img{max-width:220px;max-height:80px;object-fit:contain;background:#fff;border-radius:8px;padding:6px}.login-card h1{margin:6px 0;text-align:center}.login-card>p{color:var(--soft)}.login-card form{display:grid;gap:14px;margin:24px 0}.bottom-nav{display:none}.device-name{display:flex;align-items:center;gap:8px}.device-name i{font-style:normal;color:var(--primary);font-size:18px}.type-label{color:var(--soft)}.alarm-chip{display:block;color:var(--amber);margin-top:4px}.detail-actions{display:flex;justify-content:flex-end;margin-top:12px}.status-timeline{height:30px;display:flex;gap:2px;align-items:stretch;background:var(--input);padding:4px;border-radius:6px;overflow:hidden}.status-timeline i{flex:1;min-width:3px;border-radius:2px;background:var(--dim)}.status-timeline i.ok{background:var(--green)}.status-timeline i.fail{background:var(--red)}.alarm-tools{display:flex;gap:8px}.alarm-tools input{flex:1}.operation-drawer{position:fixed;z-index:60;top:44px;right:0;bottom:0;width:370px;max-width:calc(100vw - 45px);background:var(--card);border-left:1px solid var(--border);box-shadow:-18px 0 40px #00000059;transform:translate(100%);transition:transform .2s ease}.operation-drawer.open,.map-layout.drawer-open .operation-drawer{transform:translate(0)}.drawer-handle{position:absolute;right:100%;top:22px;width:42px;height:58px;border:1px solid var(--border);border-right:0;border-radius:8px 0 0 8px;background:var(--action);color:#fff;font-size:28px;cursor:pointer}.drawer-content{height:100%;overflow:auto;padding:22px}.drawer-content h2{margin:0}.drawer-content>p{color:var(--soft);font-size:12px}.drawer-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:8px}.map-layout{min-height:620px}.map-layout>.panel{margin-right:0}.map-toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:12px;color:var(--soft)}.site-map{height:480px;position:relative;overflow:hidden;border:1px solid var(--border);border-radius:10px;background-color:#0c1828;background-image:linear-gradient(rgba(85,150,255,.08) 1px,transparent 1px),linear-gradient(90deg,rgba(85,150,255,.08) 1px,transparent 1px);background-size:32px 32px}.site-map:before{content:"MAPPA LOCALE · COORDINATE GEOGRAFICHE";position:absolute;top:12px;left:14px;color:var(--dim);font-size:10px;letter-spacing:.12em}.map-marker{position:absolute;transform:translate(-50%,-50%);display:grid;place-items:center;gap:1px;min-width:110px;padding:7px;border:1px solid var(--primary);border-radius:8px;background:#0e2139;color:var(--text);cursor:pointer}.map-marker>span{font-size:23px;color:var(--green)}.map-marker b{font-size:11px}.map-marker small{font-size:9px;color:var(--soft)}.map-marker.has-alert{border-color:var(--red)}.map-marker.has-alert>span{color:var(--red)}.map-marker.selected{box-shadow:0 0 0 3px #5596ff59}.map-marker.unplaced{transform:none;border-style:dashed}.map-selection{margin-top:14px;padding:14px;background:var(--card2);border:1px solid var(--border);border-radius:8px}.map-selection h3,.map-selection p{margin:0 0 8px}.map-selection p{color:var(--soft)}.maintenance-board{margin-top:16px;border-top:1px solid var(--border);padding-top:10px}.maintenance-compose{display:grid;grid-template-columns:2fr 1fr 1fr auto;gap:7px}.maintenance-list{display:grid;margin-top:8px}.maintenance-list article{display:grid;grid-template-columns:1fr auto auto;gap:12px;padding:9px;border-top:1px solid var(--border)}.maintenance-list span,.maintenance-list time{color:var(--soft);font-size:11px}@keyframes spin{to{transform:rotate(360deg)}}@media(max-width:1023px){.sidebar{width:72px}.brand strong,.live-clock,.sidebar nav a:not(.active){font-size:0}.sidebar nav a,.sidebar-bottom a,.sidebar-bottom button{justify-content:center;font-size:0}.sidebar nav a span,.sidebar-bottom span{font-size:18px}.main-wrap{margin-left:72px;width:calc(100% - 72px)}.stat-grid{grid-template-columns:repeat(6,minmax(120px,1fr))}.stat-card{padding:10px;gap:8px}.subnet-grid{grid-template-columns:repeat(2,1fr)}.table-head{display:none}.table-row{grid-template-columns:2fr 1fr 1fr 1fr}.table-row>span:nth-child(2),.table-row>span:nth-child(3){display:none}.admin-grid{grid-template-columns:1fr}.wide{grid-column:auto}}@media(max-width:767px){body{padding-bottom:74px}.sidebar{display:none}.main-wrap{margin:0;width:100%}.topbar{height:58px;padding:0 14px}.top-stats{font-size:0}.top-stats .dot,.top-stats b{font-size:12px;margin:0 4px}.top-actions span{display:none}#main-content{padding:18px 14px}.page-header{align-items:center;margin-bottom:18px}.page-header h1{font-size:24px}.page-actions .worker-pill{display:none}.stat-grid{gap:7px}.stat-card{padding:9px;min-height:74px}.stat-card strong{font-size:21px}.dashboard-grid,.profile-grid,.settings-grid{grid-template-columns:1fr}.dashboard-grid>.wide,.wide{grid-column:auto}.status-chart{grid-template-columns:1fr;gap:12px}.status-donut{width:152px}.panel-body{padding:12px}.filterbar{overflow:auto;scrollbar-width:none}.filterbar label{min-width:220px}.filterbar select{min-width:150px}.responsive-table{display:grid;gap:10px}.table-group{border:1px solid var(--border);border-radius:10px;overflow:hidden}.table-row{border:0;border-left:4px solid var(--dim);grid-template-columns:1fr auto auto;min-height:96px}.table-row>span:first-child{font-size:16px}.table-row>span:nth-child(2),.table-row>span:nth-child(3),.table-row>span:nth-child(5){display:none}.table-row>span:nth-child(4){justify-self:end}.row-actions{justify-self:end}.detail-stats{grid-template-columns:repeat(2,1fr)}.check-row{align-items:flex-start;flex-wrap:wrap}.form-grid,.subnet-grid{grid-template-columns:1fr}.timeline article{grid-template-columns:auto 1fr}.timeline time{grid-column:2}.user-list article{grid-template-columns:auto 1fr auto}.user-list article>button{grid-column:2/-1}.bottom-nav{position:fixed;z-index:40;display:grid;grid-template-columns:repeat(5,1fr);inset:auto 0 0;height:70px;background:#080e18fa;border-top:1px solid var(--border);padding-bottom:env(safe-area-inset-bottom)}.bottom-nav a{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;color:var(--dim);font-size:20px}.bottom-nav a small{font-size:11px}.bottom-nav a.active{color:var(--primary)}.bottom-nav a.active:before{content:"";position:absolute;top:0;width:44px;height:3px;border-radius:0 0 3px 3px;background:var(--primary)}.bottom-nav b{position:absolute;top:6px;right:25%;font-size:9px;background:var(--red);color:#fff;border-radius:8px;padding:2px 5px}.modal-actions .button{flex:1}}@media(max-width:1023px){.settings-fields{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:767px){.settings-fields{grid-template-columns:1fr}.backup-list article{grid-template-columns:minmax(0,1fr) auto}.backup-list article>a,.backup-list article>button{width:100%}.backup-list article>a{grid-column:1}.backup-list article>button{grid-column:2}.settings-grid>.wide{grid-column:auto}.panel-head:has(+.panel-body .backup-list){align-items:flex-start;gap:10px}.panel-head:has(+.panel-body .backup-list) .button{white-space:nowrap}}@media(max-width:390px){.stat-card{padding:12px}.stat-card strong{font-size:24px}.stat-card span{font-size:11px}.page-header h1{font-size:22px}.topbar{padding:0 8px}.detail-stats{grid-template-columns:1fr}}@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}@media(max-width:767px){.site-map{height:420px}.map-toolbar{align-items:stretch;flex-direction:column}.alarm-tools{flex-wrap:wrap}.operation-drawer{top:58px}}.primary-nav{min-height:0;overflow-x:hidden;overflow-y:auto;padding-bottom:18px!important}.plant-nav-heading{margin:12px 5px 5px;padding:0 5px;display:flex;align-items:center;justify-content:space-between;color:var(--dim);font-size:10px;font-weight:800;letter-spacing:.08em;text-transform:uppercase}.plant-nav-heading span{display:flex;align-items:center;gap:7px}.plant-nav-heading a{min-height:26px!important;padding:0 7px!important;font-size:10px;color:var(--primary)!important}.plant-tree{display:grid;gap:4px}.plant-tree-item{border:1px solid transparent;border-radius:8px;overflow:hidden}.plant-tree-item.open{background:#0c1627;border-color:#142640}.plant-tree-toggle{width:100%;min-height:43px;border:0;background:transparent;color:var(--soft);display:grid;grid-template-columns:auto auto minmax(0,1fr);gap:6px;align-items:center;text-align:left;padding:5px 8px;cursor:pointer}.plant-tree-toggle>span{min-width:0;display:grid;font-size:12px;font-weight:700;color:var(--text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.plant-tree-toggle small{font:9px JetBrains Mono,monospace;color:var(--dim);overflow:hidden;text-overflow:ellipsis}.plant-tree-children{display:grid;padding:0 5px 6px 31px}.sidebar nav .plant-tree-children a{min-height:32px;padding:0 7px;font-size:11px}.empty-nav{padding:10px;color:var(--dim)}.top-alert-count{min-width:17px;height:17px;display:inline-grid;place-items:center;border-radius:9px;background:var(--red);color:#fff;font-size:9px}.filter-type{display:flex;align-items:center;gap:7px;padding-left:10px;border:1px solid var(--border);border-radius:7px;background:var(--input);color:var(--primary)}.filter-type select{border:0;background:transparent;min-width:160px}.filter-type select:focus-visible{outline-offset:-2px}.page-drawer-layout,.map-workspace{display:grid;grid-template-columns:minmax(0,1fr) 0;min-width:0;transition:grid-template-columns .2s ease}.page-drawer-layout.drawer-open,.map-workspace.drawer-open{grid-template-columns:minmax(0,1fr) 370px}.page-drawer-content,.map-main{min-width:0}.operation-drawer{position:relative;z-index:4;top:auto;right:auto;bottom:auto;width:370px;max-width:none;height:calc(100vh - 92px);display:none;background:var(--card);border:1px solid var(--border);border-radius:10px;box-shadow:none;transform:none;overflow:visible}.drawer-open>.operation-drawer{display:block}.page-drawer-layout>.operation-drawer{position:sticky;top:68px}.drawer-handle{top:18px}.drawer-content{padding:20px}.coordinate-fields{display:grid;grid-template-columns:1fr 1fr;gap:8px}.coordinate-help{display:flex;align-items:center;gap:5px;color:var(--primary)}.discovery-backdrop{padding:3vh 3vw}.discovery-modal{width:min(1180px,100%);height:min(820px,94vh);padding:0;display:flex;flex-direction:column;overflow:hidden}.modal-header{display:flex;align-items:flex-start;justify-content:space-between;gap:20px;padding:20px 22px;border-bottom:1px solid var(--border)}.modal-header h2{margin:4px 0;font-size:20px}.modal-header p{margin:0}.discovery-progress{margin:auto;max-width:520px;text-align:center;color:var(--soft)}.discovery-progress h3{color:var(--text)}.radar-animation{width:74px;height:74px;margin:auto;display:grid;place-items:center;border-radius:50%;color:var(--primary);border:1px solid rgba(85,150,255,.4);background:radial-gradient(circle,rgba(85,150,255,.22),transparent 65%);animation:radarPulse 1.3s ease-in-out infinite}.discovery-results{min-height:0;display:flex;flex-direction:column;flex:1;padding:18px;overflow:auto}.discovery-summary{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-bottom:14px}.discovery-summary span{display:grid;padding:12px;border:1px solid var(--border);border-radius:8px;background:var(--card2);color:var(--soft);font-size:11px}.discovery-summary b{font-size:20px;color:var(--text)}.discovery-table{display:grid;min-width:850px}.discovery-row{display:grid;grid-template-columns:1.2fr 1.1fr 1.2fr 1.15fr 85px;gap:10px;align-items:center;padding:10px;border-top:1px solid var(--border)}.discovery-head{position:sticky;top:-18px;z-index:2;background:var(--card);border-top:0;color:var(--dim);font-size:10px;font-weight:800;text-transform:uppercase}.discovered-device{display:flex;align-items:center;gap:10px}.discovered-device>i{width:38px;height:38px;display:grid;place-items:center;border-radius:8px;background:#5596ff1f;color:var(--primary)}.discovered-device>span{display:grid;gap:3px}.discovered-device small,.port-list small{color:var(--soft)}.port-list{display:flex;gap:5px;flex-wrap:wrap}.port-list code{padding:4px 6px;border:1px solid rgba(85,150,255,.25);border-radius:5px;background:#5596ff14;color:var(--primary)}.type-picker.compact select,.discovery-row>span>select{width:100%;min-width:0}.type-picker.compact{display:grid;grid-template-columns:auto 1fr}.plant-map-overlay{position:fixed;inset:0;z-index:120;background:var(--bg);display:flex;flex-direction:column}.plant-map-header{min-height:70px;padding:11px 18px;display:flex;align-items:center;justify-content:space-between;gap:18px;background:var(--sidebar);border-bottom:1px solid var(--border)}.plant-map-title,.plant-map-actions{display:flex;align-items:center;gap:12px}.plant-map-title h1{margin:2px 0;font-size:20px}.plant-map-title small,.plant-map-actions>span{color:var(--soft);font-size:11px}.map-title-icon,.station-pin{width:42px;height:42px;display:grid;place-items:center;border-radius:9px;background:#5596ff1f;color:var(--primary)}.close-map{display:grid;place-items:center}.map-workspace{flex:1;min-height:0}.map-workspace.drawer-open{grid-template-columns:minmax(0,1fr) 390px}.map-workspace>.operation-drawer{width:390px;height:100%;border-width:0 0 0 1px;border-radius:0}.map-main{height:100%;padding:14px;overflow:auto}.map-instructions{min-height:42px;display:flex;align-items:center;gap:8px;padding:8px 12px;background:var(--card);border:1px solid var(--border);border-radius:8px 8px 0 0;color:var(--soft);font-size:12px}.map-instructions svg{color:var(--primary)}.map-instructions span{flex:1}.map-instructions code{font-size:10px}.site-map.fullscreen{height:min(62vh,650px);border-radius:0 0 10px 10px}.site-map.picking{cursor:crosshair;box-shadow:inset 0 0 0 2px #5596ff59}.map-empty-hint{position:absolute;inset:0;display:grid;place-content:center;justify-items:center;gap:8px;text-align:center;color:var(--soft);pointer-events:none}.map-empty-hint svg{color:var(--primary)}.coordinate-preview{position:absolute;z-index:5;transform:translate(-50%,-100%);color:var(--amber);filter:drop-shadow(0 2px 4px #000)}.map-selection{margin-bottom:0}.station-detail-head{display:flex;gap:12px;align-items:center}.station-detail-head h2{margin:0 0 4px;font-size:17px}.station-detail-head p{margin:0}.station-columns{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-top:14px}.station-columns>div{min-width:0}.station-columns h3{font-size:12px;color:var(--soft);display:flex;justify-content:space-between}.station-columns h3 span{color:var(--primary)}.compact-list .device-card{grid-template-columns:auto minmax(0,1fr) auto;padding:9px}.maintenance-board h3{font-size:12px;color:var(--soft)}@keyframes radarPulse{50%{box-shadow:0 0 0 18px #5596ff00;transform:scale(1.06)}}@media(min-width:768px)and (max-width:1023px){.sidebar{width:216px}.brand strong,.live-clock{font-size:initial}.sidebar nav a:not(.active),.sidebar nav a,.sidebar-bottom a,.sidebar-bottom button{font-size:initial;justify-content:flex-start}.main-wrap{margin-left:216px;width:calc(100% - 216px)}.top-stats{font-size:0;gap:5px}.top-stats b{font-size:12px;margin-right:3px}.top-actions span{display:none}.top-actions a,.top-actions button{padding:5px 7px}.dashboard-grid{grid-template-columns:1fr}.filterbar.multi{flex-wrap:wrap}.filterbar.multi>label,.filterbar.multi>select,.filterbar.multi>.filter-type{min-width:0;flex:1 1 150px}.page-drawer-layout.drawer-open{grid-template-columns:minmax(0,1fr) 320px}.page-drawer-layout>.operation-drawer{width:320px}.plant-map-actions>span{display:none}}@media(max-width:767px){.bottom-nav{grid-template-columns:repeat(4,1fr)}.top-actions a:nth-of-type(2),.top-actions a:nth-of-type(3){display:none}.page-drawer-layout.drawer-open,.map-workspace.drawer-open{grid-template-columns:1fr}.drawer-open>.page-drawer-content,.map-workspace.drawer-open>.map-main{display:none}.drawer-open>.operation-drawer{display:block;width:100%;height:calc(100vh - 150px);position:relative;top:0;border-radius:10px}.plant-map-header{align-items:flex-start}.plant-map-actions>span{display:none}.plant-map-actions .button{font-size:0;padding:8px}.plant-map-actions .button svg{margin:0}.map-workspace.drawer-open>.operation-drawer{height:100%;border:0}.site-map.fullscreen{height:56vh}.map-instructions code{display:none}.station-columns{grid-template-columns:1fr}.discovery-backdrop{padding:0}.discovery-modal{height:100vh;width:100%;border-radius:0}.discovery-summary{grid-template-columns:1fr 1fr}.discovery-summary span:last-child{grid-column:1/-1}.discovery-results{overflow:auto}.modal-header{padding:15px}.modal-header p{font-size:11px}.maintenance-compose{grid-template-columns:1fr}.coordinate-fields{grid-template-columns:1fr 1fr}}.stat-icon{width:34px;height:34px;display:grid!important;place-items:center;border-radius:8px;background:color-mix(in srgb,currentColor 13%,transparent);flex:0 0 auto}.stat-icon svg{width:19px;height:19px}.stat-card .stat-icon{color:inherit}.stat-card>div{min-width:0}.schedule-picker{display:grid;grid-template-columns:auto 1fr;align-items:center;gap:8px;color:var(--primary)}.schedule-picker select{width:100%}.discovery-alert,.plant-discovery-count{display:inline-flex;align-items:center;justify-content:center;gap:4px;min-width:24px;height:24px;padding:0 7px;border-radius:12px;background:var(--red);color:#fff;font-size:11px;font-weight:800}.subnet-card header{grid-template-columns:auto auto minmax(0,1fr) auto auto}.plant-tree-toggle{grid-template-columns:auto auto minmax(0,1fr) auto}.plant-discovery-count{height:19px;min-width:19px;padding:0 5px;font-size:9px}.discovery-row{grid-template-columns:1.2fr 1fr 1.15fr 1.1fr 78px 55px}.discovery-row.is-excluded{opacity:.48}.exclude-ip{color:var(--amber)}.device-table .table-head,.device-table .table-row{grid-template-columns:minmax(360px,1.8fr) minmax(110px,.8fr) 105px 90px minmax(82px,.55fr) 98px 82px 112px}.device-ip-timeline{display:flex;align-items:center;gap:9px;min-width:0}.device-ip-timeline>code{flex:0 0 auto}.mini-timeline{height:13px;min-width:140px;max-width:250px;display:flex;align-items:stretch;gap:1px;overflow:hidden;padding:2px;border-radius:4px;background:var(--input);flex:1}.mini-timeline.empty{background:linear-gradient(90deg,var(--input),var(--border),var(--input))}.mini-timeline i{flex:1;min-width:1px;background:var(--green);border-radius:1px}.mini-timeline i.fail{background:var(--red)}.port-column{display:flex;gap:4px;flex-wrap:wrap}.port-column code{padding:3px 5px;border-radius:4px;background:#5596ff1a;color:var(--primary)}.web-links{display:flex;gap:4px;flex-wrap:wrap}.web-links a{display:inline-flex;align-items:center;gap:3px;padding:5px 6px;border:1px solid rgba(85,150,255,.3);border-radius:6px;color:var(--primary);background:#5596ff14}.web-links small{font-size:10px}.web-unavailable{color:var(--dim)}.map-counter{color:var(--soft);font-size:12px}.map-page-layout{display:grid;grid-template-columns:minmax(0,1fr) 0;gap:0;min-height:calc(100vh - 135px);transition:grid-template-columns .2s ease}.map-page-layout.drawer-open{grid-template-columns:minmax(0,1fr) 380px}.map-surface-wrap{min-width:0;background:var(--card);border:1px solid var(--border);border-radius:10px;overflow:hidden}.map-commandbar{min-height:52px;display:flex;align-items:center;justify-content:space-between;gap:14px;padding:7px 10px;border-bottom:1px solid var(--border);color:var(--soft);font-size:11px}.map-toolset{display:flex;gap:5px;align-items:center}.map-toolset>i{width:1px;height:25px;background:var(--border);margin:0 3px}.map-toolset button{min-height:35px;padding:7px 9px;display:flex;align-items:center;gap:5px;border:1px solid transparent;border-radius:6px;background:transparent;color:var(--soft);cursor:pointer}.map-toolset button.active{color:#fff;background:var(--action);border-color:var(--primary)}.geo-map{position:relative;height:calc(100vh - 210px);min-height:520px;overflow:hidden;background:#0a1824}.geo-map.picking{cursor:crosshair;box-shadow:inset 0 0 0 2px var(--primary)}.map-backdrop{position:absolute;inset:0;background-color:#0c1b29;background-image:radial-gradient(circle at 20% 30%,rgba(34,197,94,.08),transparent 22%),radial-gradient(circle at 74% 68%,rgba(34,197,94,.06),transparent 26%),linear-gradient(rgba(85,150,255,.055) 1px,transparent 1px),linear-gradient(90deg,rgba(85,150,255,.055) 1px,transparent 1px);background-size:auto,auto,40px 40px,40px 40px}.map-backdrop:after{content:"MAPPA OPERATIVA · DATI LOCALI";position:absolute;right:16px;bottom:13px;color:var(--dim);font-size:9px;letter-spacing:.1em}.map-backdrop svg{position:absolute;inset:0;width:100%;height:100%;fill:none;stroke:#2d4860;stroke-width:5;opacity:.72}.map-backdrop svg path.minor{stroke:#1d374c;stroke-width:2.2;stroke-dasharray:7 5}.map-region{position:absolute;color:#29465e;font-size:11px;font-weight:800;letter-spacing:.2em}.map-region.r1{left:17%;top:18%}.map-region.r2{left:54%;top:43%}.map-region.r3{right:15%;bottom:18%}.map-connections{position:absolute;inset:0;width:100%;height:100%;overflow:visible;pointer-events:none}.map-connections line{stroke:var(--primary);stroke-width:.45;vector-effect:non-scaling-stroke;filter:drop-shadow(0 0 4px rgba(85,150,255,.65))}.map-connections line.animated{stroke-dasharray:2 1;animation:dataFlow 1.2s linear infinite}.map-connections marker path{fill:var(--primary)}.map-distance{position:absolute;z-index:6;transform:translate(-50%,-50%);display:flex;align-items:center;gap:4px;padding:4px 7px;border:1px solid rgba(85,150,255,.42);border-radius:12px;background:#0a1625;color:#b9d4ff;font:700 9px JetBrains Mono,monospace;cursor:pointer;white-space:nowrap}.geo-map .map-marker{z-index:7}.geo-map .map-marker.line-start{box-shadow:0 0 0 5px #f59e0b59;border-color:var(--amber)}.map-empty-hint{z-index:4}.map-empty-hint .button{pointer-events:auto;margin-top:5px}.map-side-panel{height:calc(100vh - 135px);overflow:auto;padding:18px;background:var(--card);border:1px solid var(--border);border-left:0;border-radius:0 10px 10px 0}.map-side-panel>header{display:flex;align-items:flex-start;justify-content:space-between;margin-bottom:18px}.map-side-panel h2{margin:4px 0 0;font-size:18px}.map-device-section{margin-top:18px;padding-top:14px;border-top:1px solid var(--border)}.map-device-section h3{display:flex;justify-content:space-between;color:var(--soft);font-size:12px}.map-device-section h3 span{color:var(--primary)}.map-device-section .device-card{padding:8px}.assign-row{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:7px;border-top:1px solid var(--border)}.assign-row>span{display:grid;font-size:12px}.assign-row code{color:var(--soft);font-size:10px}.maintenance-quick{display:flex;gap:6px}.maintenance-quick input{min-width:0;flex:1}@keyframes dataFlow{to{stroke-dashoffset:-6}}@media(max-width:1250px){.device-table .table-head,.device-table .table-row{grid-template-columns:minmax(220px,1.4fr) 100px 90px 76px 82px 90px 105px}.device-table .table-head>span:nth-child(2),.device-table .table-row>span:nth-child(2){display:none}.map-toolset button span{display:none}}@media(max-width:1023px){.map-page-layout.drawer-open{grid-template-columns:minmax(0,1fr) 330px}.device-table .table-row{grid-template-columns:minmax(210px,1fr) 80px 80px 90px 105px}.device-table .table-row>span:nth-child(3),.device-table .table-row>span:nth-child(5){display:none}}@media(max-width:767px){.stat-icon{width:30px;height:30px}.stat-card>i{display:none}.map-counter{display:none}.map-page-layout,.map-page-layout.drawer-open{grid-template-columns:1fr}.map-page-layout.drawer-open .map-surface-wrap{display:none}.map-side-panel{height:auto;min-height:calc(100vh - 170px);border-left:1px solid var(--border);border-radius:10px}.geo-map{height:calc(100vh - 235px);min-height:450px}.map-commandbar{align-items:flex-start;flex-direction:column}.map-commandbar>span{padding-left:5px}.map-toolset{width:100%}.map-toolset button{flex:1;justify-content:center}.device-table .table-row{grid-template-columns:minmax(0,1fr) auto auto}.device-table .table-row>span:nth-child(2),.device-table .table-row>span:nth-child(3),.device-table .table-row>span:nth-child(5),.device-table .table-row>span:nth-child(7){display:none}.device-table .table-row>span:nth-child(4){display:flex;justify-self:end}.device-table .table-row>span:nth-child(6){display:none}.device-ip-timeline{align-items:flex-start;flex-direction:column;gap:5px}.mini-timeline{width:min(210px,100%);min-width:0;max-width:210px;flex:none}.discovery-row{grid-template-columns:1.2fr 1fr 1.15fr 1.1fr 78px 55px}}@media(max-width:767px){.plant-recap-row{grid-template-columns:auto minmax(80px,1fr) 45px auto;gap:7px}.plant-recap-devices.total{display:none}}.station-link{display:inline-flex;align-items:center;gap:6px;color:var(--primary);font-size:12px;font-weight:650}.station-link:hover{text-decoration:underline}.station-link.unassigned{color:var(--amber)}.station-unassigned{color:var(--dim);font-size:11px}.map-action{display:inline-grid;place-items:center}.port-column button{padding:3px 5px;border:0;border-radius:4px;font:12px JetBrains Mono,monospace;cursor:pointer}.port-column button.reachable{background:#5596ff21;color:var(--primary)}.port-column button.reachable:hover{background:#5596ff40}.port-column button.unreachable{background:color-mix(in srgb,var(--dim) 12%,transparent);color:var(--dim)}.port-column button.unreachable:hover{background:color-mix(in srgb,var(--dim) 22%,transparent)}.detail-actions{align-items:center;gap:10px}.check-help{margin:0 0 8px;color:var(--soft);font-size:12px}.check-item{border-top:1px solid var(--border);padding:3px 0 10px}.check-item .check-row{border:0}.check-reachability{font-size:11px;white-space:nowrap}.check-reachability.reachable{color:var(--green)}.check-reachability.unreachable{color:var(--red)}.check-reachability.paused,.check-reachability.unknown{color:var(--soft)}.check-timeline{height:24px;margin:0 8px;display:flex;align-items:stretch;gap:2px;padding:4px 5px;background:var(--input);border-radius:5px;overflow:hidden}.check-timeline small{display:flex;align-items:center;margin-right:4px;color:var(--dim);font-size:9px}.check-timeline i{flex:1;min-width:2px;max-width:18px;border-radius:2px;background:var(--green)}.check-timeline i.fail{background:var(--red)}.check-timeline span{align-self:center;color:var(--dim);font-size:10px}.geo-map .leaflet-map{position:absolute;inset:0;width:100%;height:100%;background:#dce4e8}.geo-map.picking .leaflet-container{cursor:crosshair}.leaflet-control-attribution{font-size:10px}.leaflet-tooltip.station-tooltip{display:grid;gap:2px;margin-top:5px;padding:5px 7px;border:1px solid rgba(37,99,235,.35);border-radius:6px;background:#080e18eb;box-shadow:0 3px 12px #0000004d;color:var(--text)}.leaflet-tooltip.station-tooltip:before{border-bottom-color:#080e18eb}.leaflet-tooltip.station-tooltip b{font-size:11px}.leaflet-tooltip.station-tooltip small{color:var(--soft);font-size:9px}.unplaced-stations{position:absolute;z-index:500;left:12px;bottom:28px;display:flex;align-items:center;gap:5px;max-width:calc(100% - 24px);overflow:auto;padding:7px;background:#080e18eb;border:1px solid var(--border);border-radius:7px}.unplaced-stations>b{padding:0 5px;color:var(--soft);font-size:10px;white-space:nowrap}.unplaced-stations button{display:flex;align-items:center;gap:4px;min-height:28px;padding:4px 7px;border:1px dashed var(--primary);border-radius:5px;background:var(--card);color:var(--text);font-size:10px;white-space:nowrap;cursor:pointer}@media(max-width:767px){.check-item .check-row{display:grid;grid-template-columns:1fr auto;gap:7px}.check-item .check-row>span{grid-column:1/-1}.check-item .check-row .icon-button{width:30px;height:30px}.check-timeline{margin:0}.station-link span{max-width:125px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}}.topbar{background:var(--topbar)}.live-clock{background:var(--clock);border-color:var(--clock-border)}.plant-tree-item.open{background:var(--nav-open);border-color:var(--nav-open-border)}.expanded-detail{background:var(--detail)}select option{background:var(--input);color:var(--text)}.bottom-nav{background:var(--topbar)!important}.leaflet-tooltip.station-tooltip,.unplaced-stations{background:var(--overlay)}:root[data-theme=light] .login-page{background:radial-gradient(circle at 50% 0%,#dce8fa 0%,var(--bg) 48%)}:root[data-theme=light] .login-card{background:var(--card)}:root[data-theme=light] .button.secondary{background:#e2e8ef}:root[data-theme=light] .panel,:root[data-theme=light] .modal{box-shadow:0 1px 3px #2635481a}:root[data-theme=light] .map-marker{background:var(--card)}:root[data-theme=light] .map-distance{background:var(--card);color:var(--primary)}:root[data-theme=light] .leaflet-tooltip.station-tooltip:before{border-bottom-color:var(--overlay)}:root[data-theme=light] .plant-nav-heading .plant-nav-title,:root[data-theme=light] .empty-nav{color:#526176!important}.plant-filters{justify-content:flex-start}.view-switcher{display:flex;align-items:center;padding:3px;border:1px solid var(--border);border-radius:7px;background:var(--input)}.view-switcher button{min-height:32px;padding:4px 8px;display:inline-flex;align-items:center;gap:4px;border:0;border-radius:5px;background:transparent;color:var(--soft);font-size:11px;cursor:pointer}.view-switcher button.active{background:var(--action);color:#fff}.device-summary{width:100%;padding:0;display:grid;gap:3px;border:0;background:transparent;color:var(--text);text-align:left;cursor:pointer}.device-summary:hover .device-name{color:var(--primary)}.station-tree{gap:0}.station-tree-group{border-top:1px solid var(--border)}.station-tree-heading{width:100%;min-height:48px;padding:9px 16px;display:grid;grid-template-columns:auto auto minmax(0,1fr) auto;align-items:center;gap:8px;border:0;background:var(--card2);color:var(--text);text-align:left;cursor:pointer}.station-tree-heading>svg:nth-of-type(2){color:var(--primary)}.station-tree-heading span{color:var(--soft);font-size:11px}.station-tree-children{position:relative;padding-left:30px}.station-tree-children:before{content:"";position:absolute;left:16px;top:0;bottom:14px;border-left:1px solid var(--border)}.station-tree-children .tree-device{position:relative}.station-tree-children .tree-device:before{content:"";position:absolute;z-index:2;left:-14px;top:34px;width:13px;border-top:1px solid var(--border)}.detail-stats>div,.detail-stats>button{min-width:0;padding:11px;display:grid;grid-template-columns:auto minmax(0,1fr);align-items:center;column-gap:9px;row-gap:4px;border:1px solid var(--border);border-radius:7px;background:var(--input);color:var(--text);text-align:left}.detail-stats>div>i,.detail-stats>button>i{grid-row:1/3;width:34px;height:34px;display:grid;place-items:center;border-radius:7px;background:#5596ff1f;color:var(--primary);font-style:normal}.detail-stats small{color:var(--soft)}.detail-stats b{min-width:0;overflow:hidden;text-overflow:ellipsis;font-size:12px}.detail-stats .failure-stat{border-color:color-mix(in srgb,var(--red) 42%,var(--border));cursor:pointer}.detail-stats .failure-stat>i,.detail-stats .failure-stat b{color:var(--red)}.detail-stats .failure-stat>i{background:color-mix(in srgb,var(--red) 12%,transparent)}.detail-stats .failure-stat>span{grid-column:1/-1;color:var(--red);font-size:9px;text-align:right}.detail-actions{min-height:38px;display:flex;align-items:center;justify-content:flex-end;gap:9px;margin:0 0 12px}.detail-actions>.muted{margin-left:auto;font-size:10px}.detail-action-buttons{display:flex;align-items:center;gap:7px}.diagnostics-button{color:var(--green);border-color:color-mix(in srgb,var(--green) 55%,var(--border));background:color-mix(in srgb,var(--green) 12%,transparent)}.diagnostics-button.degraded{color:var(--amber);border-color:color-mix(in srgb,var(--amber) 55%,var(--border));background:color-mix(in srgb,var(--amber) 13%,transparent)}.diagnostics-button.offline{color:var(--red);border-color:color-mix(in srgb,var(--red) 55%,var(--border));background:color-mix(in srgb,var(--red) 12%,transparent)}.device-overview-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));align-items:start;gap:12px}.device-operational-summary{min-width:0;padding:15px;border:1px solid var(--border);border-radius:9px;background:var(--card)}.device-operational-summary>header{margin-bottom:12px}.device-operational-summary>header h3{margin:3px 0!important;color:var(--text);font-size:15px}.device-operational-summary .detail-stats{grid-template-columns:repeat(2,minmax(0,1fr))}.diagnostics-backdrop{z-index:135}.diagnostics-modal{width:min(920px,100%);max-height:min(780px,92vh);padding:0;display:flex;flex-direction:column;overflow:hidden}.diagnostics-modal-header{min-height:76px;padding:15px 18px;display:grid;grid-template-columns:auto minmax(0,1fr) auto auto;align-items:center;gap:12px;border-bottom:1px solid var(--border)}.diagnostics-modal-header h2{margin:3px 0 0}.diagnostics-heading-icon{width:42px;height:42px;display:grid;place-items:center;border-radius:9px;background:color-mix(in srgb,var(--green) 13%,transparent);color:var(--green)}.diagnostics-heading-icon.degraded{background:color-mix(in srgb,var(--amber) 13%,transparent);color:var(--amber)}.diagnostics-heading-icon.offline{background:color-mix(in srgb,var(--red) 13%,transparent);color:var(--red)}.diagnostics-health{display:inline-flex;align-items:center;gap:6px;padding:6px 9px;border:1px solid currentColor;border-radius:16px;color:var(--green);font-size:10px;font-weight:750}.diagnostics-health i{width:7px;height:7px;border-radius:50%;background:currentColor}.diagnostics-health.degraded{color:var(--amber)}.diagnostics-health.offline{color:var(--red)}.diagnostics-toolbar{padding:11px 18px;display:flex;align-items:flex-end;justify-content:space-between;gap:14px;border-bottom:1px solid var(--border);background:var(--card2)}.diagnostics-toolbar>div{display:grid;gap:3px}.diagnostics-toolbar>div span{color:var(--soft);font-size:10px}.diagnostics-toolbar label{display:flex;align-items:center;gap:7px;color:var(--soft);font-size:10px}.diagnostics-toolbar select{min-height:32px;padding:4px 8px;font-size:11px}.diagnostics-list{min-height:260px;overflow:auto}.diagnostics-list article{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:start;gap:11px;padding:13px 18px;border-bottom:1px solid var(--border)}.diagnostics-list article>i{width:31px;height:31px;display:grid;place-items:center;border-radius:7px;background:color-mix(in srgb,var(--primary) 12%,transparent);color:var(--primary);font-style:normal}.diagnostics-list article.warning>i{background:color-mix(in srgb,var(--amber) 13%,transparent);color:var(--amber)}.diagnostics-list article.preventive>i,.diagnostics-list article.critical>i{background:color-mix(in srgb,var(--red) 12%,transparent);color:var(--red)}.diagnostics-list article>div{min-width:0;display:grid;gap:4px}.diagnostics-list article>div>header{display:flex;align-items:center;gap:7px}.diagnostics-list article time{color:var(--dim);font:9px JetBrains Mono,monospace;white-space:nowrap}.event-severity{padding:2px 5px;border-radius:4px;background:color-mix(in srgb,var(--primary) 11%,transparent);color:var(--primary)!important;font-size:8px!important;font-weight:750;text-transform:uppercase}.event-severity.warning{color:var(--amber)!important}.event-severity.preventive,.event-severity.critical{color:var(--red)!important}.ssh-terminal-backdrop{z-index:140;padding:3vh 3vw}.ssh-terminal-modal{width:min(1100px,100%);height:min(760px,94vh);padding:0;display:flex;flex-direction:column;overflow:hidden}.ssh-terminal-header{min-height:72px;padding:14px 18px;display:flex;align-items:center;justify-content:space-between;gap:18px;border-bottom:1px solid var(--border)}.ssh-terminal-title,.ssh-terminal-controls{display:flex;align-items:center;gap:12px;min-width:0}.ssh-terminal-title>i{width:40px;height:40px;display:grid;place-items:center;flex:0 0 auto;border-radius:8px;background:#5596ff1f;color:var(--primary);font-style:normal}.ssh-terminal-title h2{margin:2px 0 1px;font-size:17px}.ssh-terminal-title code{display:block;color:var(--soft);font-size:11px}.terminal-status{display:inline-flex;align-items:center;gap:7px;padding:5px 9px;border:1px solid var(--border);border-radius:14px;color:var(--soft);font-size:11px;font-weight:700}.terminal-status>i{width:7px;height:7px;border-radius:50%;background:currentColor}.terminal-status.status-connessione{color:var(--amber)}.terminal-status.status-connesso{color:var(--green)}.terminal-status.status-disconnesso{color:var(--soft)}.terminal-status.status-errore{color:var(--red)}.ssh-terminal-surface{min-height:0;flex:1;padding:12px;background:#07101c}.ssh-terminal-surface .xterm{height:100%}.ssh-terminal-surface .xterm-viewport{scrollbar-color:#29445f #07101c}.ssh-terminal-footer{min-height:42px;padding:8px 16px;display:flex;align-items:center;justify-content:space-between;gap:14px;border-top:1px solid var(--border);color:var(--soft);font-size:11px}.ssh-terminal-footer small{color:var(--dim)}.ssh-credential-panel{min-height:0;flex:1;display:grid;place-items:center;padding:24px;overflow:auto;background:var(--detail)}.ssh-credential-form{width:min(520px,100%);display:grid;gap:14px}.ssh-credential-intro{display:flex;align-items:center;gap:12px;margin-bottom:3px}.ssh-credential-intro>i{width:42px;height:42px;display:grid;place-items:center;border-radius:9px;background:#5596ff1f;color:var(--primary);font-style:normal}.ssh-credential-intro h3{margin:0 0 3px;font-size:16px}.ssh-credential-intro p{margin:0;font-size:11px}.ssh-auth-switch{display:grid;grid-template-columns:1fr 1fr;padding:3px;border:1px solid var(--border);border-radius:7px;background:var(--input)}.ssh-auth-switch button{min-height:34px;border:0;border-radius:5px;background:transparent;color:var(--soft);font-weight:700;cursor:pointer}.ssh-auth-switch button.active{background:var(--action);color:#fff}.ssh-credential-form textarea{resize:vertical;font-family:JetBrains Mono,Consolas,monospace;font-size:11px}.ssh-credential-actions{display:flex;justify-content:flex-end;gap:8px;padding-top:3px}.ssh-terminal-modal{border-color:color-mix(in srgb,var(--terminal-accent) 58%,var(--border));box-shadow:0 22px 70px #0000008c,0 0 0 1px color-mix(in srgb,var(--terminal-accent) 18%,transparent)}.ssh-terminal-header{background:linear-gradient(100deg,color-mix(in srgb,var(--terminal-accent) 12%,var(--card)),var(--card) 62%);box-shadow:inset 4px 0 var(--terminal-accent)}.ssh-terminal-title>i,.ssh-credential-intro>i{background:color-mix(in srgb,var(--terminal-accent) 16%,transparent);color:var(--terminal-accent)}.terminal-vendor-badge{display:inline-flex;padding:3px 7px;border:1px solid color-mix(in srgb,var(--terminal-accent) 50%,var(--border));border-radius:4px;background:color-mix(in srgb,var(--terminal-accent) 12%,transparent);color:var(--terminal-accent);font-size:9px;font-weight:800;letter-spacing:.1em;text-transform:uppercase}.ssh-terminal-surface{background:var(--terminal-bg)!important;border-top:1px solid color-mix(in srgb,var(--terminal-accent) 24%,transparent);border-bottom:1px solid color-mix(in srgb,var(--terminal-accent) 24%,transparent)}.ssh-terminal-surface .xterm{padding:4px;color:var(--terminal-fg)}.ssh-terminal-surface .xterm-viewport{scrollbar-color:var(--terminal-accent) var(--terminal-bg)!important}.ssh-auth-switch button.active{background:var(--terminal-accent);color:var(--terminal-bg)}.check-timeline-wrap{margin:0 8px}.check-timeline{height:28px;margin:0;gap:2px;padding:4px 5px}.check-timeline i{max-width:none;min-width:2px;background:var(--green)}.check-timeline i.unknown{background:var(--border)}.timeline-axis{display:flex;justify-content:space-between;padding-top:4px;color:var(--dim);font:9px JetBrains Mono,monospace}.down-times{display:flex;align-items:center;gap:5px;flex-wrap:wrap;margin-top:6px;color:var(--soft);font-size:10px}.down-times b{color:var(--red)}.down-times time{padding:2px 5px;border:1px solid color-mix(in srgb,var(--red) 35%,var(--border));border-radius:4px;color:var(--red);font-family:JetBrains Mono,monospace}.failure-modal{width:min(760px,100%);max-height:min(760px,90vh);display:flex;flex-direction:column;padding:0;overflow:hidden}.failure-modal>header,.failure-modal>footer{display:flex;align-items:flex-start;justify-content:space-between;gap:14px;padding:17px 19px;border-bottom:1px solid var(--border)}.failure-modal>header h2{margin:4px 0 0}.failure-modal>header p{margin:5px 0 0}.failure-modal>footer{align-items:center;border-top:1px solid var(--border);border-bottom:0;color:var(--soft);font-size:11px}.failure-list{min-height:0;overflow:auto}.failure-list article{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:11px;padding:11px 18px;border-bottom:1px solid var(--border)}.failure-list article>svg{color:var(--red)}.failure-list article>div{display:grid;gap:3px}.failure-list article span{color:var(--soft);font-size:11px}.failure-list article code{color:var(--soft);font-size:11px}.telemetry-panel{min-width:0;margin:0;padding:15px;border:1px solid var(--border);border-radius:9px;background:var(--card)}.telemetry-panel>header{display:flex;align-items:flex-start;justify-content:space-between;gap:14px;margin-bottom:12px}.telemetry-panel>header h3{margin:3px 0;font-size:15px}.telemetry-panel>header p{margin:0;color:var(--soft);font-size:10px}.telemetry-metrics{display:grid;grid-template-columns:repeat(auto-fit,minmax(135px,1fr));gap:7px}.telemetry-metrics>div{min-width:0;padding:9px;display:grid;grid-template-columns:auto minmax(0,1fr);align-items:center;gap:3px 7px;border:1px solid var(--border);border-radius:7px;background:var(--input)}.telemetry-metrics i{grid-row:1/3;color:var(--primary);font-style:normal}.telemetry-metrics small{color:var(--soft);font-size:9px}.telemetry-metrics b{overflow:hidden;text-overflow:ellipsis;font-size:11px;white-space:nowrap}.telemetry-warning{display:flex;align-items:flex-start;gap:8px;margin:8px 0;padding:9px;border:1px solid color-mix(in srgb,var(--amber) 45%,var(--border));border-radius:7px;color:var(--amber);font-size:10px}.telemetry-warning span{display:grid;gap:2px}.signal-empty{margin-top:9px;padding:13px;display:flex;align-items:center;justify-content:center;gap:8px;border:1px dashed var(--border);border-radius:7px;color:var(--soft);font-size:11px}.signal-chart{margin-top:10px;padding:10px;border:1px solid var(--border);border-radius:7px;background:var(--input)}.signal-chart>div{display:flex;justify-content:space-between;gap:10px;color:var(--soft);font-size:9px}.signal-chart>div b{color:var(--text);font-size:11px}.signal-chart svg{width:100%;height:110px;margin-top:6px;overflow:visible}.signal-chart svg line{stroke:var(--border);stroke-width:.4;stroke-dasharray:2 2}.signal-chart svg polyline{fill:none;stroke:var(--primary);stroke-width:1.4;vector-effect:non-scaling-stroke}.signal-chart footer{display:flex;justify-content:space-between;color:var(--dim);font:9px JetBrains Mono,monospace}.cellular-strip{margin-top:9px;padding:10px;display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:9px;border:1px solid rgba(85,150,255,.28);border-radius:7px;background:#5596ff12}.cellular-strip>svg{color:var(--primary)}.cellular-strip>div{display:grid;gap:2px}.cellular-strip span{color:var(--soft);font-size:10px}.cellular-strip>strong{color:var(--primary);font:11px JetBrains Mono,monospace}.poe-table,.device-events{margin-top:11px}.poe-table h4,.device-events h4{margin:0 0 7px;font-size:11px}.poe-head,.poe-table>div:not(.poe-head){display:grid;grid-template-columns:minmax(130px,1.4fr) .6fr .8fr .7fr .8fr;align-items:center;gap:8px;padding:7px 9px;border-top:1px solid var(--border);font-size:10px}.poe-head{color:var(--dim);font-weight:750}.poe-table>div>span:first-child{display:grid}.poe-table small{color:var(--dim)}.device-events article{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:8px;padding:8px;border-top:1px solid var(--border)}.device-events article>svg{color:var(--amber)}.device-events article.preventive>svg{color:#fb7185}.device-events article>div{display:grid;gap:2px}.device-events article span,.device-events article time{color:var(--soft);font-size:9px}.telemetry-form{margin-top:10px;padding:12px;display:grid;gap:10px;border:1px solid var(--border);border-radius:7px;background:var(--detail)}.telemetry-form-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:9px}.telemetry-form textarea{font:10px JetBrains Mono,monospace}.telemetry-form .drawer-actions{padding:0;border:0}.telemetry-form .drawer-actions .muted{font-size:9px}.telemetry-config-backdrop{z-index:140}.telemetry-config-modal{width:min(980px,100%);max-height:min(850px,94vh);padding:0;display:flex;flex-direction:column;overflow:hidden}.telemetry-config-modal-header{padding:16px 18px;display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:12px;border-bottom:1px solid var(--border);background:var(--card2)}.telemetry-config-modal-header>i{width:42px;height:42px;display:grid;place-items:center;border-radius:9px;background:color-mix(in srgb,var(--primary) 13%,transparent);color:var(--primary);font-style:normal}.telemetry-config-modal-header h2{margin:3px 0}.telemetry-config-modal-header p{margin:0;font-size:10px}.telemetry-config-modal-body{padding:0 18px 18px;overflow:auto}.telemetry-config-modal-body>.state{min-height:300px}.telemetry-config-modal .telemetry-form{border:0;background:transparent;padding:0}.telemetry-config-modal .telemetry-form .drawer-actions{position:sticky;bottom:-18px;margin:3px -18px -18px;padding:12px 18px;border-top:1px solid var(--border);background:var(--card)}.telemetry-identity{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px;margin-top:9px}.telemetry-identity>span{min-width:0;padding:7px 8px;display:grid;gap:2px;border-left:2px solid var(--primary);background:var(--input)}.telemetry-identity small{color:var(--soft);font-size:8px;text-transform:uppercase}.telemetry-identity b{overflow:hidden;text-overflow:ellipsis;font-size:10px;white-space:nowrap}.telemetry-extra{margin-top:9px;border:1px solid var(--border);border-radius:7px;background:var(--input)}.telemetry-extra>summary{padding:8px 9px;display:flex;align-items:center;gap:6px;color:var(--primary);font-size:10px;font-weight:750;cursor:pointer}.telemetry-extra>summary span{min-width:20px;height:20px;margin-left:auto;display:grid;place-items:center;border-radius:10px;background:color-mix(in srgb,var(--primary) 13%,transparent)}.telemetry-extra>div{max-height:240px;overflow:auto;border-top:1px solid var(--border)}.telemetry-extra dl{margin:0;padding:7px 9px;display:grid;grid-template-columns:minmax(120px,.8fr) minmax(0,1.2fr);gap:8px;border-bottom:1px solid var(--border);font-size:9px}.telemetry-extra dl:last-child{border:0}.telemetry-extra dt{color:var(--soft)}.telemetry-extra dd{margin:0;overflow-wrap:anywhere;font-family:JetBrains Mono,monospace}.snmp-diagnostics{margin-top:11px;padding:11px;border:1px solid var(--border);border-radius:7px;background:color-mix(in srgb,var(--detail) 72%,transparent)}.snmp-diagnostics>header{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:8px}.snmp-diagnostics h4{margin:2px 0 0;font-size:12px}.snmp-identity-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px}.snmp-identity-grid>span{min-width:0;padding:7px 8px;display:grid;gap:2px;border:1px solid var(--border);border-radius:5px;background:var(--input)}.snmp-identity-grid>span.wide{grid-column:1/-1}.snmp-identity-grid small{color:var(--soft);font-size:8px;text-transform:uppercase}.snmp-identity-grid b{overflow-wrap:anywhere;font:10px JetBrains Mono,monospace}.capability-list{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px}.capability-list>span{display:grid;grid-template-columns:auto auto;align-items:center;gap:1px 5px;padding:5px 7px;border:1px solid var(--border);border-radius:5px;color:var(--text);font-size:9px;text-transform:capitalize}.capability-list>span i{width:6px;height:6px;border-radius:50%;background:var(--dim)}.capability-list>span.available{border-color:color-mix(in srgb,var(--green) 45%,var(--border));background:color-mix(in srgb,var(--green) 7%,transparent)}.capability-list>span.available i{background:var(--green)}.capability-list>span small{grid-column:2;color:var(--dim);font-size:7px;text-transform:uppercase}.detail-actions{min-width:0;justify-content:flex-start}.compact-device-summary{min-width:0;display:flex;align-items:stretch;gap:5px;flex:1}.compact-device-summary>span,.compact-device-summary>button{min-width:0;max-width:190px;padding:5px 7px;display:grid;grid-template-columns:auto minmax(0,1fr);align-items:center;column-gap:6px;border:1px solid var(--border);border-radius:6px;background:var(--input);color:var(--text);text-align:left}.compact-device-summary>button{font:inherit;cursor:pointer}.compact-device-summary i{grid-row:1/3;width:24px;height:24px;display:grid;place-items:center;border-radius:5px;background:color-mix(in srgb,var(--primary) 11%,transparent);color:var(--primary);font-style:normal}.compact-device-summary small{overflow:hidden;color:var(--dim);font-size:7px;line-height:1;text-overflow:ellipsis;text-transform:uppercase;white-space:nowrap}.compact-device-summary b{min-width:0;overflow:hidden;color:var(--text);font-size:9px;line-height:1.2;text-overflow:ellipsis;white-space:nowrap}.compact-device-summary>button.has-failures{border-color:color-mix(in srgb,var(--red) 42%,var(--border))}.compact-device-summary>button.has-failures i,.compact-device-summary>button.has-failures b{color:var(--red)}.detail-web-actions{display:flex;align-items:center;gap:7px;white-space:nowrap}.detail-web-actions>.muted{font-size:9px}.telemetry-columns{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(380px,.85fr);align-items:start;gap:12px}.telemetry-general-column,.telemetry-interface-column{min-width:0;padding:11px;border:1px solid var(--border);border-radius:8px;background:color-mix(in srgb,var(--detail) 72%,transparent)}.telemetry-column-heading{min-height:30px;margin-bottom:9px;display:flex;align-items:flex-end;justify-content:space-between;gap:10px;border-bottom:1px solid var(--border);padding-bottom:7px}.telemetry-column-heading b{font-size:11px}.telemetry-interface-column .poe-table{margin-top:0}.telemetry-interface-column .poe-table h4{display:none}.interface-upstream-card{margin-top:9px;padding:9px;display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:8px;border:1px solid color-mix(in srgb,var(--primary) 32%,var(--border));border-radius:7px;background:color-mix(in srgb,var(--primary) 7%,transparent)}.interface-upstream-card>svg{color:var(--primary)}.interface-upstream-card>span{min-width:0;display:grid;gap:2px}.interface-upstream-card small{color:var(--soft);font-size:8px;text-transform:uppercase}.interface-upstream-card b{overflow:hidden;font-size:10px;text-overflow:ellipsis;white-space:nowrap}.interface-upstream-card strong{color:var(--primary);font:10px JetBrains Mono,monospace;white-space:nowrap}@media(max-width:1200px){.detail-actions{align-items:flex-start;flex-wrap:wrap}.compact-device-summary{flex-basis:100%}.compact-device-summary>span,.compact-device-summary>button{max-width:none;flex:1}.detail-web-actions{margin-left:auto}.telemetry-columns{grid-template-columns:1fr}}.network-diagnostics-tabs button{font:inherit!important;font-size:10px!important;font-weight:700!important}.network-diagnostics-backdrop{z-index:145}.network-diagnostics-modal{width:min(980px,calc(100vw - 32px));height:min(760px,calc(100vh - 42px));max-width:none;padding:0;display:flex;flex-direction:column;overflow:hidden}.network-diagnostics-header{min-height:86px;padding:14px 18px;display:grid;grid-template-columns:auto minmax(150px,.7fr) minmax(420px,1.3fr) auto;align-items:center;gap:13px;border-bottom:1px solid var(--border)}.network-diagnostics-header>i{width:44px;height:44px;display:grid;place-items:center;border-radius:9px;background:color-mix(in srgb,var(--green) 13%,transparent);color:var(--green);font-style:normal}.network-diagnostics-header h2{margin:3px 0 0;font-size:18px}.network-diagnostics-identity{min-width:0;display:flex;align-items:center;justify-content:flex-end;gap:6px}.network-diagnostics-identity>span:not(.badge){min-width:0;padding:5px 8px;display:grid;gap:2px;border-left:1px solid var(--border)}.network-diagnostics-identity small{color:var(--dim);font-size:7px;text-transform:uppercase}.network-diagnostics-identity b,.network-diagnostics-identity code{max-width:130px;overflow:hidden;font-size:9px;text-overflow:ellipsis;white-space:nowrap}.network-diagnostics-tabs{padding:0 18px;display:flex;gap:3px;border-bottom:1px solid var(--border);background:var(--card2)}.network-diagnostics-tabs button{min-height:44px;padding:0 14px;border:0;border-bottom:2px solid transparent;background:transparent;color:var(--soft);font:700 10px inherit;cursor:pointer}.network-diagnostics-tabs button.active{border-bottom-color:var(--primary);color:var(--text)}.network-diagnostics-command{min-height:61px;padding:10px 18px;display:flex;align-items:center;justify-content:space-between;gap:15px;border-bottom:1px solid var(--border)}.network-diagnostics-command>div{display:grid;gap:3px}.network-diagnostics-command span{color:var(--soft);font-size:9px}.network-diagnostics-body{flex:1;min-height:0;padding:16px 18px;overflow:auto;background:color-mix(in srgb,var(--bg) 50%,var(--card))}.network-diagnostics-body>.state{min-height:340px}.diagnostic-state{display:inline-flex;align-items:center;justify-content:center;min-width:39px;padding:3px 7px;border:1px solid currentColor;border-radius:12px;color:var(--green);font-size:8px;font-weight:800;white-space:nowrap}.diagnostic-state.warning{color:var(--amber)}.diagnostic-state.error{color:var(--red)}.diagnostic-state.unavailable{color:var(--dim)}.health-diagnostic-result>header,.ping-diagnostic-result>header,.path-diagnostic-result>header,.port-diagnostic-result>header{min-height:52px;margin-bottom:11px;display:flex;align-items:center;justify-content:space-between;gap:12px}.health-diagnostic-result h3,.ping-diagnostic-result h3,.path-diagnostic-result h3,.port-diagnostic-result h3{margin:3px 0 0;font-size:15px}.health-check-list{border:1px solid var(--border);border-radius:8px;overflow:hidden;background:var(--card)}.health-check-list article{min-height:48px;padding:8px 11px;display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:10px;border-bottom:1px solid var(--border)}.health-check-list article:last-child{border:0}.health-check-list article>i{width:8px;height:8px;border-radius:50%;background:var(--green)}.health-check-list article>i.warning{background:var(--amber)}.health-check-list article>i.error{background:var(--red)}.health-check-list article>i.unavailable{background:var(--dim)}.health-check-list article>div{display:grid;gap:3px}.health-check-list article b{font-size:10px}.health-check-list article span:not(.diagnostic-state){color:var(--soft);font-size:9px}.health-diagnostic-result>footer{padding:9px 2px;color:var(--dim);font-size:8px;text-align:right}.diagnostic-metrics{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:8px}.diagnostic-metrics>span{min-height:72px;padding:11px;display:grid;align-content:center;gap:6px;border:1px solid var(--border);border-radius:8px;background:var(--card)}.diagnostic-metrics small{color:var(--soft);font-size:8px;text-transform:uppercase}.diagnostic-metrics b{font:700 13px JetBrains Mono,monospace}.path-hop-table,.diagnostic-port-table{border:1px solid var(--border);border-radius:8px;overflow:hidden;background:var(--card)}.path-hop-table>div{min-height:38px;padding:7px 10px;display:grid;grid-template-columns:45px minmax(160px,1fr) repeat(4,70px);align-items:center;gap:8px;border-bottom:1px solid var(--border);font-size:9px}.path-hop-table>div:first-child,.diagnostic-port-table>div:first-child{background:var(--card2);color:var(--soft);font-size:8px;text-transform:uppercase}.path-hop-table>div:last-child,.diagnostic-port-table>div:last-child{border-bottom:0}.path-hop-table code{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.diagnostic-port-table>div{min-height:42px;padding:7px 10px;display:grid;grid-template-columns:minmax(160px,1fr) 90px 90px 150px;align-items:center;gap:8px;border-bottom:1px solid var(--border);font-size:9px}.diagnostic-port-table>div>span:last-child{display:flex;align-items:center;gap:7px}.diagnostic-port-table small{color:var(--dim);font:8px JetBrains Mono,monospace}.diagnostic-inline-error,.diagnostic-inline-warning{margin:12px 0 0;padding:9px 11px;border:1px solid color-mix(in srgb,var(--red) 40%,var(--border));border-radius:7px;background:color-mix(in srgb,var(--red) 8%,transparent);color:var(--red);font-size:9px}.diagnostic-inline-warning{border-color:color-mix(in srgb,var(--amber) 40%,var(--border));background:color-mix(in srgb,var(--amber) 8%,transparent);color:var(--amber)}@media(max-width:900px){.network-diagnostics-header{grid-template-columns:auto minmax(0,1fr) auto}.network-diagnostics-identity{grid-column:1/-1;grid-row:2;justify-content:flex-start}.network-diagnostics-modal{height:min(820px,calc(100vh - 24px))}.diagnostic-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}.path-hop-table{overflow:auto}.path-hop-table>div{min-width:650px}}@media(max-width:767px){.network-diagnostics-backdrop{padding:0}.network-diagnostics-modal{width:100%;height:100vh;border-radius:0}.network-diagnostics-header{padding:12px;gap:9px}.network-diagnostics-header>i{width:38px;height:38px}.network-diagnostics-identity{overflow:auto;justify-content:flex-start}.network-diagnostics-identity>span:not(.badge){flex:0 0 auto}.network-diagnostics-tabs{padding:0 7px}.network-diagnostics-tabs button{padding:0 8px;flex:1}.network-diagnostics-command{align-items:flex-start;padding:10px 12px;flex-direction:column}.network-diagnostics-command .button{width:100%;justify-content:center}.network-diagnostics-body{padding:12px}.diagnostic-port-table{overflow:auto}.diagnostic-port-table>div{min-width:570px}.health-check-list article{grid-template-columns:auto minmax(0,1fr)}.health-check-list .diagnostic-state{grid-column:2;justify-self:start}.diagnostic-metrics{grid-template-columns:1fr 1fr}}@media(max-width:767px){.compact-device-summary{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));width:100%}.compact-device-summary>span,.compact-device-summary>button{max-width:none}.detail-web-actions{margin-left:0}.telemetry-columns{display:grid;grid-template-columns:1fr}.telemetry-general-column,.telemetry-interface-column{padding:9px}.telemetry-interface-column{grid-row:1}.telemetry-column-heading{align-items:flex-start;flex-direction:column;gap:2px}.detail-action-buttons{margin-left:auto}}.map-device-section .device-card code{color:var(--ip-text);font-weight:500}@media(max-width:1023px){.view-switcher span{display:none}.station-tree-children{padding-left:18px}.station-tree-children:before{left:8px}.station-tree-children .tree-device:before{left:-10px;width:9px}}@media(max-width:767px){.filterbar.plant-filters{overflow:visible;flex-wrap:wrap}.plant-filters>select,.plant-filters>.filter-type{flex:1;min-width:145px}.plant-filters .view-switcher{order:3;flex:1}.plant-filters .view-switcher button{flex:1;justify-content:center}.device-summary{font-size:inherit}.station-tree .table-head{display:none}.station-tree-group{border:1px solid var(--border);border-radius:9px;overflow:hidden}.station-tree-children{padding-left:16px}.detail-stats>div,.detail-stats>button{padding:9px}.timeline-axis{font-size:8px}.failure-modal{height:min(760px,94vh)}.failure-list article{grid-template-columns:auto minmax(0,1fr)}.failure-list article>code{grid-column:2}}@media(max-width:1100px){.telemetry-metrics{grid-template-columns:repeat(3,minmax(0,1fr))}.telemetry-form-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:767px){.telemetry-panel{padding:11px}.telemetry-panel>header{flex-direction:column}.telemetry-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}.signal-chart svg{height:85px}.poe-table{overflow-x:auto}.poe-head,.poe-table>div:not(.poe-head){min-width:590px}.device-events article{grid-template-columns:auto minmax(0,1fr)}.device-events article time{grid-column:2}.telemetry-form-grid{grid-template-columns:1fr}.telemetry-config-backdrop{padding:8px}.telemetry-config-modal{height:calc(100dvh - 16px);max-height:none}.telemetry-config-modal-header{padding:11px 12px}.telemetry-config-modal-header>i{display:none}.telemetry-config-modal-body{padding:0 12px 12px}.telemetry-config-modal .telemetry-form .drawer-actions{bottom:-12px;margin:3px -12px -12px;padding:10px 12px;align-items:stretch;flex-direction:column}.telemetry-config-modal .telemetry-form .drawer-actions .button{width:100%}}@media(max-width:1100px){.device-overview-grid{grid-template-columns:1fr}.telemetry-panel{margin:0}.device-operational-summary .detail-stats{grid-template-columns:repeat(4,minmax(0,1fr))}}@media(max-width:767px){.detail-actions{align-items:flex-start;flex-wrap:wrap}.detail-actions>.muted{width:100%;margin:0}.detail-action-buttons{width:100%;flex-wrap:wrap}.detail-action-buttons .button{flex:1}.device-operational-summary{padding:11px}.device-operational-summary .detail-stats{grid-template-columns:repeat(2,minmax(0,1fr))}.diagnostics-backdrop{padding:8px}.diagnostics-modal{height:calc(100dvh - 16px);max-height:none}.diagnostics-modal-header{grid-template-columns:auto minmax(0,1fr) auto;padding:11px 12px}.diagnostics-modal-header .diagnostics-health{grid-column:2}.diagnostics-modal-header>.icon-button{grid-column:3;grid-row:1}.diagnostics-toolbar{align-items:flex-start;flex-direction:column;padding:10px 12px}.diagnostics-toolbar label{width:100%;justify-content:space-between}.diagnostics-list article{grid-template-columns:auto minmax(0,1fr);padding:11px 12px}.diagnostics-list article time{grid-column:2}.telemetry-identity,.snmp-identity-grid{grid-template-columns:1fr}.snmp-identity-grid>span.wide{grid-column:auto}.snmp-diagnostics>header{align-items:flex-start;flex-direction:column}.telemetry-extra dl{grid-template-columns:1fr;gap:3px}}.monitor-event-timeline article.preventive i{background:#fb7185}.monitor-event-timeline article.warning i{background:var(--amber)}.monitor-event-timeline article.critical i{background:var(--red)}@media(max-width:767px){.ssh-terminal-backdrop{padding:8px}.ssh-terminal-modal{height:calc(100dvh - 16px)}.ssh-terminal-header{padding:11px 12px}.ssh-terminal-controls{gap:7px}.terminal-status{padding:5px 7px}.ssh-terminal-footer{align-items:flex-start;flex-direction:column;gap:2px}.ssh-terminal-surface{padding:8px}}.plant-nav-heading{display:block}.plant-nav-heading .plant-nav-title{min-height:32px!important;padding:0 5px!important;display:flex;align-items:center;gap:7px;color:var(--dim)!important;font-size:10px;font-weight:800}.plant-nav-heading .plant-nav-title.active{color:var(--primary)!important;background:#3b7ef81a}.discovery-alert{border:0;cursor:pointer}.subnet-card dl .plant-health-row{align-items:center}.plant-health-row dd{display:flex;align-items:center;gap:5px;font-weight:650}.plant-health-row dd small{margin-left:4px;color:var(--soft);font-weight:500}.plant-health-row dd.green{color:var(--green)}.plant-health-row dd.amber{color:var(--amber)}.plant-health-row dd.red{color:var(--red)}.plant-health-row dd.gray{color:var(--soft)}.new-hosts-modal{height:min(680px,88vh)}.new-host-list{display:grid;border:1px solid var(--border);border-radius:8px;overflow:auto}.new-host-list article{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:11px;padding:12px;border-bottom:1px solid var(--border);background:var(--card2)}.new-host-list article:last-child{border-bottom:0}.new-host-list article>div{display:grid;gap:3px}.new-host-list code{color:var(--text);font-weight:650}.new-host-list small{color:var(--soft)}.radar-dot{width:34px;height:34px;display:grid;place-items:center;border-radius:50%;background:#5596ff1f;color:var(--primary)}.new-hosts-actions{display:flex;justify-content:flex-end;gap:8px;padding:14px 18px;border-top:1px solid var(--border)}.station-map-pin{border:0!important;background:transparent!important}.station-map-pin>span{position:absolute;left:3px;top:2px;width:24px;height:24px;display:block;transform:rotate(-45deg);border:3px solid #fff;border-radius:50% 50% 50% 0;background:var(--primary);box-shadow:0 3px 10px #00000061}.station-map-pin>span:after{content:"";position:absolute;left:6px;top:6px;width:6px;height:6px;border-radius:50%;background:#fff}.station-map-pin.offline>span{background:var(--red)}.station-map-pin.degraded>span{background:var(--amber)}.station-map-pin.operational>span{background:var(--green)}.station-map-pin.selected>span{transform:rotate(-45deg) scale(1.18);box-shadow:0 0 0 4px #5596ff47,0 4px 12px #0000006b}.station-map-pin.line-start>span{background:var(--amber);box-shadow:0 0 0 5px #f59e0b4d,0 4px 12px #0000006b}.station-map-pin.leaflet-marker-draggable{cursor:move}.geo-map.drawing-line .leaflet-container{cursor:crosshair}.station-line-anchor{border:0!important;background:transparent!important;cursor:pointer!important}.station-line-anchor>span{position:absolute;inset:3px;display:block;border:3px solid #fff;border-radius:50%;background:#2563eb4d;box-shadow:0 0 0 3px #2563eba6,0 3px 14px #00000061;transition:transform .12s ease,background .12s ease}.station-line-anchor>span:after{content:"";position:absolute;inset:12px;border-radius:50%;background:#fff;box-shadow:0 0 0 4px var(--primary)}.station-line-anchor:hover>span,.station-line-anchor:focus>span{transform:scale(1.12);background:#2563eb85}.station-line-anchor.active>span{background:#f59e0b7a;box-shadow:0 0 0 5px #f59e0b6b,0 3px 14px #00000061}.station-line-anchor.active>span:after{box-shadow:0 0 0 4px var(--amber)}.leaflet-tooltip.distance-tooltip{padding:4px 7px;border:1px solid rgba(37,99,235,.5);border-radius:12px;background:var(--overlay);box-shadow:0 2px 8px #0000003d;color:var(--primary);font:700 10px JetBrains Mono,monospace;white-space:nowrap}.leaflet-tooltip.distance-tooltip:before{display:none}.device-header-actions{display:grid;gap:6px}.device-header-actions .button{justify-content:center}.discovery-plant-picker{width:min(520px,calc(100% - 28px));padding:0;overflow:hidden}.discovery-plant-picker>header{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;padding:20px;border-bottom:1px solid var(--border)}.discovery-plant-picker h2{margin:4px 0;font-size:20px}.discovery-plant-picker p{margin:0;color:var(--soft)}.discovery-plant-list{max-height:min(480px,65vh);display:grid;gap:8px;padding:16px;overflow:auto}.discovery-plant-list .button{min-height:54px;justify-content:space-between;text-align:left}.discovery-plant-list .button>span{display:grid;gap:3px}.discovery-plant-list code{color:var(--soft)}@media(max-width:767px){.new-hosts-modal{height:100vh}.new-host-list article{grid-template-columns:auto minmax(0,1fr)}.new-host-list article>.badge{grid-column:2}.new-hosts-actions .button{flex:1}.subnet-card header{grid-template-columns:auto auto minmax(0,1fr) auto auto}}.breadcrumbs{margin:-8px 0 14px;color:var(--soft);font-size:11px}.breadcrumbs ol{display:flex;align-items:center;gap:4px;margin:0;padding:0;list-style:none;min-width:0}.breadcrumbs li{display:flex;align-items:center;gap:4px;min-width:0}.breadcrumbs a{color:var(--primary)}.breadcrumbs a:hover{text-decoration:underline}.breadcrumbs span{max-width:260px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--text)}.breadcrumbs.design-breadcrumbs{min-height:38px;margin-top:-14px;display:flex;align-items:center;justify-content:space-between;gap:14px}.breadcrumbs.design-breadcrumbs ol{flex:0 1 auto}.design-project-inline{display:flex;align-items:center;justify-content:flex-end;gap:7px}.design-project-inline select{min-width:260px;min-height:34px;padding:5px 9px}.design-project-inline .button{min-height:34px;white-space:nowrap}.device-type-select{position:relative;min-width:0}.device-type-trigger{width:100%;min-height:40px;padding:8px 10px;display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:8px;border:1px solid var(--border);border-radius:7px;background:var(--input);color:var(--text);text-align:left;cursor:pointer}.device-type-trigger>svg:first-child{color:var(--primary)}.device-type-trigger span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.device-type-trigger>svg:last-child{color:var(--soft)}.device-type-menu{position:absolute;z-index:900;top:calc(100% + 5px);left:0;width:max(100%,230px);max-height:310px;padding:5px;display:grid;gap:2px;overflow:auto;border:1px solid var(--border);border-radius:8px;background:var(--card);box-shadow:0 14px 36px #00000061}.device-type-menu button{min-height:36px;padding:7px 8px;display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:8px;border:0;border-radius:6px;background:transparent;color:var(--text);text-align:left;cursor:pointer}.device-type-menu button:hover,.device-type-menu button[aria-selected=true]{background:#5596ff21}.device-type-menu button>svg:first-child{color:var(--primary)}.device-type-menu button>svg:last-child{color:var(--green)}.device-type-select.filter-type{min-width:190px;padding:0;border:0;background:transparent}.device-type-select.compact .device-type-trigger{min-height:36px;padding:6px 8px}.device-type-select.compact .device-type-menu{right:0;left:auto}.device-name-line{display:grid;gap:3px;min-width:0}.inline-device-name{display:inline-flex;align-items:center;gap:5px;min-width:0}.inline-name-action{width:22px;height:22px;display:grid;place-items:center;flex:0 0 auto;border:0;border-radius:5px;background:transparent;color:var(--soft);cursor:pointer}.inline-name-action:hover{background:#5596ff24;color:var(--primary)}.inline-name-editor{display:grid;grid-template-columns:minmax(90px,1fr) auto auto;align-items:center;gap:4px;min-width:0}.inline-name-editor input{min-width:0;min-height:30px;padding:4px 7px;font-weight:650}.inline-name-editor button{width:28px;height:28px;display:grid;place-items:center;border:1px solid var(--border);border-radius:5px;background:var(--input);color:var(--soft);cursor:pointer}.inline-name-editor button:first-of-type{color:var(--green)}.inline-name-editor button:last-of-type{color:var(--red)}.inline-name-editor small{grid-column:1/-1;color:var(--red);font-weight:500}.drawer-handle{top:50%;width:24px;height:44px;display:grid;place-items:center;padding:0;transform:translateY(-50%);border-radius:7px 0 0 7px;font-size:initial}.map-toolset button:disabled{opacity:.4;cursor:not-allowed}.map-tool-error{color:var(--red)!important}.coordinate-lock-hint{display:flex;align-items:center;gap:5px;margin-top:-5px;color:var(--soft)}.coordinate-lock-hint svg{color:var(--primary)}@media(max-width:767px){.breadcrumbs{margin:-4px 0 11px;overflow:auto;scrollbar-width:none}.device-type-select.filter-type{min-width:170px;flex:1}.device-type-menu{position:fixed;z-index:950;inset:auto 12px 82px;width:auto;max-height:55vh}.drawer-handle{right:auto;left:8px;border:1px solid var(--border);border-radius:7px}.map-toolset{overflow-x:auto;scrollbar-width:none}.map-toolset button{flex:0 0 auto!important}}.network-summary{color:var(--soft);font-size:11px;display:inline-flex;align-items:center;gap:6px}.network-summary b{color:var(--primary-fixed);font-family:JetBrains Mono,monospace}.network-map-panel{overflow:hidden;border:1px solid var(--border);border-radius:10px;background:var(--card);box-shadow:0 10px 30px #00000073;display:flex;flex-direction:column}.network-toolbar{min-height:56px;padding:8px 16px;display:flex;align-items:center;gap:12px;border-bottom:1px solid var(--border);background:var(--card2);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);flex-wrap:wrap}.network-search{min-width:240px;height:38px;padding:0 10px;display:flex;align-items:center;gap:8px;border:1px solid var(--border);border-radius:7px;background:var(--input);color:var(--soft);transition:border-color .15s ease}.network-search:focus-within{border-color:var(--primary);box-shadow:0 0 0 2px var(--primary-glow)}.network-search input{min-width:0;width:100%;padding:0;border:0;background:transparent;color:var(--text);font-family:JetBrains Mono,monospace;font-size:11px}.network-search input::placeholder{color:var(--soft);font-family:Inter,sans-serif}.network-search button{padding:3px;display:grid;border:0;background:transparent;color:var(--soft);cursor:pointer}.network-edge-filters{display:flex;gap:6px;flex-wrap:wrap;align-items:center}.network-edge-filters button,.network-view-actions button{min-height:34px;padding:6px 11px;display:flex;align-items:center;gap:6px;border:1px solid var(--border);border-radius:7px;background:var(--card);color:var(--soft);cursor:pointer;font-size:11px;font-weight:500;transition:all .15s ease}.network-edge-filters button:hover,.network-view-actions button:hover{background:var(--card-high);color:var(--text);border-color:var(--border-bright)}.network-edge-filters button.active{background:#00f2fe1a;border-color:#00f2fe66;color:var(--primary-fixed)}.network-edge-filters .wired.active{background:#00f2fe1f;border-color:#00f2fe;color:#00f2fe}.network-edge-filters .ptp.active{background:#f59e0b1f;border-color:#f59e0b;color:#f59e0b}.network-edge-filters .ptmp.active{background:#8b5cf61f;border-color:#8b5cf6;color:#8b5cf6}.network-edge-filters .vpn.active{background:#4edea31f;border-color:#4edea3;color:#4edea3}.network-edge-filters b{font-family:JetBrains Mono,monospace;font-size:10px;padding:1px 5px;border-radius:4px;background:#0000004d}.network-view-actions{margin-left:auto;display:flex;gap:5px}.network-view-actions button{padding:7px 9px;color:var(--soft)}.network-view-actions button:hover{color:var(--primary);border-color:var(--primary)}.network-workspace{position:relative;height:720px;display:grid;grid-template-columns:minmax(0,1fr);background-color:var(--canvas-bg,#051424);overflow:hidden;transition:grid-template-columns .2s ease}.network-workspace.has-inspector{grid-template-columns:minmax(0,1fr) 380px}.network-canvas-scroll{min-width:0;height:100%;overflow:auto;position:relative;background-color:var(--canvas-bg,#051424)}.network-canvas{display:block;min-width:100%;min-height:100%;font-family:Inter,system-ui,sans-serif}.network-group rect{fill:#0d1c2dc7;stroke:#1c2b3c;stroke-width:1.5;rx:10px}.network-group:hover rect{stroke:var(--primary-glow)}.network-group text{fill:#6ff6ff;font-family:JetBrains Mono,monospace;font-size:11px;font-weight:700;letter-spacing:.06em}.network-group .group-subtitle{fill:var(--soft);font-family:Inter,sans-serif;font-size:9px;font-weight:400;text-transform:uppercase;letter-spacing:.08em}.network-group.unassigned rect{fill:#f59e0b09;stroke:#6f5424;stroke-dasharray:5 4}.network-group.unassigned text{fill:#f59e0b}.network-edge path{fill:none;stroke-width:2.2;transition:stroke .2s ease,stroke-width .2s ease}.network-edge text{fill:var(--text);font-family:JetBrains Mono,monospace;font-size:9px;font-weight:600;text-anchor:middle;paint-order:stroke;stroke:var(--canvas-edge-stroke,#051424);stroke-width:4px;stroke-linejoin:round}.network-edge.wired path{stroke:#00f2fe;stroke-width:2.4;filter:drop-shadow(0 0 3px rgba(0,242,254,.45))}.network-edge.ptp path{stroke:#f59e0b;stroke-dasharray:8 6;stroke-width:2.2;filter:drop-shadow(0 0 3px rgba(245,158,11,.35))}.network-edge.ptmp path{stroke:#8b5cf6;stroke-dasharray:4 4;stroke-width:1.8;filter:drop-shadow(0 0 2px rgba(139,92,246,.3))}.network-edge.vpn path{stroke:#4edea3;stroke-dasharray:5 5;stroke-width:2}.network-edge.problem path{stroke:#ef4444;stroke-width:3.5;stroke-dasharray:6 5;animation:pulseAlarm 1.4s infinite ease-in-out;filter:drop-shadow(0 0 6px rgba(239,68,68,.7))}.network-edge.muted{opacity:.15}.network-arrow.wired{fill:#00f2fe}.network-arrow.ptp{fill:#f59e0b}.network-arrow.ptmp{fill:#8b5cf6}.network-arrow.vpn{fill:#4edea3}.network-arrow.problem{fill:#ef4444}@keyframes pulseAlarm{0%,to{opacity:.4;stroke-width:3}50%{opacity:1;stroke-width:4.2}}.network-node-object{overflow:visible;transition:opacity .15s}.network-node-object.dimmed{opacity:.18}.network-node{width:100%;height:100%;padding:9px 11px;display:grid;grid-template-columns:36px minmax(0,1fr) auto;align-items:center;gap:9px;border:1px solid #1c2b3c;border-left:3px solid var(--green);border-radius:8px;background:#122131eb;color:#d4e4fa;text-align:left;cursor:pointer;box-shadow:0 4px 14px #00000059;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);transition:all .15s ease}.network-node:hover{border-color:var(--primary);box-shadow:0 0 0 2px #00f2fe4d,0 6px 20px #00000073;transform:translateY(-1px)}.network-node.selected{border-color:var(--primary);background:#162b42;box-shadow:0 0 0 2px #00f2fe,0 8px 24px #00f2fe40}.network-node>i{width:34px;height:34px;display:grid;place-items:center;border-radius:7px;background:#00f2fe1f;color:var(--primary);border:1px solid rgba(0,242,254,.2)}.network-node>span{min-width:0;display:grid;gap:1px}.network-node strong{font-size:11px;font-weight:600;color:#e2fdff;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.network-node code{color:#6ff6ff;font-family:JetBrains Mono,monospace;font-size:10px;font-weight:500}.network-node small{color:var(--soft);font-size:9px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.network-node.root_failure{border-left-color:var(--red);background:#93000a40;border-color:#ef444480}.network-node.root_failure>i{background:#ef444433;color:var(--red);border-color:#ef444466}.network-node.consequence{border-left-color:#f97316;background:#f973161f}.network-node.degraded{border-left-color:var(--amber)}.network-node.maintenance{border-left-color:var(--violet)}.network-state{width:8px;height:8px;border-radius:50%;background:var(--dim);display:inline-block}.network-state.up{background:var(--green);box-shadow:0 0 6px #4edea3b3}.network-state.down{background:var(--red);box-shadow:0 0 6px #ef4444cc;animation:pingDot 1.2s infinite ease-in-out}.network-state.degraded{background:var(--amber);box-shadow:0 0 5px #f59e0b99}.network-state.paused{background:var(--violet)}@keyframes pingDot{0%,to{transform:scale(1)}50%{transform:scale(1.3)}}.network-inspector{min-width:0;padding:18px;overflow-y:auto;border-left:1px solid var(--border);background:#081424;position:relative;display:flex;flex-direction:column;gap:14px;box-shadow:-10px 0 30px #00000080}.network-inspector-close{position:absolute;top:14px;right:14px;width:30px;height:30px;display:grid;place-items:center;border:1px solid var(--border);border-radius:6px;background:var(--card);color:var(--soft);cursor:pointer;transition:all .15s ease}.network-inspector-close:hover{border-color:var(--primary);color:var(--text);background:var(--card-high)}.network-inspector-title{padding-right:34px;display:flex;gap:12px;align-items:center}.network-inspector-title>i{width:46px;height:46px;display:grid;place-items:center;border-radius:10px;background:#00f2fe1f;color:var(--primary);border:1px solid rgba(0,242,254,.25);flex-shrink:0}.network-inspector-title>div{min-width:0;display:grid;gap:2px}.network-inspector-title h2{margin:0;overflow:hidden;text-overflow:ellipsis;font-size:16px;color:#e2fdff;font-weight:700}.network-inspector-title small{color:var(--primary);font-size:9px;letter-spacing:.12em;font-weight:700;text-transform:uppercase}.network-inspector-title code{color:#6ff6ff;font-family:JetBrains Mono,monospace;font-size:11px}.inspector-alarm-banner{padding:10px 12px;border-radius:7px;background:#93000a59;border:1px solid rgba(239,68,68,.5);display:flex;align-items:center;gap:10px}.inspector-alarm-banner svg{color:var(--red);flex-shrink:0}.inspector-alarm-banner b{color:var(--red);font-size:11px;font-weight:700;display:block}.inspector-alarm-banner small{color:#ffdad6;font-size:9px}.inspector-metrics-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px}.inspector-metric-card{padding:8px 10px;border-radius:6px;background:var(--card2);border:1px solid var(--border);display:grid;gap:3px}.inspector-metric-card span{color:var(--soft);font-size:9px;text-transform:uppercase;letter-spacing:.05em}.inspector-metric-card strong{color:var(--text);font-family:JetBrains Mono,monospace;font-size:12px}.network-inspector dl{margin:0;display:grid;border:1px solid var(--border);border-radius:7px;overflow:hidden;background:var(--card)}.network-inspector dl>div{padding:7px 10px;display:flex;justify-content:space-between;gap:8px;border-bottom:1px solid var(--border)}.network-inspector dl>div:last-child{border:0}.network-inspector dt{color:var(--soft);font-size:10px}.network-inspector dd{margin:0;text-align:right;font-size:10px;font-weight:600;font-family:JetBrains Mono,monospace;color:var(--text)}.network-inspector section{display:grid;gap:6px}.network-inspector section h3{margin:0;color:var(--soft);font-size:10px;text-transform:uppercase;letter-spacing:.08em;font-weight:700;display:flex;justify-content:space-between;align-items:center}.network-connection-row{padding:8px 10px;display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:8px;border:1px solid var(--border);border-left:3px solid #00f2fe;border-radius:6px;background:var(--input);font-size:10px}.network-connection-row.ptp{border-left-color:#f59e0b}.network-connection-row.ptmp{border-left-color:#8b5cf6}.network-connection-row.vpn{border-left-color:#4edea3}.network-connection-row>span{min-width:0;display:grid}.network-connection-row b{color:var(--text);font-size:10px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.network-connection-row code{color:var(--soft);font-family:JetBrains Mono,monospace;font-size:9px}.network-connection-row>small{color:var(--soft);font-size:9px}.inspector-actions{margin-top:auto;display:grid;gap:7px}.network-canvas-hud{position:absolute;bottom:14px;left:14px;z-index:20;display:flex;flex-direction:column;gap:8px;pointer-events:none}.radar-hud-card{padding:10px 12px;border-radius:8px;background:#010f1fe0;border:1px solid var(--border);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);pointer-events:auto;box-shadow:0 6px 18px #00000080}.radar-hud-coords{display:flex;align-items:center;gap:8px;font-family:JetBrains Mono,monospace;font-size:9px;color:var(--soft)}.radar-hud-coords b{color:var(--primary-fixed)}.network-legend{min-height:44px;padding:8px 16px;display:flex;align-items:center;gap:16px;flex-wrap:wrap;border-top:1px solid var(--border);background:var(--card2);font-size:10px;color:var(--soft)}.network-legend span{display:flex;align-items:center;gap:6px}.network-legend i.line{width:22px;height:3px;border-radius:2px;background:#00f2fe}.network-legend i.line.ptp{background:#f59e0b}.network-legend i.line.ptmp{height:0;border-top:3px dashed #8b5cf6;background:transparent}.network-legend i.line.vpn{height:0;border-top:3px dotted #4edea3;background:transparent}.network-legend i.status{width:7px;height:7px;border-radius:50%;background:var(--green);box-shadow:0 0 5px #4edea399}.network-legend i.status.degraded{background:var(--amber);box-shadow:0 0 5px #f59e0b99}.network-legend i.status.down{background:var(--red);box-shadow:0 0 5px #ef444499}.network-legend>small{margin-left:auto;color:var(--dim);font-size:9px}@media(max-width:900px){.network-toolbar{align-items:stretch;flex-wrap:wrap}.network-search{flex:1}.network-view-actions{margin-left:0}.network-workspace,.network-workspace.has-inspector{height:620px;grid-template-columns:1fr}.network-workspace.has-inspector{grid-template-rows:minmax(320px,1fr) 300px}.network-inspector{border-top:1px solid var(--border);border-left:0}.network-legend>small{width:100%;margin-left:0}}@media(max-width:600px){.network-edge-filters{order:3;width:100%}.network-workspace{height:calc(100dvh - 300px);min-height:520px}.network-workspace.has-inspector{height:760px}.network-summary{display:none}}.map-side-panel{min-height:0;overflow:hidden;padding:0;display:flex;flex-direction:column}.map-side-panel>header{position:relative;z-index:2;flex:0 0 auto;margin:0;padding:18px;background:var(--card);border-bottom:1px solid var(--border);box-shadow:0 5px 14px #0000001f}.map-side-panel-scroll{min-height:0;flex:1;overflow:auto;padding:18px}.map-associated-device{transition:border-color .15s ease,background .15s ease,transform .15s ease}.map-associated-device:hover,.map-associated-device:focus-visible{border-color:var(--primary);background:#5596ff1a;transform:translate(2px)}.device-table .table-head,.device-table .table-row{grid-template-columns:minmax(360px,1.8fr) minmax(92px,.62fr) 105px 90px minmax(82px,.55fr) 98px 82px 158px}.device-table .row-actions{min-width:158px;justify-content:flex-end}.device-row-clickable{cursor:pointer;transition:background .15s ease}.device-row-clickable:hover{background:#5596ff0b}.device-row-clickable:hover .device-name{color:var(--primary)}.map-toolset .map-delete-link{color:var(--red);border-color:color-mix(in srgb,var(--red) 48%,var(--border));background:color-mix(in srgb,var(--red) 10%,transparent)}.map-toolset .map-delete-link:hover{color:#fff;background:var(--red)}.leaflet-tooltip.distance-tooltip.selected{border-color:var(--amber);color:var(--amber)}.leaflet-tooltip.distance-tooltip.problem{border-color:var(--red);color:var(--red);font-weight:800}.map-link-endpoints{display:flex;align-items:flex-end;gap:7px;padding:4px 8px;border:1px solid var(--border);border-radius:7px;background:var(--panel)}.map-link-endpoints label{display:grid;gap:2px;color:var(--soft);font-size:9px;text-transform:uppercase;letter-spacing:.05em;max-width:200px}.station-endpoint-name{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-weight:700;color:var(--text)}.map-link-endpoints select{min-width:120px;max-width:180px;padding:4px 6px;border:1px solid var(--border);border-radius:5px;background:var(--input);color:var(--text);font-size:11px}.map-link-endpoints>span{padding-bottom:5px;color:var(--primary);font-weight:800}@media(max-width:900px){.map-link-endpoints{width:100%;overflow-x:auto}.map-link-endpoints label{min-width:140px}.map-link-endpoints select{width:100%}}.rtsp-check-config{display:grid;grid-template-columns:2fr 1fr 1fr 1fr;gap:8px;align-items:end;margin:8px 0 14px;padding:10px;border:1px solid var(--border);border-radius:8px;background:var(--panel)}.rtsp-check-config>small{grid-column:1/-1;color:var(--soft)}.dependency-port-editor{margin:14px 0;padding:12px;border:1px solid var(--border);border-radius:8px;background:var(--panel)}.dependency-port-editor>header{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px}.dependency-port-editor h3{margin:2px 0}.diagnostic-explanation{display:grid;gap:6px;margin-top:5px}.diagnostic-explanation p{display:grid;gap:2px;margin:0;color:var(--text)}.diagnostic-explanation p strong{color:var(--amber);font-size:10px;text-transform:uppercase;letter-spacing:.06em}.diagnostic-explanation details{padding:5px 7px;border:1px solid var(--border);border-radius:6px;background:#0000001f}.diagnostic-explanation summary{cursor:pointer;color:var(--primary);font-size:11px;font-weight:700}.diagnostic-explanation ul,.diagnostic-explanation ol{margin:6px 0 2px;padding-left:18px;color:var(--soft);font-size:11px}.event-diagnosis{margin-top:6px;padding:6px 8px;border:1px solid var(--border);border-radius:6px;background:#0000001f}.event-diagnosis summary{cursor:pointer;color:var(--primary);font-size:10px;font-weight:700}.event-diagnosis p{margin:7px 0;color:var(--text)}.event-diagnosis ul,.event-diagnosis ol{margin:5px 0;padding-left:18px;color:var(--soft);font-size:10px}@media(max-width:900px){.rtsp-check-config{grid-template-columns:1fr 1fr}}@media(max-width:600px){.rtsp-check-config{grid-template-columns:1fr}}.plant-overview{margin-bottom:16px;border:1px solid var(--border);border-radius:10px;background:var(--card);overflow:hidden}.plant-overview-head{min-height:62px;padding:11px 15px;display:flex;align-items:center;justify-content:space-between;gap:16px;border-bottom:1px solid var(--border)}.plant-overview-head h2{margin:3px 0 0;font-size:16px}.plant-period{display:flex;align-items:flex-end;gap:7px}.plant-period label{display:grid;gap:3px;color:var(--soft);font-size:9px;text-transform:uppercase}.plant-period input{min-height:31px;padding:4px 7px;font-size:11px}.plant-overview>.form-alert{margin:10px 15px}.plant-overview-body{padding:14px}.plant-kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}.plant-kpi{min-width:0;padding:10px;display:grid;grid-template-columns:auto minmax(0,1fr);gap:2px 8px;border:1px solid var(--border);border-left:3px solid currentColor;border-radius:7px;background:var(--input)}.plant-kpi>i{grid-row:1/4;width:34px;height:34px;display:grid;place-items:center;border-radius:7px;background:color-mix(in srgb,currentColor 13%,transparent);font-style:normal}.plant-kpi>i svg{width:18px}.plant-kpi span,.plant-kpi small{overflow:hidden;color:var(--soft);font-size:9px;text-overflow:ellipsis;white-space:nowrap}.plant-kpi strong{overflow:hidden;color:currentColor;font-size:16px;text-overflow:ellipsis}.plant-overview-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-top:10px}.overview-card{min-width:0;padding:12px;border:1px solid var(--border);border-radius:8px;background:var(--card2)}.overview-card>header{min-height:30px;display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:8px}.overview-card>header h3{margin:0;font-size:12px}.overview-card>header>span{min-width:22px;height:22px;display:grid;place-items:center;border-radius:11px;background:#5596ff1f;color:var(--primary);font-size:10px}.overview-card>header select{min-height:30px;max-width:220px;padding:4px 7px;font-size:10px}.overview-events{grid-column:1/-1}.station-stack{height:10px;display:flex;overflow:hidden;border-radius:5px;background:var(--border)}.station-stack i{height:100%;background:currentColor}.station-legend{display:flex;gap:12px;flex-wrap:wrap;margin:7px 0}.station-legend span{display:flex;align-items:center;gap:4px;color:var(--soft);font-size:9px}.station-legend span>i{width:7px;height:7px;border-radius:50%;background:currentColor}.station-summary-list{display:grid;max-height:190px;overflow:auto}.station-summary-list>div{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:7px;padding:6px 2px;border-top:1px solid var(--border)}.station-summary-list>div>i{width:7px;height:7px;border-radius:50%;background:currentColor}.station-summary-list span{min-width:0;display:grid}.station-summary-list b{font-size:10px}.station-summary-list small{overflow:hidden;color:var(--soft);font-size:9px;text-overflow:ellipsis;white-space:nowrap}.station-summary-list strong{font-size:10px}.cause-ranking{display:grid;gap:0;margin:0;padding:0;list-style:none}.cause-ranking li{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:7px 2px;border-top:1px solid var(--border);color:var(--soft);font-size:10px}.cause-ranking li b{color:var(--amber)}.event-count-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:5px;margin-top:9px}.event-count-grid>div{min-width:0;padding:6px;display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:4px;border:1px solid var(--border);border-radius:6px;background:var(--input)}.event-count-grid i{display:grid;color:var(--primary)}.event-count-grid svg{width:13px}.event-count-grid span{overflow:hidden;color:var(--soft);font-size:8px;text-overflow:ellipsis;white-space:nowrap}.event-count-grid b{font-size:11px}.plant-signal-chart>div{display:flex;justify-content:space-between;gap:8px;font-size:10px}.plant-signal-chart>div strong{color:var(--primary)}.plant-signal-chart svg{width:100%;height:125px;margin-top:5px;overflow:visible}.plant-signal-chart line{stroke:var(--border);stroke-width:.4;stroke-dasharray:2 2}.plant-signal-chart polyline{fill:none;stroke:var(--primary);stroke-width:1.5;vector-effect:non-scaling-stroke}.plant-signal-chart footer{display:flex;justify-content:space-between;color:var(--dim);font:8px JetBrains Mono,monospace}.plant-event-list{display:grid;max-height:230px;overflow:auto}.plant-event-list article{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:8px;padding:7px 2px;border-top:1px solid var(--border)}.plant-event-list article>i{width:7px;height:7px;border-radius:50%;background:var(--primary)}.plant-event-list article.warning>i,.plant-event-list article.preventive>i{background:var(--amber)}.plant-event-list article.critical>i{background:var(--red)}.plant-event-list article>div{min-width:0;display:grid;gap:2px}.plant-event-list b{font-size:10px}.plant-event-list span{overflow:hidden;color:var(--soft);font-size:9px;text-overflow:ellipsis;white-space:nowrap}.plant-event-list time{color:var(--dim);font-size:8px;white-space:nowrap}@media(max-width:1100px){.plant-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}.plant-period{flex-wrap:wrap;justify-content:flex-end}}@media(max-width:767px){.plant-overview-head{align-items:flex-start;flex-direction:column}.plant-period{width:100%;justify-content:flex-start}.plant-period label{flex:1}.plant-period input{width:100%}.plant-kpis,.plant-overview-grid{grid-template-columns:1fr}.overview-events{grid-column:auto}.event-count-grid{grid-template-columns:1fr 1fr}.plant-event-list article{grid-template-columns:auto minmax(0,1fr)}.plant-event-list time{grid-column:2}.plant-signal-chart svg{height:90px}}.station-health{margin:14px 0;padding:12px;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:7px;border:1px solid var(--border);border-left:4px solid var(--green);border-radius:8px;background:var(--input)}.station-health.degraded{border-left-color:var(--amber)}.station-health.offline{border-left-color:var(--red)}.station-health>div{display:grid}.station-health span,.station-health p{color:var(--soft);font-size:11px}.station-health>strong{font-size:20px}.station-health progress{grid-column:1/-1;width:100%;accent-color:var(--green)}.station-health.degraded progress{accent-color:var(--amber)}.station-health.offline progress{accent-color:var(--red)}.station-health p{grid-column:1/-1;margin:0}.maintenance-toggle{margin-bottom:10px}.maintenance-toggle.active,.maintenance-device.active{color:var(--amber);border-color:var(--amber);background:color-mix(in srgb,var(--amber) 12%,transparent)}.map-device-row{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:6px}.map-device-row.root_failure .map-associated-device{border-color:var(--red);box-shadow:inset 4px 0 var(--red)}.map-device-row.consequence .map-associated-device{border-color:var(--amber);box-shadow:inset 4px 0 var(--amber);opacity:.86}.map-device-row.maintenance .map-associated-device{border-style:dashed;opacity:.72}.topology-cause,.topology-consequence,.topology-maintenance{margin-top:2px!important;font-weight:700}.topology-cause{color:var(--red)!important}.topology-consequence{color:var(--amber)!important}.topology-maintenance{color:var(--primary)!important}.stack-form select[multiple]{min-height:96px;padding:5px}.stack-form select[multiple] option{padding:6px}@media(max-width:1250px){.device-table .table-head,.device-table .table-row{grid-template-columns:minmax(320px,1.6fr) 100px 90px 76px 82px 90px 158px}}@media(min-width:768px)and (max-width:1023px){.device-table .table-row{grid-template-columns:minmax(250px,1fr) 80px 80px 90px 158px}.device-ip-timeline{flex-wrap:wrap}.mini-timeline{flex-basis:250px}}@media(max-width:767px){.map-side-panel{height:calc(100vh - 170px);min-height:calc(100vh - 170px)}.device-table .table-row{grid-template-columns:minmax(0,1fr) auto auto}.device-table .row-actions{min-width:auto;gap:3px}.device-table .row-actions .icon-button{width:32px;height:32px}}.design-page{display:grid;gap:12px}.design-separation{padding:6px 10px;border:1px solid color-mix(in srgb,var(--green) 40%,var(--border));border-radius:16px;background:color-mix(in srgb,var(--green) 9%,transparent);color:var(--green);font-size:10px;font-weight:700}.design-project-bar{padding:10px 12px;display:flex;align-items:flex-end;justify-content:space-between;gap:12px;border:1px solid var(--border);border-radius:9px;background:var(--card)}.design-project-bar label{min-width:240px;display:grid;gap:4px}.design-project-bar label>span{color:var(--soft);font-size:9px;text-transform:uppercase}.design-project-bar form{display:flex;gap:7px}.design-project-bar input{min-width:230px}.design-progress{padding:9px 12px;display:grid;grid-template-columns:minmax(120px,260px) auto;align-items:center;gap:12px;border:1px solid color-mix(in srgb,var(--primary) 40%,var(--border));border-radius:8px;background:color-mix(in srgb,var(--primary) 8%,var(--card));color:var(--primary);font-size:10px;font-weight:700}.design-progress progress{width:100%;accent-color:var(--primary)}.design-layout{min-height:610px;display:grid;grid-template-columns:340px minmax(0,1fr);gap:12px}.design-sidebar{min-height:0;display:grid;align-content:start;gap:10px}.design-sidebar>section,.design-workspace,.design-results,.design-promote{border:1px solid var(--border);border-radius:10px;background:var(--card)}.design-sidebar>section{padding:13px;display:grid;gap:9px}.design-sidebar>section>header{display:flex;align-items:center;justify-content:space-between}.design-sidebar h2{margin:0;font-size:12px}.design-sidebar textarea{min-height:64px}.design-parameter-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px}.design-coordinate-grid{display:grid;grid-template-columns:1fr 1fr;gap:7px}.design-coordinate-grid>.field:last-child{grid-column:1/-1}.design-workspace{min-width:0;overflow:hidden;display:flex;flex-direction:column}.design-map-toolbar{min-height:52px;padding:8px;display:flex;align-items:center;gap:7px;border-bottom:1px solid var(--border)}.design-map-toolbar>span{margin-left:auto;color:var(--soft);font-size:10px;white-space:nowrap}.design-map{min-height:500px;flex:1;background:var(--input)}.design-map .leaflet-tooltip{font-size:10px}.design-actions{padding:9px;display:flex;justify-content:flex-end;gap:7px;border-top:1px solid var(--border)}.design-results{overflow:hidden}.design-results>header{padding:13px 15px;display:flex;align-items:center;justify-content:space-between;gap:12px;border-bottom:1px solid var(--border)}.design-results>header h2{margin:3px 0 0;font-size:15px}.design-results>header>div:last-child{display:flex;gap:6px}.design-route-table{overflow-x:auto}.design-route-table .table-head,.design-route-table article{min-width:760px;display:grid;grid-template-columns:minmax(220px,1.6fr) .45fr .65fr 1fr 1fr;align-items:center;gap:8px;padding:8px 13px;border-bottom:1px solid var(--border)}.design-route-table .table-head{color:var(--dim);background:var(--input);font-size:8px;text-transform:uppercase}.design-route-table article{font-size:10px}.design-route-table article>span{min-width:0;display:grid;grid-template-columns:auto minmax(0,1fr);gap:1px 6px}.design-route-table article>span svg{grid-row:1/3;color:var(--primary)}.design-route-table article small{color:var(--soft)}.design-route-table code{color:var(--ip-text)}.vendor-comparison{padding:12px;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:9px}.vendor-comparison>article{min-width:0;border:1px solid var(--border);border-radius:8px;background:var(--card2);overflow:hidden}.vendor-comparison article>header{padding:9px 10px;display:flex;justify-content:space-between;border-bottom:1px solid var(--border)}.vendor-comparison h3{margin:0;font-size:12px}.vendor-comparison header b{color:var(--green);font-size:11px}.vendor-comparison article>div{padding:7px 9px;display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr) auto;align-items:center;gap:6px;border-bottom:1px solid var(--border);font-size:9px}.vendor-comparison article>div>span{display:grid}.vendor-comparison small{color:var(--soft)}.vendor-comparison article>div>b{overflow:hidden;text-overflow:ellipsis}.vendor-comparison code{color:var(--ip-text);white-space:nowrap}.design-promote{padding:15px}.design-promote>header{display:flex;align-items:center;gap:10px}.design-promote>header>svg{color:var(--green)}.design-promote h2{margin:0;font-size:14px}.design-promote p{margin:3px 0;color:var(--soft);font-size:10px}.design-promote form{margin-top:12px;display:grid;grid-template-columns:repeat(4,minmax(130px,1fr)) auto;align-items:end;gap:8px}.design-promote form>.button{height:40px}.design-promoted{padding:12px;display:flex;align-items:center;gap:8px;border:1px solid color-mix(in srgb,var(--green) 45%,var(--border));border-radius:8px;background:color-mix(in srgb,var(--green) 9%,var(--card));color:var(--green);font-weight:700}@media(max-width:1100px){.design-layout{grid-template-columns:280px minmax(0,1fr)}.design-parameter-grid{grid-template-columns:1fr}.design-promote form{grid-template-columns:repeat(2,minmax(0,1fr))}.design-promote form>.button{grid-column:1/-1}.vendor-comparison{grid-template-columns:1fr}}@media(max-width:767px){.design-project-bar{align-items:stretch;flex-direction:column}.design-project-bar label,.design-project-bar input{min-width:0;width:100%}.design-project-bar form{width:100%}.design-layout{display:flex;flex-direction:column}.design-sidebar{order:2}.design-workspace{order:1;min-height:520px}.design-map-toolbar{align-items:stretch;flex-wrap:wrap}.design-map-toolbar .button{flex:1}.design-map-toolbar>span{width:100%;margin:0;text-align:right}.design-map{min-height:420px}.design-actions{flex-wrap:wrap}.design-actions .button{flex:1}.design-results>header{align-items:flex-start;flex-direction:column}.design-results>header>div:last-child{width:100%;overflow-x:auto}.design-promote form{grid-template-columns:1fr}.design-promote form>.button{grid-column:auto}.design-progress{grid-template-columns:1fr}.vendor-comparison{padding:8px}}.design-layout{transition:grid-template-columns .2s ease}.design-layout.details-collapsed{grid-template-columns:52px minmax(0,1fr)}.design-section-toggle{width:100%;min-height:26px;padding:0;display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:7px;border:0;background:transparent;color:var(--text);text-align:left;cursor:pointer}.design-section-toggle>svg:first-child{color:var(--primary)}.design-section-toggle>svg:last-child{color:var(--soft)}.design-section-content{display:grid;gap:9px}.design-collapsible.collapsed{padding:10px}.design-layout.details-collapsed .design-sidebar{width:52px}.design-layout.details-collapsed .design-collapsible{padding:9px}.design-layout.details-collapsed .design-section-toggle{display:flex;justify-content:center}.design-layout.details-collapsed .design-section-toggle h2,.design-layout.details-collapsed .design-section-toggle>svg:last-child{display:none}.design-map-stage{position:relative;height:calc(100dvh - 135px);min-height:680px;flex:0 0 calc(100dvh - 135px)}.design-map{width:100%;height:100%;min-height:680px}.design-node-label{padding:4px 7px!important;border:1px solid rgba(15,23,42,.32)!important;border-radius:6px!important;background:#fffffff0!important;box-shadow:0 2px 8px #0f172a47!important;color:#172033!important;font-size:10px!important;white-space:nowrap}.design-node-label b,.design-node-label small{display:block}.design-node-label small{margin-top:2px;color:#475569;font-size:8px}.design-node-label:before{border-top-color:#fffffff0!important}.design-map-legend{position:absolute;z-index:500;top:10px;right:10px;max-width:min(280px,calc(100% - 20px));padding:8px 10px;display:grid;gap:5px;border:1px solid rgba(255,255,255,.3);border-radius:8px;background:#080e18e6;box-shadow:0 5px 16px #0000004d;color:#e2eaf5;font-size:9px;pointer-events:none}.design-map-legend span{display:flex;align-items:center;gap:6px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.design-map-legend i{width:11px;height:4px;flex:0 0 auto;border-radius:3px}.design-notice{display:flex;align-items:center;justify-content:space-between;gap:12px}.design-notice button{width:26px;height:26px;display:grid;place-items:center;flex:0 0 auto;padding:0;border:0;border-radius:5px;background:transparent;color:currentColor;cursor:pointer}.design-new-project{width:min(680px,100%);display:grid;gap:13px}.design-new-project>header{display:flex;align-items:flex-start;justify-content:space-between}.design-new-project h2{margin:4px 0}.design-new-project textarea{min-height:76px}.coverage-state{display:grid!important;grid-template-columns:auto 1fr!important;align-items:center;gap:2px 5px!important;font-weight:700}.coverage-state small{grid-column:2}.coverage-state.ok{color:var(--green)}.coverage-state.out{color:var(--red)}.design-route-table.editable .table-head,.design-route-table.editable article{min-width:980px;grid-template-columns:minmax(210px,1.35fr) minmax(150px,.9fr) 105px .65fr 1fr 1fr}.design-route-table.editable select{min-width:0;width:100%;min-height:32px;padding:5px 7px;font-size:9px}.breadcrumbs.design-breadcrumbs{overflow:visible}.breadcrumbs.design-breadcrumbs>#design-project-controls{min-width:0;flex:1}.design-project-inline{min-width:0;flex-wrap:wrap}.design-project-inline select{min-width:220px}.design-dropdown-trigger.active{color:var(--primary);border-color:color-mix(in srgb,var(--primary) 48%,var(--border));background:color-mix(in srgb,var(--primary) 10%,var(--card))}.design-dropdown-trigger>svg:last-child{transition:transform .16s ease}.design-dropdown-trigger.active>svg:last-child{transform:rotate(180deg)}.design-delete-action{width:34px;height:34px;color:var(--red)}.design-archive-action{color:var(--amber)!important}.design-layout,.design-layout.details-collapsed{position:relative;display:block;min-height:610px}.design-layout .design-sidebar,.design-layout.details-collapsed .design-sidebar{position:absolute;z-index:850;top:62px;right:12px;left:auto;width:min(390px,calc(100% - 24px));display:grid;gap:8px;pointer-events:none}.design-layout .design-sidebar>section{max-height:calc(100dvh - 190px);overflow:auto;pointer-events:auto;border-color:color-mix(in srgb,var(--primary) 35%,var(--border));box-shadow:0 18px 42px #0000006b}.design-layout .design-sidebar>.collapsed{display:none}.design-layout .design-workspace{width:100%}.design-layout.details-collapsed .design-section-toggle{display:grid;justify-content:normal}.design-layout.details-collapsed .design-section-toggle h2,.design-layout.details-collapsed .design-section-toggle>svg:last-child{display:block}.design-promoted.archived{color:var(--amber);border-color:color-mix(in srgb,var(--amber) 45%,var(--border));background:color-mix(in srgb,var(--amber) 9%,var(--card))}.design-map-toolbar{flex-wrap:wrap}.design-inspector{padding:0!important;overflow:hidden!important}.design-inspector-header{position:sticky;z-index:2;top:0;padding:12px 13px!important;background:var(--card);border-bottom:1px solid var(--border)}.design-inspector-header>div{min-width:0;display:flex;align-items:center;gap:9px}.design-inspector-header>div>span:last-child{min-width:0;display:grid;gap:2px}.design-inspector-header small{color:var(--soft);font-size:8px;letter-spacing:.08em}.design-inspector-header h2{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.design-inspector-icon{width:32px;height:32px;display:grid;place-items:center;flex:0 0 auto;border-radius:8px;background:color-mix(in srgb,var(--primary) 15%,transparent);color:var(--primary)}.design-inspector-icon.route{background:color-mix(in srgb,var(--amber) 15%,transparent);color:var(--amber)}.design-inspector-summary{padding:8px 13px;display:flex;flex-wrap:wrap;gap:6px;border-bottom:1px solid var(--border);background:var(--input)}.design-inspector-summary span,.design-inspector-summary strong{padding:4px 6px;display:flex;align-items:center;gap:4px;border:1px solid var(--border);border-radius:12px;color:var(--soft);font-size:8px}.design-inspector-summary strong{color:var(--green);border-color:color-mix(in srgb,var(--green) 38%,var(--border))}.design-inspector-body{padding:13px;display:grid;gap:11px}.design-primary-toggle{padding:10px;display:flex;align-items:flex-start;gap:8px;border:1px solid var(--border);border-radius:8px;background:var(--input);cursor:pointer}.design-primary-toggle>span{display:grid;grid-template-columns:auto 1fr;gap:2px 7px}.design-primary-toggle svg{grid-row:1/3;color:var(--primary)}.design-primary-toggle small{color:var(--soft);font-size:9px}.planned-device-section{display:grid;gap:7px;padding-top:4px;border-top:1px solid var(--border)}.planned-device-section>header{display:flex;align-items:center;justify-content:space-between;gap:8px}.planned-device-section>header>div{display:flex;align-items:center;gap:7px}.planned-device-section>header>div>svg{color:var(--primary)}.planned-device-section>header span{display:grid}.planned-device-section>header small{color:var(--soft);font-size:8px}.planned-device-empty{padding:12px;display:flex;align-items:center;justify-content:center;gap:8px;border:1px dashed var(--border);border-radius:8px;color:var(--soft);font-size:9px;text-align:center}.planned-device-card{display:grid;grid-template-columns:auto minmax(0,1fr) 48px auto;align-items:center;gap:6px;padding:7px;border:1px solid var(--border);border-radius:8px;background:var(--input)}.planned-device-icon{width:32px;height:32px;display:grid;place-items:center;border-radius:7px;background:color-mix(in srgb,var(--primary) 12%,transparent);color:var(--primary)}.planned-device-card>div{min-width:0;display:grid;gap:4px}.planned-device-card>div>input{min-height:30px;padding:5px 7px;font-size:9px}.planned-device-card>label{display:grid;gap:2px;color:var(--soft);font-size:8px}.planned-device-card>label input{width:48px;min-height:30px;padding:4px}.planned-device-card .device-type-trigger{min-height:30px;padding:4px 6px;font-size:8px}.planned-device-presets{display:flex;flex-wrap:wrap;gap:5px}.planned-device-presets button{padding:5px 7px;display:flex;align-items:center;gap:4px;border:1px solid var(--border);border-radius:6px;background:transparent;color:var(--soft);font-size:8px;cursor:pointer}.planned-device-presets button:hover{color:var(--primary);border-color:var(--primary)}.design-inspector-delete{width:100%;justify-content:center}.design-dependency-help{margin:0;padding:9px;border-left:3px solid var(--primary);background:color-mix(in srgb,var(--primary) 8%,transparent);color:var(--soft);font-size:9px;line-height:1.5}.design-route-direction{display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);align-items:end;gap:6px}.design-route-direction>svg{margin-bottom:11px;color:var(--primary)}.design-swap-route{width:100%;justify-content:center}.design-endpoint-pair{display:grid;grid-template-columns:1fr 1fr;gap:7px}.design-endpoint-pair article{padding:9px;display:grid;gap:3px;border:1px solid var(--border);border-radius:7px;background:var(--input)}.design-endpoint-pair article small{color:var(--primary);font-size:7px;letter-spacing:.08em}.design-endpoint-pair article span{color:var(--soft);font-size:8px}.design-route-metrics{display:grid;grid-template-columns:repeat(3,1fr);gap:6px}.design-route-metrics span{padding:7px;display:grid;gap:2px;border:1px solid var(--border);border-radius:7px;background:var(--input)}.design-route-metrics small{color:var(--soft);font-size:7px;text-transform:uppercase}.design-route-metrics b{font-size:9px}.design-route-metrics .ok{color:var(--green)}.design-route-metrics .out{color:var(--red)}.design-recalculate-hint{margin:0;color:var(--amber);font-size:8px;text-align:center}.design-import-choice{padding:12px;display:flex;align-items:center;gap:10px;border:1px dashed color-mix(in srgb,var(--primary) 55%,var(--border));border-radius:8px;background:color-mix(in srgb,var(--primary) 7%,transparent);cursor:pointer}.design-import-choice>svg{color:var(--primary)}.design-import-choice>span{display:grid}.design-import-choice small{color:var(--soft)}.design-import-choice input{margin-left:auto;max-width:250px;font-size:9px}.plant-form-modal{width:min(760px,100%);max-height:calc(100dvh - 40px);overflow:auto}.plant-form-modal>header{display:flex;align-items:flex-start;justify-content:space-between;margin-bottom:12px}.plant-form-modal h2{margin:3px 0}.plant-form-modal .form-grid{margin:0}@media(max-width:767px){.breadcrumbs.design-breadcrumbs{align-items:stretch;flex-direction:column}.design-project-inline{width:100%}.design-project-inline label{flex:1}.design-project-inline select{width:100%;min-width:0}.design-layout.details-collapsed{display:flex}.design-layout.details-collapsed .design-sidebar{width:auto}.design-layout.details-collapsed .design-section-toggle{display:grid;justify-content:normal}.design-layout.details-collapsed .design-section-toggle h2,.design-layout.details-collapsed .design-section-toggle>svg:last-child{display:block}.design-map-stage{height:calc(100dvh - 245px);min-height:480px;flex-basis:calc(100dvh - 245px)}.design-map{height:100%;min-height:480px}.design-map-legend{top:auto;right:8px;bottom:24px;max-width:calc(100% - 16px)}}@media(max-width:767px){.design-layout,.design-layout.details-collapsed{display:block}.design-layout .design-sidebar,.design-layout.details-collapsed .design-sidebar{top:112px;right:8px;width:calc(100% - 16px)}.design-project-inline{justify-content:flex-start}.design-project-inline .design-dropdown-trigger{flex:1 1 auto}}.design-layout,.design-layout.details-collapsed{position:relative;display:grid;grid-template-columns:320px minmax(0,1fr);gap:12px;height:calc(100dvh - 135px);min-height:610px}.design-layout .design-sidebar,.design-layout.details-collapsed .design-sidebar{position:relative;z-index:1;inset:auto;width:320px;height:100%;min-height:0;overflow-y:auto;overscroll-behavior:contain;scrollbar-gutter:stable;display:grid;grid-auto-rows:max-content;align-content:start;gap:8px;pointer-events:auto}.design-layout .design-sidebar>section,.design-layout.details-collapsed .design-sidebar>section{display:grid;max-height:none;overflow:visible;pointer-events:auto;border-color:var(--border);box-shadow:none}.design-layout .design-sidebar>.design-collapsible.collapsed,.design-layout.details-collapsed .design-sidebar>.design-collapsible.collapsed{display:grid}.design-layout .design-workspace,.design-layout.details-collapsed .design-workspace{width:100%;height:100%;min-height:0}.design-map-stage{height:auto;min-height:0;flex:1 1 auto}.design-map{height:100%;min-height:0}.design-basemap-switch{margin-left:auto;padding:3px;display:flex;gap:2px;border:1px solid var(--border);border-radius:7px;background:var(--input)}.design-basemap-switch button{min-height:29px;padding:4px 8px;display:flex;align-items:center;gap:5px;border:0;border-radius:5px;background:transparent;color:var(--soft);font-size:9px;font-weight:700;cursor:pointer}.design-basemap-switch button.active{background:var(--action);color:#fff}.design-basemap-switch button.fit-view{margin-left:3px;border-left:1px solid var(--border);border-radius:0 5px 5px 0;color:var(--text)}.design-basemap-switch button:disabled{opacity:.45;cursor:not-allowed}.design-map-toolbar>span{margin-left:0}.design-primary-assigned{padding:10px;display:flex;align-items:flex-start;gap:8px;border:1px solid color-mix(in srgb,var(--green) 38%,var(--border));border-radius:8px;background:color-mix(in srgb,var(--green) 8%,var(--input));color:var(--green)}.design-primary-assigned>span{display:grid;gap:2px}.design-primary-assigned small{color:var(--soft);font-size:9px}.planned-device-angle{position:relative;display:grid;grid-template-columns:minmax(0,1fr) 54px auto;align-items:center;gap:5px;color:var(--soft);font-size:8px}.planned-device-angle input{width:54px;min-height:28px;padding:4px 6px}.planned-device-angle>span{color:var(--text);font-size:10px}.ap-distribution{display:grid;gap:2px}.ap-distribution small{color:var(--soft)}.ap-device-name{min-width:0;display:flex;align-items:center;gap:5px;color:var(--primary);font-size:10px}.ap-device-name svg{flex:0 0 auto}.ap-device-name{overflow:hidden;text-overflow:ellipsis}.design-route-table.editable .table-head,.design-route-table.editable article{min-width:1120px;grid-template-columns:minmax(200px,1.3fr) minmax(145px,.85fr) minmax(120px,.65fr) 105px .6fr .9fr .9fr}@media(max-width:767px){.design-layout,.design-layout.details-collapsed{height:auto;min-height:0;display:flex;flex-direction:column;gap:10px}.design-layout .design-sidebar,.design-layout.details-collapsed .design-sidebar{position:relative;inset:auto;order:2;width:100%;height:auto;max-height:none;overflow:visible}.design-layout .design-workspace,.design-layout.details-collapsed .design-workspace{order:1;height:auto;min-height:520px}.design-map-stage{height:calc(100dvh - 300px);min-height:420px;flex-basis:auto}.design-map{min-height:420px}.design-basemap-switch{margin-left:0}.design-map-toolbar>span{width:auto;margin-left:auto}}#main-content.design-main{max-width:none;margin:0;padding:12px}.design-main .design-page{gap:8px}.design-main .design-layout,.design-main .design-layout.details-collapsed{position:relative;display:block;height:calc(100dvh - 108px);min-height:580px}.design-main .design-layout .design-workspace,.design-main .design-layout.details-collapsed .design-workspace{width:100%;height:100%;min-height:0}.design-main .design-map-stage{height:auto;min-height:0;flex:1 1 auto}.design-main .design-map{height:100%;min-height:0}.design-main .design-sidebar,.design-main .design-layout.details-collapsed .design-sidebar{position:absolute;z-index:850;right:8px;left:auto;width:min(390px,calc(100% - 16px));height:auto;overflow:visible;display:grid;gap:8px;pointer-events:none}.design-main .design-sidebar.menu-open{top:0}.design-main .design-sidebar.inspector-open{top:60px;width:auto;max-width:calc(100% - 16px)}.design-main .design-sidebar>section,.design-main .design-layout.details-collapsed .design-sidebar>section{display:grid;max-height:calc(100dvh - 180px);overflow:auto;pointer-events:auto;border-color:color-mix(in srgb,var(--primary) 35%,var(--border));box-shadow:0 18px 42px #0000006b}.design-main .design-sidebar>.collapsed,.design-main .design-layout.details-collapsed .design-sidebar>.collapsed{display:none}.design-main .design-inspector{overflow-y:auto!important;overflow-x:hidden!important}.design-main .planned-device-card{grid-template-columns:40px minmax(0,1fr) 64px 38px;gap:8px;padding:9px}.design-main .planned-device-icon{width:36px;height:36px}.design-main .planned-device-card>div>input,.design-main .planned-device-card .device-type-trigger{min-height:34px;font-size:10px}.design-main .planned-device-card>label input{width:64px;min-height:34px}.planned-cpe-configuration{grid-column:1/-1!important;display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px;padding:9px;border-top:1px solid var(--border);background:color-mix(in srgb,var(--primary) 4%,transparent)}.planned-cpe-configuration .field{font-size:8px}.planned-cpe-configuration input,.planned-cpe-configuration select{min-height:32px!important;font-size:9px}.design-sector-settings,.planned-sector-settings{grid-column:1/-1;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:7px}.planned-sector-settings{padding-top:7px;border-top:1px solid var(--border)}.design-sector-settings>.field,.planned-sector-settings>.field,.design-parameter-grid>.field,.design-coordinate-grid>.field{align-content:start}.design-sector-settings>.field>span:first-child,.planned-sector-settings>.field>span:first-child,.design-parameter-grid>.field>span:first-child,.design-coordinate-grid>.field>span:first-child{min-height:26px;display:flex;align-items:flex-end;line-height:1.25}.design-sector-settings input,.planned-sector-settings input{height:34px;min-height:34px}.design-main-device{display:grid;grid-template-columns:38px minmax(0,1fr);align-items:center;gap:10px;margin:2px 0 10px;padding:11px;border:1px solid color-mix(in srgb,var(--primary) 42%,var(--border));border-radius:9px;background:color-mix(in srgb,var(--primary) 8%,var(--card))}.design-main-device>span:last-child{display:grid;gap:2px}.design-main-device small{font-size:8px;font-weight:800;letter-spacing:.06em;color:var(--primary)}.design-main-device b{font-size:11px}.design-main-device em{font-size:9px;color:var(--muted);font-style:normal}.planned-device-connection{grid-column:1/-1;display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px;padding:9px;border-top:1px solid var(--border);background:color-mix(in srgb,var(--blue) 3%,transparent)}.planned-device-connection .field{font-size:8px}.planned-device-connection select{min-height:32px!important;font-size:9px}.design-promoted{justify-content:flex-start}.design-promoted>span{min-width:0;display:grid;gap:2px;flex:1}.design-promoted>span small{color:var(--soft);font-size:9px;font-weight:500}.design-promoted.editing{color:var(--primary);border-color:color-mix(in srgb,var(--primary) 48%,var(--border));background:color-mix(in srgb,var(--primary) 9%,var(--card))}.plant-change-modal{width:min(650px,100%);max-height:calc(100dvh - 40px);overflow:auto;display:grid;gap:14px}.plant-change-modal>header{display:flex;align-items:flex-start;justify-content:space-between;gap:14px}.plant-change-modal h2{margin:3px 0 0}.plant-change-modal header p{margin:5px 0 0;font-size:11px}.plant-conflict-alert{padding:11px;display:flex;align-items:flex-start;gap:9px;border:1px solid color-mix(in srgb,var(--amber) 45%,var(--border));border-radius:8px;background:color-mix(in srgb,var(--amber) 9%,var(--card));color:var(--amber)}.plant-conflict-alert span{display:grid;gap:4px}.plant-conflict-alert small{color:var(--soft);font-size:9px}.plant-change-checklist{display:grid;gap:7px}.plant-change-checklist label{min-height:58px;padding:9px 10px;display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:10px;border:1px solid var(--border);border-radius:8px;background:var(--input)}.plant-change-checklist label.changed{border-color:color-mix(in srgb,var(--primary) 38%,var(--border))}.plant-change-checklist input{width:17px;height:17px;min-height:0;margin:0;accent-color:var(--primary)}.plant-change-checklist span{display:grid;gap:3px}.plant-change-checklist small{color:var(--soft);font-size:9px}.plant-change-checklist em{padding:3px 6px;border-radius:10px;background:color-mix(in srgb,var(--primary) 14%,transparent);color:var(--primary);font-size:8px;font-style:normal;font-weight:800}.plant-change-modal>footer{display:flex;justify-content:flex-end;gap:8px}.device-type-menu-portal{position:fixed!important;right:auto!important;bottom:auto!important;overflow:auto;overscroll-behavior:contain}.breadcrumbs.design-breadcrumbs{position:relative;z-index:1000}.design-top-dropdown{position:relative;display:flex}.design-top-dropdown-panel{position:absolute;z-index:1100;top:calc(100% + 6px);right:0;width:min(360px,calc(100vw - 24px));max-height:calc(100dvh - 130px);padding:13px;display:grid;gap:11px;overflow:auto;overscroll-behavior:contain;border:1px solid color-mix(in srgb,var(--primary) 35%,var(--border));border-radius:10px;background:var(--card);box-shadow:0 18px 42px #0000006b}.design-top-dropdown-panel.parameters{width:min(470px,calc(100vw - 24px))}.design-top-dropdown-panel>header{display:flex;align-items:center;gap:7px;border-bottom:1px solid var(--border);padding-bottom:9px}.design-top-dropdown-panel>header svg{color:var(--primary)}.design-top-dropdown-panel h2{margin:0;font-size:12px}.design-top-dropdown-panel textarea{min-height:72px}.design-route-distance-label{padding:5px 9px!important;border:1px solid rgba(245,158,11,.8)!important;border-radius:12px!important;background:#111827eb!important;color:#fbbf24!important;box-shadow:0 3px 10px #00000059!important;font-size:11px!important}.design-route-distance-label:before{display:none!important}.design-route-metrics .distance em{color:var(--soft);font-size:8px;font-style:normal}.design-visibility-action{width:100%;justify-content:center}.design-visibility-result{padding:10px;display:flex;align-items:flex-start;gap:8px;border:1px solid;border-radius:8px}.design-visibility-result>span{display:grid;gap:2px}.design-visibility-result small{font-size:9px;line-height:1.4}.design-visibility-result.ok{border-color:color-mix(in srgb,var(--green) 50%,var(--border));background:color-mix(in srgb,var(--green) 10%,var(--card));color:var(--green)}.design-visibility-result.out{border-color:color-mix(in srgb,var(--red) 50%,var(--border));background:color-mix(in srgb,var(--red) 10%,var(--card));color:var(--red)}.design-visibility-override{padding:9px;display:flex;align-items:flex-start;gap:8px;border:1px solid var(--border);border-radius:8px;background:var(--input);cursor:pointer}.design-visibility-override>span{display:grid;gap:2px}.design-visibility-override small{color:var(--soft);font-size:8px;line-height:1.4}.design-visibility-result.manual{border-style:dashed}.design-map .leaflet-interactive:focus{outline:none}.design-route-hit-area{cursor:pointer}.design-node-selection-ring{cursor:pointer;transition:fill-opacity .12s ease,stroke-width .12s ease}.design-node-selection-ring:hover{fill-opacity:.22!important;stroke-width:3px}.design-node-selection-ring.selected{filter:drop-shadow(0 0 5px rgba(96,165,250,.9))}.design-new-project-backdrop{z-index:2000}.design-new-project-backdrop .design-new-project{max-height:calc(100dvh - 40px);overflow:auto;box-shadow:0 24px 70px #0000008c}.design-save-draft{flex:0 0 auto}.design-map-summary{position:absolute;z-index:500;top:10px;right:10px;width:min(330px,calc(100% - 20px));max-height:calc(100% - 20px);display:flex;flex-direction:column;border:1px solid rgba(255,255,255,.25);border-radius:10px;background:#080e18f0;box-shadow:0 12px 30px #00000061;color:#e2eaf5;overflow:hidden;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}.design-map-summary>header{padding:11px 12px;display:flex;align-items:center;justify-content:space-between;gap:10px;border-bottom:1px solid rgba(255,255,255,.12)}.design-map-summary>header h2{margin:2px 0 0;font-size:12px}.design-map-summary>header>svg{color:#60a5fa}.design-map-kpis{padding:8px;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:5px;border-bottom:1px solid rgba(255,255,255,.12)}.design-map-kpis>span{min-width:0;padding:6px 3px;display:grid;place-items:center;gap:2px;border-radius:6px;background:#ffffff0f}.design-map-kpis b{font-size:12px}.design-map-kpis small{color:#94a3b8;font-size:7px;text-transform:uppercase}.design-map-summary>section{min-height:0;padding:9px 10px;display:flex;flex-direction:column;gap:6px;border-bottom:1px solid rgba(255,255,255,.1)}.design-map-summary>section:last-child{border-bottom:0;flex:1}.design-map-summary>section>header{display:flex;align-items:center;justify-content:space-between;gap:8px}.design-map-summary>section>header b{font-size:9px;text-transform:uppercase;letter-spacing:.05em}.design-map-summary>section>header button{padding:2px;border:0;background:transparent;color:#60a5fa;font-size:8px;cursor:pointer}.design-map-line-legend{display:flex;flex-wrap:wrap;gap:5px 10px;color:#94a3b8;font-size:7px}.design-map-line-legend span{display:flex;align-items:center;gap:4px}.design-map-line-legend i{width:14px;height:3px;border-radius:2px;background:#ef4444}.design-map-line-legend i.sector{height:0;border-top:3px dashed #94a3b8;background:transparent;border-radius:0}.design-map-filter-list{display:grid;gap:3px;overflow:auto;overscroll-behavior:contain}.design-map-filter-list:not(.nodes){max-height:150px}.design-map-filter-list.nodes{max-height:180px}.design-map-filter-list label{min-width:0;min-height:24px;padding:3px 4px;display:grid;grid-template-columns:auto auto minmax(0,1fr);align-items:center;gap:6px;border-radius:5px;color:#cbd5e1;font-size:9px;cursor:pointer}.design-map-filter-list label:hover{background:#ffffff0f}.design-map-filter-list input{width:14px;height:14px;min-height:0;margin:0;padding:0;accent-color:#3b82f6}.design-map-filter-list i{width:11px;height:5px;border-radius:4px}.design-map-filter-list.nodes i{height:11px;border:2px solid rgba(255,255,255,.7);border-radius:50%}.design-map-filter-list label>span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.design-map-filter-list.nodes label>span{display:grid}.design-map-filter-list.nodes small{overflow:hidden;color:#94a3b8;font-size:7px;text-overflow:ellipsis;white-space:nowrap}.design-map-empty-filter{padding:5px;color:#94a3b8;font-size:8px}.design-map-scroll-space{min-height:44px;flex:0 0 44px;display:flex;align-items:center;justify-content:center;gap:7px;border-top:1px solid var(--border);background:var(--card2);color:var(--soft);font-size:9px}.design-map-scroll-space svg{color:var(--primary)}.design-main{padding-bottom:72px!important;scrollbar-gutter:stable}.sidebar{width:236px;background:linear-gradient(180deg,var(--sidebar),color-mix(in srgb,var(--sidebar) 92%,var(--primary)));box-shadow:8px 0 28px #0000001f}.main-wrap{margin-left:236px;width:calc(100% - 236px)}.brand{height:72px;padding:12px 16px;background:var(--sidebar)}.brand img{width:100%;height:46px;object-fit:contain;object-position:left center;border-radius:0;border:none}.primary-nav{gap:8px!important;padding:6px 10px 22px!important}.nav-section{display:grid;gap:4px;padding:10px 0 12px;border-top:1px solid var(--border)}.nav-section:first-of-type{margin-top:2px}.nav-section-title{min-height:24px;padding:0 8px;display:flex;align-items:center;justify-content:space-between;color:var(--dim);font-size:9px;font-weight:800;letter-spacing:.12em;text-transform:uppercase}.nav-section-title b{min-width:22px;padding:2px 6px;border:1px solid var(--border);border-radius:10px;color:var(--soft);text-align:center;letter-spacing:0}.plant-nav-heading{margin:0!important;padding:0!important}.plant-nav-heading .plant-nav-title{min-height:36px!important;padding:0 10px!important;font-size:11px!important;text-transform:none;letter-spacing:0}.sidebar nav a svg,.plant-tree-toggle>svg:nth-child(2){color:var(--nav-icon,var(--primary));flex:0 0 auto}.sidebar nav a{border:1px solid transparent}.sidebar nav a:hover{background:color-mix(in srgb,var(--primary) 8%,transparent);color:var(--text)}.sidebar nav a.active{box-shadow:inset 3px 0 0 var(--primary)}.nav-projects{--nav-icon:#a78bfa}.nav-design{--nav-icon:#38bdf8}.plant-nav-title{--nav-icon:#34d399}.plant-tree-toggle>svg:first-child{color:var(--dim)}.plant-tree-toggle:hover{background:color-mix(in srgb,var(--primary) 7%,transparent)}.topbar{min-height:56px;height:56px;gap:18px;padding:0 20px}.topbar-heading{display:grid;gap:1px;flex:1}.topbar-heading span{color:var(--primary);font-size:8px;font-weight:800;letter-spacing:.14em}.topbar-heading strong{color:var(--text);font-size:13px}.top-stats,.top-actions{flex:0 0 auto}.stat-card,.panel,.project-kpi,.project-card,.project-section{box-shadow:0 1px 2px #00000014,0 8px 24px #0000000a}.projects-page{display:grid;gap:18px}.project-kpi-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.project-kpi{min-height:94px;padding:16px;display:flex;align-items:center;gap:12px;border:1px solid var(--border);border-radius:var(--radius);background:var(--card)}.project-kpi>span{width:42px;height:42px;display:grid;place-items:center;border-radius:9px;background:color-mix(in srgb,currentColor 13%,transparent)}.project-kpi>div{display:grid;gap:2px}.project-kpi strong{font-size:25px}.project-kpi small{color:var(--soft)}.project-kpi.blue{color:var(--blue)}.project-kpi.green{color:var(--green)}.project-kpi.amber{color:var(--amber)}.project-kpi.slate{color:var(--soft)}.project-section{overflow:hidden;border:1px solid var(--border);border-radius:var(--radius);background:var(--card)}.project-section>header{min-height:66px;padding:13px 16px;display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:12px;border-bottom:1px solid var(--border)}.project-section>header>span{width:36px;height:36px;display:grid;place-items:center;border-radius:8px;background:color-mix(in srgb,var(--primary) 12%,transparent);color:var(--primary)}.project-section.monitoring>header>span{background:color-mix(in srgb,var(--green) 12%,transparent);color:var(--green)}.project-section>header h2{margin:0;font-size:14px}.project-section>header p{margin:3px 0 0;color:var(--soft);font-size:10px}.project-section>header>b{min-width:28px;padding:4px 8px;border-radius:14px;background:var(--input);text-align:center}.project-card-grid{padding:14px;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.project-card{min-width:0;padding:14px;display:grid;gap:12px;border:1px solid var(--border);border-radius:9px;background:var(--card2)}.project-card>header{display:flex;align-items:center;gap:9px}.project-card>header>span{width:34px;height:34px;display:grid;place-items:center;border-radius:8px;background:color-mix(in srgb,var(--amber) 12%,transparent);color:var(--amber)}.project-card>header>span.monitoring{background:color-mix(in srgb,var(--green) 12%,transparent);color:var(--green)}.project-card h3{margin:0;font-size:14px}.project-card header small,.project-card>p{color:var(--soft);font-size:10px}.project-card>p{min-height:28px;margin:0}.project-card dl{margin:0;display:grid;grid-template-columns:repeat(3,1fr);gap:6px}.project-card dl>div{padding:7px;display:grid;gap:2px;border:1px solid var(--border);border-radius:7px;background:var(--input)}.project-card dt{color:var(--soft);font-size:8px}.project-card dd{margin:0;font-weight:800}.project-card footer{display:flex;justify-content:flex-end}.project-operational-summary{padding:10px;display:grid;gap:8px;border:1px solid var(--border);border-radius:8px;background:var(--input)}.project-operational-summary h4{margin:0;display:flex;align-items:center;gap:6px;font-size:10px}.project-operational-summary h4 svg{color:var(--primary)}.project-operational-summary>div{display:grid;grid-template-columns:1fr 1fr;gap:7px}.project-operational-summary .field{font-size:9px}.project-operational-summary input{min-height:34px}.project-operational-summary>.button{justify-self:end}.design-role-required{padding:10px;display:flex;align-items:flex-start;gap:9px;border:1px solid color-mix(in srgb,var(--amber) 40%,var(--border));border-radius:8px;background:color-mix(in srgb,var(--amber) 8%,var(--input));color:var(--amber)}.design-role-required span{display:grid;gap:2px}.design-role-required small{color:var(--soft);font-size:8px;line-height:1.4}.design-connection-kind{display:flex}.design-connection-kind span{padding:6px 9px;display:flex;align-items:center;gap:6px;border:1px solid var(--border);border-radius:14px;color:var(--primary);font-size:9px}.design-connection-kind .wired{color:#14b8a6}.design-connection-kind .vpn{color:#a855f7}.design-coverage-handle{border:0!important;background:transparent!important}.design-coverage-handle span{width:22px;height:22px;display:block;border:3px solid #fff;border-radius:50%;background:#38bdf8;box-shadow:0 3px 12px #00000073;cursor:move}.design-map-line-legend i.wired{background:#14b8a6}.design-map-line-legend i.vpn{height:0;border-top:3px dashed #a855f7;background:transparent}.design-project-sequence{margin:0 0 12px;padding:0;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;list-style:none}.design-project-sequence li{min-width:0;padding:9px 10px;display:flex;align-items:center;gap:8px;border:1px solid var(--border);border-radius:8px;background:var(--card)}.design-project-sequence li>i{width:25px;height:25px;display:grid;place-items:center;flex:0 0 auto;border-radius:50%;background:var(--input);color:var(--dim);font-style:normal;font-size:10px;font-weight:800}.design-project-sequence li>span{min-width:0;display:grid;gap:2px}.design-project-sequence b,.design-project-sequence small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.design-project-sequence b{font-size:10px}.design-project-sequence small{color:var(--soft);font-size:8px}.design-project-sequence li.complete{border-color:color-mix(in srgb,var(--green) 34%,var(--border))}.design-project-sequence li.complete>i{background:color-mix(in srgb,var(--green) 14%,transparent);color:var(--green)}.design-project-sequence li.active{border-color:color-mix(in srgb,var(--primary) 58%,var(--border));box-shadow:inset 3px 0 0 var(--primary)}.design-project-sequence li.active>i{background:color-mix(in srgb,var(--primary) 16%,transparent);color:var(--primary)}.design-coverage-status{padding:10px;display:flex;align-items:flex-start;gap:9px;border:1px solid var(--border);border-left:3px solid currentColor;border-radius:8px;background:color-mix(in srgb,currentColor 7%,var(--input));color:var(--dim)}.design-coverage-status>span{display:grid;gap:3px}.design-coverage-status b{color:var(--text)}.design-coverage-status strong{font-size:10px}.design-coverage-status small{color:var(--soft);font-size:8px;line-height:1.45}.design-coverage-status.good{color:var(--green)}.design-coverage-status.fair{color:var(--amber)}.design-coverage-status.none{color:var(--red)}.design-map-line-legend i.good{background:var(--green)}.design-map-line-legend i.fair{background:var(--amber)}@media(max-width:900px){.design-project-sequence{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:520px){.design-project-sequence{grid-template-columns:1fr}}.coverage-state.good,.design-route-metrics .good{color:var(--green)}.coverage-state.fair,.design-route-metrics .fair{color:var(--amber)}.coverage-state.none,.design-route-metrics .none{color:var(--red)}.design-inspector-summary strong.warning{color:var(--amber);border-color:color-mix(in srgb,var(--amber) 42%,var(--border))}.device-picker{display:grid;grid-template-columns:1fr 1fr;gap:8px}.device-config-card{overflow:hidden;border:1px solid color-mix(in srgb,var(--primary) 35%,var(--border));border-radius:10px;background:var(--card2)}.device-config-card>header{padding:10px;display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:9px;border-bottom:1px solid var(--border)}.device-config-card>header>span:nth-child(2){min-width:0;display:grid;gap:2px}.device-config-card>header b,.device-config-card>header small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.device-config-card>header small{color:var(--soft);font-size:8px}.device-config-tabs{display:grid;grid-template-columns:repeat(4,1fr);border-bottom:1px solid var(--border);background:var(--input)}.device-config-tabs button{min-width:0;padding:8px 4px;border:0;border-bottom:2px solid transparent;background:transparent;color:var(--soft);font-size:8px;font-weight:800;cursor:pointer}.device-config-tabs button.active{border-bottom-color:var(--primary);background:color-mix(in srgb,var(--primary) 8%,transparent);color:var(--primary)}.device-config-body{padding:10px;display:grid;gap:9px}.device-config-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px}.device-section-heading{display:flex;align-items:center;justify-content:space-between;gap:8px}.device-section-heading>span{display:flex;align-items:center;gap:6px;color:var(--primary)}.interface-card{padding:7px;display:grid;grid-template-columns:minmax(0,1fr) 105px 62px 30px;align-items:end;gap:6px;border:1px solid var(--border);border-radius:7px;background:var(--input)}.interface-card input,.interface-card select{min-height:32px;padding:5px 6px;font-size:9px}.interface-card label{display:grid;gap:2px;color:var(--soft);font-size:7px}.interface-card label input{width:100%}.interface-network-card{padding:9px;display:grid;gap:7px;border:1px solid var(--border);border-radius:8px;background:var(--input)}.interface-network-card>b{font-size:9px;color:var(--primary)}.monitor-methods{display:flex;flex-wrap:wrap;gap:6px}.monitor-methods label{padding:6px 8px;display:flex;align-items:center;gap:5px;border:1px solid var(--border);border-radius:14px;background:var(--input);font-size:8px}.monitor-methods input{width:14px;height:14px;min-height:0;margin:0;accent-color:var(--primary)}.design-endpoint-config{display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);align-items:center;gap:8px}.design-endpoint-config>section{padding:9px;display:grid;gap:7px;border:1px solid var(--border);border-radius:8px;background:var(--input)}.design-endpoint-config>section>small{color:var(--primary);font-size:8px;font-weight:800}.design-endpoint-config>svg{color:var(--primary)}.logical-network-section{padding-top:10px;display:grid;gap:7px;border-top:1px solid var(--border)}.logical-network-section>header{display:flex;align-items:center;justify-content:space-between;gap:8px}.logical-network-section>header>span{display:flex;align-items:center;gap:6px;color:var(--primary)}.logical-network-section>small{color:var(--soft);font-size:9px}.logical-network-row{display:grid;grid-template-columns:minmax(90px,.8fr) minmax(130px,1.2fr) 70px 30px;gap:6px}.logical-network-row input{min-height:32px;padding:5px 7px;font-size:9px}@media(max-width:560px){.device-picker,.device-config-grid{grid-template-columns:1fr}.interface-card{grid-template-columns:minmax(0,1fr) 90px 58px 30px}.design-endpoint-config{grid-template-columns:1fr}.design-endpoint-config>svg{transform:rotate(90deg);justify-self:center}.logical-network-row{grid-template-columns:1fr 1fr}.logical-network-row .icon-button{justify-self:end}}.storage-estimate{margin-top:14px;padding:13px;display:grid;gap:11px;border:1px solid color-mix(in srgb,var(--primary) 32%,var(--border));border-radius:9px;background:color-mix(in srgb,var(--primary) 6%,var(--card2))}.storage-estimate>header{display:flex;align-items:center;justify-content:space-between;gap:12px}.storage-estimate>header>div{display:grid;gap:3px}.storage-estimate small{color:var(--soft);font-size:9px}.storage-estimate dl{margin:0;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}.storage-estimate dl>div{padding:9px;display:grid;gap:3px;border:1px solid var(--border);border-radius:7px;background:var(--input)}.storage-estimate dt{color:var(--soft);font-size:8px}.storage-estimate dd{margin:0;font-size:12px;font-weight:800}.storage-estimate .form-success{margin:0}@media(max-width:767px){.storage-estimate>header{align-items:stretch;flex-direction:column}.storage-estimate dl{grid-template-columns:repeat(2,minmax(0,1fr))}}.projects-overview{margin-top:18px;display:grid;gap:18px;scroll-margin-top:64px}.design-map-commandset,.design-map-toolset{display:flex;align-items:center;gap:4px;padding:3px;border:1px solid var(--border);border-radius:9px;background:var(--input)}.design-map-commandset{min-width:0;flex:1 1 auto;overflow-x:auto;scrollbar-width:thin}.design-map-commandset button,.design-map-toolset button{min-height:36px;padding:7px 10px;display:flex;flex:0 0 auto;align-items:center;justify-content:center;gap:6px;border:1px solid transparent;border-radius:7px;background:transparent;color:var(--soft);font-size:10px;font-weight:750;white-space:nowrap;cursor:pointer;transition:background .15s ease,border-color .15s ease,color .15s ease,transform .15s ease}.design-map-commandset button:hover:not(:disabled),.design-map-toolset button:hover:not(:disabled){border-color:color-mix(in srgb,var(--primary) 45%,var(--border));color:var(--text);background:color-mix(in srgb,var(--primary) 9%,transparent);transform:translateY(-1px)}.design-map-commandset button.active,.design-map-toolset button.active{border-color:var(--primary);background:var(--action);color:#fff;box-shadow:0 3px 10px color-mix(in srgb,var(--primary) 25%,transparent)}.design-map-commandset button.emphasis{border-color:color-mix(in srgb,var(--primary) 52%,var(--border));background:color-mix(in srgb,var(--primary) 12%,transparent);color:var(--primary)}.design-map-commandset button:disabled,.design-map-toolset button:disabled{opacity:.42;cursor:not-allowed;transform:none}.design-map-toolset>i{width:1px;height:25px;margin:0 2px;background:var(--border)}.design-inspector{--inspector-muted:var(--soft);--inspector-subtle:var(--dim)}:root:not([data-theme=light]) .design-inspector{--inspector-muted:#c1cede;--inspector-subtle:#9fb0c5}.design-inspector-header small{color:var(--inspector-muted);font-size:10px;font-weight:750}.design-inspector-header h2{color:var(--text);font-size:16px;line-height:1.25}.design-inspector-body{color:var(--text);font-size:12px;line-height:1.45}.design-inspector-body .field{color:var(--inspector-muted);font-size:12px;font-weight:650}.design-inspector-body .field small,.design-inspector-body small{color:var(--inspector-subtle);font-size:10px;line-height:1.4}.design-inspector-body input,.design-inspector-body select,.design-inspector-body textarea,.design-inspector-body .device-type-trigger{color:var(--text);font-size:12px}.design-inspector-summary span,.design-inspector-summary strong{color:var(--inspector-muted);font-size:10px}.design-inspector-summary strong{color:var(--green)}.planned-device-section>header small,.device-config-card>header small{color:var(--inspector-muted);font-size:10px}.device-config-tabs button,.planned-device-empty,.planned-device-presets button,.monitor-methods label{color:var(--inspector-muted);font-size:10px}.interface-card label,.design-endpoint-config>section>small,.interface-network-card>b{font-size:9px}@media(max-width:1450px){.design-map-commandset button span,.design-map-toolset button span{display:none}.design-map-commandset button,.design-map-toolset button{width:38px;padding:7px}}@media(max-width:767px){.design-map-commandset{order:1;width:100%;flex-basis:100%;scrollbar-width:none}.design-map-toolset{order:2;max-width:100%;overflow-x:auto;scrollbar-width:none}.design-basemap-switch{order:3}.design-map-toolbar>span{order:4}.design-map-toolset button{flex:0 0 auto}.projects-overview{gap:12px}}@media(max-width:1100px){.topbar-heading{display:none}.project-kpi-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.project-card-grid{grid-template-columns:1fr}}@media(min-width:768px)and (max-width:1023px){.sidebar{width:216px}.main-wrap{margin-left:216px;width:calc(100% - 216px)}}@media(max-width:767px){.sidebar{display:none}.main-wrap{margin-left:0;width:100%}.bottom-nav{grid-template-columns:repeat(5,1fr)}.project-kpi-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.project-kpi{min-height:82px;padding:11px}.project-card-grid{padding:9px}.project-operational-summary>div,.planned-cpe-configuration{grid-template-columns:1fr}.project-section>header p{display:none}.topbar-heading{display:grid}.topbar-heading strong{font-size:11px}.topbar .top-stats{display:none}.bottom-nav a small{font-size:9px}}@media(max-width:767px){.design-sector-settings,.planned-sector-settings{grid-template-columns:1fr}}@media(max-width:767px){#main-content.design-main{padding:8px}.design-main .design-layout,.design-main .design-layout.details-collapsed{display:block;height:calc(100dvh - 230px);min-height:480px}.design-main .design-layout .design-sidebar,.design-main .design-layout.details-collapsed .design-sidebar{position:absolute;right:4px;left:auto;order:initial;width:calc(100% - 8px);height:auto;max-height:none;overflow:visible}.design-main .design-sidebar.menu-open{top:0}.design-main .design-sidebar.inspector-open{top:112px;width:calc(100% - 8px)}.design-main .design-layout .design-workspace,.design-main .design-layout.details-collapsed .design-workspace{order:initial;height:100%;min-height:0}.design-main .design-map-stage{height:auto;min-height:0}.design-main .design-map{min-height:0}.design-map-summary{top:8px;right:8px;width:min(300px,calc(100% - 16px));max-height:calc(100% - 16px)}.design-map-kpis{grid-template-columns:repeat(4,minmax(0,1fr))}.design-map-filter-list.nodes{max-height:120px}.design-map-scroll-space{min-height:52px;flex-basis:52px;padding:0 12px;text-align:center}.design-new-project-backdrop{padding:8px}.design-new-project-backdrop .design-new-project{max-height:calc(100dvh - 16px)}.design-new-project .design-import-choice{align-items:flex-start;flex-wrap:wrap}.design-new-project .design-import-choice input{width:100%;max-width:none;margin-left:34px}.design-top-dropdown{position:static}.design-top-dropdown-panel,.design-top-dropdown-panel.parameters{position:absolute;top:100%;right:0;left:0;width:auto;max-height:calc(100dvh - 190px)}}.row-actions{display:inline-flex;align-items:center;gap:6px}.row-actions .icon-button{width:32px;height:32px;min-width:32px;min-height:32px;display:inline-flex;align-items:center;justify-content:center;border-radius:7px;border:1px solid var(--border);padding:0;cursor:pointer;transition:all .15s ease}.row-actions .action-stream{background:#f59e0b1f;border-color:#f59e0b4d;color:#d97706}.row-actions .action-stream:hover{background:#f59e0b38;border-color:#d97706;transform:translateY(-1px)}.row-actions .action-map{background:#10b9811f;border-color:#10b9814d;color:#059669}.row-actions .action-map:hover{background:#10b98138;border-color:#059669;transform:translateY(-1px)}.row-actions .action-edit{background:#3b82f61f;border-color:#3b82f64d;color:#2563eb}.row-actions .action-edit:hover{background:#3b82f638;border-color:#2563eb;transform:translateY(-1px)}.row-actions .action-delete{background:#ef44441f;border-color:#ef44444d;color:#dc2626}.row-actions .action-delete:hover{background:#ef444438;border-color:#dc2626;transform:translateY(-1px)}.web-links{display:inline-flex;align-items:center;gap:5px;flex-wrap:wrap}.web-links a{display:inline-flex;align-items:center;gap:4px;padding:3px 6px;border-radius:5px;border:1px solid var(--border);background:var(--input);color:var(--primary);font-size:11px;font-family:JetBrains Mono,monospace;transition:all .15s ease}.web-links a:hover{border-color:var(--primary);background:var(--card-high)}.poe-table{background:var(--card2);border:1px solid var(--border);border-radius:8px;overflow:hidden}.poe-table h4{margin:0;padding:10px 14px;background:var(--input);border-bottom:1px solid var(--border);font-size:11px;font-weight:700;color:var(--soft);text-transform:uppercase;letter-spacing:.06em}.poe-head,.poe-row{display:grid;grid-template-columns:minmax(130px,1.4fr) 70px 100px 90px minmax(140px,1.2fr) 48px;gap:8px;align-items:center;padding:8px 12px;border-bottom:1px solid var(--border);font-size:11px}.poe-head{background:var(--input);font-weight:700;color:var(--dim);text-transform:uppercase;font-size:10px;letter-spacing:.05em}.poe-row:last-child{border-bottom:none}.poe-row:hover{background:var(--card-high)}.poe-row b{font-size:12px;color:var(--text)}.poe-row small{color:var(--soft);display:block}.poe-voltage-active{color:var(--green);font-weight:700;font-family:JetBrains Mono,monospace}.poe-watts-active{color:var(--amber);font-weight:700;font-family:JetBrains Mono,monospace}.traffic-badge{font-family:JetBrains Mono,monospace;font-size:10px;color:var(--soft);white-space:nowrap}.poe-hide-btn{width:28px;height:28px;display:inline-flex;align-items:center;justify-content:center;border-radius:5px;border:1px solid transparent;background:transparent;color:var(--soft);cursor:pointer;transition:all .15s ease}.poe-hide-btn:hover{background:#ef444424;border-color:#ef444459;color:#dc2626}.poe-head-simplified,.poe-row-simplified{grid-template-columns:minmax(130px,1.4fr) 70px 60px minmax(140px,1.2fr)}.poe-voltage-on{color:#f97316!important;filter:drop-shadow(0 0 4px rgba(249,115,22,.5))}.poe-voltage-off{color:#94a3b8!important;opacity:.4}.traffic-two-rows{display:flex;flex-direction:column;gap:2px}:root{--cat-cctv: #818cf8;--cat-cctv-bg: rgba(129, 140, 248, .12);--cat-cctv-border: rgba(129, 140, 248, .35);--cat-net: #38bdf8;--cat-net-bg: rgba(56, 189, 248, .12);--cat-net-border: rgba(56, 189, 248, .35);--cat-radio: #fb923c;--cat-radio-bg: rgba(251, 146, 60, .12);--cat-radio-border: rgba(251, 146, 60, .35);--cat-power: #34d399;--cat-power-bg: rgba(52, 211, 153, .12);--cat-power-border: rgba(52, 211, 153, .35)}.design-node-inspector{position:relative;max-width:calc(100vw - 32px);background:var(--card);border-radius:12px;border:1px solid var(--border);box-shadow:0 18px 45px #00000073;display:flex;flex-direction:column;max-height:calc(100dvh - 120px);overflow-y:auto!important;overflow-x:hidden!important}.design-sidebar-resizer{position:absolute;left:0;top:0;bottom:0;width:6px;cursor:col-resize;z-index:999;transition:background-color .15s ease}.design-sidebar-resizer:hover,.design-sidebar-resizer:active{background-color:var(--primary);box-shadow:0 0 8px var(--primary)}.design-node-inspector .design-inspector-header{position:sticky;top:0;z-index:10;display:flex;align-items:center;justify-content:space-between;padding:12px 16px;background:var(--card);border-bottom:1px solid var(--border)}.inspector-title-area{display:flex;align-items:center;gap:10px}.inspector-title-text small{font-size:8.5px;letter-spacing:.08em;color:var(--soft);font-weight:700}.inspector-title-text h2{margin:0;font-size:16px;font-weight:700;color:var(--text)}.inspector-top-tabs{display:flex;gap:4px;padding:6px 14px;background:var(--input);border-bottom:1px solid var(--border)}.inspector-tab-btn{flex:1;display:flex;align-items:center;justify-content:center;gap:6px;padding:7px 12px;border-radius:6px;border:1px solid transparent;background:transparent;color:var(--soft);font-size:11.5px;font-weight:600;cursor:pointer;transition:all .15s ease}.inspector-tab-btn:hover{color:var(--text);background:#ffffff0a}.inspector-tab-btn.active{color:var(--primary);background:var(--card);border-color:var(--border);box-shadow:0 2px 6px #00000026}.tab-pill-count{padding:1px 7px;border-radius:10px;background:color-mix(in srgb,var(--primary) 20%,transparent);color:var(--primary);font-size:10px;font-weight:700}.poe-balance-widget{margin:12px 14px 4px;padding:10px 12px;border-radius:9px;border:1px solid var(--border);background:color-mix(in srgb,var(--card) 95%,var(--border));display:grid;gap:7px}.poe-balance-widget.overload{border-color:var(--red);background:color-mix(in srgb,var(--red) 10%,var(--card))}.poe-balance-header{display:flex;justify-content:space-between;align-items:center}.poe-title{display:flex;align-items:center;gap:6px;font-size:12px;font-weight:650;color:var(--primary)}.poe-metric{display:flex;align-items:baseline;gap:4px}.poe-val{font-size:14px;font-weight:750;color:var(--text)}.poe-slash,.poe-max{color:var(--soft);font-size:11px}.poe-progress-bar-container{height:6px;border-radius:3px;background:#ffffff14;overflow:hidden}.poe-progress-bar{height:100%;border-radius:3px;transition:width .3s ease}.poe-progress-bar.normal{background:var(--green)}.poe-progress-bar.warning{background:var(--amber)}.poe-progress-bar.danger{background:var(--red)}.poe-substats{display:flex;justify-content:space-between;align-items:center;font-size:10.5px;color:var(--soft)}.poe-warning-badge{color:var(--red);display:flex;align-items:center;gap:4px;font-size:10.5px;font-weight:700}.devices-action-bar{display:flex;gap:8px;padding:8px 14px}.devices-action-bar .button{flex:1;display:flex;justify-content:center;align-items:center;gap:6px;font-size:12px;font-weight:600;padding:8px 12px}.apply-kit-btn{background:color-mix(in srgb,var(--cat-radio) 12%,transparent);border-color:color-mix(in srgb,var(--cat-radio) 35%,var(--border));color:var(--cat-radio)}.apply-kit-btn:hover{background:color-mix(in srgb,var(--cat-radio) 20%,transparent);border-color:var(--cat-radio);color:#fff}.planned-devices-empty-callout{margin:16px 14px;padding:24px 16px;border-radius:12px;border:1px dashed var(--border);background:var(--input);text-align:center;display:flex;flex-direction:column;align-items:center;gap:8px;color:var(--soft)}.planned-devices-empty-callout h4{margin:4px 0 0;color:var(--text);font-size:14px}.planned-devices-empty-callout p{margin:0;font-size:11.5px;max-width:320px}.empty-buttons{display:flex;gap:8px;margin-top:8px}.device-pills-bar-container{padding:4px 14px 10px;overflow-x:auto;scrollbar-width:thin}.device-pills-bar{display:flex;gap:6px;min-width:min-content}.device-pill{display:flex;align-items:center;gap:6px;padding:6px 11px;border-radius:18px;border:1px solid var(--border);background:var(--input);color:var(--soft);cursor:pointer;white-space:nowrap;font-size:11px;transition:all .15s ease}.device-pill:hover{color:var(--text);border-color:color-mix(in srgb,var(--primary) 50%,var(--border))}.device-pill.cat-cctv{border-left:3px solid var(--cat-cctv)}.device-pill.cat-cctv.active{background:var(--cat-cctv-bg);border-color:var(--cat-cctv);color:var(--text);box-shadow:0 0 10px #818cf840}.device-pill.cat-networking,.device-pill.cat-net{border-left:3px solid var(--cat-net)}.device-pill.cat-networking.active,.device-pill.cat-net.active{background:var(--cat-net-bg);border-color:var(--cat-net);color:var(--text);box-shadow:0 0 10px #38bdf840}.device-pill.cat-radio{border-left:3px solid var(--cat-radio)}.device-pill.cat-radio.active{background:var(--cat-radio-bg);border-color:var(--cat-radio);color:var(--text);box-shadow:0 0 10px #fb923c40}.device-pill.cat-power{border-left:3px solid var(--cat-power)}.device-pill.cat-power.active{background:var(--cat-power-bg);border-color:var(--cat-power);color:var(--text);box-shadow:0 0 10px #34d39940}.pill-icon{display:flex;align-items:center}.pill-name{font-weight:600}.pill-sub{color:var(--soft);font-size:9.5px;opacity:.85}.device-editor-card{margin:4px 14px 16px;border-radius:12px;border:1px solid var(--border);background:var(--card);overflow:hidden;display:grid;gap:12px;box-shadow:0 4px 18px #0003}.device-editor-card.cat-cctv{border-top:3px solid var(--cat-cctv)}.device-editor-card.cat-networking,.device-editor-card.cat-net{border-top:3px solid var(--cat-net)}.device-editor-card.cat-radio{border-top:3px solid var(--cat-radio)}.device-editor-card.cat-power{border-top:3px solid var(--cat-power)}.device-editor-header{padding:12px 14px 8px;display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid var(--border)}.device-lead-info{display:flex;align-items:center;gap:10px}.device-lead-icon{width:36px;height:36px;border-radius:8px;display:grid;place-items:center;background:#ffffff0d}.device-editor-card.cat-cctv .device-lead-icon{background:var(--cat-cctv-bg);color:var(--cat-cctv)}.device-editor-card.cat-networking .device-lead-icon,.device-editor-card.cat-net .device-lead-icon{background:var(--cat-net-bg);color:var(--cat-net)}.device-editor-card.cat-radio .device-lead-icon{background:var(--cat-radio-bg);color:var(--cat-radio)}.device-editor-card.cat-power .device-lead-icon{background:var(--cat-power-bg);color:var(--cat-power)}.device-cat-badge{display:inline-flex;align-items:center;gap:4px;font-size:10px;font-weight:700;padding:2px 7px;border-radius:4px;border:1px solid var(--border);letter-spacing:.02em}.device-editor-card.cat-cctv .device-cat-badge{color:var(--cat-cctv);background:var(--cat-cctv-bg);border-color:var(--cat-cctv-border)}.device-editor-card.cat-networking .device-cat-badge,.device-editor-card.cat-net .device-cat-badge{color:var(--cat-net);background:var(--cat-net-bg);border-color:var(--cat-net-border)}.device-editor-card.cat-radio .device-cat-badge{color:var(--cat-radio);background:var(--cat-radio-bg);border-color:var(--cat-radio-border)}.device-editor-card.cat-power .device-cat-badge{color:var(--cat-power);background:var(--cat-power-bg);border-color:var(--cat-power-border)}.device-lead-texts h3{margin:0;font-size:15px;font-weight:700;color:var(--text)}.device-type-eyebrow{font-size:9.5px;text-transform:uppercase;letter-spacing:.06em;color:var(--soft);font-weight:700}.device-mode-toggle-bar{display:flex;gap:6px;padding:0 14px}.mode-btn{flex:1;display:flex;align-items:center;justify-content:center;gap:6px;padding:7px 10px;border-radius:6px;border:1px solid var(--border);background:var(--input);color:var(--soft);font-size:11px;cursor:pointer;font-weight:550;transition:all .15s ease}.mode-btn:hover{color:var(--text)}.mode-btn.active{background:color-mix(in srgb,var(--primary) 15%,var(--card));border-color:var(--primary);color:var(--text);font-weight:650}.quick-config-fields{padding:0 14px 14px;display:grid;gap:10px}.form-field{display:grid;gap:4px}.form-field label{font-size:11px;font-weight:600;color:var(--soft)}.form-field input,.form-field select,.form-field textarea{width:100%;min-height:36px;padding:7px 10px;border-radius:7px;border:1px solid var(--border);background:var(--input);color:var(--text);font-size:12px}.form-field input:focus,.form-field select:focus,.form-field textarea:focus{border-color:var(--primary);outline:none}.internal-cabling-section,.radio-targeting-section{padding:12px;border-radius:9px;border:1px solid color-mix(in srgb,var(--primary) 25%,var(--border));background:color-mix(in srgb,var(--primary) 4%,transparent);display:grid;gap:10px}.section-title{display:flex;align-items:center;gap:6px;font-size:12px;color:var(--primary);font-weight:700}.cabling-details-grid,.radio-fields-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px;align-items:center}.poe-toggle-checkbox{grid-column:1 / -1;display:flex;align-items:center;gap:8px;cursor:pointer;font-size:11.5px;color:var(--text);padding:4px 0}.poe-toggle-checkbox input{accent-color:var(--green);width:16px;height:16px}.switch-cabling-info{display:grid;gap:8px;font-size:11.5px}.switch-connected-list ul{margin:4px 0 0;padding-left:0;list-style:none;display:grid;gap:4px}.switch-connected-list li{display:flex;align-items:center;gap:6px;font-size:11px;padding:4px 8px;border-radius:6px;background:#ffffff0a}.radio-link-summary-box{display:grid;grid-template-columns:1fr 1fr 1fr;gap:6px;padding:8px 10px;border-radius:8px;background:#0003;border:1px solid var(--border)}.summary-col{display:grid;gap:2px}.summary-col small{font-size:8px;color:var(--soft);letter-spacing:.05em}.summary-col strong{font-size:11.5px}.advanced-config-fields{padding:0 14px 14px;display:grid;gap:12px}.advanced-sub-tabs{display:flex;gap:4px;border-bottom:1px solid var(--border);padding-bottom:6px}.advanced-sub-tabs button{display:flex;align-items:center;gap:5px;padding:5px 10px;border-radius:6px;border:1px solid transparent;background:transparent;color:var(--soft);font-size:11px;cursor:pointer}.advanced-sub-tabs button.active{background:var(--input);border-color:var(--border);color:var(--primary);font-weight:600}.interfaces-advanced-list{display:grid;gap:8px}.interfaces-header{display:flex;justify-content:space-between;align-items:center;font-size:11px;font-weight:600;color:var(--soft)}.interface-row-card{display:grid;grid-template-columns:100px 1fr auto;gap:6px;align-items:center}.inspector-node-body{padding:14px;display:grid;gap:12px}.coordinates-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}.altitude-summary-pill{padding:8px 12px;border-radius:8px;background:color-mix(in srgb,var(--primary) 10%,var(--card));border:1px solid color-mix(in srgb,var(--primary) 30%,var(--border));display:flex;justify-content:space-between;align-items:center}.altitude-summary-pill small{font-size:9px;color:var(--primary);font-weight:700}.altitude-summary-pill strong{font-size:13px;color:var(--text)}.delete-node-container{margin-top:10px;padding-top:12px;border-top:1px solid var(--border)}.delete-node-btn{width:100%;justify-content:center;display:flex;align-items:center;gap:6px}.design-modal-backdrop{position:fixed;inset:0;z-index:3000;background:#000000b3;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;padding:20px}.design-add-device-modal,.design-kit-modal{width:min(820px,100%);max-height:calc(100dvh - 60px);border-radius:14px;background:var(--card);border:1px solid var(--border);box-shadow:0 24px 60px #00000080;display:flex;flex-direction:column;overflow:hidden}.design-modal-header{padding:16px 20px;display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid var(--border)}.design-modal-title-group{display:flex;align-items:center;gap:12px}.design-modal-icon{width:40px;height:40px;border-radius:10px;display:grid;place-items:center;background:color-mix(in srgb,var(--primary) 15%,transparent);color:var(--primary)}.design-modal-icon.kit{background:color-mix(in srgb,var(--cat-radio) 15%,transparent);color:var(--cat-radio)}.design-modal-title-group h3{margin:0;font-size:17px;font-weight:700}.design-modal-title-group p{margin:2px 0 0;font-size:12px;color:var(--soft)}.design-modal-nav{display:flex;gap:8px;padding:10px 20px;border-bottom:1px solid var(--border);background:var(--input)}.design-modal-nav button{display:flex;align-items:center;gap:6px;padding:8px 16px;border-radius:8px;border:1px solid transparent;background:transparent;color:var(--soft);font-size:12px;font-weight:600;cursor:pointer}.design-modal-nav button.active{background:var(--card);border-color:var(--border);color:var(--text)}.design-modal-body{padding:18px 20px;overflow-y:auto;display:grid;gap:16px}.device-category-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:16px}.device-category-card{border-radius:10px;border:1px solid var(--border);background:color-mix(in srgb,var(--card) 95%,var(--border));padding:12px;display:grid;gap:10px}.device-category-card.cat-cctv{border-top:3px solid var(--cat-cctv)}.device-category-card.cat-networking,.device-category-card.cat-net{border-top:3px solid var(--cat-net)}.device-category-card.cat-radio{border-top:3px solid var(--cat-radio)}.device-category-card.cat-power{border-top:3px solid var(--cat-power)}.device-category-badge{display:flex;align-items:center;gap:6px;font-size:12px;font-weight:700}.device-category-card.cat-cctv .device-category-badge{color:var(--cat-cctv)}.device-category-card.cat-networking .device-category-badge,.device-category-card.cat-net .device-category-badge{color:var(--cat-net)}.device-category-card.cat-radio .device-category-badge{color:var(--cat-radio)}.device-category-card.cat-power .device-category-badge{color:var(--cat-power)}.device-picks-list{display:grid;gap:6px}.device-pick-btn{display:flex;align-items:center;gap:10px;padding:8px 10px;border-radius:8px;border:1px solid var(--border);background:var(--input);color:var(--text);cursor:pointer;text-align:left;transition:all .15s ease}.device-pick-btn:hover{border-color:var(--primary);background:color-mix(in srgb,var(--primary) 8%,var(--input))}.pick-icon{width:28px;height:28px;border-radius:6px;display:grid;place-items:center;background:#ffffff0d;flex-shrink:0}.pick-info{flex:1;display:grid;gap:1px}.pick-info strong{font-size:12px}.pick-info small{font-size:10px;color:var(--soft)}.pick-add-icon{color:var(--soft)}.device-pick-btn:hover .pick-add-icon{color:var(--primary)}.device-catalog-browser{display:grid;gap:12px}.catalog-filters-bar{display:grid;gap:8px}.catalog-search-box{display:flex;align-items:center;gap:8px;padding:6px 12px;border-radius:8px;border:1px solid var(--border);background:var(--input)}.catalog-search-box input{flex:1;border:none;background:transparent;color:var(--text);font-size:12.5px;outline:none}.catalog-category-chips{display:flex;flex-wrap:wrap;gap:6px}.catalog-chip{padding:5px 10px;border-radius:14px;border:1px solid var(--border);background:transparent;color:var(--soft);font-size:11px;cursor:pointer}.catalog-chip.active{background:var(--primary);color:#fff;border-color:var(--primary)}.catalog-items-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:10px;max-height:420px;overflow-y:auto}.catalog-item-card{padding:10px 12px;border-radius:8px;border:1px solid var(--border);background:var(--input);display:flex;flex-direction:column;gap:8px}.catalog-item-lead{display:flex;align-items:center;gap:8px}.catalog-type-icon{width:28px;height:28px;border-radius:6px;display:grid;place-items:center;background:#ffffff0d;color:var(--primary)}.catalog-item-names{display:grid;gap:1px}.catalog-item-names strong{font-size:12px}.catalog-item-names small{font-size:10px;color:var(--soft)}.catalog-item-specs{display:flex;flex-wrap:wrap;gap:4px}.spec-badge{font-size:9.5px;padding:2px 6px;border-radius:4px;background:#ffffff0f;color:var(--soft)}.spec-badge.poe{background:color-mix(in srgb,var(--amber) 15%,transparent);color:var(--amber)}.spec-badge.radio{background:color-mix(in srgb,var(--primary) 15%,transparent);color:var(--primary)}.catalog-add-btn{margin-top:auto;width:100%;justify-content:center}.kit-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:14px}.kit-card{border-radius:10px;border:1px solid var(--border);background:var(--input);padding:14px;display:flex;flex-direction:column;gap:12px;transition:all .15s ease}.kit-card:hover{border-color:color-mix(in srgb,var(--primary) 40%,var(--border))}.kit-name-badge{display:flex;align-items:center;justify-content:space-between;gap:8px}.kit-name-badge strong{font-size:13.5px;color:var(--text)}.kit-badge{padding:2px 8px;border-radius:10px;background:color-mix(in srgb,var(--primary) 15%,transparent);color:var(--primary);font-size:10px;font-weight:700}.kit-card p{margin:4px 0 0;font-size:11px;color:var(--soft);line-height:1.4}.kit-devices-list ul{margin:6px 0 0;padding:0;list-style:none;display:grid;gap:4px}.kit-devices-list li{display:flex;align-items:center;gap:6px;font-size:11px;color:var(--text)}.kit-check-icon{color:var(--green);flex-shrink:0}.kit-footer{margin-top:auto;display:flex;flex-direction:column;gap:8px;padding-top:10px;border-top:1px solid var(--border)}.kit-poe-info{display:flex;align-items:center;gap:5px;font-size:11px;color:var(--amber)}.kit-apply-btn{width:100%;justify-content:center}.catalog-badge-brand{font-size:11px;padding:2px 8px;border-radius:4px;font-weight:600;background:#93c5fd1f;color:#93c5fd;border:1px solid rgba(147,197,253,.25);display:inline-block}:root[data-theme=light] .catalog-badge-brand{background:#e0f2fe;color:#0369a1;border:1px solid #7dd3fc;font-weight:700}.catalog-model-cell{font-family:monospace;color:var(--text);font-weight:600;white-space:nowrap}:root[data-theme=light] .catalog-model-cell{color:#000;font-weight:700}.catalog-name-cell{font-weight:600;color:var(--text)}:root[data-theme=light] .catalog-name-cell{color:#000;font-weight:700}.catalog-notes-text{font-size:11px;color:var(--soft);font-style:italic;margin-top:2px}:root[data-theme=light] .catalog-notes-text{color:#334155;font-weight:500}.catalog-category-cell{display:inline-flex;align-items:center;gap:4px;font-size:11px;color:var(--soft)}:root[data-theme=light] .catalog-category-cell{color:#000;font-weight:600}.catalog-badge-radio{font-size:10px;padding:2px 6px;border-radius:3px;background:#c4b5fd24;color:#c4b5fd;border:1px solid rgba(196,181,253,.25);font-weight:600;display:inline-flex;align-items:center;gap:3px}:root[data-theme=light] .catalog-badge-radio{background:#ede9fe;color:#000;border:1px solid #a78bfa;font-weight:700}.catalog-badge-poe{font-size:10px;padding:2px 6px;border-radius:3px;background:#fde68a24;color:#fde68a;border:1px solid rgba(253,230,138,.3);font-weight:600;display:inline-flex;align-items:center;gap:3px}:root[data-theme=light] .catalog-badge-poe{background:#fef08a;color:#000;border:1px solid #eab308;font-weight:700}.catalog-badge-snmp{font-size:10px;padding:1px 5px;border-radius:3px;background:#93c5fd1a;color:#93c5fd;border:1px solid rgba(147,197,253,.2);font-weight:600}:root[data-theme=light] .catalog-badge-snmp{background:#dbeafe;color:#000;border:1px solid #60a5fa;font-weight:700}.catalog-chip-port{font-size:10px;font-family:monospace;padding:1px 5px;border-radius:3px;background:#ffffff0d;color:#cbd5e1;border:1px solid var(--border)}:root[data-theme=light] .catalog-chip-port{background:#f1f5f9;color:#000;border:1px solid #94a3b8;font-weight:600}.catalog-rtsp-text{font-size:10px;font-family:monospace;color:var(--soft)}:root[data-theme=light] .catalog-rtsp-text{color:#000;font-weight:600}.catalog-price-cell{color:var(--green);font-weight:600;white-space:nowrap}:root[data-theme=light] .catalog-price-cell{color:#15803d;font-weight:700}.catalog-badge-price{font-size:10px;padding:2px 6px;border-radius:3px;background:#6ee7b71f;color:#6ee7b7;font-weight:600}:root[data-theme=light] .catalog-badge-price{background:#dcfce7;color:#14532d;border:1px solid #86efac;font-weight:700}.catalog-card-title{margin:0 0 3px;font-size:14px;font-weight:600;color:var(--text);line-height:1.3}:root[data-theme=light] .catalog-card-title{color:#000;font-weight:700}.catalog-card-model{margin:0 0 10px;font-size:12px;color:var(--soft);font-family:monospace}:root[data-theme=light] .catalog-card-model{color:#1e293b;font-weight:600}:root[data-theme=light] .catalog-card-model strong{color:#000;font-weight:700}:root[data-theme=light] .catalog-table thead tr{color:#000;font-weight:700}:root[data-theme=light] .catalog-table th{color:#000;font-weight:700}.catalog-card-mon-head{display:flex;align-items:center;gap:4px;color:var(--soft)}:root[data-theme=light] .catalog-card-mon-head{color:#000;font-weight:700}:root[data-theme=light] .catalog-filter-brand-label{color:#000;font-weight:700}.canvas-grid-dot{fill:#3a494b}.canvas-grid-line{stroke:#1c2b3c}.canvas-major-grid{stroke:#273647}.canvas-crosshair,.canvas-radar-c1{stroke:#00dce6}.canvas-radar-c2{stroke:#3a494b}.canvas-radar-c3{stroke:#00f2fe}:root[data-theme=light] .network-workspace,:root[data-theme=light] .network-canvas-scroll{background-color:#f8fafc}:root[data-theme=light] .canvas-grid-dot{fill:#94a3b8}:root[data-theme=light] .canvas-grid-line{stroke:#e2e8f0}:root[data-theme=light] .canvas-major-grid{stroke:#cbd5e1}:root[data-theme=light] .canvas-crosshair{stroke:#3b82f6}:root[data-theme=light] .canvas-radar-c1{stroke:#3b82f6}:root[data-theme=light] .canvas-radar-c2{stroke:#94a3b8}:root[data-theme=light] .canvas-radar-c3{stroke:#2563eb}:root[data-theme=light] .network-group rect{fill:#fff;stroke:#94a3b8;stroke-width:1.5;filter:drop-shadow(0 2px 8px rgba(0,0,0,.07))}:root[data-theme=light] .network-group:hover rect{stroke:#2563eb}:root[data-theme=light] .network-group text{fill:#000;font-weight:800}:root[data-theme=light] .network-group .group-subtitle{fill:#334155;font-weight:700}:root[data-theme=light] .network-group.unassigned rect{fill:#fffbeb;stroke:#d97706}:root[data-theme=light] .network-group.unassigned text{fill:#b45309;font-weight:800}:root[data-theme=light] .network-node{background:#fff;border:1px solid #cbd5e1;border-left:3px solid var(--green);color:#0f172a;box-shadow:0 2px 10px #00000014}:root[data-theme=light] .network-node:hover{border-color:#2563eb;box-shadow:0 4px 14px #2563eb33;transform:translateY(-1px)}:root[data-theme=light] .network-node.selected{border-color:#2563eb;background:#eff6ff;box-shadow:0 0 0 2px #2563eb,0 4px 14px #2563eb40}:root[data-theme=light] .network-node>i{background:#eff6ff;color:#1d4ed8;border:1px solid #bfdbfe}:root[data-theme=light] .network-node strong{color:#000;font-weight:700}:root[data-theme=light] .network-node code{color:#1e40af;font-weight:700}:root[data-theme=light] .network-node small{color:#334155;font-weight:600}:root[data-theme=light] .network-node.root_failure{background:#fef2f2;border-color:#fca5a5;border-left-color:#dc2626}:root[data-theme=light] .network-node.root_failure>i{background:#fee2e2;color:#dc2626;border-color:#f87171}:root[data-theme=light] .network-node.root_failure strong{color:#991b1b}:root[data-theme=light] .network-node.consequence{background:#fff7ed;border-color:#fdba74;border-left-color:#ea580c}:root[data-theme=light] .network-node.degraded{background:#fffbeb;border-color:#fde68a;border-left-color:#d97706}:root[data-theme=light] .network-node.maintenance{background:#f5f3ff;border-color:#ddd6fe;border-left-color:#7c3aed}:root[data-theme=light] .network-edge text{fill:#000;stroke:#fff;stroke-width:4px;font-weight:700}:root[data-theme=light] .network-edge.wired path{stroke:#0284c7;stroke-width:2.5;filter:none}:root[data-theme=light] .network-edge.ptp path{stroke:#d97706;stroke-width:2.4;filter:none}:root[data-theme=light] .network-edge.ptmp path{stroke:#7c3aed;stroke-width:2.2;filter:none}:root[data-theme=light] .network-edge.vpn path{stroke:#059669;stroke-width:2.2}:root[data-theme=light] .network-edge.problem path{stroke:#dc2626;stroke-width:3.5}:root[data-theme=light] .network-inspector{background:#fff;border-left:1px solid #cbd5e1;box-shadow:-4px 0 20px #00000014}:root[data-theme=light] .network-inspector-title h2{color:#000;font-weight:700}:root[data-theme=light] .network-inspector-title code{color:#1e40af;font-weight:700}:root[data-theme=light] .network-inspector-title>i{background:#eff6ff;color:#1d4ed8;border:1px solid #bfdbfe}:root[data-theme=light] .network-connection-row{background:#f8fafc;border:1px solid #e2e8f0}:root[data-theme=light] .network-connection-row b{color:#000;font-weight:700}:root[data-theme=light] .network-connection-row code{color:#1e40af}:root[data-theme=light] .network-connection-row>small{color:#475569}:root[data-theme=light] .radar-hud-card{background:#fffffff2;border:1px solid #cbd5e1;box-shadow:0 4px 14px #00000014}:root[data-theme=light] .radar-hud-coords{color:#334155;font-weight:600}:root[data-theme=light] .radar-hud-coords b{color:#000;font-weight:700}:root[data-theme=light] .network-legend{background:#fff;border-top:1px solid #cbd5e1;color:#1e293b;font-weight:500}:root[data-theme=light] .network-legend span{color:#0f172a}:root[data-theme=light] .network-summary{color:#334155}:root[data-theme=light] .network-summary b{color:#000;font-weight:700}:root[data-theme=light] .network-edge-filters b{background:#e2e8f0;color:#0f172a}:root[data-theme=light] .network-edge-filters .wired.active{background:#eff6ff;border-color:#0284c7;color:#0369a1}:root[data-theme=light] .network-edge-filters .ptp.active{background:#fffbeb;border-color:#d97706;color:#b45309}:root[data-theme=light] .network-edge-filters .ptmp.active{background:#f5f3ff;border-color:#7c3aed;color:#6d28d9}:root[data-theme=light] .network-edge-filters .vpn.active{background:#ecfdf5;border-color:#059669;color:#047857}:root[data-theme=light] .site-map{background-color:#f1f5f9;background-image:linear-gradient(rgba(37,99,235,.08) 1px,transparent 1px),linear-gradient(90deg,rgba(37,99,235,.08) 1px,transparent 1px)}:root[data-theme=light] .site-map:before{color:#475569}:root[data-theme=light] .map-marker{background:#fff;color:#0f172a;border:1px solid #2563eb;box-shadow:0 2px 8px #0000001f}:root[data-theme=light] .map-marker b{color:#000;font-weight:700}:root[data-theme=light] .map-marker small{color:#475569;font-weight:600}:root[data-theme=light] .geo-map{background:#f1f5f9}:root[data-theme=light] .map-backdrop{background-color:#f8fafc}:root[data-theme=light] .station-tooltip{background:#fff;color:#000;border:1px solid #cbd5e1;font-weight:700}.notifications-page{display:flex;flex-direction:column;gap:16px;width:100%}.notifications-kpi-bar{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:12px}.notifications-kpi-bar .kpi-card{display:flex;align-items:center;gap:14px;padding:14px 18px;border-radius:var(--radius, 10px);background:var(--card);border:1px solid var(--border);box-shadow:0 1px 3px #0000000d;transition:transform .15s ease,border-color .15s ease}.notifications-kpi-bar .kpi-card:hover{transform:translateY(-1px)}.notifications-kpi-bar .kpi-card.critical{border-color:#ef444459;background:linear-gradient(135deg,var(--card) 0%,rgba(239,68,68,.06) 100%)}.notifications-kpi-bar .kpi-card.critical .kpi-icon{background:#ef444426;color:#ef4444}.notifications-kpi-bar .kpi-card.critical b{color:#ef4444}.notifications-kpi-bar .kpi-card.warning{border-color:#f59e0b59;background:linear-gradient(135deg,var(--card) 0%,rgba(245,158,11,.06) 100%)}.notifications-kpi-bar .kpi-card.warning .kpi-icon{background:#f59e0b26;color:#f59e0b}.notifications-kpi-bar .kpi-card.warning b{color:#f59e0b}.notifications-kpi-bar .kpi-card.nominal .kpi-icon{background:#10b98126;color:#10b981}.notifications-kpi-bar .kpi-icon{display:flex;align-items:center;justify-content:center;width:42px;height:42px;border-radius:10px;flex-shrink:0}.notifications-kpi-bar .kpi-content{display:flex;flex-direction:column;gap:2px}.notifications-kpi-bar .kpi-content small{font-size:11px;color:var(--soft);text-transform:uppercase;letter-spacing:.04em;font-weight:600}.notifications-kpi-bar .kpi-content b{font-size:22px;font-family:JetBrains Mono,monospace;font-weight:700;line-height:1.1;color:var(--text)}.notifications-filter-bar{display:flex;align-items:center;gap:10px;flex-wrap:wrap;padding:10px 14px;background:var(--card);border:1px solid var(--border);border-radius:var(--radius, 10px)}.notifications-filter-bar .search-box{display:flex;align-items:center;gap:8px;background:var(--input);border:1px solid var(--border);border-radius:8px;padding:0 10px;height:36px;flex:1 1 260px;min-width:220px}.notifications-filter-bar .search-box .search-icon{color:var(--soft);flex-shrink:0}.notifications-filter-bar .search-box input{background:transparent;border:none;outline:none;width:100%;font-size:13px;color:var(--text)}.notifications-filter-bar .search-box .clear-search{background:none;border:none;padding:2px;cursor:pointer;color:var(--soft);display:flex;align-items:center;justify-content:center;border-radius:4px}.notifications-filter-bar .search-box .clear-search:hover{color:var(--text)}.notifications-filter-bar .filter-select-group{display:flex;align-items:center;gap:6px;background:var(--input);border:1px solid var(--border);border-radius:8px;padding:0 10px;height:36px}.notifications-filter-bar .filter-select-group .filter-icon{color:var(--soft);flex-shrink:0}.notifications-filter-bar .filter-select-group select{background:transparent;border:none;outline:none;font-size:13px;color:var(--text);cursor:pointer;padding-right:6px}.notifications-filter-bar .time-filter-pills{display:flex;align-items:center;gap:4px;background:var(--input);border:1px solid var(--border);border-radius:8px;padding:3px;margin-left:auto}.notifications-filter-bar .time-filter-pills .pill{background:none;border:none;padding:4px 10px;border-radius:6px;font-size:12px;font-weight:500;color:var(--soft);cursor:pointer;transition:all .15s ease}.notifications-filter-bar .time-filter-pills .pill:hover{color:var(--text)}.notifications-filter-bar .time-filter-pills .pill.active{background:var(--primary);color:#fff;font-weight:600}.notifications-tabs{display:flex;align-items:center;gap:8px;border-bottom:1px solid var(--border);padding-bottom:6px;overflow-x:auto}.notifications-tabs .tab-btn{display:inline-flex;align-items:center;gap:8px;padding:8px 14px;border-radius:8px;background:var(--card);border:1px solid var(--border);color:var(--soft);font-size:13px;font-weight:600;cursor:pointer;transition:all .15s ease;white-space:nowrap}.notifications-tabs .tab-btn:hover{background:var(--card-high);color:var(--text);border-color:var(--primary)}.notifications-tabs .tab-btn.active{background:var(--primary);border-color:var(--primary);color:#fff}.notifications-tabs .tab-btn.active .tab-badge{background:#ffffff40;color:#fff}.notifications-tabs .tab-btn.tab-critical.active{background:#ef4444;border-color:#dc2626}.notifications-tabs .tab-btn.tab-warning.active{background:#f59e0b;border-color:#d97706}.notifications-tabs .tab-btn.tab-resolved.active{background:#10b981;border-color:#059669}.notifications-tabs .tab-badge{display:inline-flex;align-items:center;justify-content:center;min-width:20px;height:20px;padding:0 6px;border-radius:10px;background:var(--input);color:var(--soft);font-size:11px;font-family:JetBrains Mono,monospace;font-weight:700}.notifications-tabs .tab-badge.active-badge-danger{background:#ef4444;color:#fff}.notification-cards-grid{display:flex;flex-direction:column;gap:12px}.notification-card{display:flex;flex-direction:column;gap:12px;background:var(--card);border:1px solid var(--border);border-radius:var(--radius, 10px);padding:14px 16px;box-shadow:0 1px 3px #0000000a;position:relative;overflow:hidden;border-left-width:4px;transition:transform .15s ease,box-shadow .15s ease}.notification-card:hover{transform:translateY(-1px);box-shadow:0 4px 12px #00000012}.notification-card.card-critical{border-left-color:#ef4444;background:linear-gradient(90deg,rgba(239,68,68,.04) 0%,var(--card) 30%)}.notification-card.card-warning{border-left-color:#f59e0b;background:linear-gradient(90deg,rgba(245,158,11,.04) 0%,var(--card) 30%)}.notification-card.card-resolved{border-left-color:#10b981}.notification-card.card-info{border-left-color:var(--primary)}.notification-card .card-header{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap}.notification-card .severity-badge-row{display:flex;align-items:center;gap:10px}.notification-card .severity-tag{display:inline-flex;align-items:center;gap:5px;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.05em;padding:3px 8px;border-radius:6px}.notification-card.card-critical .severity-tag{background:#ef444426;color:#ef4444;border:1px solid rgba(239,68,68,.3)}.notification-card.card-warning .severity-tag{background:#f59e0b26;color:#f59e0b;border:1px solid rgba(245,158,11,.3)}.notification-card.card-resolved .severity-tag{background:#10b98126;color:#10b981;border:1px solid rgba(16,185,129,.3)}.notification-card.card-info .severity-tag{background:#3b82f626;color:#3b82f6;border:1px solid rgba(59,130,246,.3)}.notification-card .event-time{display:inline-flex;align-items:center;gap:4px;font-size:12px;color:var(--soft)}.notification-card .duration-indicator{font-size:12px}.notification-card .duration-resolved{color:var(--soft)}.notification-card .duration-resolved b{color:var(--text);font-family:JetBrains Mono,monospace}.notification-card .duration-active{display:inline-flex;align-items:center;gap:6px;color:#ef4444;font-weight:600}.notification-card .duration-active b{font-family:JetBrains Mono,monospace;font-weight:700}.notification-card .pulse-dot{width:8px;height:8px;border-radius:50%;background:#ef4444;box-shadow:0 0 #ef4444b3;animation:pulse-danger 1.8s infinite}@keyframes pulse-danger{0%{transform:scale(.95);box-shadow:0 0 #ef4444b3}70%{transform:scale(1);box-shadow:0 0 0 6px #ef444400}to{transform:scale(.95);box-shadow:0 0 #ef444400}}.notification-card .card-device-info{display:flex;align-items:center;gap:12px;padding:10px 12px;border-radius:8px;background:var(--input);border:1px solid var(--border)}.notification-card .device-avatar{display:flex;align-items:center;justify-content:center;width:40px;height:40px;border-radius:8px;background:var(--card);border:1px solid var(--border);color:var(--primary);flex-shrink:0}.notification-card .device-details{display:flex;flex-direction:column;gap:4px;min-width:0;flex:1}.notification-card .device-title-row{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.notification-card .device-name{font-size:14px;font-weight:700;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.notification-card .device-ip{font-size:12px;font-family:JetBrains Mono,monospace;padding:2px 6px;background:var(--card);border:1px solid var(--border);border-radius:4px;color:var(--text)}.notification-card .device-meta-row{display:flex;align-items:center;gap:6px;flex-wrap:wrap}.notification-card .meta-pill{font-size:11px;padding:1px 6px;border-radius:4px;background:var(--card);border:1px solid var(--border);color:var(--soft)}.notification-card .meta-pill.brand-pill{font-weight:600;color:var(--primary)}.notification-card .card-location-row{display:flex;align-items:center;gap:12px;flex-wrap:wrap;font-size:12px}.notification-card .location-item{display:inline-flex;align-items:center;gap:5px;padding:3px 8px;border-radius:6px;background:var(--card-high);border:1px solid var(--border);color:var(--text);font-weight:500}.notification-card .location-item.plant{color:var(--primary);border-color:#3b82f640}.notification-card .location-item.station{color:#10b981;border-color:#10b98140}.notification-card .card-issue-box{display:flex;flex-direction:column;gap:6px}.notification-card .issue-title{margin:0;font-size:13px;font-weight:700;color:var(--text)}.notification-card .issue-detail{margin:0;font-size:12px;color:var(--soft);line-height:1.5}.notification-card .event-diagnosis{margin-top:6px;font-size:12px;background:var(--input);border:1px solid var(--border);border-radius:6px;padding:6px 10px}.notification-card .event-diagnosis summary{cursor:pointer;font-weight:600;color:var(--primary);outline:none}.notification-card .event-diagnosis .diagnosis-body{margin-top:8px;display:flex;flex-direction:column;gap:6px;padding-top:6px;border-top:1px solid var(--border)}.notification-card .event-diagnosis p{margin:0}.notification-card .event-diagnosis ul,.notification-card .event-diagnosis ol{margin:4px 0 0 16px;padding:0}.notification-card .card-actions-bar{display:flex;align-items:center;gap:8px;padding-top:10px;border-top:1px solid var(--border);margin-top:auto}.notification-card .action-btn{display:inline-flex;align-items:center;gap:6px;padding:6px 12px;border-radius:6px;font-size:12px;font-weight:600;text-decoration:none;cursor:pointer;transition:all .15s ease}.notification-card .action-btn.device-action{background:var(--input);border:1px solid var(--border);color:var(--text)}.notification-card .action-btn.device-action:hover{background:var(--card-high);border-color:var(--primary);color:var(--primary)}.notification-card .action-btn.map-action{background:#10b98114;border:1px solid rgba(16,185,129,.3);color:#10b981}.notification-card .action-btn.map-action:hover{background:#10b9812e;border-color:#10b981}.audit-timeline{display:flex;flex-direction:column;gap:10px}.audit-item{display:flex;align-items:flex-start;gap:12px;padding:12px 14px;background:var(--card);border:1px solid var(--border);border-radius:8px}.audit-dot{width:10px;height:10px;border-radius:50%;background:var(--primary);margin-top:4px;flex-shrink:0}.audit-content{display:flex;flex-direction:column;gap:4px;width:100%}.audit-main-row{display:flex;align-items:center;justify-content:space-between;gap:10px}.audit-action{font-size:13px;color:var(--text)}.audit-time{font-size:11px;color:var(--soft)}.audit-meta-row{display:flex;align-items:center;gap:14px;font-size:12px;color:var(--soft)}.audit-meta-row code{font-size:11px;font-family:JetBrains Mono,monospace;padding:1px 4px;background:var(--input);border-radius:4px}.page-devices-layout,.devices-content-wrap{width:100%;min-width:0}.device-modal-backdrop{z-index:140}.device-modal{width:min(1520px,calc(100vw - 48px));height:min(920px,calc(100vh - 48px));max-width:1600px;max-height:calc(100vh - 48px);padding:0;display:flex;flex-direction:column;overflow:hidden;border-radius:14px;background:var(--card);border:1px solid var(--border);box-shadow:0 24px 60px #00000073}.device-modal-header{min-height:76px;padding:14px 20px;display:flex;align-items:center;justify-content:space-between;gap:16px;border-bottom:1px solid var(--border);background:var(--card2);flex-shrink:0}.device-modal-title-wrap{display:flex;align-items:center;gap:14px;min-width:0}.device-modal-icon{width:44px;height:44px;display:grid;place-items:center;border-radius:10px;background:#3b82f624;color:var(--primary);flex-shrink:0}.device-modal-title-wrap h2{margin:2px 0 0;font-size:18px;font-weight:700;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.device-modal-identity{display:flex;align-items:center;gap:8px;margin-left:auto;flex-wrap:wrap}.device-modal-identity .identity-ip{display:flex;flex-direction:column;gap:2px;padding:4px 10px;border-radius:6px;background:var(--input);border:1px solid var(--border)}.device-modal-identity .identity-ip small,.device-modal-identity .identity-item small{font-size:9px;color:var(--soft);text-transform:uppercase;letter-spacing:.04em;font-weight:600}.device-modal-identity .identity-ip code{font-size:12px;font-family:JetBrains Mono,monospace;color:var(--text);font-weight:600}.device-modal-identity .identity-item{display:flex;flex-direction:column;gap:2px;padding:4px 10px;border-radius:6px;background:var(--input);border:1px solid var(--border)}.device-modal-identity .identity-item b{font-size:12px;color:var(--text);white-space:nowrap}.device-modal-tabs{display:flex;align-items:center;gap:6px;padding:0 16px;border-bottom:1px solid var(--border);background:var(--card2);flex-shrink:0;overflow-x:auto}.device-modal-tabs button{min-height:44px;padding:0 16px;border:0;border-bottom:2px solid transparent;background:transparent;color:var(--soft);font-size:13px;font-weight:600;cursor:pointer;display:inline-flex;align-items:center;gap:8px;transition:all .15s ease;white-space:nowrap}.device-modal-tabs button:hover{color:var(--text)}.device-modal-tabs button.active{border-bottom-color:var(--primary);color:var(--primary)}.device-modal-tabs .tab-pill{font-size:10px;padding:2px 7px;border-radius:10px;background:#3b82f626;color:var(--primary);font-family:JetBrains Mono,monospace;font-weight:700}.device-modal-body{flex:1;min-height:0;padding:20px 24px;overflow-y:auto;overflow-x:hidden;background:color-mix(in srgb,var(--bg) 40%,var(--card))}.device-tab-overview{display:flex;flex-direction:column;gap:16px}.device-overview-cards{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:12px}@media(max-width:1300px){.device-overview-cards{grid-template-columns:repeat(3,minmax(0,1fr))}}@media(max-width:800px){.device-overview-cards{grid-template-columns:1fr}}.device-overview-card{display:flex;align-items:center;gap:12px;padding:12px 14px;border-radius:10px;background:var(--card);border:1px solid var(--border);box-shadow:0 1px 3px #0000000a}.device-overview-card i{width:36px;height:36px;display:grid;place-items:center;border-radius:8px;background:#3b82f61f;color:var(--primary);font-style:normal;flex-shrink:0}.device-overview-card div{display:flex;flex-direction:column;gap:2px;min-width:0}.device-overview-card small{font-size:10px;color:var(--soft);text-transform:uppercase;letter-spacing:.04em;font-weight:600}.device-overview-card b{font-size:13px;font-weight:600;color:var(--text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.device-overview-card code{font-size:11px;color:var(--soft);font-family:JetBrains Mono,monospace}.device-overview-card .card-link{font-size:11px;color:var(--primary);font-weight:600;text-decoration:none;margin-top:2px;cursor:pointer}.device-overview-card .card-link:hover{text-decoration:underline}.device-overview-card.failure-card{cursor:pointer;text-align:left;transition:transform .15s ease,border-color .15s ease}.device-overview-card.failure-card:hover{transform:translateY(-1px);border-color:var(--primary)}.device-overview-card.failure-card.has-failures{border-color:#ef444459;background:linear-gradient(135deg,var(--card) 0%,rgba(239,68,68,.07) 100%)}.device-overview-card.failure-card.has-failures i{background:#ef444426;color:#ef4444}.device-overview-card.failure-card.has-failures b{color:#ef4444}.device-ruler-timeline-card{width:100%;display:flex;flex-direction:column;gap:10px;padding:16px 18px;border-radius:10px;background:var(--card);border:1px solid var(--border);box-shadow:0 1px 3px #0000000a}.ruler-timeline-header{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}.ruler-timeline-title{display:flex;align-items:center;gap:8px;color:var(--primary)}.ruler-timeline-title .section-label{font-size:12px;font-weight:700;color:var(--soft);text-transform:uppercase;letter-spacing:.04em}.ruler-timeline-stats{display:flex;align-items:center;gap:10px}.ruler-stat-pill{padding:3px 9px;border-radius:12px;font-size:11px;font-weight:700;font-family:JetBrains Mono,monospace}.ruler-stat-pill.stat-ok{background:#10b98124;color:#10b981;border:1px solid rgba(16,185,129,.3)}.ruler-stat-pill.stat-warn{background:#ef444424;color:#ef4444;border:1px solid rgba(239,68,68,.3)}.ruler-stat-hint{font-size:11px;color:var(--soft)}.ruler-bars-container{display:grid;grid-template-columns:repeat(24,1fr);gap:4px;height:28px;width:100%}.ruler-bar-segment{border-radius:4px;cursor:pointer;transition:transform .12s ease,filter .12s ease;min-width:2px}.ruler-bar-segment:hover{transform:scaleY(1.15);filter:brightness(1.2)}.ruler-bar-segment.ok{background:#10b981}.ruler-bar-segment.fail{background:#ef4444}.ruler-bar-segment.unknown{background:var(--input);border:1px dashed var(--border)}.ruler-ticks-track{display:flex;justify-content:space-between;width:100%;padding:0 2px;border-bottom:1px solid var(--border);margin-top:2px;height:9px}.ruler-tick{width:1px;background:var(--border);align-self:flex-end}.ruler-tick.major{height:8px;background:var(--soft)}.ruler-tick.medium{height:5px;background:var(--border)}.ruler-tick.minor{height:3px;background:var(--border);opacity:.6}.ruler-time-axis{display:flex;justify-content:space-between;font-family:JetBrains Mono,monospace;font-size:11px;color:var(--soft);padding-top:4px}.overview-web-section{display:flex;align-items:center;gap:12px;padding:12px 16px;border-radius:10px;background:var(--card);border:1px solid var(--border);flex-wrap:wrap}.overview-web-section .section-label,.overview-tools-section .section-label,.overview-upstream-section .section-label{font-size:12px;font-weight:700;color:var(--soft);text-transform:uppercase;letter-spacing:.04em}.overview-web-section .web-buttons{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.overview-tools-section{display:flex;flex-direction:column;gap:10px;padding:16px;border-radius:10px;background:var(--card);border:1px solid var(--border)}.tools-buttons-grid{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.tools-buttons-grid .button{height:38px;padding:0 14px;font-size:13px;font-weight:600;display:inline-flex;align-items:center;gap:8px;background:var(--input);border:1px solid var(--border);color:var(--text)}.tools-buttons-grid .button:hover{border-color:var(--primary);color:var(--primary)}.overview-upstream-section{display:flex;flex-direction:column;gap:10px;padding:16px;border-radius:10px;background:var(--card);border:1px solid var(--border)}.upstream-device-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:10px}.upstream-item{display:flex;align-items:center;gap:12px;padding:10px 14px;border-radius:8px;background:var(--input);border:1px solid var(--border)}.upstream-item .upstream-info{display:flex;flex-direction:column;gap:2px;flex:1;min-width:0}.upstream-item .upstream-info b{font-size:13px;color:var(--text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.upstream-item .upstream-info code{font-size:11px;color:var(--soft);font-family:JetBrains Mono,monospace}.upstream-item .upstream-port-tag{font-size:10px;color:var(--primary);font-weight:600;margin-top:1px}.upstream-empty{padding:12px 14px;border-radius:8px;background:var(--input);border:1px dashed var(--border);color:var(--soft);font-size:12px}.device-tab-telemetry{display:flex;flex-direction:column;gap:24px}.device-checks-section{display:flex;flex-direction:column;gap:14px;padding:18px;border-radius:10px;background:var(--card);border:1px solid var(--border)}.device-checks-section .checks-header{display:flex;justify-content:space-between;align-items:flex-start;gap:14px}.device-checks-section .checks-header h3{margin:2px 0 4px;font-size:16px;font-weight:700}.check-create-panel{padding:14px;border-radius:8px;background:var(--input);border:1px solid var(--border);display:flex;flex-direction:column;gap:12px}.check-create-panel .check-row.check-create{display:flex;align-items:center;gap:10px;border:0;padding:0}.checks-list{display:flex;flex-direction:column;gap:10px}.device-tab-edit{padding:6px 0}.device-edit-form{display:flex;flex-direction:column;gap:20px}.device-form-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px 18px}.device-form-grid .span-2{grid-column:1 / -1}.upstream-multi-select{height:95px!important;padding:6px}.device-checkboxes-row{display:flex;flex-direction:column;gap:10px;padding:14px 18px;border-radius:8px;background:var(--input);border:1px solid var(--border)}.device-checkboxes-row .checkbox{display:flex;align-items:center;gap:10px;font-size:13px;color:var(--text);cursor:pointer}.device-checkboxes-row .checkbox input{min-height:auto;width:17px;height:17px;accent-color:var(--primary);cursor:pointer}.device-form-footer{display:flex;align-items:center;justify-content:space-between;gap:14px;padding-top:14px;border-top:1px solid var(--border);margin-top:6px}.device-form-footer .footer-right-actions{display:flex;align-items:center;gap:10px;margin-left:auto}@media(max-width:900px){.device-modal-header{flex-direction:column;align-items:flex-start;gap:12px}.device-modal-identity{margin-left:0;width:100%}.device-form-grid{grid-template-columns:1fr}}@media(max-width:767px){.device-modal-backdrop{padding:0}.device-modal{width:100%;height:100vh;border-radius:0;border:0}.device-modal-header{padding:12px}.device-modal-body{padding:14px}.device-overview-cards{grid-template-columns:1fr}.tools-buttons-grid{flex-direction:column;align-items:stretch}.tools-buttons-grid .button{width:100%;justify-content:center}.device-form-footer{flex-direction:column;align-items:stretch}.device-form-footer .footer-right-actions{width:100%;justify-content:stretch}.device-form-footer .footer-right-actions .button{flex:1;justify-content:center}}.leaflet-tooltip.distance-tooltip.interactive-link-bubble{padding:0!important;background:transparent!important;border:none!important;box-shadow:none!important;pointer-events:auto!important;cursor:pointer!important;-webkit-user-select:none;user-select:none}.distance-tooltip.interactive-link-bubble:before{display:none!important}.link-bubble-container{display:inline-flex;align-items:center;pointer-events:auto!important;cursor:pointer!important}.link-bubble-pill{display:inline-flex;align-items:center;gap:6px;padding:5px 11px;border-radius:20px;background:#000;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border:1.5px solid rgba(59,130,246,.75);color:#fff;font-family:JetBrains Mono,monospace;font-size:11px;font-weight:600;box-shadow:0 4px 14px #000000a6,0 0 12px #3b82f659;transition:all .18s cubic-bezier(.16,1,.3,1);white-space:nowrap}:root[data-theme=light] .link-bubble-pill{background:#fff;color:#0f172a;border:1.5px solid rgba(37,99,235,.75);box-shadow:0 4px 14px #00000026,0 0 10px #2563eb40}.distance-tooltip.interactive-link-bubble:hover .link-bubble-pill{transform:scale(1.08) translateY(-2px);border-color:#60a5fa;box-shadow:0 6px 20px #000000d9,0 0 20px #3b82f6d9;background:#000}:root[data-theme=light] .distance-tooltip.interactive-link-bubble:hover .link-bubble-pill{border-color:#2563eb;box-shadow:0 6px 20px #0003,0 0 20px #2563eb59;background:#fff}.distance-tooltip.interactive-link-bubble.selected .link-bubble-pill{border-color:#f59e0b;box-shadow:0 6px 20px #000000d9,0 0 22px #f59e0be6;background:#000;color:#fbbf24}:root[data-theme=light] .distance-tooltip.interactive-link-bubble.selected .link-bubble-pill{border-color:#d97706;box-shadow:0 6px 20px #00000038,0 0 22px #d9770673;background:#fff;color:#b45309}.distance-tooltip.interactive-link-bubble.problem .link-bubble-pill{border-color:#ef4444;box-shadow:0 4px 14px #000000a6,0 0 16px #ef4444a6}:root[data-theme=light] .distance-tooltip.interactive-link-bubble.problem .link-bubble-pill{border-color:#ef4444;box-shadow:0 4px 14px #ef444433,0 0 14px #ef444459}.link-bubble-dot{width:7px;height:7px;border-radius:50%;background:#38bdf8;box-shadow:0 0 8px #38bdf8;flex-shrink:0}.distance-tooltip.interactive-link-bubble.selected .link-bubble-dot{background:#f59e0b;box-shadow:0 0 8px #f59e0b}.distance-tooltip.interactive-link-bubble.problem .link-bubble-dot{background:#ef4444;box-shadow:0 0 8px #ef4444}.link-bubble-name{color:inherit;font-weight:700;letter-spacing:.02em}.link-bubble-sep{color:#94a3b8b3}:root[data-theme=light] .link-bubble-sep{color:#64748bcc}.link-bubble-dist{color:#cbd5e1;font-size:10.5px}:root[data-theme=light] .link-bubble-dist{color:#475569}.link-bubble-badge-alert{padding:1px 5px;border-radius:4px;background:#ef444440;color:#ef4444;font-size:10px;font-weight:800;border:1px solid rgba(239,68,68,.4)}.map-legend-widget{background:#0f172af0;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border:1px solid rgba(51,65,85,.65);border-radius:8px;padding:8px 12px;font-size:11px;color:#cbd5e1;box-shadow:0 6px 20px #0006;transition:max-width .2s ease,box-shadow .2s ease;-webkit-user-select:none;user-select:none}:root[data-theme=light] .map-legend-widget{background:#fffffff5;border:1px solid rgba(203,213,225,.85);color:#334155;box-shadow:0 6px 20px #0000001f}.map-legend-header{display:flex;align-items:center;justify-content:space-between;cursor:grab;border-bottom:1px solid rgba(51,65,85,.6);padding-bottom:6px;margin-bottom:8px}.map-legend-header:active{cursor:grabbing}.map-legend-widget.collapsed .map-legend-header{border-bottom:none;padding-bottom:0;margin-bottom:0}:root[data-theme=light] .map-legend-header{border-bottom-color:#cbd5e1cc}:root[data-theme=light] .map-legend-header strong{color:#0f172a!important}:root[data-theme=light] .map-legend-widget span{color:#334155}.map-page-layout.link-drawer-open{grid-template-columns:minmax(0,1fr) 460px}@media(max-width:1200px){.map-page-layout.link-drawer-open{grid-template-columns:minmax(0,1fr) 400px}}@media(max-width:767px){.map-page-layout.link-drawer-open{grid-template-columns:1fr}}.link-side-panel{display:flex;flex-direction:column;gap:16px;height:calc(100vh - 135px);overflow-y:auto;padding:18px;background:var(--card);border:1px solid var(--border);border-left:0;border-radius:0 10px 10px 0}.link-drawer-header{display:flex;align-items:flex-start;justify-content:space-between;gap:14px;padding-bottom:14px;border-bottom:1px solid var(--border)}.link-drawer-header h2{margin:3px 0 2px;font-size:17px;font-weight:700;display:flex;align-items:center;gap:8px}.link-drawer-header p{margin:0;color:var(--soft);font-size:11px}.link-status-banner{display:flex;align-items:center;justify-content:space-between;padding:10px 14px;border-radius:8px;background:var(--input);border:1px solid var(--border);gap:10px}.link-status-banner.operational{border-color:#10b98159;background:#10b98114}.link-status-banner.problem{border-color:#ef444466;background:#ef44441a}.link-status-info{display:flex;align-items:center;gap:8px;font-size:12px;font-weight:600}.link-status-info i{width:8px;height:8px;border-radius:50%;background:#10b981}.link-status-banner.problem .link-status-info i{background:#ef4444}.link-type-tag{font-size:10.5px;padding:2px 7px;border-radius:5px;background:var(--card);border:1px solid var(--border);color:var(--soft);font-family:JetBrains Mono,monospace}.link-bandwidth-box{display:flex;flex-direction:column;gap:12px;padding:14px;border-radius:10px;background:var(--card2);border:1px solid var(--border)}.bandwidth-box-head{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap}.bandwidth-title{display:flex;align-items:center;gap:7px;font-size:13px;font-weight:700;color:var(--text)}.bandwidth-title svg{color:var(--primary)}.bandwidth-timeframe-picker{display:flex;gap:4px;background:var(--input);padding:2px;border-radius:6px;border:1px solid var(--border)}.bandwidth-timeframe-picker button{padding:3px 8px;font-size:10.5px;font-weight:600;border-radius:4px;border:0;background:transparent;color:var(--soft);cursor:pointer;transition:all .12s ease}.bandwidth-timeframe-picker button.active{background:var(--primary);color:#fff}.bandwidth-kpis-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}.bandwidth-kpi-card{display:flex;align-items:center;gap:10px;padding:10px 12px;border-radius:8px;background:var(--input);border:1px solid var(--border)}.bandwidth-kpi-card.rx{border-left:3px solid #38bdf8}.bandwidth-kpi-card.tx{border-left:3px solid #a855f7}.bandwidth-kpi-icon{width:32px;height:32px;display:grid;place-items:center;border-radius:6px;flex-shrink:0}.bandwidth-kpi-card.rx .bandwidth-kpi-icon{background:#38bdf826;color:#38bdf8}.bandwidth-kpi-card.tx .bandwidth-kpi-icon{background:#a855f726;color:#a855f7}.bandwidth-kpi-data{display:flex;flex-direction:column;gap:1px;min-width:0}.bandwidth-kpi-data small{font-size:10px;color:var(--soft);text-transform:uppercase;font-weight:600;letter-spacing:.03em}.bandwidth-kpi-data strong{font-size:14px;font-family:JetBrains Mono,monospace;font-weight:700;color:var(--text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.bandwidth-kpi-data span{font-size:9.5px;color:var(--soft);font-family:JetBrains Mono,monospace;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.bandwidth-svg-wrap{width:100%;padding-top:4px}.bandwidth-svg-chart{width:100%;height:125px;overflow:visible}.bandwidth-svg-chart line.grid{stroke:var(--border);stroke-width:.8;stroke-dasharray:2 3}.bandwidth-svg-chart polygon.rx-area{fill:url(#linkRxGrad)}.bandwidth-svg-chart polygon.tx-area{fill:url(#linkTxGrad)}.bandwidth-svg-chart polyline.rx-line{fill:none;stroke:#38bdf8;stroke-width:2;vector-effect:non-scaling-stroke}.bandwidth-svg-chart polyline.tx-line{fill:none;stroke:#a855f7;stroke-width:2;vector-effect:non-scaling-stroke}.bandwidth-chart-footer{display:flex;align-items:center;justify-content:space-between;margin-top:4px;font-size:9.5px;color:var(--soft);font-family:JetBrains Mono,monospace}.bandwidth-legend{display:flex;align-items:center;gap:14px;margin-top:6px;padding-top:8px;border-top:1px solid var(--border);font-size:11px}.bandwidth-legend span{display:flex;align-items:center;gap:6px;color:var(--soft)}.bandwidth-legend span i{width:10px;height:3px;border-radius:2px}.bandwidth-legend span.rx i{background:#38bdf8}.bandwidth-legend span.tx i{background:#a855f7}.link-endpoints-container{display:flex;flex-direction:column;gap:10px}.link-endpoint-card{display:flex;flex-direction:column;gap:10px;padding:12px 14px;border-radius:10px;background:var(--card2);border:1px solid var(--border)}.link-endpoint-header{display:flex;align-items:center;justify-content:space-between;gap:8px}.link-endpoint-tag{font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.04em;padding:2px 7px;border-radius:4px;background:#3b82f626;color:var(--primary)}.link-endpoint-device-info{display:flex;align-items:flex-start;gap:10px}.link-endpoint-device-info .device-icon{width:34px;height:34px;display:grid;place-items:center;border-radius:8px;background:var(--input);color:var(--primary);flex-shrink:0}.link-endpoint-text{display:flex;flex-direction:column;gap:2px;min-width:0;flex:1}.link-endpoint-text strong{font-size:13px;color:var(--text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.link-endpoint-text code{font-size:11px;color:var(--soft);font-family:JetBrains Mono,monospace}.link-endpoint-text span{font-size:11px;color:var(--soft)}.link-endpoint-shortcuts{display:flex;align-items:center;gap:6px;flex-wrap:wrap;padding-top:8px;border-top:1px solid var(--border)}.link-endpoint-shortcuts .button{padding:0 8px;height:27px;font-size:11px;display:inline-flex;align-items:center;gap:4px;background:var(--input);border:1px solid var(--border);color:var(--text)}.link-endpoint-shortcuts .button:hover{border-color:var(--primary);color:var(--primary)}.link-radio-box{display:grid;grid-template-columns:repeat(auto-fit,minmax(110px,1fr));gap:8px;padding:10px 12px;border-radius:8px;background:var(--input);border:1px solid var(--border)}.link-radio-box .radio-metric{display:flex;flex-direction:column;gap:2px}.link-radio-box .radio-metric small{font-size:9.5px;color:var(--soft);text-transform:uppercase}.link-radio-box .radio-metric b{font-size:13px;font-family:JetBrains Mono,monospace;color:var(--text)}.leaflet-marker-draggable{cursor:grab!important}.leaflet-marker-draggable:active{cursor:grabbing!important}
