.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}}@font-face{font-family:Material Symbols Outlined;font-style:normal;font-weight:100 700;font-display:block;src:url(/assets/material-symbols-outlined-Bgl3Icaq.woff2) format("woff2")}.material-symbols-outlined{font-family:Material Symbols Outlined;font-weight:400;font-style:normal;font-size:24px;line-height:1;letter-spacing:normal;text-transform:none;display:inline-block;white-space:nowrap;word-wrap:normal;direction:ltr;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility;font-feature-settings:"liga"}:root{font-family:Arial,sans-serif;color:#111827;background-color:#f3f4f6}*{box-sizing:border-box}body{margin:0}.license-panel{--license-ink: #172033;--license-muted: #64748b;--license-line: #d9e1ec;--license-accent: #e97800;display:grid;grid-template-rows:auto minmax(280px,1fr) auto;flex:1;width:100%;min-height:0;gap:18px;margin:0;padding:12px;color:var(--license-ink);background:#fff;border:1px solid #d1d5db;border-radius:8px;overflow:auto}.license-panel .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}.license-status-cards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}.license-stat-card{display:flex;align-items:flex-start;gap:16px;padding:22px;border:1px solid var(--license-line);border-radius:12px;background:#fff;box-shadow:0 8px 24px #1e293b0f}.license-stat-icon{display:grid;place-items:center;flex:none;width:46px;height:46px;border-radius:50%;background:#eef2f7;color:var(--license-muted)}.license-stat-icon .material-symbols-outlined{display:block;width:24px;overflow:hidden;font-size:24px;line-height:1;text-align:center}.license-stat-label{display:block;color:var(--license-muted);font-size:.8rem;font-weight:600}.license-stat-title{display:block;margin:3px 0 6px;font-size:1.28rem;line-height:1.15;letter-spacing:-.02em}.license-stat-card p{margin:0;color:var(--license-muted);font-size:.84rem;display:flex;align-items:center;gap:8px;flex-wrap:wrap}.license-stat-card--valid .license-stat-icon,.license-stat-card--available .license-stat-icon{background:#e7f6ee;color:#087648}.license-stat-card--valid .license-stat-title,.license-stat-card--available .license-stat-title{color:#087648}.license-stat-card--full .license-stat-icon,.license-stat-card--over_limit .license-stat-icon{background:#fdf1e2;color:#b45309}.license-stat-card--full .license-stat-title,.license-stat-card--over_limit .license-stat-title{color:#b45309}.license-stat-card--unlicensed .license-stat-icon,.license-stat-card--invalid .license-stat-icon,.license-stat-card--machine_mismatch .license-stat-icon,.license-stat-card--machine_unavailable .license-stat-icon,.license-stat-card--unavailable .license-stat-icon{background:#fdecec;color:#b42318}.license-stat-card--unlicensed .license-stat-title,.license-stat-card--invalid .license-stat-title,.license-stat-card--machine_mismatch .license-stat-title,.license-stat-card--machine_unavailable .license-stat-title,.license-stat-card--unavailable .license-stat-title{color:#b42318}.license-stat-card--type .license-stat-icon{background:#eef0fb;color:#4f46e5}.license-stat-card--validity .license-stat-icon{background:#e7f6ee;color:#087648}.license-stat-card--validity .license-stat-title{color:#087648}.license-inline-badge{display:inline-flex;align-items:center;padding:2px 10px;border-radius:999px;background:#eef2f7;color:#475569;font-size:.76rem;font-weight:700}.license-dashboard{display:grid;grid-template-columns:minmax(0,1fr) minmax(320px,1fr);align-items:stretch;min-height:0;gap:18px}.license-capacity-card,.license-identity-card{display:flex;flex-direction:column;height:100%}.license-capacity-card,.license-identity-card,.license-ops-card{padding:24px;border:1px solid var(--license-line);border-radius:12px;background:#fff;box-shadow:0 8px 24px #1e293b0f}.license-capacity-card h3,.license-identity-card h3,.license-ops-card h3{margin:0 0 18px;font-size:1.05rem}.license-usage-body{display:flex;align-items:center;flex:1;gap:42px;padding:14px 8px 20px;flex-wrap:wrap}.license-donut{position:relative;flex:none;width:190px;height:190px}.license-donut svg{display:block;width:100%;height:100%}.license-donut-track{fill:none;stroke:#eef2f7;stroke-width:16}.license-donut-arc{fill:none;stroke:var(--license-accent);stroke-width:16;stroke-linecap:round;transition:stroke-dasharray .36s ease}.license-donut-center{position:absolute;top:0;right:0;bottom:0;left:0;display:grid;place-content:center;text-align:center}.license-donut-center strong{font-size:2.8rem;line-height:1;letter-spacing:-.05em}.license-donut-center span{display:block;margin-top:2px;color:var(--license-muted);font-size:.8rem}.license-usage-legend{list-style:none;margin:0;padding:0;flex:1;min-width:180px;display:grid;gap:4px}.license-usage-legend li{display:flex;align-items:center;gap:10px;min-height:52px;padding:10px 0}.license-usage-legend .license-legend-name{flex:1;color:#334155;font-size:.9rem}.license-usage-legend strong{font-variant-numeric:tabular-nums}.license-legend-dot{width:10px;height:10px;border-radius:50%;flex:none}.license-legend-dot--used{background:var(--license-accent)}.license-legend-dot--free{background:#cbd5e1}.license-usage-legend-total{border-top:1px solid #eef2f7;margin-top:2px;padding-top:12px!important}.license-usage-legend-total .license-legend-name{font-weight:700}.license-notice{display:flex;align-items:flex-start;gap:8px;margin-top:20px;padding:11px 13px;border-left:3px solid #d97706;background:#fff7ed;color:#8a3d08;font-size:.86rem}.license-identity-card dl{display:grid;grid-template-rows:repeat(6,minmax(44px,1fr));flex:1;margin:0}.license-identity-card dl>div{display:grid;grid-template-columns:140px 1fr;gap:12px;padding:11px 0;border-bottom:1px solid #eef2f7;align-items:center}.license-identity-card dl>div:last-child{border-bottom:none}.license-identity-card dt{color:var(--license-muted);font-size:.85rem}.license-identity-card dd{margin:0;font-weight:650;overflow-wrap:anywhere;text-align:right}.license-mono,.license-machine-row code{font-family:Consolas,Courier New,monospace;font-size:.76rem}.license-note{margin:15px 0 0;color:var(--license-muted);font-size:.86rem}.license-ops-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.license-op-btn{display:flex;align-items:center;gap:12px;padding:16px;border:1px solid var(--license-line);border-radius:10px;background:#fff;color:var(--license-ink);font-size:.9rem;font-weight:600;text-align:left;cursor:pointer;transition:border-color .15s,box-shadow .15s,transform .1s}.license-op-btn:hover:not(:disabled){border-color:var(--license-accent);box-shadow:0 6px 16px #e978001f}.license-op-btn:active:not(:disabled){transform:scale(.98)}.license-op-btn:disabled{opacity:.55;cursor:default}.license-op-btn.is-active{border-color:var(--license-accent);background:#fff7ed}.license-op-btn:focus-visible{outline:none;box-shadow:0 0 0 3px #e9780040}.license-op-icon{display:grid;place-items:center;flex:none;width:40px;height:40px;border-radius:10px;background:#fdf1e2;color:var(--license-accent)}.license-op-icon .material-symbols-outlined{font-size:22px}.license-machine-details{margin-top:16px}.license-machine-row{display:grid;grid-template-columns:130px 1fr;gap:12px;padding:12px 14px;border:1px dashed #bac6d6;border-radius:8px;background:#f8fafc}.license-machine-row span{color:var(--license-muted);font-size:.8rem}.license-machine-row code{overflow-wrap:anywhere}.license-hardware-note{display:flex;align-items:center;gap:6px;margin:12px 0 0;color:var(--license-muted);font-size:.78rem}@media (max-width: 980px){.license-status-cards,.license-dashboard{grid-template-columns:1fr}.license-ops-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width: 560px){.license-ops-grid,.license-machine-row{grid-template-columns:1fr}}@media (prefers-reduced-motion: reduce){.license-donut-arc{transition:none}}@media (forced-colors: active){.license-donut-arc{stroke:CanvasText}.license-stat-card,.license-op-btn,.license-notice{border:1px solid CanvasText}}.layout{display:flex;flex-direction:column;height:100vh}.header{height:68px;background:#1f2937;color:#fff;display:flex;align-items:center;justify-content:space-between;padding:0 14px;border-bottom:1px solid rgba(148,163,184,.25);position:relative;z-index:1100}.header-left{display:flex;align-items:center;gap:6px}.logo{height:44px;width:auto;display:block}.brand-logo-wrap{height:56px;width:auto;min-width:0;display:flex;align-items:center;justify-content:center;padding-right:4px}.header-divider{height:30px;width:1px;background:#cbd5e159;margin:0 6px}.header-nav{display:flex;align-items:center;gap:6px;margin-left:18px}.header-nav.header-nav--framed{gap:4px;padding:4px;background:#0f172a59;border:1px solid rgba(148,163,184,.25);border-radius:12px;box-shadow:inset 0 1px #ffffff0d}.header-nav.header-nav--framed button{padding:6px 14px;font-size:13px;border-radius:8px}.header-nav-btn{display:inline-flex;align-items:center;gap:7px}.header-nav-btn svg{flex:0 0 auto;opacity:.9}.header-nav-btn.active svg{opacity:1}.header-nav.header-nav--framed button.active{background:#ff8c0038;border-color:#ff8c0073;color:#fff;box-shadow:0 1px 4px #ff8c0033}.header-nav button{position:relative;border:none;background:transparent;color:#cbd5e1;border-radius:8px;padding:8px 12px;cursor:pointer;transition:color .18s ease,transform .12s ease}.header-nav button:hover{color:#fff}.header-nav button:active{transform:scale(.97)}.header-nav button:focus-visible{outline:none;box-shadow:0 0 0 3px #fdc59359}.header-nav button.active{color:#fff}.header-nav button.active:after{content:"";position:absolute;left:12px;right:12px;bottom:-6px;height:2.5px;border-radius:2px;background:#f97316}.header-right{display:flex;align-items:center;gap:16px;margin-left:auto}.engineering-btn{border:1px solid rgba(148,163,184,.45);background:#0f172a4d;color:#fff;border-radius:8px;padding:8px 12px;cursor:pointer;transition:transform .12s ease,filter .18s ease,box-shadow .2s ease}.engineering-btn:hover{filter:brightness(1.08)}.engineering-btn:active{transform:scale(.97)}.engineering-btn:focus-visible{outline:none;box-shadow:0 0 0 3px #fdc59359}.engineering-btn.active{background:#e67c00;border-color:#e67c00}.engineering-btn--icon-only{padding:8px;display:inline-flex;align-items:center;justify-content:center;width:38px;height:38px}.engineering-btn--icon-only .material-symbols-outlined{font-size:20px}.header-search{position:relative;width:340px;margin-right:6px;display:flex;align-items:center}.header-search-icon{position:absolute;left:12px;display:inline-flex;color:#94a3b8;pointer-events:none}.header-search-input{width:100%;height:38px;padding:0 44px 0 38px;border-radius:10px;border:1px solid rgba(148,163,184,.3);background:#0f172a66;color:#f1f5f9;font-size:13px;outline:none;transition:border-color .18s,background .18s}.header-search-input::placeholder{color:#94a3b8}.header-search-input:focus{border-color:#ff8c0080;background:#0f172a99}.header-search-kbd{position:absolute;right:12px;font-size:11px;font-weight:700;color:#94a3b8;border:1px solid rgba(148,163,184,.3);border-radius:5px;padding:1px 5px;pointer-events:none}.header-search-panel{position:absolute;top:calc(100% + 6px);left:0;right:0;background:#fff;border:1px solid #e2e8f0;border-radius:12px;box-shadow:0 12px 32px #0f172a2e;padding:6px;max-height:420px;overflow-y:auto;z-index:1200}.header-search-group+.header-search-group{margin-top:4px}.header-search-group-title{font-size:10px;font-weight:800;letter-spacing:.05em;text-transform:uppercase;color:#94a3b8;padding:8px 10px 4px}.header-search-item{display:flex;align-items:center;gap:9px;width:100%;padding:9px 10px;border:none;background:transparent;border-radius:8px;cursor:pointer;text-align:left;color:#0f172a}.header-search-item svg{flex:0 0 auto;color:#64748b}.header-search-item.active{background:#f1f5f9}.header-search-status{width:9px;height:9px;border-radius:50%;flex:0 0 auto;background:#cbd5e1;box-shadow:0 0 0 2px #cbd5e140}.header-search-status.status-online{background:#22c55e;box-shadow:0 0 0 2px #22c55e33}.header-search-status.status-offline{background:#94a3b8;box-shadow:0 0 0 2px #94a3b833}.header-search-status.status-unknown{background:#cbd5e1}.header-search-status.has-alarm{background:#ef4444;box-shadow:0 0 0 2px #ef444440;animation:hs-alarm-pulse 1.6s infinite}.header-search-kind-icon{color:#94a3b8!important}.header-search-item.has-alarm .header-search-item-main{color:#dc2626}@keyframes hs-alarm-pulse{0%{box-shadow:0 0 #ef444480}70%{box-shadow:0 0 0 5px #ef444400}to{box-shadow:0 0 #ef444400}}.header-search-item-main{flex:1;font-size:13px;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.header-search-item-meta{font-size:11px;color:#94a3b8;flex:0 0 auto;white-space:nowrap}.header-search-empty{padding:18px 12px;text-align:center;font-size:12px;color:#94a3b8}@media (max-width: 1280px){.header-search{width:240px}.header-search-kbd{display:none}}@media (max-width: 760px){.header-search{display:none}}.header-customer-logo{height:44px;width:auto;max-width:100%;object-fit:contain;display:block}.customer-logo-wrap{height:56px;width:auto;min-width:0;max-width:280px;display:flex;align-items:center;justify-content:center;padding:2px 8px;overflow:hidden}.profile-menu,.notif-bell-wrap{position:relative}.notif-bell-btn{position:relative;width:40px;height:40px;border-radius:10px;border:1px solid rgba(255,255,255,.12);background:#ffffff0a;color:#cbd5e1;display:inline-flex;align-items:center;justify-content:center;cursor:pointer;transition:background .15s,transform .15s,color .15s,border-color .15s}.notif-bell-btn:hover{background:#ffffff1a;color:#fff;border-color:#ffffff38}.notif-bell-btn--active{color:#fff;background:linear-gradient(135deg,#6366f140,#4338ca2e);border-color:#a5b4fc4d;animation:notif-bell-pulse 2.4s ease-in-out infinite}@keyframes notif-bell-pulse{0%,to{box-shadow:0 0 #818cf800}50%{box-shadow:0 0 0 6px #818cf833}}.notif-bell-btn .material-symbols-outlined{font-size:22px}.notif-bell-badge{position:absolute;top:-2px;right:-2px;min-width:18px;height:18px;padding:0 5px;background:linear-gradient(135deg,#ef4444,#dc2626);color:#fff;border-radius:999px;font-size:10.5px;font-weight:800;display:inline-flex;align-items:center;justify-content:center;box-shadow:0 0 0 2px #1f2937;letter-spacing:-.02em}.notif-dropdown{position:absolute;top:calc(100% + 8px);right:0;width:380px;max-width:92vw;max-height:min(660px,90vh);background:#fff;border:1px solid #e2e8f0;border-radius:14px;box-shadow:0 20px 50px #0f172a47;z-index:1200;display:flex;flex-direction:column;overflow:hidden;color:#0f172a}.notif-dropdown-head{display:flex;align-items:center;justify-content:space-between;padding:12px 14px;border-bottom:1px solid #f1f5f9;background:#f8fafc}.notif-dropdown-head strong{font-size:14px;color:#0f172a}.notif-mark-all{background:none;border:none;color:#4338ca;font-size:12px;font-weight:600;cursor:pointer;padding:4px 6px;border-radius:6px;transition:background .15s}.notif-mark-all:hover{background:#ede9fe}.notif-empty,.notif-error{padding:24px 16px;text-align:center;color:#94a3b8;font-size:13px;display:flex;flex-direction:column;align-items:center;gap:8px}.notif-empty .material-symbols-outlined{font-size:32px;color:#cbd5e1}.notif-error{color:#b91c1c}.notif-list{list-style:none;margin:0;flex:0 1 auto;max-height:606px;overflow-y:auto;overscroll-behavior:contain;padding:10px;display:flex;flex-direction:column;gap:8px}.notif-list .notif-item{flex:0 0 auto}.notif-list::-webkit-scrollbar{width:6px}.notif-list::-webkit-scrollbar-track{background:transparent}.notif-list::-webkit-scrollbar-thumb{background:#94a3b873;border-radius:3px}.notif-list::-webkit-scrollbar-thumb:hover{background:#64748ba6}.notif-item{display:flex;gap:12px;padding:14px 16px 12px;cursor:pointer;transition:transform .12s,box-shadow .12s,border-color .12s;background:#fff;border:1px solid #e2e8f0;border-left:4px solid #cbd5e1;border-radius:10px;box-shadow:0 1px 2px #0f172a0a;position:relative;overflow:hidden}.notif-item:hover{transform:translateY(-1px);box-shadow:0 6px 16px #0f172a1a;border-color:#cbd5e1}.notif-item.notif-sev-info{border-left-color:#ff8c00}.notif-item.notif-sev-warning{border-left-color:#f59e0b}.notif-item.notif-sev-critical{border-left-color:#dc2626;box-shadow:0 1px 2px #dc262614}.notif-item.notif-sev-critical:hover{box-shadow:0 6px 18px #dc26262e}.notif-item.notif-cat-alarm-assignment,.notif-item.notif-cat-fault-assignment{border-left-color:#6366f1;box-shadow:0 1px 2px #6366f114}.notif-item.notif-cat-alarm-assignment:hover,.notif-item.notif-cat-fault-assignment:hover{box-shadow:0 6px 18px #6366f12e}.notif-item.notif-cat-alarm-assignment .notif-item-icon,.notif-item.notif-cat-fault-assignment .notif-item-icon,.notif-item.notif-cat-alarm-assignment .notif-item-eyebrow,.notif-item.notif-cat-fault-assignment .notif-item-eyebrow{color:#4338ca}.notif-item.notif-cat-alarm-assignment .notif-item-icon,.notif-item.notif-cat-fault-assignment .notif-item-icon{background:#e0e7ff}.notif-item.notif-cat-alarm-comment,.notif-item.notif-cat-fault-comment{border-left-color:#14b8a6}.notif-item.notif-cat-alarm-comment .notif-item-icon,.notif-item.notif-cat-fault-comment .notif-item-icon{background:#ccfbf1;color:#0f766e}.notif-item.notif-cat-alarm-comment .notif-item-eyebrow,.notif-item.notif-cat-fault-comment .notif-item-eyebrow{color:#0f766e}.notif-level-badge.notif-badge-assignment{background:linear-gradient(135deg,#6366f1,#4338ca);color:#fff;border-color:#4338ca;box-shadow:0 2px 4px #6366f140;animation:none}.notif-level-badge.notif-badge-comment{background:linear-gradient(135deg,#14b8a6,#0f766e);color:#fff;border-color:#0f766e;box-shadow:0 2px 4px #14b8a640;animation:none}.notif-level-badge.notif-badge-fault{background:linear-gradient(135deg,#dc2626,#991b1b);color:#fff;border-color:#991b1b;box-shadow:0 2px 4px #dc262640;animation:none}.notif-item--unread{border-left-width:5px}.notif-item--unread.notif-sev-critical{border-left-color:#b91c1c}.notif-item-icon{width:36px;height:36px;border-radius:10px;background:#e0e7ff;color:#4338ca;display:flex;align-items:center;justify-content:center;flex-shrink:0}.notif-item-icon .material-symbols-outlined{font-size:20px}.notif-item-icon.notif-sev-info{background:#dbeafe;color:#cc7000}.notif-item-icon.notif-sev-warning{background:#fef3c7;color:#b45309}.notif-item-icon.notif-sev-critical{background:#fee2e2;color:#b91c1c}.notif-item-body{flex:1 1 auto;min-width:0;display:flex;flex-direction:column;gap:4px}.notif-item-title-row{display:flex;align-items:flex-start;gap:10px;margin-bottom:6px}.notif-item-actions{display:flex;align-items:center;gap:6px;margin-left:auto;flex-shrink:0}.notif-item-title-stack{display:flex;flex-direction:column;gap:2px;flex:1 1 auto;min-width:0}.notif-item-eyebrow{font-size:10.5px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:#94a3b8;line-height:1}.notif-item.notif-sev-critical .notif-item-eyebrow{color:#dc2626}.notif-item.notif-sev-warning .notif-item-eyebrow{color:#d97706}.notif-item-title{font-size:14px;color:#0f172a;word-break:break-word;line-height:1.3;font-weight:700}.notif-item-dot{display:none}.notif-item-mark-btn{display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;border-radius:50%;border:1px solid #bbf7d0;background:#f0fdf4;color:#16a34a;cursor:pointer;flex-shrink:0;transition:all .15s;padding:0}.notif-item-mark-btn:hover{background:#16a34a;color:#fff;border-color:#15803d;transform:scale(1.08);box-shadow:0 2px 6px #16a34a59}.notif-item-mark-btn .material-symbols-outlined{font-size:17px;font-weight:800}.notif-item-text{margin:0;font-size:12px;color:#475569;line-height:1.4;word-break:break-word;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.notif-item-meta{display:flex;align-items:center;gap:8px;font-size:11px;color:#94a3b8;flex-wrap:wrap}.notif-item-cat{padding:2px 8px;border-radius:999px;font-weight:700;letter-spacing:.02em;background:#e0e7ff;color:#4338ca}.notif-item-cat.notif-sev-info{background:#dbeafe;color:#cc7000}.notif-item-cat.notif-sev-warning{background:#fef3c7;color:#b45309}.notif-item-cat.notif-sev-critical{background:#fee2e2;color:#b91c1c}.notif-item-actor{font-style:italic;color:#64748b}.notif-item-time{margin-left:auto;font-variant-numeric:tabular-nums}.notif-item-rows{display:flex;flex-direction:column;gap:4px;margin-top:6px;margin-bottom:2px;padding:0;background:transparent;border:none}.notif-row{display:grid;grid-template-columns:14px 54px 1fr;align-items:center;gap:8px;font-size:12px;line-height:1.3}.notif-row-icon{font-size:14px!important;color:#94a3b8}.notif-row-label{color:#94a3b8;font-weight:700;text-transform:uppercase;letter-spacing:.05em;font-size:9.5px}.notif-row-value{color:#0f172a;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.notif-row-value--src{display:inline-flex;padding:1px 8px;border-radius:999px;border:1px solid transparent;font-size:11px;width:fit-content}.notif-row-value--src-master{background:#dbeafe;color:#a85800;border-color:#93c5fd}.notif-row-value--src-sat01{background:#fef9c3;color:#854d0e;border-color:#fde68a}.notif-row-value--src-sat02{background:#fce7f3;color:#9d174d;border-color:#f9a8d4}.notif-item-measure{display:inline-flex;align-items:baseline;gap:8px;padding:6px 10px;border-radius:8px;background:linear-gradient(135deg,#fff7ed,#ffedd5);border:1px solid #fdba74;margin-top:4px;align-self:flex-start;max-width:100%}.notif-sev-critical .notif-item-measure{background:linear-gradient(135deg,#fef2f2,#fee2e2);border-color:#fca5a5}.notif-sev-info .notif-item-measure{background:linear-gradient(135deg,#eff6ff,#dbeafe);border-color:#93c5fd}.notif-measure-value{font-size:14px;font-weight:800;color:#0f172a;font-variant-numeric:tabular-nums}.notif-measure-op{font-size:14px;font-weight:700;color:#475569}.notif-measure-threshold{display:inline-flex;align-items:baseline;gap:4px;font-size:12px;font-weight:600;color:#475569;font-variant-numeric:tabular-nums}.notif-measure-threshold-label{font-size:9.5px;font-weight:600;color:#94a3b8;text-transform:uppercase;letter-spacing:.06em}.notif-level-badge{padding:4px 10px;border-radius:6px;font-size:11px;font-weight:700;letter-spacing:.03em;background:#e2e8f0;color:#334155;text-transform:none;white-space:nowrap;border:1px solid transparent;box-shadow:0 1px 2px #0f172a0f}.notif-level-badge.notif-sev-critical{background:linear-gradient(135deg,#dc2626,#b91c1c);color:#fff;border-color:#991b1b;box-shadow:0 2px 6px #dc262659;animation:notif-pulse-critical 2s ease-in-out infinite}.notif-level-badge.notif-sev-warning{background:linear-gradient(135deg,#f59e0b,#d97706);color:#fff;border-color:#b45309;box-shadow:0 2px 4px #d9770640}.notif-level-badge.notif-sev-info{background:linear-gradient(135deg,#ff8c00,#e67c00);color:#fff;border-color:#cc7000;box-shadow:0 2px 4px #e67c0033}@keyframes notif-pulse-critical{0%,to{box-shadow:0 2px 6px #dc262659}50%{box-shadow:0 2px 10px #dc26268c}}.header-user-cluster{display:flex;align-items:center;gap:6px}.header-user-cluster-divider{width:1px;height:22px;background:#94a3b859;margin:0 2px;flex-shrink:0}.header-user-cluster .profile-trigger{background:transparent;border:none;box-shadow:none}.header-user-cluster .notif-bell-btn{width:38px;height:38px;border-radius:8px;border:1px solid rgba(148,163,184,.45);background:#0f172a4d;color:#fff}.header-user-cluster .notif-bell-btn:hover{filter:brightness(1.08);border-color:#94a3b899}.profile-trigger{border:none;background:transparent;color:#fff;border-radius:8px;padding:4px 2px 4px 8px;min-width:0;display:flex;align-items:center;justify-content:flex-end;gap:6px;cursor:pointer;transition:background-color .18s ease,transform .12s ease}.profile-trigger:hover{background:#33415559}.profile-trigger:active{transform:scale(.98)}.profile-trigger:focus-visible{outline:none;box-shadow:0 0 0 3px #fdc59359}.profile-text{display:flex;flex-direction:column;align-items:flex-end;min-width:0;text-align:right;margin-right:8px}.profile-text strong{font-size:13px;line-height:1.2;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.profile-text small{font-size:11px;color:#cbd5e1}.profile-avatar{width:32px;height:32px;border-radius:999px;background:linear-gradient(135deg,#ff8c00,#cc7000);display:grid;place-items:center;font-size:12px;font-weight:700}.profile-dropdown{position:absolute;top:calc(100% + 8px);right:0;width:170px;border:1px solid #cbd5e1;border-radius:10px;background:#fff;box-shadow:0 10px 24px #0f172a33;overflow:hidden;z-index:1200}.profile-dropdown button{width:100%;border:none;background:#fff;text-align:left;padding:10px 12px;font-size:13px;cursor:pointer}.profile-dropdown button:hover{background:#eff6ff}.profile-dropdown button:active{background:#dbeafe}.settings-modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#0f172a73;display:grid;place-items:center;z-index:3000}.settings-modal{width:min(520px,92vw);background:#fff;border-radius:12px;border:1px solid #d1d5db;padding:16px;display:grid;gap:10px}.device-create-modal{width:min(920px,95vw);max-height:90vh;overflow:auto;grid-template-columns:1fr 1fr;gap:12px 14px}.device-create-modal--visual{width:min(1100px,95vw);grid-template-columns:1fr}.device-create-system-layout{display:flex;flex-direction:column;gap:14px}.device-create-comms-grid{display:grid;grid-template-columns:minmax(240px,1.2fr) minmax(150px,.75fr) minmax(120px,.55fr) minmax(120px,.55fr);gap:12px 10px}.device-comms-connection-grid{display:grid;grid-template-columns:repeat(3,minmax(150px,1fr));gap:16px 18px}.device-comms-connection-grid>label:first-child{grid-column:1 / -1}.device-create-comms-grid label,.device-comms-connection-grid label{min-width:0}.device-detail-form--tabbed .device-detail-form-grid--runtime{grid-template-columns:repeat(3,minmax(120px,1fr))}.signal-edit-modal{width:min(860px,95vw);height:min(720px,90vh);overflow:hidden;display:flex;flex-direction:column}.signal-edit-modal-body{flex:1;overflow:auto;min-height:0;align-content:start;padding-right:6px;margin-right:-6px}.signal-edit-modal-body>.signal-fieldset{align-self:start}.device-create-modal h3,.device-create-modal .helper-text,.device-create-modal .modal-actions,.device-create-modal .dnp3-settings-form,.device-create-modal .device-create-location{grid-column:1 / -1}.device-create-location{display:flex;flex-direction:column;gap:10px;padding:14px;margin-top:4px;border:1px solid #e2e8f0;border-radius:12px;background:linear-gradient(180deg,#f8fafc,#fff)}.device-create-location-header{display:flex;align-items:baseline;gap:10px;flex-wrap:wrap}.device-create-location-header strong{font-size:13px;color:#0f172a;font-weight:700;letter-spacing:.02em}.device-create-location-header .helper-text{font-size:12px;margin:0;color:#64748b;grid-column:auto}.device-create-location-coords{display:grid;grid-template-columns:1fr 1fr;gap:12px}.device-create-location-map{height:300px;border-radius:10px;overflow:hidden;border:1px solid #e2e8f0;background:#f1f5f9}.device-create-location-map .world-map{height:100%;width:100%}.settings-modal h3{margin:0 0 6px}.settings-modal label{display:grid;gap:4px;font-size:13px;color:#374151}.settings-modal input,.settings-modal textarea{border:1px solid #cbd5e1;border-radius:8px;padding:9px 10px}.settings-modal textarea{min-height:120px;resize:vertical;font:inherit}.settings-modal select{appearance:none;-webkit-appearance:none;-moz-appearance:none;border:1px solid #cbd5e1;border-radius:8px;padding:9px 36px 9px 10px;background-color:#fff;background-image:linear-gradient(45deg,transparent 50%,#475569 50%),linear-gradient(135deg,#475569 50%,transparent 50%);background-position:calc(100% - 16px) calc(50% - 2px),calc(100% - 10px) calc(50% - 2px);background-size:6px 6px,6px 6px;background-repeat:no-repeat;transition:border-color .2s ease,box-shadow .2s ease}.settings-modal select:focus{outline:none;border-color:#e67c00;box-shadow:0 0 0 3px #e67c0029}.settings-actions{display:flex;justify-content:flex-end;gap:8px}.settings-actions button{border:1px solid #cc7000;background:#e67c00;color:#fff;border-radius:8px;padding:8px 12px;cursor:pointer;transition:transform .12s ease,filter .2s ease,box-shadow .2s ease}.settings-actions button:hover{filter:brightness(1.05)}.settings-actions button:active{transform:scale(.97)}.settings-actions button:focus-visible{outline:none;box-shadow:0 0 0 3px #ff8c0040}.panel-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px}.panel-head h3{margin:0}.add-user-btn{border:1px solid #cc7000;background:linear-gradient(135deg,#e67c00,#cc7000);color:#fff;border-radius:10px;padding:8px 14px;font-weight:700;box-shadow:0 8px 18px #e67c0040;cursor:pointer;transition:transform .12s ease,filter .2s ease,box-shadow .2s ease}.add-user-btn:hover{filter:brightness(1.05)}.add-user-btn:active{transform:scale(.97);box-shadow:0 4px 10px #e67c003d}.add-user-btn:focus-visible{outline:none;box-shadow:0 0 0 3px #ff8c0040}.edit-btn{border:1px solid #0ea5e9;background:#0ea5e9;color:#fff;border-radius:8px;padding:6px 10px;margin-right:8px;cursor:pointer;transition:transform .12s ease,filter .2s ease,box-shadow .2s ease}.secondary-btn{border:1px solid #475569;background:#64748b;color:#fff;border-radius:8px;padding:6px 10px;margin-right:8px;cursor:pointer;transition:transform .12s ease,filter .2s ease,box-shadow .2s ease}.secondary-btn:hover{filter:brightness(1.07)}.secondary-btn:active{transform:scale(.97)}.secondary-btn:focus-visible{outline:none;box-shadow:0 0 0 3px #64748b40}.primary-btn{border:1px solid #cc7000;background:linear-gradient(135deg,#e67c00,#cc7000);color:#fff;border-radius:8px;padding:8px 12px;cursor:pointer;font-weight:600}.users-panel-toolbar{display:flex;justify-content:flex-end;margin:10px 0}.users-management-panel{display:flex;flex-direction:column;flex:1;min-height:0;overflow:hidden}.users-toolbar{flex-shrink:0;margin-bottom:10px}.users-table-wrap{flex:1;min-height:0;overflow:auto;border:1px solid #e5e7eb;border-radius:10px;background:#fff}.users-table-wrap .values-table th{position:sticky;top:0;z-index:1;background:#f8fafc}.users-empty-cell{padding:24px!important;text-align:center!important}.edit-btn:hover{filter:brightness(1.07)}.edit-btn:active{transform:scale(.97)}.edit-btn:focus-visible{outline:none;box-shadow:0 0 0 3px #0ea5e940}.actions-header{text-align:right!important}.actions-cell{text-align:right!important;white-space:nowrap}.action-btn{min-height:34px;line-height:1;padding:0 12px;display:inline-flex;align-items:center;justify-content:center}.actions-cell .danger-btn{margin-right:0}.notify-group{border:1px solid #d1d5db;border-radius:10px;padding:10px;margin:0;display:grid;gap:8px}.notify-group legend{font-size:12px;color:#475569;padding:0 4px}.notify-option{display:flex!important;align-items:center;gap:8px;font-size:13px}.helper-text{margin:0;color:#475569;font-size:13px}.gateway-form{display:grid;grid-template-columns:1fr 1fr 1fr 120px 1fr auto;gap:8px;margin:12px 0}.gateway-form input{border:1px solid #cbd5e1;border-radius:8px;padding:9px 10px}.gateway-form button{border:1px solid #cc7000;background:linear-gradient(135deg,#e67c00,#cc7000);color:#fff;border-radius:8px;padding:9px 12px;font-weight:600}.gateway-endpoint{font-size:12px;color:#334155;margin-bottom:10px}.gateway-endpoint code{background:#eff6ff;border:1px solid #bfdbfe;border-radius:6px;padding:2px 6px}.device-management-panel{display:flex;flex-direction:column;gap:10px;height:100%;min-height:0}.engineering-content .tab-panel.device-management-panel{overflow:hidden;display:flex;flex-direction:column;flex:1;min-height:0}.device-management-layout{display:grid;grid-template-columns:360px 320px minmax(0,1fr);gap:12px;flex:1;min-height:0}@media (min-width: 1500px){.device-management-layout{grid-template-columns:380px 340px minmax(0,1fr)}}@media (max-width: 1100px){.device-management-layout{grid-template-columns:300px 280px minmax(0,1fr)}}.device-management-left,.device-management-middle,.device-management-right{border:1px solid #e5e7eb;border-radius:10px;padding:10px;background:#f8fafc;min-height:0}.device-management-right{display:flex;flex-direction:column;overflow:hidden;min-height:0}.device-management-right>h4{flex-shrink:0}.device-management-right>.device-detail-form--tabbed{flex:1;min-height:0;display:flex;flex-direction:column}.device-management-left,.device-management-middle{overflow:auto}.device-management-left h4,.device-management-middle h4,.device-management-right h4{margin:0 0 8px}.device-panel-heading{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:8px}.device-panel-heading h4{margin:0}.device-add-plus-btn{width:30px;height:30px;display:inline-flex;align-items:center;justify-content:center;border:1px solid #cbd5e1;border-radius:8px;background:#fff;color:#475569;font-size:20px;font-weight:800;line-height:1;cursor:pointer;transition:background .15s ease,color .15s ease,border-color .15s ease,transform .12s ease}.device-add-plus-btn:hover:not(:disabled){background:#f8fafc;border-color:#94a3b8;color:#0f172a;transform:translateY(-1px)}.device-add-plus-btn--primary{background:#fff7ed;border-color:#fed7aa;color:#c2410c}.device-add-plus-btn--primary:hover:not(:disabled){background:#ffedd5;border-color:#fdba74;color:#9a3412}.device-add-plus-btn:disabled{opacity:.45;cursor:not-allowed}.section-actions{display:flex;align-items:center;gap:8px;margin-bottom:10px}.device-license-warning{display:flex;align-items:flex-start;gap:8px;margin:0 0 10px;padding:9px 10px;border:1px solid #f59e0b;border-radius:8px;background:#fffbeb;color:#92400e;font-size:12px;line-height:1.4}.device-license-warning .material-symbols-outlined{flex:none;margin-top:1px;color:#d97706;font-size:18px}.full-width-btn{width:100%}.panel-actions{display:flex;align-items:center;gap:8px}.device-group-list{display:grid;gap:8px;margin-bottom:12px}.device-group-item{border:1px solid #cbd5e1;border-radius:8px;background:#fff;padding:7px 8px;display:grid;gap:6px}.device-group-main{border:none;background:transparent;padding:0;text-align:left;cursor:pointer;display:grid;gap:4px}.item-actions{display:flex;gap:8px}.gateway-item .item-actions .action-btn{min-height:30px;width:30px;padding:0}.gateway-item .item-actions .action-btn svg{width:16px;height:16px}.gateway-item .gateway-item-actions{gap:4px}.gateway-status{display:inline-flex;align-items:center;gap:6px;font-size:10px;font-weight:600}.gateway-status-dot{width:8px;height:8px;border-radius:999px;display:inline-block}.gateway-title-row{display:flex;align-items:center;justify-content:space-between;gap:8px}.gateway-name-with-status{display:inline-flex;align-items:center;gap:6px}.inline-actions{gap:6px}.gateway-item .device-group-main .gateway-host-line{font-size:13px}.compose-cmd-row{display:flex;align-items:center;gap:8px;background:#f1f5f9;border:1px solid #e2e8f0;border-radius:6px;padding:6px 8px;margin-bottom:12px}.compose-cmd-text{flex:1;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:12px;color:#0f172a;overflow-x:auto;white-space:nowrap;background:transparent;padding:0}.compose-cmd-copy.action-btn,.compose-cmd-copy{flex-shrink:0;min-height:28px;padding:0 10px;font-size:12px}.compose-gw-status{display:flex;align-items:center;gap:8px;margin-top:8px;padding:6px 8px;border-radius:6px;font-size:13px;background:#f8fafc;border:1px solid #e2e8f0}.compose-gw-status-dot{width:8px;height:8px;border-radius:999px;flex-shrink:0}.compose-gw-status--online{background:#ecfdf5;border-color:#a7f3d0;color:#065f46}.compose-gw-status--online .compose-gw-status-dot{background:#10b981}.compose-gw-status--offline,.compose-gw-status--never,.compose-gw-status--inactive{background:#fef2f2;border-color:#fecaca;color:#991b1b}.compose-gw-status--offline .compose-gw-status-dot,.compose-gw-status--never .compose-gw-status-dot,.compose-gw-status--inactive .compose-gw-status-dot{background:#ef4444}.compose-gw-status-meta{color:#64748b;font-weight:400}.gateway-status.online{color:#15803d}.gateway-status.online .gateway-status-dot{background:#22c55e}.gateway-status.offline{color:#b91c1c}.gateway-status.offline .gateway-status-dot{background:#ef4444}.gateway-status.stale{color:#b45309}.gateway-status.stale .gateway-status-dot{background:#f59e0b}.gateway-status.never{color:#64748b}.gateway-status.never .gateway-status-dot{background:#94a3b8}.gateway-status.inactive{color:#64748b}.gateway-status.inactive .gateway-status-dot{background:#cbd5e1}.gateway-item-body{display:flex;align-items:stretch;gap:6px}.gateway-select-main{flex:1;min-width:0;text-align:left}.gateway-name-block{display:flex;flex-direction:column;gap:2px;min-width:0}.gateway-live-subtitle{font-size:10px;font-weight:500;color:#64748b;line-height:1.25;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.gateway-host-line{font-size:13px;color:#64748b;display:block;margin-top:2px}.gateway-item-actions{flex-shrink:0;align-self:flex-start;margin-top:2px}.btn-spinner{display:inline-block;width:14px;height:14px;border:2px solid currentColor;border-right-color:transparent;border-radius:50%;animation:btn-spin .7s linear infinite;vertical-align:middle}@keyframes btn-spin{to{transform:rotate(360deg)}}.gateway-item{position:relative}.gateway-item.is-deleting{pointer-events:none;opacity:.95}.gateway-delete-btn.is-busy{position:relative;pointer-events:none;display:inline-flex;align-items:center;justify-content:center;animation:gateway-delete-pulse 1.2s ease-in-out infinite}@keyframes gateway-delete-pulse{0%,to{box-shadow:0 0 #dc262673}50%{box-shadow:0 0 0 6px #dc262600}}.gateway-item-deleting-overlay{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;gap:10px;background:#ffffffc7;backdrop-filter:blur(2px);-webkit-backdrop-filter:blur(2px);border-radius:8px;pointer-events:auto;z-index:5;font-size:13px;font-weight:600;color:#b91c1c}.gateway-deleting-spinner{width:18px;height:18px;border-width:3px;color:#b91c1c}.gateway-deleting-text{letter-spacing:.02em}.device-comms-hint{margin:6px 0 0;font-size:10px;line-height:1.35;color:#64748b;font-weight:500}.device-comms-readonly{padding:10px 12px;margin-bottom:10px;background:#f8fafc;border:1px solid #e2e8f0;border-radius:8px}.device-comms-readonly-title{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:#475569;margin-bottom:6px}.device-comms-readonly-p{margin:0 0 6px;font-size:12px;line-height:1.45;color:#334155}.device-comms-readonly-hint{margin:0;font-size:11px}.device-comms-readonly-compact{margin-bottom:10px}.device-comms-readonly-compact .device-comms-readonly-p{margin:0;display:flex;flex-wrap:wrap;align-items:center;gap:4px 8px}.device-comms-meta{font-size:12px;color:#64748b;font-weight:500}.gateway-name-only{min-width:0;font-size:13px;line-height:1.3;font-weight:600;color:#0f172a}.device-group-item.active{border-color:#e67c00;box-shadow:0 0 0 2px #e67c0026;background:#eff6ff}.device-group-item strong{font-size:13px}.device-group-item span{font-size:12px;color:#64748b}.device-item{padding:8px 9px 7px;gap:4px}.device-title-row{display:flex;align-items:center;justify-content:space-between;gap:8px}.device-name-with-status{display:inline-flex;align-items:center;gap:6px}.device-status-dot{width:8px;height:8px;border-radius:999px;display:inline-block}.device-status-dot.online{background:#22c55e}.device-status-dot.offline,.device-status-dot.unknown{background:#ef4444}.device-comms-pill{display:inline-block;padding:2px 8px;border-radius:6px;font-size:11px;font-weight:700}.device-comms-pill--online{background:#dcfce7;color:#166534}.device-comms-pill--offline{background:#fee2e2;color:#991b1b}.device-status-sr-only{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);border:0}.device-ip-text{color:#334155!important;font-size:12px!important;font-weight:600}.device-meta-row{display:flex;align-items:center;justify-content:space-between;gap:12px}.device-detail-form{display:grid;grid-template-columns:1fr 1fr;gap:10px;border:1px solid #dbe5f1;border-radius:12px;padding:12px;background:linear-gradient(180deg,#fff,#f8fbff);box-shadow:inset 0 1px #fff}.device-detail-form.device-detail-form--tabbed{display:flex;flex-direction:column;flex:1;min-height:0;overflow:hidden;gap:0;padding:0;border-radius:12px}.device-detail-form--tabbed .device-detail-form-fixed-header{flex-shrink:0;padding:10px 12px 0;background:linear-gradient(180deg,#fff,#f8fbff);border-bottom:1px solid #e2e8f0}.device-form-footer-bar{display:flex;flex-direction:row;align-items:flex-end;justify-content:space-between;gap:10px 16px;flex-wrap:wrap;flex-shrink:0;margin-top:0;padding:10px 12px 12px;border-top:1px solid #e2e8f0;background:#f8fafc;border-radius:0 0 11px 11px}.device-comms-footer-subtle{min-width:0;max-width:min(100%,420px);font-size:12px;color:#64748b;line-height:1.35;display:flex;flex-wrap:wrap;align-items:center;gap:0 2px}.device-comms-footer-subtle .device-comms-pill{font-size:11px;font-weight:600;padding:2px 8px;opacity:.95}.device-props-panel-hint{margin:0 0 10px;font-size:12px;color:#64748b;line-height:1.35}.device-empty-state{flex:1;min-height:0;display:grid;place-items:center;gap:18px;padding:28px;border:1px dashed #cbd5e1;border-radius:14px;background:radial-gradient(circle at 50% 34%,rgba(230,124,0,.12),transparent 28%),linear-gradient(180deg,#fff,#f8fbff);text-align:center}.device-empty-copy{display:grid;gap:8px;justify-items:center;color:#475569}.device-empty-copy .material-symbols-outlined{font-size:48px;color:#cbd5e1}.device-empty-copy h5{margin:0;font-size:16px;color:#0f172a}.device-empty-copy p{max-width:340px;margin:0;font-size:13px;line-height:1.45}.device-props-tabs{display:flex;gap:6px;margin-bottom:0;padding-bottom:8px}.device-props-tabs button{padding:6px 14px;border:1px solid #cbd5e1;background:#f1f5f9;border-radius:8px;cursor:pointer;color:#334155;font-size:13px;font-weight:600}.device-props-tabs button:hover{background:#e2e8f0}.device-props-tabs button.active{background:#e67c00;border-color:#cc7000;color:#fff;box-shadow:0 2px 6px #e67c0040}.device-props-panel--system{flex:1;min-height:0;display:flex;flex-direction:column;overflow-y:auto;overflow-x:hidden;padding:10px 12px 12px;background:linear-gradient(180deg,#fff,#f8fbff)}.device-system-layout{min-height:100%;flex:1;display:flex;flex-direction:column;gap:14px}.device-system-top-row{display:grid;grid-template-columns:minmax(260px,.92fr) minmax(280px,1.08fr);gap:14px;align-items:stretch}.device-info-card{display:grid;grid-template-columns:1fr;gap:10px;padding:12px;border:1px solid #e2e8f0;border-radius:14px;background:linear-gradient(180deg,#fff,#f8fafc)}.device-system-layout>.device-description-field{flex:1;min-height:0;display:flex;flex-direction:column}.device-system-layout>.device-description-field textarea{flex:1;min-height:220px}.device-detail-form textarea{min-height:130px;border:1px solid #bfd0e6;border-radius:8px;padding:9px 10px;background:#fff;font:inherit;resize:vertical;transition:border-color .2s ease,box-shadow .2s ease}.device-detail-form textarea:focus{outline:none;border-color:#e67c00;box-shadow:0 0 0 3px #e67c0029}.device-visual-card{min-height:0;display:grid;place-items:center;padding:12px;border:1px solid #e2e8f0;border-radius:14px;background:radial-gradient(circle at 50% 28%,rgba(230,124,0,.12),transparent 36%),linear-gradient(180deg,#fff,#f1f5f9);overflow:hidden}.device-visual-card img{max-width:min(78%,280px);max-height:260px;object-fit:contain;filter:drop-shadow(0 18px 24px rgba(15,23,42,.18))}.device-props-panel--comms{flex:1;min-height:0;display:flex;flex-direction:column;overflow:hidden;padding:0;background:linear-gradient(180deg,#fff,#f8fbff)}.device-props-comms-scroll{flex:1;min-height:0;overflow-y:auto;overflow-x:hidden;padding:10px 12px 12px;-webkit-overflow-scrolling:touch}.device-detail-form--tabbed .device-detail-form-grid{margin-bottom:4px}.device-detail-form--tabbed .device-form-actions{flex-shrink:0;margin:0;padding:0;border:none;background:transparent;border-radius:0}.device-detail-form--tabbed .dnp3-settings-form{margin-top:8px}.device-detail-form label{display:grid;gap:4px;font-size:13px;color:#1f2937;font-weight:600}.device-detail-form input{border:1px solid #bfd0e6;border-radius:8px;padding:9px 10px;background:#fff;transition:border-color .2s ease,box-shadow .2s ease}.device-detail-form input:focus{outline:none;border-color:#e67c00;box-shadow:0 0 0 3px #e67c0029}.device-detail-form select{border:1px solid #bfd0e6;border-radius:8px;padding:9px 10px;background:#fff;font-size:14px}.device-system-form-grid label,.device-description-field,.device-detail-form .device-system-form-grid{grid-column:auto}.device-description-field{grid-column:1 / -1}@media (max-width: 1180px){.device-system-top-row{grid-template-columns:1fr}}@media (max-width: 780px){.device-create-comms-grid,.device-comms-connection-grid,.device-detail-form-grid--runtime{grid-template-columns:1fr}}.device-detail-form .device-comms-readonly-compact{grid-column:1 / -1}.device-outstation-summary{grid-column:1 / -1;font-size:13px;margin:0 0 4px;padding:8px 10px;background:#f0f9ff;border:1px solid #bae6fd;border-radius:8px;color:#0c4a6e}.field-hint{font-weight:500;color:#64748b;font-size:12px}.device-detail-form-grid{grid-column:1 / -1;display:grid;grid-template-columns:1fr 1fr;gap:10px}.device-detail-form .dnp3-settings-form{grid-column:1 / -1}.field-req{color:#dc2626;font-weight:700;margin-left:2px}.dnp3-settings-form{margin-top:4px;padding:10px 12px 12px;border:1px solid #e2e8f0;border-radius:10px;background:#fafbfc}.dnp3-settings-title{margin:0 0 6px;font-size:14px;color:#0f172a}.dnp3-settings-hint{margin:0 0 10px!important;font-size:12px!important}.dnp3-settings-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px 14px}@media (max-width: 1100px){.dnp3-settings-grid{grid-template-columns:1fr}}.dnp3-field{display:grid;gap:4px;font-size:13px;color:#1f2937;font-weight:600}.dnp3-label{display:block;font-weight:600;font-size:12px;color:#334155}.dnp3-field input,.dnp3-field select{border:1px solid #cbd5e1;border-radius:8px;padding:8px 10px;font-size:14px;font-weight:500;background:#fff}.dnp3-field-with-unit .dnp3-input-unit{display:flex;align-items:center;gap:6px}.dnp3-field-with-unit .dnp3-input-unit input{flex:1;min-width:0}.dnp3-unit{font-size:12px;color:#64748b;font-weight:600;white-space:nowrap}.device-form-actions{grid-column:1 / -1;display:flex;justify-content:flex-end;gap:8px;margin-top:2px}.map-picker-modal{width:min(760px,95vw)}.map-picker-shell{height:360px;border:1px solid #cbd5e1;border-radius:10px;overflow:hidden}.map-picker-coords{display:flex;gap:16px;font-size:13px;color:#334155}.body{display:flex;min-height:0;flex:1}.sidebar{width:360px;border-right:1px solid #d1d5db;background:#fff;padding:12px;overflow-y:auto}.device-search-wrap{margin:10px 0 8px}.device-search-input{width:100%;border:1px solid #d1d5db;border-radius:10px;padding:9px 12px;background:#f8fafc}.device-filter-row{display:flex;flex-wrap:nowrap;gap:4px;margin-bottom:10px;overflow-x:auto;overflow-y:hidden;-ms-overflow-style:none;scrollbar-width:none;white-space:nowrap}.device-filter-row::-webkit-scrollbar{display:none}.filter-chip{flex:0 0 auto;border:1px solid #d1d5db;background:#f3f4f6;color:#1f2937;border-radius:10px;padding:6px 8px;font-size:11px;cursor:pointer;white-space:nowrap;transition:transform .12s ease,background-color .18s ease,border-color .18s ease}.filter-chip:hover{background:#e5e7eb}.filter-chip:active{transform:scale(.96)}.filter-chip:focus-visible{outline:none;box-shadow:0 0 0 3px #ff8c0033}.filter-chip.active{background:#e67c00;border-color:#e67c00;color:#fff}.device-list{display:flex;flex-direction:column;gap:8px}.device-row{display:flex;flex-direction:column;gap:4px;border:1px solid #d1d5db;border-radius:8px;padding:8px;text-align:left;background:#fff}.device-row.selected{border-color:#e67c00}.device-row-top{display:flex;justify-content:space-between;align-items:center}.device-row-meta{display:flex;justify-content:space-between;font-size:12px}.dot{width:10px;height:10px;border-radius:999px}.dot.online{background:#10b981}.dot.offline,.dot.unknown{background:#ef4444}.content{flex:1;padding:12px;display:flex;flex-direction:column;min-width:0;min-height:0}.dashboard-content{position:relative}.dashboard-content.map-active{padding:0}.engineering-content{gap:12px;flex:1;min-height:0}main.content.engineering-content:has(.device-management-panel){overflow:hidden}main.content.engineering-content:has(.users-management-panel){overflow:hidden}main.content.engineering-content:has(.bulk-notify-panel){overflow:hidden}.engineering-content>.tabs,.engineering-content>.eng-nav{flex-shrink:0;width:calc(100% + 24px);margin:-12px -12px 0}.eng-nav{display:flex;align-items:stretch;gap:2px;width:100%;background:#fff;border-bottom:1px solid #dbe2ea}.eng-nav-group{position:relative}.eng-nav-trigger{display:inline-flex;align-items:center;gap:8px;min-height:48px;padding:0 18px;border:0;border-bottom:2px solid transparent;background:transparent;color:#334155;font-weight:600;font-size:13.5px;white-space:nowrap;cursor:pointer;transition:background-color .15s ease,color .15s ease}.eng-nav-trigger svg{flex-shrink:0;opacity:.7;transition:opacity .15s ease,transform .15s ease}.eng-nav-trigger:hover{background:#fff7ed;color:#c45f00}.eng-nav-trigger:hover svg,.eng-nav-trigger.active svg{opacity:1}.eng-nav-trigger.active{color:#e67c00;border-bottom-color:#e67c00}.eng-nav-trigger[aria-expanded=true] .eng-nav-chevron{transform:rotate(180deg)}.eng-nav-trigger:focus-visible{outline:none;box-shadow:inset 0 0 0 2px #e67c0059}.eng-nav-menu{position:absolute;top:100%;left:0;z-index:40;display:flex;flex-direction:column;min-width:290px;padding:6px;background:#fff;border:1px solid #e2e8f0;border-radius:12px;box-shadow:0 14px 34px #0f172a29;animation:eng-nav-in .13s ease-out}@keyframes eng-nav-in{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}.eng-nav-item{display:flex;align-items:flex-start;gap:10px;padding:9px 10px;border:0;border-radius:9px;background:transparent;text-align:left;cursor:pointer;color:#0f172a;transition:background-color .12s ease}.eng-nav-item:hover{background:#f1f5f9}.eng-nav-item.active{background:#fff7ed}.eng-nav-item-icon{display:inline-flex;align-items:center;justify-content:center;width:30px;height:30px;flex-shrink:0;border-radius:8px;background:#f1f5f9;color:#475569}.eng-nav-item.active .eng-nav-item-icon{background:#ffedd5;color:#c45f00}.eng-nav-item-text{display:flex;flex-direction:column;gap:2px;min-width:0}.eng-nav-item-text strong{font-size:13px;font-weight:600;line-height:1.25}.eng-nav-item.active .eng-nav-item-text strong{color:#c45f00}.eng-nav-item-text small{font-size:11.5px;line-height:1.35;color:#64748b;white-space:normal}@media (max-width: 900px){.eng-nav{overflow-x:auto;scrollbar-width:thin}.eng-nav-trigger{padding:0 12px}}.tabs{display:flex;align-items:center;gap:8px;margin-bottom:12px;padding:6px;border:1px solid #d1d5db;border-radius:12px;background:#f8fafc;width:fit-content;max-width:100%;flex-wrap:wrap}.dashboard-tabs{margin-left:auto}.dashboard-title-inline{font-size:13px;font-weight:700;color:#1f2937;margin-right:10px}.dashboard-content.map-active .dashboard-tabs{position:absolute;top:10px;right:10px;z-index:800;margin-left:0;margin-bottom:0;background:#f8fafceb;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.tabs button{border:1px solid transparent;border-radius:10px;background:transparent;color:#334155;padding:7px 12px;font-weight:600;cursor:pointer;transition:background-color .2s ease,color .2s ease,box-shadow .2s ease,transform .12s ease}.tabs button:hover{background:#e2e8f0}.tabs button:active{transform:scale(.97)}.tabs button:focus-visible{outline:none;box-shadow:0 0 0 3px #e67c0038}.tabs button.active{background:linear-gradient(135deg,#e67c00,#cc7000);border-color:#cc7000;color:#fff;box-shadow:0 6px 16px #e67c0042}.selected-device{margin-left:auto;font-size:12px;color:#374151}.tab-panel{background:#fff;border:1px solid #d1d5db;border-radius:8px;padding:12px;overflow:auto}.notification-tab-panel{display:flex;flex-direction:column;min-height:0;flex:1;overflow:hidden!important;padding:14px 16px}.notification-settings-panel{width:100%;max-width:none;margin:0;border:none;padding:0;box-shadow:none;background:transparent;display:flex;flex-direction:column;min-height:0;flex:1}.notification-columns{display:grid;grid-template-columns:1fr 1fr;gap:12px;align-items:start;flex:1;min-height:0}.notification-card{border:1px solid #d1d5db;border-radius:10px;background:#f8fafc;padding:12px;display:grid;gap:8px}.notification-card h4{margin:0 0 6px;color:#0f172a}.notification-toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-bottom:14px}.notification-toolbar .notif-status-row{margin-bottom:0}.notification-toolbar .notification-save-top{flex-shrink:0}.notif-status-row{display:flex;flex-wrap:wrap;gap:10px;margin-bottom:18px}.notif-status-pill{display:inline-flex;align-items:center;gap:8px;padding:8px 14px;border-radius:999px;border:1px solid #e2e8f0;background:#fff;font-size:13px;color:#475569;transition:all .15s}.notif-status-pill .material-symbols-outlined{font-size:18px}.notif-status-pill.is-on{background:#ecfdf5;border-color:#6ee7b7;color:#065f46}.notif-status-pill.is-on .material-symbols-outlined{color:#059669}.notif-status-pill.is-off{color:#94a3b8}.notif-status-pill.is-off .material-symbols-outlined{color:#cbd5e1}.notif-status-label{font-weight:600}.notif-status-state{font-size:11px;font-weight:700;letter-spacing:.05em;text-transform:uppercase;padding:2px 8px;border-radius:999px;background:#0f172a0d}.notif-status-pill.is-on .notif-status-state{background:#d1fae5;color:#065f46}.notification-form-v2{display:flex;flex-direction:column;gap:20px}.notification-cards-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(340px,1fr));gap:18px;align-items:stretch}.notification-card-v2{display:flex;flex-direction:column;background:#fff;border:1px solid #e2e8f0;border-radius:14px;overflow:hidden;box-shadow:0 1px 2px #0f172a0a;transition:border-color .15s,box-shadow .15s}.notification-card-v2.is-active{border-color:#818cf8;box-shadow:0 4px 12px #6366f11f}.notification-card-head{display:flex;align-items:center;gap:12px;padding:16px 18px;background:#f8fafc;border-bottom:1px solid #e2e8f0}.notification-card-v2.is-active .notification-card-head{background:linear-gradient(135deg,#eef2ff,#f8fafc)}.notification-card-icon{width:38px;height:38px;border-radius:10px;background:#e0e7ff;color:#4338ca;display:flex;align-items:center;justify-content:center;flex-shrink:0}.notification-card-icon .material-symbols-outlined{font-size:22px}.notification-card-v2.is-active .notification-card-icon{background:#4338ca;color:#fff}.notification-card-titles{flex:1;min-width:0}.notification-card-titles h4{margin:0;font-size:15px;color:#0f172a;line-height:1.3}.notification-card-titles small{display:block;margin-top:2px;font-size:11.5px;color:#64748b;line-height:1.3}.notif-toggle{position:relative;width:42px;height:24px;flex-shrink:0;cursor:pointer}.notif-toggle input{position:absolute;opacity:0;width:0;height:0}.notif-toggle-slider{position:absolute;top:0;right:0;bottom:0;left:0;background:#cbd5e1;border-radius:999px;transition:background .2s}.notif-toggle-slider:after{content:"";position:absolute;top:3px;left:3px;width:18px;height:18px;background:#fff;border-radius:50%;box-shadow:0 2px 4px #0f172a2e;transition:transform .2s}.notif-toggle input:checked+.notif-toggle-slider{background:#4338ca}.notif-toggle input:checked+.notif-toggle-slider:after{transform:translate(18px)}.notif-toggle input:focus-visible+.notif-toggle-slider{outline:2px solid #c7d2fe;outline-offset:2px}.notification-card-body{padding:16px 18px;flex:1}.notif-field-grid{display:grid;grid-template-columns:1fr 100px;gap:12px}.notif-field{display:flex;flex-direction:column;gap:4px;font-size:12.5px;color:#475569;font-weight:500;min-width:0}.notif-field--full{grid-column:1 / -1}.notif-field--narrow input{text-align:center}.whatsapp-panel-desc{margin:0 0 14px}.whatsapp-qr-panel{display:flex;justify-content:center;padding:24px;background:#f9fafb;border:1px solid #e5e7eb;border-radius:12px}.whatsapp-qr-connected{display:flex;align-items:center;gap:10px;background:linear-gradient(135deg,#ecfdf5,#f0fdf4);border:1px solid #bbf7d0;border-radius:10px;padding:12px 14px;width:100%}.whatsapp-qr-connected .material-symbols-outlined{color:#16a34a;font-size:24px}.whatsapp-qr-connected>div{display:flex;flex-direction:column;flex:1}.whatsapp-qr-pending,.whatsapp-qr-waiting{display:flex;flex-direction:column;align-items:center;gap:8px;text-align:center}.whatsapp-qr-pending img{width:220px;height:220px;border:1px solid #e5e7eb;border-radius:8px;background:#fff}.whatsapp-qr-waiting .material-symbols-outlined{width:54px;height:54px;display:grid;place-items:center;border-radius:50%;background:#eef2f6;font-size:28px;color:#94a3b8}.whatsapp-web-layout{display:grid;grid-template-columns:minmax(240px,320px) minmax(0,1fr);gap:16px;align-items:stretch}.whatsapp-web-side,.whatsapp-web-main{min-width:0}.whatsapp-web-side .whatsapp-qr-panel{height:100%;min-height:240px;flex-direction:column;align-items:center;justify-content:center}.whatsapp-web-main{display:flex;flex-direction:column;gap:12px;border:1px solid #e2e8f0;border-radius:14px;padding:14px 16px;background:#fff}.whatsapp-group-head{display:flex;align-items:flex-start;gap:10px}.whatsapp-group-head>.material-symbols-outlined{width:34px;height:34px;border-radius:11px;display:inline-flex;align-items:center;justify-content:center;background:#f1f5f9;color:#475569;font-size:19px;flex-shrink:0}.whatsapp-group-head h4{margin:0;font-size:14px;color:#0f172a}.whatsapp-group-head p{margin:3px 0 0;color:#64748b;font-size:11.5px;line-height:1.4}.whatsapp-group-hint{margin:0}@media (max-width: 820px){.whatsapp-web-layout{grid-template-columns:1fr}}.telegram-discover-card{background:linear-gradient(135deg,#eef2ff,#f5f3ff);border:1px solid #c7d2fe;border-radius:10px;padding:12px 14px;display:flex;flex-direction:column;gap:10px}.telegram-discover-head{display:flex;align-items:center;gap:10px}.telegram-discover-head>.material-symbols-outlined:first-child{font-size:24px;color:#4338ca;background:#fff;padding:6px;border-radius:10px;border:1px solid #c7d2fe;flex-shrink:0}.telegram-discover-head-text{flex:1;display:flex;flex-direction:column;gap:2px;min-width:0}.telegram-discover-head-text strong{color:#312e81;font-size:13px}.telegram-discover-head-text small{color:#4338ca;font-size:11px;line-height:1.45}.telegram-discover-btn{display:inline-flex;align-items:center;gap:6px;padding:8px 14px;font-size:13px;font-weight:600;flex-shrink:0}.telegram-discover-btn .material-symbols-outlined{font-size:16px}.telegram-discover-error,.telegram-discover-empty{display:flex;align-items:flex-start;gap:6px;padding:8px 10px;border-radius:8px;font-size:12px;line-height:1.45}.telegram-discover-error{background:#fef2f2;border:1px solid #fecaca;color:#b91c1c}.telegram-discover-empty{background:#fff;border:1px dashed #c7d2fe;color:#4338ca}.telegram-discover-error .material-symbols-outlined,.telegram-discover-empty .material-symbols-outlined{font-size:16px;flex-shrink:0;margin-top:1px}.telegram-discover-detail{font-size:11px;color:#4f46e5;font-weight:600;letter-spacing:.02em;text-transform:uppercase}.telegram-discover-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:6px;max-height:280px;overflow-y:auto}.telegram-discover-item{display:flex;align-items:center;gap:10px;padding:8px 10px;background:#fff;border:1px solid #e2e8f0;border-radius:8px;transition:border-color .15s,box-shadow .15s}.telegram-discover-item:hover{border-color:#a5b4fc;box-shadow:0 2px 4px #4f46e51f}.telegram-discover-type{font-size:22px;width:32px;height:32px;display:grid;place-items:center;background:#f1f5f9;border-radius:8px;flex-shrink:0}.telegram-discover-info{flex:1;display:flex;flex-direction:column;gap:2px;min-width:0}.telegram-discover-info strong{color:#0f172a;font-size:13px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.telegram-discover-info code{background:#f1f5f9;padding:1px 6px;border-radius:4px;font-size:11px;color:#475569;align-self:flex-start}.telegram-discover-add{display:inline-flex;align-items:center;gap:5px;padding:6px 12px;background:#4f46e5;color:#fff;border:none;border-radius:7px;font-size:12px;font-weight:600;cursor:pointer;flex-shrink:0;transition:background .15s}.telegram-discover-add:hover:not(:disabled){background:#4338ca}.telegram-discover-add.is-added{background:#10b981;cursor:default}.telegram-discover-add:disabled.is-added{opacity:1}.telegram-discover-add .material-symbols-outlined{font-size:14px}.notif-field input{padding:9px 11px;border:1px solid #cbd5e1;border-radius:8px;font-size:13px;background:#fff;transition:border-color .15s,box-shadow .15s}.notif-field input:focus{outline:none;border-color:#6366f1;box-shadow:0 0 0 3px #6366f126}.notif-field .helper-text{margin:4px 0 0;font-size:11px;color:#94a3b8;font-weight:400;line-height:1.4}.notification-card-test{padding:14px 18px 16px;border-top:1px dashed #e2e8f0;background:#fafbff;display:flex;flex-direction:column;gap:10px}.notif-test-title{display:flex;align-items:center;gap:6px;font-size:11.5px;font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:#6366f1}.notif-test-title .material-symbols-outlined{font-size:16px}.notif-test-row{display:flex;gap:8px}.notif-test-row input{flex:1;padding:9px 11px;border:1px solid #cbd5e1;border-radius:8px;font-size:13px;background:#fff;min-width:0}.notif-test-row input:focus{outline:none;border-color:#6366f1;box-shadow:0 0 0 3px #6366f126}.notif-test-row .secondary-btn{flex-shrink:0;min-width:80px;padding:9px 16px}.notif-test-result{display:flex;align-items:flex-start;gap:8px;padding:8px 10px;border-radius:8px;font-size:12.5px;line-height:1.4}.notif-test-result .material-symbols-outlined{font-size:18px;flex-shrink:0}.notif-test-result.is-ok{background:#ecfdf5;color:#065f46;border:1px solid #a7f3d0}.notif-test-result.is-ok .material-symbols-outlined{color:#059669}.notif-test-result.is-fail{background:#fef2f2;color:#991b1b;border:1px solid #fecaca}.notif-test-result.is-fail .material-symbols-outlined{color:#dc2626}.notification-form-actions{display:flex;justify-content:flex-end;padding:14px 0 4px;border-top:1px solid #e2e8f0}.notification-form-actions .primary-btn{display:inline-flex;align-items:center;gap:8px;padding:10px 20px;font-size:14px}.notification-form-actions .primary-btn .material-symbols-outlined{font-size:18px}.notification-panel-head{display:flex;align-items:flex-start;justify-content:space-between;gap:14px;margin-bottom:18px;flex-wrap:wrap}.notification-panel-head h3{margin:0}.notification-save-top{display:inline-flex;align-items:center;gap:8px;padding:10px 18px;font-size:14px;flex-shrink:0}.notification-save-top .material-symbols-outlined{font-size:18px}.notification-tab-panel{display:flex;flex-direction:column;height:100%;min-height:0;overflow:hidden}.notification-tab-panel .notification-form-v2{display:flex;flex-direction:column;flex:1 1 auto;min-height:0;overflow:hidden}.notification-tab-panel .notification-cards-grid{flex:1 1 auto;align-items:stretch;min-height:0}.notification-tab-panel .notification-card-v2{min-height:0;overflow:hidden}.notification-tab-panel .notification-card-body{overflow-y:auto;min-height:0}.notification-card-test{margin-top:auto;flex-shrink:0}.notification-tab-panel .notification-card-head{padding:12px 14px}.notification-tab-panel .notification-card-icon{width:32px;height:32px}.notification-tab-panel .notification-card-icon .material-symbols-outlined{font-size:18px}.notification-tab-panel .notification-card-titles h4{font-size:14px;margin:0}.notification-tab-panel .notification-card-titles small{font-size:11.5px}.notification-tab-panel .notification-card-body{padding:12px 14px}.notification-tab-panel .notif-field-grid{gap:8px 10px}.notification-tab-panel .notif-field{font-size:12px;gap:3px}.notification-tab-panel .notif-field input{padding:6px 9px;font-size:12.5px}.notification-tab-panel .notif-field .helper-text{font-size:10.5px;line-height:1.3}.notification-tab-panel .notification-card-test{padding:10px 14px 12px}.notification-tab-panel .notif-test-row input{padding:6px 9px;font-size:12.5px}.notification-tab-panel .notif-status-row{margin-bottom:10px;flex-shrink:0}.notification-panel-head{flex-shrink:0;margin-bottom:12px!important}@media (max-width: 720px){.notif-field-grid{grid-template-columns:1fr}.notification-tab-panel{overflow-y:auto}}.notification-toolbar h3{margin:0;color:#0f172a;font-size:18px}.notification-toolbar p{margin:4px 0 0;max-width:760px;color:#64748b;font-size:12.5px;line-height:1.45}.notification-layout{display:grid;grid-template-columns:300px minmax(0,1fr);gap:18px;flex:1 1 auto;min-height:0;overflow:hidden}.notification-channel-list,.notification-detail-card{background:#fff;border:1px solid #e2e8f0;border-radius:16px;box-shadow:0 1px 2px #0f172a0a}.notification-channel-list{display:flex;flex-direction:column;min-height:0;padding:12px}.notification-channel-list-head h4,.notification-detail-section h4{margin:0;color:#0f172a;font-size:14px}.notification-channel-list-head p{margin:4px 0 0;color:#64748b;font-size:11.5px;line-height:1.35}.notification-channel-stack{display:flex;flex-direction:column;gap:10px;overflow-y:auto;min-height:0}.notification-channel-card{position:relative;display:grid;grid-template-columns:44px minmax(0,1fr) auto 18px;align-items:center;gap:10px;width:100%;padding:12px 10px;border:1px solid #e2e8f0;border-radius:12px;background:#fff;color:#0f172a;text-align:left;cursor:pointer;transition:border-color .15s,box-shadow .15s,background .15s}.notification-channel-card:hover{border-color:#cbd5e1;background:#f8fafc}.notification-channel-card.is-selected{border-color:#4f46e5;background:#f8fafc;box-shadow:inset 3px 0 #4f46e5}.notification-channel-card.is-passive{color:#64748b}.notification-channel-icon{width:42px;height:42px;border-radius:12px;display:inline-flex!important;align-items:center;justify-content:center;background:#f1f5f9;color:#475569;font-size:22px!important;line-height:1!important;overflow:hidden}.notification-channel-card.is-selected .notification-channel-icon{background:#4f46e5;color:#fff}.notification-channel-text{display:flex;flex-direction:column;gap:2px;min-width:0}.notification-channel-text strong{font-size:12.5px;color:#0f172a}.notification-channel-text small{color:#64748b;font-size:10.5px;line-height:1.3}.notification-channel-status{display:inline-flex;align-items:center;justify-content:center;padding:3px 8px;border-radius:999px;background:#f1f5f9;color:#64748b;font-size:10px;font-weight:800}.notification-channel-status.is-on{background:#dcfce7;color:#16a34a}.notification-channel-chevron{color:#94a3b8;font-size:18px!important}.notification-detail-column{display:flex;flex-direction:column;min-width:0;min-height:0;overflow:hidden}.notification-detail-card{display:flex;flex-direction:column;flex:1 1 auto;min-height:0;overflow:hidden}.notification-detail-card.is-active .notification-detail-head{background:#f8fafc}.notification-detail-card.is-active .notification-card-icon{background:#4f46e5;color:#fff}.notification-detail-head{display:flex;align-items:center;gap:12px;padding:14px 16px;border-bottom:1px solid #e2e8f0;background:#f8fafc}.notification-head-action{margin-left:auto;flex-shrink:0;white-space:nowrap}.notification-detail-section{padding:14px 16px;overflow-y:auto;min-height:0;flex:1 1 auto}.notification-detail-section h4{margin-bottom:12px}.notification-content-card{max-width:820px;padding:14px;border:1px solid #e0e7ff;border-radius:14px;background:linear-gradient(135deg,#fff,#f8fafc);box-shadow:0 8px 24px #0f172a0d}.notification-content-head{display:flex;align-items:flex-start;gap:10px;margin-bottom:14px;padding-bottom:12px;border-bottom:1px dashed #dbe3f0}.notification-content-head>.material-symbols-outlined{width:34px;height:34px;border-radius:11px;display:inline-flex!important;align-items:center;justify-content:center;background:#eef2ff;color:#4f46e5;font-size:19px!important;line-height:1!important}.notification-content-head h4{margin:0}.notification-content-head p{margin:3px 0 0;color:#64748b;font-size:11.5px}.notification-detail-grid{grid-template-columns:repeat(2,minmax(0,1fr));max-width:none}.notif-field select{padding:7px 9px;border:1px solid #cbd5e1;border-radius:8px;font-size:12.5px;background:#fff;transition:border-color .15s,box-shadow .15s}.notif-field select:focus{outline:none;border-color:#6366f1;box-shadow:0 0 0 3px #6366f126}.notification-detail-test{margin-top:0;border-top-style:solid}.notification-coming-soon{display:grid;place-items:center;gap:8px;min-height:260px;padding:28px;text-align:center;color:#64748b}.notification-coming-soon .material-symbols-outlined{width:48px;height:48px;border-radius:14px;display:grid;place-items:center;background:#f1f5f9;color:#94a3b8;font-size:26px}.notification-coming-soon h4{margin:0;color:#0f172a}.notification-coming-soon p{max-width:420px;margin:0;font-size:12.5px;line-height:1.5}.notification-webhook-panel{flex:1 1 auto;min-height:0;overflow:hidden}.notification-webhook-panel>.tab-panel{height:100%;border:0;border-radius:0;padding:12px 14px}.webhook-list{display:flex;flex-direction:column;gap:10px;overflow-y:auto;min-height:0}.webhook-card{display:grid;grid-template-columns:40px minmax(0,1fr) auto auto;align-items:center;gap:14px;padding:12px 16px;background:#fff;border:1px solid #e2e8f0;border-radius:12px;transition:border-color .15s,box-shadow .15s}.webhook-card:hover{border-color:#cbd5e1;box-shadow:0 2px 10px #0f172a0f}.webhook-card--inactive{opacity:.62}.webhook-card-icon{width:40px;height:40px;border-radius:11px;display:grid;place-items:center;background:#f1f5f9;color:#475569}.webhook-card-icon .material-symbols-outlined{font-size:20px}.webhook-card-info{min-width:0;display:flex;flex-direction:column;gap:5px}.webhook-card-name{display:flex;align-items:center;gap:8px;min-width:0}.webhook-card-name strong{font-size:14px;color:#0f172a;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.webhook-card-url{font-size:12px;color:#475569;background:#f8fafc;border:1px solid #eef2f6;border-radius:6px;padding:2px 8px;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.webhook-card-runtime{flex-shrink:0}.webhook-card-idle{color:#94a3b8;font-size:12px}.webhook-card-actions{display:flex;gap:6px;flex-shrink:0}.webhook-empty{display:grid;place-items:center;gap:10px;padding:48px 24px;text-align:center;border:1px dashed #cbd5e1;border-radius:14px;background:#f8fafc}.webhook-empty>.material-symbols-outlined{font-size:52px;color:#cbd5e1}.webhook-empty h4{margin:0;color:#0f172a}.webhook-empty p{margin:0;max-width:380px;color:#64748b;font-size:13px;line-height:1.5}.webhook-empty .primary-btn{margin-top:4px}.webhook-test-result{display:inline-flex;align-items:center;gap:5px;font-size:11.5px;line-height:1.3}.webhook-test-result .material-symbols-outlined{font-size:15px}.webhook-test-result.is-ok{color:#059669}.webhook-test-result.is-fail{color:#dc2626}.webhook-n8n-help{margin-top:4px;border:1px solid #e2e8f0;border-radius:10px;background:#f8fafc;padding:12px 14px;display:flex;flex-direction:column;gap:10px}.webhook-n8n-help-head{display:flex;align-items:flex-start;gap:10px}.webhook-n8n-help-head>.material-symbols-outlined{width:30px;height:30px;border-radius:9px;display:inline-flex;align-items:center;justify-content:center;background:#eef2ff;color:#4f46e5;font-size:18px;flex-shrink:0}.webhook-n8n-help-head strong{display:block;font-size:13px;color:#0f172a}.webhook-n8n-help-head small{display:block;margin-top:3px;color:#64748b;font-size:11.5px;line-height:1.45}.webhook-payload-sample{display:flex;flex-direction:column;gap:5px}.webhook-payload-sample-label{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:#64748b}.webhook-payload-sample pre{margin:0;padding:10px 12px;background:#0f172a;color:#e2e8f0;border-radius:8px;font-size:11.5px;line-height:1.5;overflow-x:auto;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace}@media (max-width: 640px){.webhook-card{grid-template-columns:40px minmax(0,1fr)}.webhook-card-runtime,.webhook-card-actions{grid-column:2 / -1}}.notification-inline-state{margin:8px 0 0;text-align:center}.notification-bottom-actions{display:flex;justify-content:flex-end;flex-shrink:0;padding-top:10px;border-top:1px solid #e2e8f0}@media (max-width: 980px){.notification-layout{grid-template-columns:1fr;overflow:visible}.notification-channel-list,.notification-detail-column{overflow:visible}.notification-channel-stack{max-height:none}}@media (max-width: 640px){.notification-channel-card{grid-template-columns:42px minmax(0,1fr) 18px}.notification-channel-status{display:none}.notification-detail-head{flex-wrap:wrap}}.live-values-panel{margin-top:0;display:flex;flex-direction:column;min-height:0;flex:1;height:100%}.live-values-table-wrap{flex:1;min-height:0;overflow:auto}.alarms-layout{display:block;min-height:0;height:100%;flex:1}.alarms-layout-flat{display:flex;flex-direction:column;gap:10px}.alarms-layout-split{display:grid;grid-template-columns:minmax(0,1fr) 400px;gap:12px;align-items:start;flex:1 1 auto;min-height:0;height:100%;overflow:hidden}.alarms-main{display:flex;flex-direction:column;gap:10px;min-width:0;min-height:0;height:100%}.alarms-layout-split .alarms-section{flex:1 1 auto;min-height:0;display:flex;flex-direction:column;margin-top:0}.alarms-layout-split .alarms-section .alarms-table-wrap{flex:1 1 auto;min-height:0;overflow-y:auto}.alarms-side-panel{align-self:stretch;height:100%;min-height:0;overflow:hidden;background:#fff;border:1px solid #e2e8f0;border-radius:14px;box-shadow:0 1px 3px #0f172a0d;padding:16px;display:flex;flex-direction:column}.alarm-detail-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;min-height:260px;text-align:center;color:#94a3b8}.alarm-detail-empty .material-symbols-outlined{font-size:40px;opacity:.5}.alarm-detail-empty h3{margin:0;font-size:15px;color:#64748b}.alarm-detail{display:flex;flex-direction:column;gap:16px;height:100%;min-height:0}.alarm-detail-top{display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid #f1f5f9;padding-bottom:12px;flex:0 0 auto}.alarm-detail-tabs{display:flex;gap:4px;background:#f1f5f9;padding:3px;border-radius:10px;flex:0 0 auto}.alarm-detail-tab{flex:1;display:inline-flex;align-items:center;justify-content:center;gap:6px;padding:8px 10px;border:none;background:transparent;border-radius:8px;font-size:13px;font-weight:700;color:#64748b;cursor:pointer}.alarm-detail-tab.active{background:#fff;color:#0f172a;box-shadow:0 1px 3px #0f172a1a}.alarm-detail-tab-count{font-size:11px;font-weight:800;color:#64748b;background:#e2e8f0;border-radius:999px;padding:0 7px;min-width:18px;text-align:center}.alarm-detail-tab.active .alarm-detail-tab-count{background:#f1f5f9}.alarm-detail-scroll{flex:1 1 auto;min-height:0;overflow:hidden;display:flex;flex-direction:column;gap:16px;padding:2px 0}.alarm-detail-heading{flex:0 0 auto}.alarm-detail-eyebrow{font-size:13px;font-weight:700;color:#475569}.alarm-detail-close{display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;border:none;background:transparent;color:#94a3b8;border-radius:8px;cursor:pointer}.alarm-detail-close:hover{background:#f1f5f9;color:#475569}.alarm-detail-heading{display:flex;flex-direction:column;gap:9px;padding:4px 0 4px 14px;position:relative}.alarm-detail-heading:before{content:"";position:absolute;left:0;top:3px;bottom:3px;width:4px;border-radius:3px;background:#cbd5e1}.alarm-detail-heading.level-band-critical:before,.alarm-detail-heading.level-band-error:before{background:#ef4444}.alarm-detail-heading.level-band-warning:before{background:#f59e0b}.alarm-detail-heading.level-band-info:before{background:#f97316}.alarm-detail-pills{display:flex;align-items:center;gap:8px}.alarm-detail-alarmtitle{margin:0;font-size:21px;font-weight:800;color:#0f172a;line-height:1.22}.alarm-detail-desc{margin:0;font-size:13px;color:#64748b;line-height:1.4}.alarm-detail-sub{font-size:13px;color:#64748b;font-weight:600}.alarm-detail-sub-name{color:#0f172a;font-weight:700}.alarm-detail-sub-code{color:#64748b;font-family:ui-monospace,SF Mono,Menlo,monospace}.alarm-detail-sub-source{color:#94a3b8}.alarm-detail-metrics,.alarm-detail-location,.alarm-detail-assign,.alarm-detail-cta,.alarm-detail-repeat{flex:0 0 auto}.alarm-detail-metrics{display:grid;grid-template-columns:repeat(2,1fr);gap:8px}.alarm-detail-metric{display:flex;align-items:center;gap:9px;min-width:0;padding:10px 11px;background:#f8fafc;border:1px solid #f1f5f9;border-radius:11px}.alarm-detail-metric-icon{display:inline-flex;align-items:center;justify-content:center;flex:0 0 auto;width:30px;height:30px;border-radius:8px;background:#fff;color:#64748b;border:1px solid #e2e8f0}.alarm-detail-metric-body{display:flex;flex-direction:column;gap:1px;min-width:0}.alarm-detail-metric-label{font-size:10px;color:#94a3b8;font-weight:700;text-transform:uppercase;letter-spacing:.03em}.alarm-detail-metric-value{font-size:13.5px;font-weight:700;color:#0f172a;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.alarm-detail-location{display:flex;flex-wrap:wrap;gap:8px}.alarm-detail-loc-item{display:inline-flex;align-items:center;gap:5px;padding:5px 10px;border-radius:8px;background:#f1f5f9;font-size:12px;font-weight:600;color:#475569}.alarm-detail-loc-item svg{color:#94a3b8;flex:0 0 auto}.alarm-detail-suggest{display:flex;flex-direction:column;gap:4px}.alarm-detail-suggest-title{font-size:13px;font-weight:700;color:#0f172a}.alarm-detail-suggest p{margin:0;font-size:13px;color:#64748b;line-height:1.45}.alarm-detail-assign{display:flex;flex-direction:column;gap:6px}.alarm-detail-assign>span{font-size:12px;font-weight:700;color:#475569}.alarm-detail-assign select{padding:9px 10px;border:1px solid #e2e8f0;border-radius:9px;font-size:13px;color:#334155;background:#fff}.alarm-detail-cta{display:flex;flex-direction:column;gap:8px}.alarm-detail-cta-primary{display:inline-flex;align-items:center;justify-content:center;gap:8px;width:100%;padding:11px 14px;border:none;border-radius:10px;background:#f97316;color:#fff;font-size:14px;font-weight:700;cursor:pointer;transition:filter .15s}.alarm-detail-cta-primary:hover{filter:brightness(1.05)}.alarm-detail-cta-primary:disabled{opacity:.6;cursor:not-allowed}.alarm-detail-cta-ghost{display:inline-flex;align-items:center;justify-content:center;gap:8px;width:100%;padding:10px 14px;border:1px solid #e2e8f0;border-radius:10px;background:#fff;color:#334155;font-size:13px;font-weight:700;cursor:pointer}.alarm-detail-cta-ghost:hover{border-color:#cbd5e1;background:#f8fafc}.alarm-detail-repeat{display:flex;flex-direction:column;gap:9px}.alarm-detail-repeat-head{display:flex;align-items:baseline;justify-content:space-between}.alarm-detail-repeat-total{font-size:12px;font-weight:700;color:#ea580c}.alarm-heatmap{display:grid;grid-template-columns:repeat(30,1fr);gap:3px}.alarm-heatmap-cell{aspect-ratio:1 / 1;border-radius:3px;background:#eef2f7;border:1px solid rgba(15,23,42,.04)}.alarm-heatmap-cell.hm-0{background:#eef2f7}.alarm-heatmap-cell.hm-1{background:#fed7aa}.alarm-heatmap-cell.hm-2{background:#fdba74}.alarm-heatmap-cell.hm-3{background:#fb923c}.alarm-heatmap-cell.hm-4{background:#ea580c}.alarm-heatmap-legend{display:flex;align-items:center;gap:4px;justify-content:flex-end;font-size:10px;color:#94a3b8;font-weight:600}.alarm-heatmap-legend .alarm-heatmap-cell{width:11px;height:11px;aspect-ratio:auto}.alarm-detail-timeline{display:flex;flex-direction:column;gap:12px;flex:1 1 auto;min-height:120px}.alarm-detail-section-title{font-size:11px;font-weight:800;color:#64748b;text-transform:uppercase;letter-spacing:.05em;flex:0 0 auto}.alarm-timeline{list-style:none;margin:0;padding:2px 4px 2px 2px;display:flex;flex-direction:column;flex:1 1 auto;min-height:0;overflow-y:auto}.alarm-timeline-item{display:flex;gap:13px;padding-bottom:18px;position:relative}.alarm-timeline-item:last-child{padding-bottom:0}.alarm-timeline-item:before{content:"";position:absolute;left:6px;top:16px;bottom:0;width:2px;background:#e2e8f0}.alarm-timeline-item:last-child:before{display:none}.alarm-timeline-dot{width:14px;height:14px;border-radius:50%;flex:0 0 auto;margin-top:2px;background:#fff;border:2.5px solid #cbd5e1;z-index:1;box-shadow:0 0 0 3px #fff}.alarm-timeline-item.is-created .alarm-timeline-dot{border-color:#ef4444;background:#fee2e2}.alarm-timeline-item.is-ack .alarm-timeline-dot{border-color:#3b82f6;background:#3b82f6}.alarm-timeline-item.is-assign .alarm-timeline-dot{border-color:#8b5cf6;background:#8b5cf6}.alarm-timeline-item.is-comment .alarm-timeline-dot{border-color:#64748b;background:#cbd5e1}.alarm-timeline-item.is-reset .alarm-timeline-dot{border-color:#22c55e;background:#22c55e}.alarm-timeline-item.is-pending .alarm-timeline-dot{border-style:dashed}.alarm-timeline-body{display:flex;flex-direction:column;gap:2px}.alarm-timeline-time{font-size:13px;font-weight:800;color:#0f172a}.alarm-timeline-label{font-size:12.5px;color:#64748b}.alarm-detail-comments{display:flex;flex-direction:column;gap:10px;flex:1;min-height:0}.alarm-detail-comments-list{display:flex;flex-direction:column;gap:8px;flex:1}.alarm-detail-comments-empty{font-size:12px;color:#94a3b8;text-align:center;padding:10px}.alarm-detail-comment-form{display:flex;flex-direction:column;gap:8px}.alarm-detail-comment-form textarea{width:100%;border:1px solid #e2e8f0;border-radius:9px;padding:9px 10px;font-size:13px;resize:vertical;font-family:inherit}.alarms-page-toolbar .alarms-filter-row{flex-wrap:nowrap;gap:8px}.alarms-filter-wrap{position:relative}.alarms-filter-btn{display:inline-flex;align-items:center;gap:7px;padding:9px 14px;border:1px solid #e2e8f0;border-radius:10px;background:#fff;color:#334155;font-size:13px;font-weight:700;cursor:pointer}.alarms-filter-btn:hover{border-color:#cbd5e1}.alarms-filter-btn.has-active{border-color:#fdba74;color:#c2410c}.alarms-filter-btn.open{border-color:#f97316}.alarms-filter-badge{font-size:11px;font-weight:800;color:#fff;background:#f97316;border-radius:999px;padding:0 7px;min-width:18px;text-align:center}.alarms-filter-panel{position:absolute;top:calc(100% + 8px);right:0;z-index:60;width:320px;background:#fff;border:1px solid #e2e8f0;border-radius:14px;box-shadow:0 14px 40px #0f172a2e;padding:14px;display:flex;flex-direction:column;gap:12px}.alarms-filter-panel-head{display:flex;align-items:center;justify-content:space-between;font-size:13px;font-weight:800;color:#0f172a}.alarms-filter-clear{border:none;background:transparent;color:#ea580c;font-size:12px;font-weight:700;cursor:pointer;padding:2px 4px;border-radius:6px}.alarms-filter-clear:hover{background:#fff7ed}.alarms-filter-field{display:flex;flex-direction:column;gap:5px}.alarms-filter-field>label{font-size:11px;font-weight:700;color:#64748b;text-transform:uppercase;letter-spacing:.03em}.alarms-filter-field select,.alarms-filter-field input[type=datetime-local]{padding:8px 10px;border:1px solid #e2e8f0;border-radius:9px;font-size:13px;color:#334155;background:#fff;width:100%}.alarms-filter-daterow{display:flex;align-items:center;gap:6px}.alarms-filter-daterow input{flex:1;min-width:0}.alarms-filter-daterow span{color:#94a3b8;flex:0 0 auto}.alarms-filter-quick{display:flex;gap:5px;flex-wrap:wrap}.alarms-filter-quick-btn{padding:4px 9px;border:1px solid #e2e8f0;border-radius:7px;background:#fff;font-size:11px;font-weight:700;color:#64748b;cursor:pointer}.alarms-filter-quick-btn.active{border-color:#f97316;background:#fff7ed;color:#c2410c}@media (max-width: 1100px){.alarms-layout-split{grid-template-columns:1fr}.alarms-side-panel{position:static;max-height:none}}.alarms-list-card,.alarms-detail-card{background:#fff;border:1px solid #d1d5db;border-radius:10px;padding:12px}.alarms-list-card{display:flex;flex-direction:column;min-height:0;flex:1;height:100%}.alarms-toolbar{display:flex;align-items:center;gap:8px;margin-bottom:10px}.alarms-filter-row{display:flex;gap:8px;flex:0 0 auto;white-space:nowrap;align-items:center}.alarms-toolbar .device-search-input{flex:1 1 auto;min-width:240px}.alarms-table-wrap{flex:1;min-height:0;overflow:auto}.alarms-page-list-card{position:relative}.alarms-page-toolbar{position:sticky;top:0;z-index:5;background:#fff;padding-bottom:8px}.alarms-page-table thead th{position:sticky;top:0;z-index:4;background:#fff}.alarm-actions-cell{text-align:right;white-space:nowrap}.material-symbols-outlined{font-family:Material Symbols Outlined;font-weight:400;font-style:normal;line-height:1;letter-spacing:normal;text-transform:none;display:inline-block;white-space:nowrap;word-wrap:normal;direction:ltr;-webkit-font-feature-settings:"liga";-webkit-font-smoothing:antialiased;font-variation-settings:"FILL" 0,"wght" 500,"GRAD" 0,"opsz" 24;font-size:18px}.icon-btn{display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;padding:0;font-size:14px;line-height:1;border-radius:6px;border:1px solid #cbd5e1;background:#f8fafc;color:#475569;cursor:pointer;transition:background .12s,border-color .12s,transform .05s,color .12s}.icon-btn .material-symbols-outlined{font-size:18px}.icon-btn:hover:not(:disabled){background:#e2e8f0;border-color:#94a3b8}.icon-btn:active:not(:disabled){transform:scale(.95)}.icon-btn:disabled{opacity:.4;cursor:not-allowed}.icon-btn-ack:hover:not(:disabled){background:#dcfce7;border-color:#16a34a;color:#15803d}.icon-btn-reset:hover:not(:disabled){background:#fee2e2;border-color:#dc2626;color:#b91c1c}.icon-btn-assign:hover:not(:disabled){background:#eef2ff;border-color:#4f46e5;color:#4338ca}.icon-btn-comment:hover:not(:disabled){background:#fef3c7;border-color:#d97706;color:#b45309}.icon-btn-delete{background:#fef2f2;border-color:#fecaca;color:#b91c1c}.icon-btn-delete:hover:not(:disabled){background:#fecaca;border-color:#dc2626;color:#991b1b}.events-list-card{position:relative}.events-toolbar{position:sticky;top:0;z-index:5;background:#fff;padding-bottom:8px}.events-table thead th{position:sticky;top:0;z-index:4;background:#fff}.export-modal{width:min(420px,92vw)}.system-status-shell{width:100%;max-width:none;margin:0;display:flex;flex-direction:column;gap:16px;background:linear-gradient(180deg,#f8fafc,#f1f5f9);flex:1 1 auto;min-height:0;overflow-y:auto;padding:8px 4px 28px}.system-status-shell{position:relative}.sys-page-head{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;flex-wrap:wrap;padding:0 4px}.sys-page-head-text{display:flex;flex-direction:column;gap:5px;min-width:0}.sys-page-head-text h2{margin:0;font-size:19px;font-weight:700;letter-spacing:-.015em;color:#0f172a}.sys-page-head-meta{display:flex;align-items:center;gap:14px;flex-wrap:wrap;font-size:12.5px;color:#64748b}.sys-page-head-meta>span{display:inline-flex;align-items:center;gap:5px;white-space:nowrap}.sys-page-head-meta svg{color:#94a3b8}.sys-page-head-live{padding:2px 9px 2px 7px;border-radius:999px;background:#ecfdf5;border:1px solid #a7f3d0;color:#047857!important;font-weight:600;font-variant-numeric:tabular-nums}.sys-refresh-btn{display:inline-flex;align-items:center;gap:7px;flex-shrink:0;padding:9px 16px;background:#fff;border:1px solid #e2e8f0;border-radius:10px;color:#334155;font-size:13px;font-weight:600;cursor:pointer;box-shadow:0 1px 2px #0f172a0d;transition:border-color .15s,box-shadow .15s,background .15s}.sys-refresh-btn:hover:not(:disabled){background:#f8fafc;border-color:#cbd5e1;box-shadow:0 2px 6px #0f172a14}.sys-refresh-btn:disabled{opacity:.65;cursor:not-allowed}.sys-refresh-btn svg{color:#6366f1}.sys-spin{animation:sys-spin-rotate 1s linear infinite}@keyframes sys-spin-rotate{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.sys-duo-grid{display:grid;grid-template-columns:1.15fr 1fr;gap:16px;align-items:stretch;flex:0 0 auto}@media (max-width: 1100px){.sys-duo-grid{grid-template-columns:1fr}}.sys-card{background:#fff;border:1px solid #e2e8f0;border-radius:14px;padding:18px 20px;box-shadow:0 2px 10px #0f172a0a;display:flex;flex-direction:column;gap:14px;transition:box-shadow .2s;min-height:0}.sys-card:hover{box-shadow:0 4px 16px #0f172a14}.sys-card-body{flex:1 1 auto;min-height:0;display:flex;flex-direction:column;gap:14px}.sys-card>.sys-card-list,.sys-card>.sys-svc-groups{flex:0 0 auto}.sys-card--strip{flex:0 0 auto}.sys-card .sys-loading-banner,.sys-card .sys-error-banner,.sys-card .sys-empty{flex:1 1 auto;display:flex;align-items:center;justify-content:center;text-align:center}.sys-card-head{display:flex;align-items:center;justify-content:space-between;gap:10px}.sys-card-title-wrap{display:flex;align-items:center;gap:10px;min-width:0}.sys-card-icon{width:32px;height:32px;border-radius:9px;display:inline-flex;align-items:center;justify-content:center;flex-shrink:0}.sys-card-icon--cpu{background:#fef3c7;color:#b45309}.sys-card-icon--svc{background:#d1fae5;color:#047857}.sys-card-icon--gw{background:#e0f2fe;color:#0369a1}.sys-card-icon--info{background:#e0e7ff;color:#4338ca}.sys-head-meta{display:flex;align-items:center;gap:8px;flex-shrink:0}.sys-live-dot{width:7px;height:7px;border-radius:50%;background:#10b981;box-shadow:0 0 #10b9818c;animation:sys-live-pulse 2s ease-out infinite}@keyframes sys-live-pulse{0%{box-shadow:0 0 #10b98180}70%{box-shadow:0 0 0 6px #10b98100}to{box-shadow:0 0 #10b98100}}.sys-latency-chip{display:inline-flex;align-items:center;gap:4px;padding:3px 9px;border-radius:999px;background:#eef2ff;color:#4338ca;font-size:11px;font-weight:700;font-variant-numeric:tabular-nums}.sys-latency-chip svg{font-size:14px}.sys-card-title{margin:0;font-size:1rem;color:#0f172a;letter-spacing:-.01em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.sys-card-body{display:flex;flex-direction:column;gap:14px}.sys-mini-donuts{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.sys-mini-donut{display:flex;flex-direction:column;align-items:center;gap:6px;padding:8px 6px;background:#f8fafc;border:1px solid #e2e8f0;border-radius:10px;transition:border-color .2s,background .2s}.sys-mini-donut--ok{border-color:#bbf7d0}.sys-mini-donut--warn{border-color:#fde68a;background:#fffbeb}.sys-mini-donut--bad{border-color:#fecaca;background:#fef2f2}.sys-mini-donut-vis{position:relative;width:84px;height:84px}.sys-mini-donut-center{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;pointer-events:none}.sys-mini-donut-center strong{font-size:.95rem;font-weight:800;color:#0f172a;letter-spacing:-.02em}.sys-mini-donut--ok .sys-mini-donut-center strong{color:#047857}.sys-mini-donut--warn .sys-mini-donut-center strong{color:#b45309}.sys-mini-donut--bad .sys-mini-donut-center strong{color:#b91c1c}.sys-mini-donut-label{font-size:11px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:#64748b;line-height:1}.sys-mini-donut-detail{font-size:11px;color:#475569;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;text-align:center;line-height:1.3;word-break:break-word;padding:0 2px}.sys-mini-donut--ok .sys-mini-donut-detail{color:#047857}.sys-mini-donut--warn .sys-mini-donut-detail{color:#b45309}.sys-mini-donut--bad .sys-mini-donut-detail{color:#b91c1c}.sys-mini-donut-free{font-size:10.5px;font-weight:600;color:#94a3b8;text-align:center;line-height:1.2}.sys-trend-duo{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}@media (max-width: 620px){.sys-trend-duo{grid-template-columns:1fr}}.sys-cores{display:flex;flex-direction:column;gap:8px;padding:12px 14px;background:#f8fafc;border:1px solid #e2e8f0;border-radius:12px}.sys-core-bars{display:flex;align-items:flex-end;gap:6px;flex-wrap:wrap}.sys-core-bar{display:flex;flex-direction:column;align-items:center;gap:4px;flex:0 0 auto}.sys-core-bar-track{position:relative;width:14px;height:44px;border-radius:4px;background:#e2e8f0;overflow:hidden;display:flex;align-items:flex-end}.sys-core-bar-fill{width:100%;border-radius:4px;transition:height .5s ease,background .3s ease;background:linear-gradient(180deg,#34d399,#10b981)}.sys-core-bar--warn .sys-core-bar-fill{background:linear-gradient(180deg,#fbbf24,#f59e0b)}.sys-core-bar--bad .sys-core-bar-fill{background:linear-gradient(180deg,#f87171,#dc2626)}.sys-core-bar-label{font-size:9.5px;font-weight:600;color:#94a3b8;font-variant-numeric:tabular-nums}.sys-meter{display:flex;flex-direction:column;gap:6px;padding:11px 14px;background:#f8fafc;border:1px solid #e2e8f0;border-radius:12px}.sys-meter--warn{border-color:#fde68a;background:#fffbeb}.sys-meter--bad{border-color:#fecaca;background:#fef2f2}.sys-meter-head{display:flex;align-items:center;gap:8px}.sys-meter-head svg{font-size:18px;color:#6d28d9}.sys-meter-label{font-size:11px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:#64748b;flex:1 1 auto}.sys-meter-value{font-size:.95rem;font-weight:800;color:#0f172a;font-variant-numeric:tabular-nums}.sys-meter--warn .sys-meter-value{color:#b45309}.sys-meter--bad .sys-meter-value{color:#b91c1c}.sys-meter-track{height:7px;border-radius:999px;background:#e2e8f0;overflow:hidden}.sys-meter-fill{height:100%;border-radius:999px;transition:width .5s ease}.sys-meter-fill--ok{background:linear-gradient(90deg,#a78bfa,#7c3aed)}.sys-meter-fill--warn{background:linear-gradient(90deg,#fbbf24,#f59e0b)}.sys-meter-fill--bad{background:linear-gradient(90deg,#f87171,#dc2626)}.sys-meter-sub{font-size:11px;color:#64748b;font-family:ui-monospace,SFMono-Regular,Menlo,monospace}.sys-loadavg{display:flex;align-items:center;gap:12px;padding:10px 14px;background:linear-gradient(135deg,#fdf2f8,#fff);border:1px solid #fbcfe8;border-radius:10px}.sys-loadavg-icon{width:36px;height:36px;border-radius:9px;background:#fce7f3;color:#be185d;display:flex;align-items:center;justify-content:center;flex-shrink:0}.sys-loadavg-icon svg{font-size:20px}.sys-loadavg-body{flex:1 1 auto;display:flex;flex-direction:column;gap:4px;min-width:0}.sys-loadavg-title{font-size:11px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:#64748b}.sys-loadavg-values{display:flex;gap:14px;flex-wrap:wrap}.sys-loadavg-values span{display:inline-flex;align-items:baseline;gap:5px}.sys-loadavg-values em{font-style:normal;font-size:10.5px;font-weight:700;letter-spacing:.04em;color:#94a3b8}.sys-loadavg-values strong{font-size:14px;font-weight:700;color:#0f172a;font-family:ui-monospace,SFMono-Regular,Menlo,monospace}.sys-trend{display:flex;flex-direction:column;gap:8px;padding:12px 14px;background:linear-gradient(135deg,#f8fafc,#fff);border:1px solid #e2e8f0;border-radius:10px;transition:border-color .2s}.sys-trend--ok{border-color:#bbf7d0}.sys-trend--warn{border-color:#fde68a;background:linear-gradient(135deg,#fffbeb,#fff)}.sys-trend--bad{border-color:#fecaca;background:linear-gradient(135deg,#fef2f2,#fff)}.sys-trend-head{display:flex;align-items:center;gap:8px}.sys-trend-head svg{font-size:18px;color:#6366f1}.sys-trend--ok .sys-trend-head svg{color:#10b981}.sys-trend--warn .sys-trend-head svg{color:#f59e0b}.sys-trend--bad .sys-trend-head svg{color:#dc2626}.sys-trend-label{flex:1;font-size:11px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:#64748b}.sys-trend-current{font-size:1rem;font-weight:800;color:#0f172a;letter-spacing:-.02em}.sys-trend--ok .sys-trend-current{color:#047857}.sys-trend--warn .sys-trend-current{color:#b45309}.sys-trend--bad .sys-trend-current{color:#b91c1c}.sys-trend .sparkline{width:100%;height:42px}.sys-metric-group,.sys-net-panel,.sys-info-group{display:flex;flex-direction:column;gap:8px}.sys-metric-group-title{display:flex;align-items:center;gap:8px;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:#475569;padding:0 2px}.sys-metric-group-title svg{font-size:16px;color:#6366f1}.sys-metric-rows{display:flex;flex-direction:column;gap:8px}.sys-metric{display:flex;align-items:center;gap:12px;padding:10px 12px;background:#f8fafc;border:1px solid #e2e8f0;border-radius:10px;transition:border-color .2s,transform .15s}.sys-metric:hover{transform:translate(2px);border-color:#cbd5e1}.sys-metric-icon{width:36px;height:36px;border-radius:9px;display:flex;align-items:center;justify-content:center;flex-shrink:0;background:#e0e7ff;color:#4338ca}.sys-metric-icon--cpu{background:#fef3c7;color:#b45309}.sys-metric-icon--load{background:#fce7f3;color:#be185d}.sys-metric-icon--ram{background:#d1fae5;color:#047857}.sys-metric-icon--disk{background:#dbeafe;color:#cc7000}.sys-metric-icon--swap{background:#ede9fe;color:#6d28d9}.sys-metric-icon .material-symbols-outlined{font-size:20px}.sys-metric-body{flex:1 1 auto;min-width:0;display:flex;flex-direction:column;gap:4px}.sys-metric-row1{display:flex;align-items:baseline;justify-content:space-between;gap:8px}.sys-metric-name{font-size:12.5px;font-weight:700;color:#0f172a}.sys-metric-value{font-size:12px;font-weight:700;color:#0f172a;font-family:ui-monospace,SFMono-Regular,Menlo,monospace}.sys-metric-bar{height:6px;background:#94a3b82e;border-radius:999px;overflow:hidden}.sys-metric-bar-fill{height:100%;border-radius:999px;transition:width .5s ease}.sys-metric-bar-fill--ok{background:linear-gradient(90deg,#34d399,#10b981)}.sys-metric-bar-fill--warn{background:linear-gradient(90deg,#fbbf24,#f59e0b)}.sys-metric-bar-fill--bad{background:linear-gradient(90deg,#f87171,#dc2626)}.sys-metric-sub{font-size:11px;color:#64748b;line-height:1.3}.sys-net-flow{display:grid;grid-template-columns:1fr auto 1fr;align-items:stretch;gap:0;padding:12px;background:linear-gradient(135deg,#ecfeff,#f0f9ff);border:1px solid #bae6fd;border-radius:10px}.sys-net-side{display:flex;align-items:center;gap:10px;padding:4px 8px}.sys-net-side--up{justify-content:flex-end}.sys-net-arrow{width:32px;height:32px;border-radius:50%;display:flex;align-items:center;justify-content:center;background:#fff;box-shadow:0 2px 6px #0f172a14;flex-shrink:0}.sys-net-arrow svg{font-size:18px}.sys-net-side--up .sys-net-arrow{color:#0284c7}.sys-net-side--down .sys-net-arrow{color:#059669}.sys-net-info{display:flex;flex-direction:column;line-height:1.2;min-width:0}.sys-net-side--up .sys-net-info{text-align:right}.sys-net-info strong{font-size:13.5px;font-weight:800;color:#0f172a;font-family:ui-monospace,SFMono-Regular,Menlo,monospace}.sys-net-info span{font-size:10.5px;color:#64748b;letter-spacing:.02em}.sys-net-divider{width:1px;background:linear-gradient(180deg,transparent,#cbd5e1,transparent);margin:0 4px}.sys-svc-groups{display:flex;flex-direction:column;gap:14px}.sys-svc-group{display:flex;flex-direction:column;gap:7px}.sys-svc-group-head{display:flex;align-items:center;gap:8px}.sys-svc-group-title{font-size:10.5px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:#64748b;white-space:nowrap}.sys-svc-group-head:after{content:"";flex:1 1 auto;height:1px;background:linear-gradient(90deg,#e2e8f0,transparent)}.sys-svc-group-count{order:3;font-size:11px;font-weight:700;color:#047857;background:#d1fae5;border-radius:999px;padding:2px 8px;font-variant-numeric:tabular-nums}.sys-svc-group-count--bad{color:#b91c1c;background:#fee2e2}.sys-list-latency{font-size:11px;font-weight:700;color:#4338ca;background:#eef2ff;border-radius:999px;padding:1px 7px;font-variant-numeric:tabular-nums}.sys-info-tiles{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:8px}.sys-info-tile{display:flex;align-items:flex-start;gap:10px;padding:10px 12px;background:#f8fafc;border:1px solid #e2e8f0;border-radius:10px;transition:border-color .2s}.sys-info-tile:hover{border-color:#cbd5e1}.sys-info-tile-icon{width:30px;height:30px;border-radius:8px;background:#e0e7ff;color:#4338ca;display:flex;align-items:center;justify-content:center;flex-shrink:0}.sys-info-tile-icon svg{font-size:17px}.sys-info-tile>div{display:flex;flex-direction:column;gap:1px;min-width:0}.sys-info-tile-label{font-size:10px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:#64748b}.sys-info-tile-val{font-size:13px;font-weight:700;color:#0f172a;word-break:break-word}.sys-info-tile-val--mono{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:12.5px}.sys-info-tile-sub{font-size:10.5px;color:#94a3b8}@media (max-width: 480px){.sys-info-tiles{grid-template-columns:1fr}}.sys-detail-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column}.sys-detail-list li{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:8px 0;border-bottom:1px dashed #f1f5f9;font-size:12.5px}.sys-detail-list li:last-child{border-bottom:none}.sys-detail-key{font-size:11px;font-weight:700;letter-spacing:.05em;text-transform:uppercase;color:#64748b;flex-shrink:0}.sys-detail-val{font-size:12.5px;color:#0f172a;text-align:right;font-weight:500;word-break:break-word}.sys-detail-val--mono{font-family:ui-monospace,SFMono-Regular,Menlo,monospace}.sys-detail-val em{font-style:normal;font-weight:400;color:#94a3b8}.sys-card-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px}.sys-list-item{display:flex;align-items:center;gap:10px;padding:10px 12px;background:#f8fafc;border:1px solid #e2e8f0;border-radius:10px;transition:transform .15s,box-shadow .15s,border-color .2s}.sys-list-item:hover{transform:translate(2px);box-shadow:0 4px 10px #0f172a0d}.sys-list-item--ok{border-color:#bbf7d0;background:linear-gradient(135deg,#f0fdf4,#fff)}.sys-list-item--warn{border-color:#fde68a;background:linear-gradient(135deg,#fffbeb,#fff)}.sys-list-item--bad{border-color:#fecaca;background:linear-gradient(135deg,#fef2f2,#fff)}.sys-list-item--muted{border-color:#e2e8f0;background:#f8fafc}.sys-list-leading{width:34px;height:34px;border-radius:9px;display:flex;align-items:center;justify-content:center;flex-shrink:0;background:#e2e8f0;color:#475569}.sys-list-leading--ok{background:#d1fae5;color:#047857}.sys-list-leading--warn{background:#fef3c7;color:#b45309}.sys-list-leading--bad{background:#fee2e2;color:#b91c1c}.sys-list-leading--muted{background:#f1f5f9;color:#475569}.sys-list-leading svg{font-size:18px}.sys-list-body{flex:1 1 auto;min-width:0;display:flex;flex-direction:column;gap:2px}.sys-list-head{display:flex;align-items:baseline;gap:8px;flex-wrap:wrap}.sys-list-head strong{font-size:13px;color:#0f172a}.sys-list-role{font-size:10.5px;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:#94a3b8}.sys-list-meta{display:flex;align-items:center;gap:8px;font-size:11.5px;color:#64748b;flex-wrap:wrap}.sys-list-error{color:#b91c1c;font-weight:500;max-width:22ch;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sys-list-status{width:28px;height:28px;border-radius:50%;display:flex;align-items:center;justify-content:center;flex-shrink:0}.sys-list-status--ok{background:#10b98126}.sys-list-status--bad{background:#dc262626}.sys-list-status-dot{width:10px;height:10px;border-radius:50%;background:currentColor}.sys-list-status--ok .sys-list-status-dot{color:#10b981;animation:sys-pulse 2s ease-in-out infinite}.sys-list-status--bad .sys-list-status-dot{color:#dc2626;animation:sys-pulse-fast 1s ease-in-out infinite}.sys-topbar{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:12px 18px;background:linear-gradient(135deg,#0f172a,#1e293b 60%,#312e81);border-radius:12px;color:#f1f5f9;box-shadow:0 6px 18px #0f172a2e;flex-wrap:wrap}.sys-topbar-left{display:flex;align-items:center;gap:14px;flex-wrap:wrap;min-width:0}.sys-topbar-eyebrow{font-size:11px;font-weight:700;letter-spacing:.18em;text-transform:uppercase;color:#c7d2fe;padding:4px 10px;border-radius:999px;background:#6366f12e;border:1px solid rgba(199,210,254,.25)}.sys-topbar-host{display:inline-flex;align-items:center;gap:8px;font-size:13px;color:#cbd5e1;flex-wrap:wrap;min-width:0}.sys-topbar-host .material-symbols-outlined{font-size:18px;color:#94a3b8}.sys-topbar-host strong{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:13px;font-weight:700;color:#f1f5f9}.sys-topbar-host-meta{font-size:12px;color:#94a3b8}.sys-topbar-right{display:flex;gap:10px}.sys-hero{display:flex;flex-wrap:wrap;gap:24px;align-items:flex-start;justify-content:space-between;padding:28px 32px;background:linear-gradient(135deg,#0f172a,#1e293b,#312e81);color:#f1f5f9;border-radius:16px;box-shadow:0 10px 28px #0f172a2e;position:relative;overflow:hidden}.sys-hero:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:radial-gradient(circle at 90% 20%,rgba(99,102,241,.32),transparent 45%),radial-gradient(circle at 10% 90%,rgba(16,185,129,.22),transparent 50%);pointer-events:none}.sys-hero-text,.sys-hero-actions{position:relative;z-index:1}.sys-hero-text{flex:1 1 480px;min-width:0}.sys-hero-eyebrow{display:inline-block;font-size:11px;font-weight:700;letter-spacing:.18em;text-transform:uppercase;color:#c7d2fe;margin-bottom:6px}.sys-hero-title{margin:0 0 8px;font-size:clamp(1.4rem,2vw,1.85rem);letter-spacing:-.01em;color:#fff}.sys-hero-lead{margin:0;font-size:14px;color:#cbd5e1;line-height:1.55;max-width:60ch}.sys-hero-lead strong{color:#fff}.sys-hero-actions{display:flex;flex-direction:column;align-items:flex-end;gap:12px}.sys-hero-host{background:#0f172a8c;border:1px solid rgba(255,255,255,.1);padding:10px 14px;border-radius:10px;display:flex;flex-direction:column;align-items:flex-end;gap:2px;font-size:12px;color:#cbd5e1;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}.sys-hero-host-name{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:13px;font-weight:700;color:#e2e8f0}.sys-hero-host-meta{font-size:12px;color:#94a3b8}.sys-hero-host-meta strong{color:#f1f5f9}.sys-hero-btn{display:inline-flex;align-items:center;gap:8px;padding:10px 18px;background:#fff;color:#0f172a;border:none;border-radius:10px;font-weight:600;cursor:pointer;transition:transform .15s,box-shadow .15s;box-shadow:0 4px 12px #0f172a40}.sys-hero-btn:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 6px 18px #0f172a52}.sys-hero-btn:disabled{opacity:.6;cursor:not-allowed}.sys-hero-btn .material-symbols-outlined{font-size:18px}.sys-ws-status-bar{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 14px;border:1px solid #e2e8f0;border-radius:10px;background:#fff;margin-bottom:12px}.sys-ws-status-label{display:flex;align-items:center;gap:10px}.sys-ws-status-label .material-symbols-outlined{font-size:20px;color:#ff8c00;font-variation-settings:"FILL" 1}.sys-ws-status-label strong{font-size:13px;color:#1e293b}.sys-ws-status-label small{color:#64748b;font-size:12px}.sys-kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:12px;flex:0 0 auto}.sys-kpi{background:#fff;border:1px solid #e2e8f0;border-radius:14px;padding:16px 18px;display:flex;align-items:center;gap:14px;box-shadow:0 1px 3px #0f172a0d;transition:transform .15s,box-shadow .15s;position:relative;overflow:hidden}.sys-kpi:before{content:"";position:absolute;top:0;left:0;width:4px;height:100%;background:#94a3b8}.sys-kpi:hover{transform:translateY(-2px);box-shadow:0 6px 16px #0f172a1a}.sys-kpi--total:before{background:linear-gradient(180deg,#6366f1,#4338ca)}.sys-kpi--ok:before{background:linear-gradient(180deg,#34d399,#10b981)}.sys-kpi--warn:before{background:linear-gradient(180deg,#fbbf24,#f59e0b)}.sys-kpi--bad:before{background:linear-gradient(180deg,#f87171,#dc2626)}.sys-kpi--accent:before{background:linear-gradient(180deg,#a78bfa,#7c3aed)}.sys-kpi--alarm:before{background:linear-gradient(180deg,#fb923c,#ea580c)}.sys-kpi--gw:before{background:linear-gradient(180deg,#38bdf8,#0284c7)}.sys-kpi-icon{width:40px;height:40px;border-radius:11px;background:#f1f5f9;color:#64748b;display:flex;align-items:center;justify-content:center;flex-shrink:0}.sys-kpi--ok .sys-kpi-icon{background:#d1fae5;color:#047857}.sys-kpi--warn .sys-kpi-icon{background:#fef3c7;color:#b45309}.sys-kpi--bad .sys-kpi-icon{background:#fee2e2;color:#b91c1c}.sys-kpi--accent .sys-kpi-icon{background:#ede9fe;color:#6d28d9}.sys-kpi--alarm .sys-kpi-icon{background:#ffedd5;color:#c2410c}.sys-kpi--gw .sys-kpi-icon{background:#e0f2fe;color:#0369a1}.sys-kpi--total .sys-kpi-icon{background:#e0e7ff;color:#4338ca}.sys-kpi-value{font-variant-numeric:tabular-nums}.sys-kpi-body{display:flex;flex-direction:column;gap:2px;min-width:0}.sys-kpi-label{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:#64748b}.sys-kpi-value{font-size:1.6rem;font-weight:800;color:#0f172a;line-height:1.05;letter-spacing:-.02em}.sys-kpi--ok .sys-kpi-value{color:#047857}.sys-kpi--warn .sys-kpi-value{color:#b45309}.sys-kpi--bad .sys-kpi-value{color:#b91c1c}.sys-kpi--accent .sys-kpi-value{color:#6d28d9}.sys-kpi--alarm .sys-kpi-value{color:#c2410c}.sys-kpi--gw .sys-kpi-value{color:#0369a1}.sys-kpi--total .sys-kpi-value{color:#4338ca}.sys-kpi-frac{font-size:1.05rem;font-weight:600;color:#94a3b8}.sys-kpi-sub{font-size:11.5px;color:#64748b}.sys-section{background:#fff;border:1px solid #e2e8f0;border-radius:14px;padding:20px 22px;box-shadow:0 2px 8px #0f172a0d}.sys-section-head{display:flex;flex-wrap:wrap;align-items:flex-start;justify-content:space-between;gap:14px;margin-bottom:18px}.sys-section-title{margin:0 0 4px;font-size:1.05rem;color:#0f172a;letter-spacing:-.01em}.sys-section-lead{margin:0;font-size:13px;color:#64748b;line-height:1.5;max-width:60ch}.sys-pill{display:inline-flex;align-items:center;padding:4px 12px;border-radius:999px;font-size:12px;font-weight:700;background:#f1f5f9;color:#475569}.sys-pill--ok{background:#d1fae5;color:#047857}.sys-pill--warn{background:#fef3c7;color:#b45309}.sys-pill--bad{background:#fee2e2;color:#b91c1c}.sys-pill--muted{background:#f1f5f9;color:#475569}.sys-error-banner{background:#fef2f2;color:#b91c1c;border:1px solid #fecaca;border-radius:10px;padding:10px 14px;margin:0;font-size:13px}.sys-loading-banner{background:#f1f5f9;color:#475569;border:1px dashed #cbd5e1;border-radius:10px;padding:10px 14px;margin:0;font-size:13px}.sys-empty{margin:0;padding:20px;text-align:center;color:#94a3b8;font-size:13px}.sys-resources--compact{padding:16px 18px}.sys-section-head--inline{display:flex;align-items:center;margin-bottom:12px;gap:12px}.sys-section-head--inline .sys-section-title{margin:0;font-size:.95rem}.sys-resources-row{display:grid;grid-template-columns:repeat(3,minmax(220px,1fr)) minmax(220px,1.2fr);gap:12px;align-items:stretch}@media (max-width: 1180px){.sys-resources-row{grid-template-columns:repeat(2,1fr)}}@media (max-width: 720px){.sys-resources-row{grid-template-columns:1fr}}.sys-rcard{display:flex;align-items:center;gap:14px;background:linear-gradient(135deg,#fff,#f8fafc);border:1px solid #e2e8f0;border-radius:12px;padding:12px 14px;transition:transform .15s,box-shadow .15s,border-color .2s;min-height:120px}.sys-rcard:hover{transform:translateY(-1px);box-shadow:0 6px 14px #0f172a0f}.sys-rcard--ok{border-color:#bbf7d0}.sys-rcard--warn{border-color:#fde68a;background:linear-gradient(135deg,#fffbeb,#fff)}.sys-rcard--bad{border-color:#fecaca;background:linear-gradient(135deg,#fef2f2,#fff)}.sys-rcard-donut{position:relative;width:104px;height:104px;flex-shrink:0}.sys-rcard-donut-center{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;pointer-events:none}.sys-rcard-donut-center strong{font-size:1.15rem;font-weight:800;color:#0f172a;letter-spacing:-.02em}.sys-rcard--ok .sys-rcard-donut-center strong{color:#047857}.sys-rcard--warn .sys-rcard-donut-center strong{color:#b45309}.sys-rcard--bad .sys-rcard-donut-center strong{color:#b91c1c}.sys-rcard-body{flex:1 1 auto;min-width:0;display:flex;flex-direction:column;gap:4px}.sys-rcard-title{font-size:13px;font-weight:700;color:#0f172a;letter-spacing:-.01em}.sys-rcard-sub{font-size:11.5px;color:#64748b;line-height:1.4;word-break:break-word}.sys-rextras{display:flex;flex-direction:column;justify-content:center;gap:6px;background:#fff;border:1px solid #e2e8f0;border-radius:12px;padding:12px 16px}.sys-rextra-row{display:flex;align-items:center;justify-content:space-between;gap:10px;font-size:12px;padding:4px 0;border-bottom:1px dashed #f1f5f9}.sys-rextra-row:last-child{border-bottom:none}.sys-rextra-key{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:#64748b}.sys-rextra-val{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:12px;font-weight:600;color:#0f172a;text-align:right}.sys-rextra-val em{font-style:normal;font-weight:400;color:#94a3b8}.sys-stack{padding:0;overflow:hidden}.sys-substack{padding:18px 22px}.sys-substack-head{display:flex;align-items:flex-start;justify-content:space-between;gap:14px;margin-bottom:14px}.sys-substack-title-wrap{display:flex;align-items:flex-start;gap:12px;min-width:0}.sys-substack-icon{width:38px;height:38px;border-radius:10px;display:flex;align-items:center;justify-content:center;background:#e0e7ff;color:#4338ca;font-size:22px!important;flex-shrink:0}.sys-substack:nth-child(3) .sys-substack-icon{background:#e0f2fe;color:#0369a1}.sys-substack-title{margin:0 0 2px;font-size:1rem;color:#0f172a;letter-spacing:-.01em}.sys-substack-lead{margin:0;font-size:12.5px;color:#64748b;line-height:1.45;max-width:60ch}.sys-substack-divider{height:1px;background:linear-gradient(90deg,transparent,#e2e8f0,transparent);margin:0 22px}.sys-service-list--grid,.sys-gw-list--grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:10px}@media (max-width: 720px){.sys-service-list--grid,.sys-gw-list--grid{grid-template-columns:1fr}}.sys-resources-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:16px}.sys-resource{display:flex;align-items:center;gap:18px;background:linear-gradient(135deg,#fff,#f8fafc);border:1px solid #e2e8f0;border-radius:12px;padding:18px 20px;transition:transform .15s,box-shadow .15s,border-color .2s}.sys-resource:hover{transform:translateY(-1px);box-shadow:0 6px 16px #0f172a14}.sys-resource--ok{border-color:#bbf7d0}.sys-resource--warn{border-color:#fde68a;background:linear-gradient(135deg,#fffbeb,#fff)}.sys-resource--bad{border-color:#fecaca;background:linear-gradient(135deg,#fef2f2,#fff)}.sys-resource-donut{position:relative;width:168px;height:168px;flex-shrink:0}.sys-resource-donut .donut{display:block}.sys-resource-donut-center{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;flex-direction:column;align-items:center;justify-content:center;pointer-events:none}.sys-resource-donut-center strong{font-size:1.85rem;font-weight:800;color:#0f172a;letter-spacing:-.02em;line-height:1}.sys-resource--bad .sys-resource-donut-center strong{color:#b91c1c}.sys-resource--warn .sys-resource-donut-center strong{color:#b45309}.sys-resource--ok .sys-resource-donut-center strong{color:#047857}.sys-resource-donut-center span{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:#64748b;margin-top:4px}.sys-resource-body{flex:1 1 auto;min-width:0}.sys-resource-body h3{margin:0 0 6px;font-size:14px;color:#0f172a}.sys-resource-meta{margin:0 0 4px;font-size:12.5px;color:#475569;line-height:1.45}.sys-resource-meta strong{color:#0f172a}.sparkline{display:block;margin-top:8px}.sparkline--empty{background:repeating-linear-gradient(-45deg,#f1f5f9,#f1f5f9 4px,#e2e8f0 4px,#e2e8f0 8px);border-radius:4px;opacity:.4}.sys-resources-extras{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:12px;margin-top:16px;padding-top:16px;border-top:1px dashed #e2e8f0}.sys-extra-card{background:#f8fafc;border:1px solid #e2e8f0;border-radius:10px;padding:12px 14px;display:flex;flex-direction:column;gap:4px}.sys-extra-label{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:#64748b}.sys-extra-value{font-size:1.15rem;font-weight:700;color:#0f172a;font-family:ui-monospace,SFMono-Regular,Menlo,monospace}.sys-extra-value--sm{font-size:.85rem}.sys-extra-sub{font-size:11.5px;color:#64748b}.sys-bottom-grid{display:grid;grid-template-columns:1.1fr 1fr;gap:20px;align-items:start}@media (max-width: 1100px){.sys-bottom-grid{grid-template-columns:1fr}}.sys-service-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:10px}.sys-service-item{display:flex;align-items:center;gap:14px;padding:12px 14px;border:1px solid #e2e8f0;border-radius:10px;background:#fff;transition:border-color .2s,box-shadow .2s,transform .15s}.sys-service-item:hover{transform:translate(2px);box-shadow:0 4px 12px #0f172a0f}.sys-service-item--ok{border-color:#bbf7d0}.sys-service-item--bad{border-color:#fecaca;background:linear-gradient(135deg,#fef2f2,#fff)}.sys-service-icon{width:40px;height:40px;border-radius:10px;display:flex;align-items:center;justify-content:center;flex-shrink:0;background:#f1f5f9;color:#475569}.sys-service-item--ok .sys-service-icon{background:#d1fae5;color:#047857}.sys-service-item--bad .sys-service-icon{background:#fee2e2;color:#b91c1c}.sys-service-icon .material-symbols-outlined{font-size:22px}.sys-service-body{flex:1 1 auto;min-width:0}.sys-service-head{display:flex;align-items:baseline;gap:10px;margin-bottom:2px;flex-wrap:wrap}.sys-service-head strong{font-size:14px;color:#0f172a}.sys-service-role{font-size:11px;font-weight:600;color:#64748b;text-transform:uppercase;letter-spacing:.06em}.sys-service-meta{display:flex;flex-wrap:wrap;align-items:center;gap:8px;font-size:12px;color:#64748b}.sys-service-error{color:#b91c1c;font-weight:500;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;display:inline-block;max-width:26ch}.sys-service-status{display:inline-flex;align-items:center;gap:6px;padding:5px 10px;border-radius:999px;font-size:11.5px;font-weight:700;flex-shrink:0}.sys-service-status--ok{background:#d1fae5;color:#047857}.sys-service-status--bad{background:#fee2e2;color:#b91c1c}.sys-service-status-dot{width:8px;height:8px;border-radius:50%;background:currentColor;animation:sys-pulse 2s ease-in-out infinite}.sys-service-status--bad .sys-service-status-dot{animation:sys-pulse-fast 1s ease-in-out infinite}@keyframes sys-pulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.5;transform:scale(.85)}}@keyframes sys-pulse-fast{0%,to{opacity:1;transform:scale(1)}50%{opacity:.4;transform:scale(.7)}}.sys-gw-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:10px}.sys-gw-item{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:12px 14px;border:1px solid #e2e8f0;border-radius:10px;background:#fff;transition:transform .15s,box-shadow .15s}.sys-gw-item:hover{transform:translate(2px);box-shadow:0 4px 12px #0f172a0f}.sys-gw-item--ok{border-color:#bbf7d0}.sys-gw-item--warn{border-color:#fde68a}.sys-gw-item--bad{border-color:#fecaca;background:linear-gradient(135deg,#fef2f2,#fff)}.sys-gw-left{display:flex;align-items:center;gap:10px;min-width:0}.sys-gw-dot{width:10px;height:10px;border-radius:50%;background:#94a3b8;flex-shrink:0;position:relative}.sys-gw-item--ok .sys-gw-dot{background:#10b981;box-shadow:0 0 0 4px #10b9812e;animation:sys-pulse 2s ease-in-out infinite}.sys-gw-item--warn .sys-gw-dot{background:#f59e0b;box-shadow:0 0 0 4px #f59e0b2e}.sys-gw-item--bad .sys-gw-dot{background:#dc2626;box-shadow:0 0 0 4px #dc26262e}.sys-gw-name{font-size:14px;color:#0f172a;margin-right:8px}.sys-gw-right{display:flex;flex-direction:column;align-items:flex-end;gap:2px;flex-shrink:0}.system-status-page{display:contents}.host-panel-meta{display:flex;flex-direction:column;align-items:flex-end;gap:2px;text-align:right;font-size:12px}.host-panel-host{font-weight:600;font-size:13px;color:#0f172a;font-family:ui-monospace,SFMono-Regular,Menlo,monospace}.host-panel-error{color:#b91c1c;background:#fef2f2;border:1px solid #fecaca;border-radius:8px;padding:8px 12px;font-size:13px;margin:0 0 12px}.host-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:14px}.host-gauge{background:#fff;border:1px solid #e2e8f0;border-radius:10px;padding:12px 14px;display:flex;flex-direction:column;gap:6px;transition:border-color .2s}.host-gauge--ok{border-color:#bbf7d0}.host-gauge--warn{border-color:#fde68a}.host-gauge--bad{border-color:#fecaca;background:#fff7f7}.host-gauge-head{display:flex;justify-content:space-between;align-items:baseline}.host-gauge-label{font-size:13px;font-weight:600;color:#0f172a}.host-gauge-percent{font-size:18px;font-weight:700;letter-spacing:-.01em}.host-gauge--ok .host-gauge-percent{color:#047857}.host-gauge--warn .host-gauge-percent{color:#b45309}.host-gauge--bad .host-gauge-percent{color:#b91c1c}.host-gauge-track{height:8px;background:#f1f5f9;border-radius:999px;overflow:hidden}.host-gauge-fill{height:100%;border-radius:999px;transition:width .4s ease}.host-gauge--ok .host-gauge-fill{background:linear-gradient(90deg,#34d399,#10b981)}.host-gauge--warn .host-gauge-fill{background:linear-gradient(90deg,#fbbf24,#f59e0b)}.host-gauge--bad .host-gauge-fill{background:linear-gradient(90deg,#f87171,#dc2626)}.host-gauge-caption{font-size:11.5px;color:#64748b;line-height:1.35}.host-load-row,.host-net-row{display:flex;flex-wrap:wrap;gap:14px;align-items:center;margin-top:12px;padding-top:12px;border-top:1px dashed #e2e8f0;font-size:12.5px;color:#334155}.host-net-row span:not(.helper-text){font-family:ui-monospace,SFMono-Regular,Menlo,monospace}.system-status-panels{display:grid;grid-template-columns:1.4fr 1fr;gap:20px;align-items:start}@media (max-width: 960px){.system-status-panels{grid-template-columns:1fr}}.status-panel{background:#fff;border:1px solid #e2e8f0;border-radius:12px;padding:16px 18px;box-shadow:0 1px 2px #0f172a0d}.status-panel h3{margin:0 0 12px;font-size:15px;color:#0f172a}.status-table-wrap{overflow:auto;max-height:360px}.system-status-table{font-size:13px}.system-status-table th{position:sticky;top:0;background:#f8fafc;z-index:1}.inline-code{font-size:12px;background:#f1f5f9;padding:2px 6px;border-radius:4px}.comm-badge{display:inline-flex;align-items:center;padding:3px 8px;border-radius:999px;font-size:11px;font-weight:700}.comm-badge--online{background:#dcfce7;color:#166534}.comm-badge--offline,.comm-badge--unknown{background:#fee2e2;color:#b91c1c}.gateway-status-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:12px;max-height:360px;overflow:auto}.gateway-status-item{padding:10px 12px;border:1px solid #e2e8f0;border-radius:8px;background:#fafbfc}.gateway-code{font-family:JetBrains Mono,Consolas,monospace;font-size:12px}.gateway-status-meta{display:flex;flex-wrap:wrap;align-items:center;gap:8px 12px;margin-top:6px}.events-table th.event-col-priority,.events-table td.event-col-priority,.event-col-priority,th.event-col-priority{white-space:nowrap;vertical-align:middle;text-align:center!important;width:110px;min-width:110px;max-width:110px}.events-table th.event-col-category,.events-table td.event-col-category,.event-col-category,th.event-col-category{white-space:nowrap;vertical-align:middle;width:180px;min-width:180px;max-width:180px;text-align:center!important}.event-col-category .event-pill,.event-col-priority .event-pill{display:inline-flex;align-items:center;justify-content:center;max-width:170px;padding:3px 10px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.event-col-date{white-space:nowrap;vertical-align:middle;width:160px;min-width:160px;max-width:160px;font-variant-numeric:tabular-nums;font-size:12px;color:#475569}.event-col-user{white-space:nowrap;vertical-align:middle;width:120px;min-width:120px;max-width:120px;overflow:hidden;text-overflow:ellipsis;font-size:12px}.event-col-device{white-space:nowrap;vertical-align:middle;width:110px;min-width:110px;max-width:110px;overflow:hidden;text-overflow:ellipsis}.event-device-name{font-weight:600;font-size:13px;color:#0f172a}.event-col-source{width:110px;min-width:110px;max-width:110px;text-align:center;vertical-align:middle}.event-source-badge{display:inline-flex;align-items:center;justify-content:center;width:86px;padding:3px 0;font-size:10px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;border-radius:999px}.event-cell-empty{color:#cbd5e1}.event-pill{display:inline-flex;align-items:center;max-width:100%;border-radius:999px;font-size:12px;font-weight:600;letter-spacing:.02em;line-height:1.2;border:1px solid transparent}.event-pill-sev{padding:5px 12px;min-height:28px;box-shadow:0 1px 2px #0f172a0f}.event-pill-sev--info{background:linear-gradient(180deg,#f0f9ff,#e0f2fe);color:#0369a1;border-color:#bae6fd}.event-pill-sev--warning{background:linear-gradient(180deg,#fffbeb,#fef3c7);color:#b45309;border-color:#fde68a}.event-pill-sev--error{background:linear-gradient(180deg,#fef2f2,#fee2e2);color:#b91c1c;border-color:#fecaca}.event-pill-sev--debug{background:linear-gradient(180deg,#f8fafc,#f1f5f9);color:#475569;border-color:#e2e8f0}.event-pill-sev--unknown{background:#f8fafc;color:#64748b;border-color:#e2e8f0}.event-pill-cat{padding:4px 12px;font-weight:600;font-size:11px;white-space:nowrap;line-height:1.4;border-radius:8px;border:1px solid #e2e8f0;background:#fafbfc;color:#334155}.event-pill-cat--auth{background:#eef2ff;border-color:#c7d2fe;color:#3730a3}.event-pill-cat--user{background:#f5f3ff;border-color:#ddd6fe;color:#5b21b6}.event-pill-cat--alarm{background:#fff1f2;border-color:#fecdd3;color:#9f1239}.event-pill-cat--notification{background:#ecfeff;border-color:#a5f3fc;color:#0e7490}.event-pill-cat--settings{background:#f0fdf4;border-color:#bbf7d0;color:#166534}.event-pill-cat--outbound{background:#fff7ed;border-color:#fed7aa;color:#c2410c}.event-pill-cat--telemetry{background:#f8fafc;border-color:#cbd5e1;color:#1e293b}.event-pill-cat--system{background:#f1f5f9;border-color:#94a3b8;color:#0f172a}.event-pill-cat--other{background:#f8fafc;border-color:#e2e8f0;color:#64748b}.alarms-filter-row select,.alarms-detail-card select,.alarm-comments textarea{border:1px solid #cbd5e1;border-radius:8px;padding:8px 10px;background:#fff}.alarm-row-active{background:#eff6ff}.alarm-state{display:inline-flex;align-items:center;justify-content:center;gap:5px;border-radius:999px;padding:5px 11px;font-size:12px;font-weight:700}.alarm-state svg{flex:0 0 auto}.state-open{background:#fee2e2;color:#b91c1c}.state-ack{background:#dbeafe;color:#cc7000}.state-reset{background:#dcfce7;color:#166534}.state-pending{background:#dbeafe;color:#1d4ed8}.alarm-pill{display:inline-flex;align-items:center;justify-content:center;border-radius:999px;padding:4px 8px;font-size:11px;font-weight:700;text-transform:uppercase}.level-critical{background:#fee2e2;color:#b91c1c}.level-warning{background:#fef3c7;color:#92400e}.level-info{background:#dbeafe;color:#cc7000}.alarms-detail-card{display:grid;gap:10px}.alarm-detail-modal{width:min(1280px,96vw);height:min(820px,92vh);max-height:92vh;padding:0!important;overflow:hidden;display:flex;flex-direction:column}.alarm-detail-modal-body{display:flex;flex-direction:column;gap:0;flex:1;min-height:0}.alarm-detail-2col .alarm-detail-header{padding:18px 22px 14px;background:linear-gradient(180deg,#f8fafc,#fff);border-bottom:1px solid #e2e8f0;flex-shrink:0}.alarm-detail-titlebar{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.alarm-detail-titlebar h3{margin:0;font-size:18px;color:#0f172a;flex:1;min-width:0}.alarm-detail-description{margin:10px 0 0;font-size:13px;color:#475569;line-height:1.5}.alarm-detail-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.1fr);gap:0;flex:1;min-height:0;overflow:hidden}@media (max-width: 860px){.alarm-detail-grid{grid-template-columns:1fr}}.alarm-detail-info,.alarm-detail-comments{padding:18px 22px;display:flex;flex-direction:column;gap:14px;min-height:0;overflow-y:auto}.alarm-detail-info{border-right:1px solid #e2e8f0;background:#fafbff}@media (max-width: 860px){.alarm-detail-info{border-right:none;border-bottom:1px solid #e2e8f0}}.alarm-detail-section-title{margin:0;font-size:11px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:#64748b}.alarm-detail-dl{margin:0;display:flex;flex-direction:column;gap:0;border:1px solid #e2e8f0;border-radius:10px;background:#fff;overflow:hidden}.alarm-detail-dl-row{display:grid;grid-template-columns:120px 1fr;gap:10px;padding:10px 14px;border-bottom:1px solid #f1f5f9;align-items:center}.alarm-detail-dl-row:last-child{border-bottom:none}.alarm-detail-dl-row dt{font-size:11px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:#64748b;margin:0}.alarm-detail-dl-row dd{margin:0;font-size:13px;color:#0f172a;display:flex;align-items:center;flex-wrap:wrap;gap:6px}.alarm-detail-strong{font-weight:600;color:#0f172a}.alarm-detail-mono{font-family:ui-monospace,SFMono-Regular,monospace;font-size:12px;color:#64748b}.alarm-detail-by{color:#64748b;font-size:12px}.alarm-detail-assign-block{background:#fff;border:1px solid #e2e8f0;border-radius:10px;padding:12px 14px}.alarm-detail-assign-label{display:flex;flex-direction:column;gap:6px}.alarm-detail-assign-label>span{font-size:11px;font-weight:700;letter-spacing:.05em;text-transform:uppercase;color:#475569}.alarm-detail-select{padding:9px 12px;border:1px solid #e2e8f0;border-radius:9px;font-size:13px;background:#fff;color:#0f172a;cursor:pointer}.alarm-detail-select:focus{outline:none;border-color:#6366f1;box-shadow:0 0 0 3px #6366f126}.alarm-detail-comments{background:#fff}.alarm-detail-comments-header{display:flex;align-items:center;gap:10px;flex-shrink:0}.alarm-detail-comments-count{display:inline-flex;align-items:center;justify-content:center;min-width:22px;height:20px;padding:0 7px;border-radius:999px;background:#eef2ff;color:#4338ca;font-size:11px;font-weight:700;border:1px solid #e0e7ff}.alarm-detail-comments-list{flex:1;min-height:240px;display:flex;flex-direction:column;gap:8px;padding:4px;overflow-y:auto}.alarm-detail-comments-empty{margin:auto;text-align:center;color:#94a3b8;font-size:13px;font-style:italic}.alarm-comment-card{display:grid;grid-template-columns:34px 1fr;gap:10px;align-items:start}.alarm-comment-card-meta{grid-column:1 / -1;display:grid;grid-template-columns:34px 1fr;gap:10px;align-items:center}.alarm-comment-card-avatar{width:34px;height:34px;border-radius:50%;background:linear-gradient(135deg,#6366f1,#8b5cf6);color:#fff;font-weight:800;font-size:13px;display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;box-shadow:0 2px 6px #6366f140;margin-top:2px}.alarm-comment-card-meta-text{display:flex;align-items:baseline;gap:8px;flex-wrap:wrap;margin-bottom:4px}.alarm-comment-card-meta-text strong{font-size:13px;color:#0f172a;font-weight:700}.alarm-comment-card-meta-text span{font-size:11px;color:#94a3b8;font-variant-numeric:tabular-nums}.alarm-comment-card-body{grid-column:2 / -1;margin:0;padding:10px 13px;background:#f1f5f9;border-radius:4px 12px 12px;font-size:13px;line-height:1.45;color:#334155;white-space:pre-wrap;word-break:break-word}.alarm-detail-comment-form{display:flex;flex-direction:column;gap:6px;flex-shrink:0;border-top:1px solid #f1f5f9;padding-top:12px}.alarm-detail-comment-textarea{width:100%;min-height:90px;padding:10px 12px;border:1px solid #e2e8f0;border-radius:9px;font-size:13px;font-family:inherit;resize:vertical;line-height:1.4;background:#fff;color:#0f172a;transition:border-color .15s,box-shadow .15s}.alarm-detail-comment-textarea:focus{outline:none;border-color:#6366f1;box-shadow:0 0 0 3px #6366f126}.alarm-detail-comment-hint{font-size:11px;color:#94a3b8;font-style:italic}.alarm-detail-comment-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:4px}.alarms-detail-card h3{margin:0}.alarm-comments{display:grid;gap:8px}.alarm-comments h4{margin:0}.alarm-comment-list{max-height:220px;overflow:auto;display:grid;gap:8px;border:1px solid #e5e7eb;border-radius:8px;padding:8px}.alarm-comment-item{border:1px solid #e5e7eb;border-radius:8px;padding:8px;background:#f8fafc}.alarm-comment-item p{margin:4px 0 0;font-size:13px}.alarm-comment-meta{display:flex;align-items:center;justify-content:space-between;gap:8px}.alarm-comment-meta span{font-size:11px;color:#64748b}.map-placeholder{display:grid;gap:8px}.world-map-shell{position:relative;flex:1;min-height:0;overflow:hidden}.world-map{width:100%;height:100%}.map-full{display:flex;flex-direction:column;flex:1;min-height:0;height:100%;gap:10px}.signals-card-list{list-style:none;margin:0;padding:8px;display:flex;flex-direction:column;gap:6px}.signal-card{display:flex;flex-direction:column;gap:3px;padding:8px 10px;border:1px solid #e2e8f0;border-radius:8px;background:#fff;cursor:pointer;transition:border-color .12s,background .12s,box-shadow .12s,transform .12s}.signal-card:hover{border-color:#c7d2fe;box-shadow:0 2px 6px #6366f114;transform:translateY(-1px)}.signal-card-active,.signal-card-active:hover{border-color:#6366f1;background:linear-gradient(135deg,#eef2ff,#f5f7ff);box-shadow:0 2px 10px #6366f12e}.signal-card-inactive{opacity:.55}.signal-card-top{display:flex;align-items:center;flex-wrap:wrap;gap:6px}.signal-card-addr{font-family:ui-monospace,SFMono-Regular,monospace;font-size:11px;color:#4338ca;background:#eef2ff;border:1px solid #c7d2fe;border-radius:6px;padding:2px 8px;margin-left:auto}.signal-card-unit{font-size:11px;color:#475569;font-weight:600;background:#f1f5f9;border-radius:5px;padding:2px 6px}.signal-card-inactive-flag{font-size:10px;font-weight:700;text-transform:uppercase;color:#94a3b8;letter-spacing:.05em}.signal-card-iec104{display:inline-flex;align-items:center;gap:4px;font-size:10px;font-weight:700;letter-spacing:.04em;padding:2px 6px;border-radius:5px;border:1px solid transparent}.signal-card-iec104--on{color:#15803d;background:#dcfce7;border-color:#86efac}.signal-card-iec104--off{color:#94a3b8;background:#f1f5f9;border-color:#e2e8f0}.signal-iec104-toggle-row{grid-column:1 / -1;display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:2px;padding-bottom:10px;border-bottom:1px solid #f1f5f9}.signal-iec104-fields{grid-column:1 / -1;display:flex;flex-direction:column;gap:10px;transition:opacity .12s}.signal-iec104-toggle-label{font-size:13px;font-weight:600;color:#334155;letter-spacing:.01em}.signal-iec104-fields--disabled{opacity:.5;pointer-events:none;filter:grayscale(.4)}.device-iec104-section{margin-top:18px;padding:14px 16px;border:1px solid #e2e8f0;border-radius:10px;background:#f8fafc}.device-iec104-section-title{margin:0 0 12px;font-size:13px;font-weight:700;color:#1e293b;text-transform:uppercase;letter-spacing:.05em}.iec104-device-ca-section{margin-top:14px;padding:14px 16px;background:#f8fafc;border:1px solid #e2e8f0;border-radius:10px}.iec104-device-ca-title{margin:0 0 6px;font-size:13px;font-weight:700;color:#1e293b}.iec104-device-ca-table-wrap{margin-top:10px;max-height:320px;overflow-y:auto;border:1px solid #e2e8f0;border-radius:8px;background:#fff}.iec104-device-ca-table{width:100%;font-size:12px}.iec104-device-ca-table th,.iec104-device-ca-table td{padding:6px 10px}.iec104-device-ca-table input[type=number]{width:100%;padding:4px 8px;font-size:12px}.iec104-ca-modal,.iec104-runtime-modal{max-width:720px;width:92vw}.iec104-ca-search{width:100%;margin:8px 0;padding:8px 12px;border:1px solid #cbd5e1;border-radius:8px;font-size:13px}.iec104-runtime-summary{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin:10px 0;padding:12px;background:#f8fafc;border:1px solid #e2e8f0;border-radius:10px;font-size:13px}.iec104-runtime-summary>div{display:flex;align-items:center;gap:6px}.iec104-runtime-allowed{margin:8px 0;font-size:12px}.iec104-runtime-allowed summary{cursor:pointer;color:#475569;font-weight:600}.iec104-runtime-allowed ul{margin:6px 0 0 18px;padding:0}.iec104-runtime-clients-title{margin:14px 0 6px;font-size:13px;font-weight:700;color:#1e293b}.status-dot{width:9px;height:9px;border-radius:50%;display:inline-block;background:#cbd5e1;flex-shrink:0}.status-dot--ok{background:#22c55e;box-shadow:0 0 0 2px #22c55e2e}.status-dot--bad{background:#ef4444;box-shadow:0 0 0 2px #ef44442e}.iec104-badge{display:inline-flex;align-items:center;gap:6px;padding:4px 10px;border-radius:999px;font-size:11px;font-weight:700;letter-spacing:.03em;border:1px solid transparent;background:transparent;cursor:pointer;transition:filter .12s}.iec104-badge:hover{filter:brightness(.95)}.iec104-badge--ok{color:#15803d;background:#dcfce7;border-color:#86efac}.iec104-badge--ok .status-dot{background:#16a34a;box-shadow:0 0 0 2px #22c55e40}.iec104-badge--bad{color:#b91c1c;background:#fee2e2;border-color:#fca5a5}.iec104-badge--bad .status-dot{background:#dc2626}.outbound-modern-table-wrap{margin-top:12px;border:1px solid #e2e8f0;border-radius:12px;background:#fff;overflow:hidden}.engineering-content .tab-panel.outbound-panel{overflow:hidden;display:flex;flex-direction:column;flex:1;min-height:0}.outbound-panel .panel-head,.outbound-panel .error-text{flex-shrink:0}.outbound-panel .outbound-modern-table-wrap{flex:1 1 auto;min-height:0;overflow:auto}.outbound-panel .outbound-modern-table thead th{position:sticky;top:0;z-index:1}.outbound-empty{flex:1 1 auto;display:grid;place-items:center;align-content:center;gap:10px;margin-top:12px;padding:40px 24px;text-align:center;border:1px dashed #cbd5e1;border-radius:12px;background:#f8fafc}.outbound-empty>.material-symbols-outlined{font-size:52px;color:#cbd5e1}.outbound-empty h4{margin:0;color:#0f172a}.outbound-empty p{margin:0;max-width:380px;color:#64748b;font-size:13px;line-height:1.5}.outbound-empty .primary-btn{margin-top:4px}.outbound-modern-table{width:100%;border-collapse:separate;border-spacing:0}.outbound-modern-table thead th{background:#f8fafc;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:#475569;padding:10px 14px;border-bottom:1px solid #e2e8f0;text-align:left}.outbound-modern-table tbody td{padding:10px 14px;border-bottom:1px solid #f1f5f9;vertical-align:middle}.outbound-modern-table tbody tr:last-child td{border-bottom:none}.outbound-modern-table tbody tr:hover{background:#f8fafc}.outbound-row--inactive{opacity:.65}.outbound-name-cell{font-weight:600;color:#0f172a}.outbound-endpoint-cell{font-family:ui-monospace,SFMono-Regular,monospace;font-size:12px;color:#334155}.outbound-active-pill{display:inline-flex;align-items:center;gap:6px;padding:3px 10px;border-radius:999px;font-size:11px;font-weight:700;letter-spacing:.04em;border:1px solid transparent}.outbound-active-pill--on{background:#dcfce7;color:#15803d;border-color:#86efac}.outbound-active-pill--on .status-dot{background:#16a34a;box-shadow:0 0 0 2px #22c55e40}.outbound-active-pill--off{background:#fee2e2;color:#b91c1c;border-color:#fca5a5}.outbound-active-pill--off .status-dot{background:#dc2626}.outbound-proto-badge{display:inline-block;padding:3px 9px;border-radius:6px;font-size:11px;font-weight:700;letter-spacing:.04em;border:1px solid transparent}.outbound-proto-iec104{background:#ede9fe;color:#5b21b6;border-color:#c4b5fd}.outbound-proto-rest{background:#dbeafe;color:#a85800;border-color:#93c5fd}.outbound-proto-mqtt{background:#fef3c7;color:#92400e;border-color:#fcd34d}.outbound-form-headrow{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin:4px 0 6px}.outbound-form-headcell{display:flex;flex-direction:column;gap:4px;margin:0}@media (max-width: 640px){.outbound-form-headrow{grid-template-columns:1fr}}.iec104-edit-modal{width:92vw;max-width:880px}.iec104-edit-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px;margin:8px 0 4px}.iec104-edit-col{display:flex;flex-direction:column;gap:10px}.iec104-edit-col-title{margin:0;font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:#475569}.iec104-whitelist-col{background:#f8fafc;border:1px solid #e2e8f0;border-radius:12px;padding:14px}.iec104-whitelist-head{display:flex;justify-content:space-between;align-items:center;gap:8px}.iec104-whitelist-status{display:inline-flex;align-items:center;gap:6px;padding:3px 10px;border-radius:999px;font-size:11px;font-weight:700;letter-spacing:.04em;border:1px solid transparent}.iec104-whitelist-status--active{background:#dbeafe;color:#a85800;border-color:#93c5fd}.iec104-whitelist-status--active .status-dot{background:#e67c00;box-shadow:0 0 0 2px #e67c0040}.iec104-whitelist-status--open{background:#f1f5f9;color:#64748b;border-color:#cbd5e1}.iec104-whitelist-status--open .status-dot{background:#94a3b8}.iec104-peer-input-row{display:flex;gap:8px}.iec104-peer-input-row input{flex:1;padding:8px 12px;border:1px solid #cbd5e1;border-radius:8px;font-size:13px;font-family:ui-monospace,SFMono-Regular,monospace}.iec104-peer-input-row input:focus{border-color:#6366f1;outline:none;box-shadow:0 0 0 3px #6366f126}.iec104-peer-input-row .primary-btn{flex-shrink:0;padding:8px 14px;font-size:12px}.iec104-peer-error{margin:0;font-size:12px}.iec104-peer-list{margin-top:4px;max-height:260px;overflow-y:auto;display:flex;flex-direction:column;gap:6px;padding-right:2px}.iec104-peer-empty{padding:18px 12px;text-align:center;font-size:12px;color:#94a3b8;background:#fff;border:1px dashed #cbd5e1;border-radius:8px}.iec104-peer-chip{display:flex;align-items:center;gap:10px;padding:6px 10px 6px 8px;background:#fff;border:1px solid #e2e8f0;border-radius:8px;transition:border-color .12s,box-shadow .12s}.iec104-peer-chip:hover{border-color:#93c5fd;box-shadow:0 1px 4px #e67c0014}.iec104-peer-chip-idx{flex-shrink:0;width:22px;height:22px;display:inline-flex;align-items:center;justify-content:center;background:#eef2ff;color:#4338ca;border-radius:6px;font-size:11px;font-weight:700}.iec104-peer-chip-ip{flex:1;font-size:13px;font-family:ui-monospace,SFMono-Regular,monospace;color:#0f172a}.iec104-peer-chip-remove{flex-shrink:0;width:24px;height:24px;border:none;background:transparent;color:#94a3b8;font-size:18px;line-height:1;cursor:pointer;border-radius:6px;transition:background .12s,color .12s}.iec104-peer-chip-remove:hover{background:#fee2e2;color:#b91c1c}@media (max-width: 720px){.iec104-edit-grid{grid-template-columns:1fr}}.asdu-modal{width:96vw;max-width:1280px;height:90vh;max-height:90vh;display:flex;flex-direction:column;padding:0;overflow:hidden}.asdu-modal-head{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;padding:18px 22px 12px;border-bottom:1px solid #e2e8f0;background:linear-gradient(135deg,#f8fafc,#eef2ff)}.asdu-modal-title{margin:0;font-size:18px;font-weight:700;color:#0f172a}.asdu-modal-sub{margin:4px 0 0;font-size:12px;color:#64748b}.asdu-modal-close{background:transparent;border:none;font-size:28px;line-height:1;color:#64748b;cursor:pointer;padding:0 6px}.asdu-modal-close:hover{color:#0f172a}.asdu-toolbar{display:flex;gap:12px;align-items:center;padding:14px 22px;border-bottom:1px solid #f1f5f9}.asdu-search{flex:1;padding:9px 14px;border:1px solid #cbd5e1;border-radius:8px;font-size:13px}.asdu-search:focus{border-color:#6366f1;outline:none;box-shadow:0 0 0 3px #6366f126}.asdu-toolbar-actions{display:flex;gap:8px;flex-shrink:0}.asdu-table-wrap{flex:1;overflow-y:auto;padding:0 22px}.asdu-table{width:100%;border-collapse:separate;border-spacing:0}.asdu-table thead th{position:sticky;top:0;background:#fff;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:#475569;padding:10px 12px;border-bottom:2px solid #e2e8f0;text-align:left;z-index:1}.asdu-table tbody td{padding:8px 12px;border-bottom:1px solid #f1f5f9;font-size:13px;vertical-align:middle}.asdu-row-index{color:#94a3b8;font-variant-numeric:tabular-nums;font-size:12px}.asdu-row-name{font-weight:600;color:#0f172a}.asdu-row--unassigned td{background:#fef9c3}.asdu-row--unassigned .asdu-row-index{color:#a16207;font-weight:700}.asdu-row--assigned:hover td{background:#f8fafc}.asdu-table input[type=number]{width:100%;padding:6px 10px;border:1px solid #cbd5e1;border-radius:6px;font-size:13px;font-variant-numeric:tabular-nums;text-align:right}.asdu-input--dirty{border-color:#f59e0b!important;background:#fffbeb}.asdu-save-btn{padding:5px 12px;font-size:12px}.asdu-empty{text-align:center;color:#94a3b8;padding:32px 0!important}.asdu-modal-foot{padding:14px 22px;border-top:1px solid #e2e8f0;background:#f8fafc;display:flex;justify-content:flex-end}.grid-mgmt-panel{display:flex;flex-direction:column;height:100%;min-height:0}.grid-mgmt-layout{display:grid;grid-template-columns:240px 280px minmax(0,1fr);gap:12px;flex:1;min-height:0}@media (max-width: 1280px){.grid-mgmt-layout{grid-template-columns:200px 240px minmax(0,1fr)}}.grid-mgmt-col{display:flex;flex-direction:column;background:#fff;border:1px solid #e2e8f0;border-radius:12px;padding:12px 14px;min-height:0;overflow:hidden}.grid-mgmt-col-head{display:flex;flex-direction:row;align-items:center;justify-content:space-between;gap:8px;padding-bottom:10px;border-bottom:1px solid #e2e8f0;margin-bottom:10px}.grid-mgmt-col-head h4{margin:0;font-size:14px;color:#0f172a;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.grid-mgmt-head-btns{display:flex;align-items:center;gap:6px;flex-shrink:0}.grid-mgmt-head-btns .device-add-plus-btn .material-symbols-outlined{font-size:18px}.grid-mgmt-col-head-actions{display:flex;flex-direction:row;align-items:stretch;gap:6px}.grid-mgmt-col-head-actions>.grid-import-trigger{flex:1 1 auto;min-width:0}.grid-mgmt-col-head-actions>.add-user-btn{flex:0 0 auto;justify-content:center}.grid-mgmt-col-head>.add-user-btn{width:100%}.grid-mgmt-col-head .add-user-btn,.grid-mgmt-col-head-actions .add-user-btn{box-shadow:0 1px 2px #e67c0033}.grid-mgmt-col-head .add-user-btn:active{box-shadow:0 1px 2px #e67c003d}.grid-mgmt-list{flex:1;min-height:0;overflow-y:auto;display:flex;flex-direction:column;gap:6px}.grid-mgmt-list-item{display:grid;grid-template-columns:auto 1fr auto;grid-template-rows:auto auto;align-items:center;column-gap:8px;row-gap:2px;padding:8px 10px;background:#fff;border:1px solid #e2e8f0;border-radius:8px;cursor:pointer;transition:border-color .12s,background .12s}.grid-mgmt-list-item:hover{border-color:#93c5fd}.grid-mgmt-list-item.active{border-color:#e67c00;background:#eff6ff}.grid-mgmt-color-dot{flex-shrink:0;width:10px;height:10px;border-radius:50%;border:1px solid rgba(0,0,0,.1);grid-row:1 / span 2}.grid-mgmt-list-item-main{min-width:0;grid-column:2;grid-row:1;display:flex;flex-direction:column;gap:1px}.grid-mgmt-list-item-main strong{display:block;font-size:12px;font-weight:700;color:#0f172a;white-space:normal;word-break:break-word;line-height:1.2}.grid-mgmt-list-code{display:inline-block;font-size:10px;color:#64748b;font-family:ui-monospace,SFMono-Regular,monospace;line-height:1.2}.grid-mgmt-list-count{font-size:10px;color:#64748b;font-weight:600;grid-column:2;grid-row:2;white-space:normal;word-break:break-word;line-height:1.3}.grid-mgmt-list-actions{display:flex;gap:4px;grid-column:3;grid-row:1 / span 2;align-self:center;flex-shrink:0}.grid-mgmt-list-actions .icon-btn{width:26px;height:26px;border-radius:6px;border:1px solid #e2e8f0;background:#fff;color:#475569;font-size:12px;cursor:pointer}.grid-mgmt-list-actions .icon-btn:hover{background:#f1f5f9}.grid-mgmt-list-actions .icon-btn-danger{color:#b91c1c}.grid-mgmt-list-actions .icon-btn-danger:hover{background:#fee2e2}.grid-mgmt-col-detail{gap:0}.grid-mgmt-map-shell{flex:1;min-height:240px;border:1px solid #e2e8f0;border-radius:10px;overflow:hidden;margin-bottom:12px}.grid-mgmt-map{width:100%;height:100%;min-height:240px}.grid-mgmt-pole-list{flex:0 0 auto;max-height:240px;overflow-y:auto;border:1px solid #e2e8f0;border-radius:10px;padding:10px}.grid-mgmt-pole-list-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px}.grid-mgmt-pole-table{font-size:12px}.grid-mgmt-pole-table th,.grid-mgmt-pole-table td{padding:6px 10px}.grid-pole-marker{display:block;width:14px;height:14px;border-radius:50%;background:#1e293b;border:2px solid #fff;box-shadow:0 1px 3px #0006}.grid-pole-marker--selected{background:#e67c00;width:18px;height:18px}.grid-mgmt-detail-head{display:flex;justify-content:space-between;align-items:flex-end;padding-bottom:10px;border-bottom:1px solid #e2e8f0;margin-bottom:10px;gap:12px;flex-wrap:wrap}.grid-mgmt-detail-title{display:flex;flex-direction:column;gap:2px}.grid-mgmt-detail-title h4{margin:0;font-size:14px;color:#0f172a}.grid-mgmt-tabs{display:inline-flex;background:#f1f5f9;border-radius:8px;padding:3px;gap:2px}.grid-mgmt-tab{background:transparent;border:none;padding:6px 14px;font-size:12px;font-weight:600;color:#475569;border-radius:6px;cursor:pointer;transition:background .12s,color .12s}.grid-mgmt-tab:hover{color:#0f172a}.grid-mgmt-tab.active{background:#fff;color:#e67c00;box-shadow:0 1px 3px #00000014}.grid-mgmt-map-toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:10px;flex-wrap:wrap;padding:6px 8px;border-radius:8px}.grid-mgmt-toolbar-group{display:inline-flex;align-items:center;gap:8px}.grid-mgmt-toolbar-sep{width:1px;height:22px;background:#e2e8f0;margin:0 2px}.grid-mgmt-tool-btn{display:inline-flex;align-items:center;gap:6px;padding:7px 12px;border:1px solid #cbd5e1;background:#fff;color:#334155;border-radius:6px;font-size:13px;font-weight:500;cursor:pointer;transition:all .15s;white-space:nowrap}.grid-mgmt-tool-btn:hover:not(:disabled){background:#f1f5f9;border-color:#94a3b8;color:#0f172a}.grid-mgmt-tool-btn:disabled{opacity:.5;cursor:not-allowed}.grid-mgmt-tool-btn .material-symbols-outlined{font-size:18px;font-variation-settings:"FILL" 0,"wght" 500,"GRAD" 0,"opsz" 20}.grid-mgmt-tool-btn.is-active{background:#4f46e5;border-color:#4338ca;color:#fff;box-shadow:0 1px 3px #4f46e540}.grid-mgmt-tool-btn.is-active:hover:not(:disabled){background:#4338ca;color:#fff}.grid-mgmt-tool-btn.is-save{background:#16a34a;border-color:#15803d;color:#fff}.grid-mgmt-tool-btn.is-save:hover:not(:disabled){background:#15803d;color:#fff}.grid-mgmt-tool-btn.is-save:disabled{background:#f1f5f9;border-color:#cbd5e1;color:#94a3b8}.grid-mgmt-tool-btn.is-undo{border-color:#fbbf24;color:#b45309;background:#fffbeb}.grid-mgmt-tool-btn.is-undo:hover:not(:disabled){background:#fef3c7;color:#92400e}.grid-mgmt-tool-btn.is-undo:disabled{background:#f8fafc;border-color:#e2e8f0;color:#94a3b8}.grid-mgmt-tip{font-size:11px}.grid-mgmt-map-shell.is-add-mode{outline:2px dashed #e67c00;outline-offset:-2px;position:relative}.grid-mgmt-map-shell.is-add-mode .leaflet-container{cursor:crosshair!important}.grid-pole-leaflet-wrap{background:transparent;border:none}.grid-pole-pin{width:28px;height:28px;border-radius:50%;background:#1e293b;color:#fff;display:flex;align-items:center;justify-content:center;font-size:11px;font-weight:700;border:2px solid #fff;box-shadow:0 1px 4px #0006}.grid-pole-pin.is-start{background:#16a34a}.grid-pole-pin.is-end{background:#dc2626}.grid-mgmt-toggle{display:inline-flex;align-items:center;gap:6px;font-size:12px;color:#475569;cursor:pointer;-webkit-user-select:none;user-select:none}.grid-mgmt-toggle input{margin:0;cursor:pointer}.grid-pole-pin--ghost{width:22px;height:22px;border-radius:50%;background:#64748b8c;color:#fff;display:flex;align-items:center;justify-content:center;font-size:10px;font-weight:700;border:2px solid rgba(255,255,255,.6);box-shadow:0 1px 3px #0000004d;pointer-events:none}.device-marker-wrap{background:transparent;border:none}.device-marker{--c: #10b981;width:28px;height:28px;border-radius:50%;background:var(--c);border:3px solid #fff;box-shadow:0 2px 6px #00000059;display:flex;align-items:center;justify-content:center;position:relative}.device-marker svg{pointer-events:none}.device-marker.is-online:after{content:"";position:absolute;top:-5px;right:-5px;bottom:-5px;left:-5px;border-radius:50%;border:2px solid var(--c);opacity:.4;pointer-events:none}.device-marker.is-alarm{animation:device-marker-alarm 1.1s ease-in-out infinite}@keyframes device-marker-alarm{0%,to{box-shadow:0 2px 6px #00000059,0 0 #dc262699}50%{box-shadow:0 2px 6px #00000059,0 0 0 12px #dc262600}}.grid-pole-pin--sm{width:20px;height:20px;font-size:9px}.grid-pole-pin.is-transformer,.grid-pole-pin--sm.is-transformer{width:40px!important;height:40px!important;background:transparent!important;border:none!important;box-shadow:none!important;border-radius:0!important;display:flex;align-items:center;justify-content:center;position:relative}.grid-pole-pin.is-transformer.is-start,.grid-pole-pin.is-transformer.is-end,.grid-pole-pin--sm.is-transformer.is-start,.grid-pole-pin--sm.is-transformer.is-end{background:transparent!important}.grid-trafo-rings{position:relative;width:38px;height:22px;display:block}.grid-trafo-ring{position:absolute;width:22px;height:22px;border-radius:50%;border:3px solid #1e293b;background:transparent;top:0;box-sizing:border-box}.grid-trafo-ring--outer{left:0}.grid-trafo-ring--inner{left:16px}.grid-pole-pin.is-transformer.is-start .grid-trafo-ring,.grid-pole-pin--sm.is-transformer.is-start .grid-trafo-ring{border-color:#16a34a}.grid-pole-pin.is-transformer.is-end .grid-trafo-ring,.grid-pole-pin--sm.is-transformer.is-end .grid-trafo-ring{border-color:#dc2626}.grid-pole-pin.is-transformer .grid-pole-seq,.grid-pole-pin--sm.is-transformer .grid-pole-seq{position:absolute;bottom:-12px;left:50%;transform:translate(-50%);font-size:10px;font-weight:700;color:#1e293b;background:transparent;border:none;padding:0;line-height:1;letter-spacing:.02em;text-shadow:0 1px 2px rgba(255,255,255,.9)}.grid-pole-pin.is-branch-point:not(.is-transformer){position:relative;box-shadow:0 0 0 2px #6366f1,0 1px 4px #0006}.grid-pole-pin.is-transformer .grid-pole-branch-badge{display:none}.grid-pole-branch-badge{position:absolute;top:-8px;right:-8px;width:14px;height:14px;border-radius:50%;background:#6366f1;color:#fff;font-size:11px;font-weight:900;line-height:14px;text-align:center;border:2px solid #fff;box-shadow:0 1px 3px #00000059;pointer-events:none}.grid-pole-pin.is-branch-entry{position:relative;box-shadow:0 0 0 2px #6366f1,0 1px 4px #0006}.map-info-card{position:absolute;top:12px;right:12px;width:280px;max-width:calc(100vw - 24px);background:#fff;border-radius:14px;box-shadow:0 8px 28px #0f172a33;padding:14px 16px 12px;z-index:600;border:1px solid rgba(148,163,184,.25);font-size:13px;color:#0f172a;animation:map-info-card-in .18s ease-out}@keyframes map-info-card-in{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}.map-info-card-close{position:absolute;top:6px;right:6px;width:26px;height:26px;border-radius:50%;border:none;background:#0f172a0d;color:#475569;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background .15s ease}.map-info-card-close:hover{background:#0f172a1f}.map-info-card-close .material-symbols-outlined{font-size:18px}.map-info-card-header{display:flex;align-items:center;gap:10px;margin-bottom:10px;padding-right:28px}.map-info-card-icon{width:36px;height:36px;border-radius:50%;background:#6366f11f;color:#4338ca;display:flex;align-items:center;justify-content:center;flex-shrink:0;position:relative}.map-info-card-icon .material-symbols-outlined{font-size:20px}.map-info-card--line .map-info-card-icon{background:#16a34a1f;color:#15803d}.map-info-card-trafo-mini{position:relative;width:24px;height:14px;display:block}.map-info-card-trafo-mini>span{position:absolute;top:0;width:14px;height:14px;border-radius:50%;border:2px solid #b45309;background:#fbbf2499}.map-info-card-trafo-mini>span:first-child{left:0}.map-info-card-trafo-mini>span:last-child{left:9px;background:#fed7aab3}.map-info-card-title h4{margin:0;font-size:14px;font-weight:700;color:#0f172a;line-height:1.2}.map-info-card-sub{display:block;margin-top:2px;font-size:11px;color:#64748b;letter-spacing:.02em}.map-info-card-rows{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:4px}.map-info-card-rows li{display:flex;justify-content:space-between;align-items:baseline;gap:10px;padding:4px 0;border-top:1px dashed rgba(148,163,184,.25)}.map-info-card-rows li:first-child{border-top:none}.map-info-card-label{font-size:11px;text-transform:uppercase;letter-spacing:.06em;color:#94a3b8;font-weight:600}.map-info-card-value{font-size:12.5px;font-weight:600;color:#0f172a;text-align:right;flex:1}.leaflet-tooltip.grid-pole-label-tip{background:#0f172ac7;color:#fff;border:none;padding:1px 6px;font-size:10px;font-weight:700;border-radius:999px;box-shadow:0 1px 3px #0000004d;white-space:nowrap}.leaflet-tooltip.grid-pole-label-tip:before{display:none}.leaflet-tooltip.device-name-label-tip{background:#ffffffeb;color:#0f172a;border:1px solid rgba(15,23,42,.12);padding:1px 7px;font-size:10.5px;font-weight:600;border-radius:999px;box-shadow:0 1px 3px #0000002e;white-space:nowrap;letter-spacing:.1px}.leaflet-tooltip.device-name-label-tip:before{display:none}.grid-segment-alarm-line{cursor:pointer}.grid-device-leaflet-wrap{background:transparent;border:none}.grid-device-pin{width:18px;height:18px;border-radius:4px;background:#6366f1;border:2px solid #fff;box-shadow:0 1px 3px #0006;transform:rotate(45deg)}.grid-device-pin.is-alarm{background:#ef4444;animation:grid-device-pulse 1.2s ease-in-out infinite}@keyframes grid-device-pulse{0%,to{box-shadow:0 0 #ef4444b3}50%{box-shadow:0 0 0 8px #ef444400}}.grid-segment-menu{position:fixed;z-index:9999;background:#fff;border:1px solid #cbd5e1;border-radius:12px;box-shadow:0 12px 32px #0f172a2e;width:380px;max-height:78vh;overflow:hidden;display:flex;flex-direction:column}.grid-segment-menu-inner{display:flex;flex-direction:column;min-height:0;flex:1;overflow-y:auto}.grid-segment-menu-head{display:flex;justify-content:space-between;align-items:center;padding:12px 14px;background:linear-gradient(135deg,#f8fafc,#eef2ff);border-bottom:1px solid #e2e8f0}.grid-segment-menu-title{display:flex;flex-direction:column;gap:2px}.grid-segment-menu-badge{font-size:9px;font-weight:800;letter-spacing:.12em;text-transform:uppercase;color:#4338ca;background:#e0e7ff;padding:2px 6px;border-radius:4px;align-self:flex-start}.grid-segment-menu-title strong{font-size:14px;color:#0f172a;font-family:ui-monospace,SFMono-Regular,monospace}.grid-segment-menu-close{width:28px;height:28px;border-radius:50%;background:transparent;border:none;font-size:18px;color:#64748b;cursor:pointer;display:flex;align-items:center;justify-content:center;flex-shrink:0}.grid-segment-menu-close:hover{background:#fee2e2;color:#b91c1c}.grid-segment-menu-current{display:flex;align-items:center;gap:12px;padding:12px 14px;background:#ecfdf5;border-bottom:1px solid #d1fae5}.grid-segment-menu-current-icon{width:38px;height:38px;border-radius:50%;background:#16a34a;color:#fff;display:flex;align-items:center;justify-content:center;flex-shrink:0;box-shadow:0 0 0 4px #16a34a26}.grid-segment-menu-current-icon .material-symbols-outlined{font-size:22px}.grid-segment-menu-current-info{display:flex;flex-direction:column;gap:2px;min-width:0;flex:1}.grid-segment-menu-current-label{font-size:10px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:#15803d}.grid-segment-menu-current-info strong{font-size:14px;color:#052e16}.grid-segment-menu-current-meta{font-size:11px;color:#475569}.grid-segment-menu-actions{display:flex;flex-direction:column;gap:4px;padding:10px 12px}.grid-segment-menu-action{display:flex;align-items:center;gap:10px;padding:10px 12px;background:#fff;border:1px solid #e2e8f0;border-radius:8px;font-size:13px;font-weight:500;color:#1e293b;cursor:pointer;text-align:left;transition:background .12s,border-color .12s}.grid-segment-menu-action:hover{background:#eff6ff;border-color:#93c5fd}.grid-segment-menu-action .material-symbols-outlined{font-size:18px;color:#475569}.grid-segment-menu-action--danger{color:#b91c1c;border-color:#fecaca}.grid-segment-menu-action--danger:hover{background:#fee2e2;border-color:#fca5a5}.grid-segment-menu-action--danger .material-symbols-outlined{color:#b91c1c}.grid-segment-menu-search-row{display:flex;align-items:center;gap:8px;padding:10px 12px;border-top:1px solid #f1f5f9;border-bottom:1px solid #f1f5f9;background:#fafbff}.grid-segment-menu-search-row .material-symbols-outlined{font-size:18px;color:#94a3b8;flex-shrink:0}.grid-segment-menu-search-row input{flex:1;padding:6px 10px;border:1px solid #cbd5e1;border-radius:6px;font-size:13px;background:#fff}.grid-segment-menu-search-row input:focus{outline:none;border-color:#6366f1;box-shadow:0 0 0 3px #6366f126}.grid-segment-menu-count{font-size:11px;color:#64748b;font-weight:600;flex-shrink:0}.grid-segment-menu-device-list{display:flex;flex-direction:column;gap:4px;padding:8px 10px 12px;overflow-y:auto;max-height:360px}.grid-segment-menu-device-card{display:flex;align-items:center;gap:10px;padding:8px 10px;background:#fff;border:1px solid #e2e8f0;border-radius:8px;cursor:pointer;text-align:left;transition:border-color .12s,background .12s,transform 80ms}.grid-segment-menu-device-card:hover{border-color:#6366f1;background:#eef2ff}.grid-segment-menu-device-card:active{transform:scale(.99)}.grid-segment-menu-device-icon{width:30px;height:30px;border-radius:50%;background:#6366f1;color:#fff;display:flex;align-items:center;justify-content:center;flex-shrink:0}.grid-segment-menu-device-icon .material-symbols-outlined{font-size:18px}.grid-segment-menu-device-info{display:flex;flex-direction:column;gap:2px;min-width:0;flex:1}.grid-segment-menu-device-info strong{font-size:13px;color:#0f172a;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.grid-segment-menu-device-meta{font-size:11px;color:#64748b}.grid-segment-menu-status{font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.04em;padding:2px 6px;border-radius:4px;flex-shrink:0}.grid-segment-menu-status--online{background:#dcfce7;color:#15803d}.grid-segment-menu-status--offline,.grid-segment-menu-status--unknown{background:#fee2e2;color:#b91c1c}.grid-segment-menu-device-arrow{font-size:16px;color:#94a3b8;flex-shrink:0}.grid-segment-menu-target-list{display:flex;flex-direction:column;gap:4px;padding:8px 10px;overflow-y:auto;max-height:320px}.grid-segment-menu-target{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:10px 12px;background:#fff;border:1px solid #e2e8f0;border-radius:8px;cursor:pointer;text-align:left;transition:border-color .12s,background .12s}.grid-segment-menu-target:hover{border-color:#6366f1;background:#eef2ff}.grid-segment-menu-target-route{font-family:ui-monospace,SFMono-Regular,monospace;font-size:13px;font-weight:700;color:#1e293b}.grid-segment-menu-target-empty{font-size:11px;color:#15803d;font-weight:600}.grid-segment-menu-target-warn{font-size:11px;color:#b45309;font-weight:600}.grid-segment-menu-cancel{margin:4px 12px 12px;padding:8px 12px;background:transparent;border:1px solid #e2e8f0;border-radius:8px;font-size:12px;color:#475569;cursor:pointer}.grid-segment-menu-cancel:hover{background:#f1f5f9}.grid-segment-menu-empty{text-align:center;padding:24px 16px;font-size:12px;color:#94a3b8;font-style:italic}.grid-segment-menu-empty--padded{display:flex;flex-direction:column;align-items:center;gap:8px;padding:28px 20px;font-style:normal;color:#475569}.grid-segment-menu-empty--padded .material-symbols-outlined{font-size:32px;color:#94a3b8}.grid-overview-page{flex:1;min-height:0;overflow-y:auto;padding:16px 18px 24px;display:flex;flex-direction:column;gap:14px}.grid-overview-empty{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:40px;text-align:center;color:#64748b;gap:8px}.grid-overview-empty .material-symbols-outlined{font-size:56px;color:#cbd5e1}.grid-overview-empty h3{margin:0;font-size:16px;color:#475569}.grid-overview-summary{display:flex;gap:12px}.grid-overview-summary-card{flex:1;background:#fff;border:1px solid #e2e8f0;border-radius:10px;padding:12px 14px;display:flex;flex-direction:column;gap:4px}.grid-overview-summary-card strong{font-size:22px;color:#0f172a}.grid-overview-summary-label{font-size:11px;text-transform:uppercase;letter-spacing:.06em;color:#64748b;font-weight:600}.grid-overview-summary-card--ok{background:#ecfdf5;border-color:#d1fae5}.grid-overview-summary-card--ok strong{color:#15803d}.grid-overview-summary-card--alarm{background:#fef2f2;border-color:#fecaca}.grid-overview-summary-card--alarm strong{color:#b91c1c}.grid-overview-tree{display:flex;flex-direction:column;gap:8px}.grid-overview-region{background:#fff;border:1px solid #e2e8f0;border-radius:10px;overflow:hidden}.grid-overview-region-head{width:100%;display:flex;align-items:center;gap:10px;padding:12px 14px;background:#f8fafc;border:none;border-bottom:1px solid #e2e8f0;cursor:pointer;text-align:left;font-size:14px;color:#0f172a}.grid-overview-region-head:hover{background:#f1f5f9}.grid-overview-chevron{font-size:10px;color:#94a3b8;width:14px;display:inline-block}.grid-overview-color-dot{width:12px;height:12px;border-radius:50%;border:1px solid rgba(0,0,0,.1)}.grid-overview-region-stats,.grid-overview-line-stats{margin-left:auto;font-size:12px;color:#64748b;display:inline-flex;align-items:center;gap:8px}.grid-overview-alarm-pill{background:#fee2e2;color:#b91c1c;font-weight:700;padding:2px 8px;border-radius:999px;font-size:11px}.grid-overview-line{border-top:1px solid #f1f5f9}.grid-overview-line:first-child{border-top:none}.grid-overview-line-head{width:100%;display:flex;align-items:center;gap:10px;padding:8px 14px 8px 28px;background:#fff;border:none;cursor:pointer;text-align:left;font-size:13px;color:#1e293b}.grid-overview-line-head:hover{background:#f8fafc}.grid-overview-line-marker{width:12px;height:4px;border-radius:2px;flex-shrink:0}.grid-overview-line-name{display:inline-flex;align-items:center;gap:8px;font-weight:600}.grid-overview-line-code{font-family:ui-monospace,SFMono-Regular,monospace;font-size:11px;color:#64748b;background:#f1f5f9;padding:1px 6px;border-radius:4px}.grid-overview-table{width:100%;border-collapse:separate;border-spacing:0;font-size:13px}.grid-overview-table thead th{background:#fafbff;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:#64748b;padding:8px 12px;border-top:1px solid #f1f5f9;border-bottom:1px solid #e2e8f0;text-align:left}.grid-overview-table tbody td{padding:10px 12px;border-bottom:1px solid #f1f5f9;vertical-align:middle}.grid-overview-segment-block{border-top:1px dashed #e2e8f0;padding-left:32px;background:#fdfdfd}.grid-overview-segment-block.has-alarm{background:#fef2f2;border-left:3px solid #ef4444}.grid-overview-segment-head{width:100%;display:flex;align-items:center;gap:10px;padding:7px 14px 7px 12px;background:transparent;border:none;cursor:pointer;text-align:left;font-size:12.5px;color:#475569}.grid-overview-segment-head:hover{background:#f1f5f9}.grid-overview-segment-block.has-alarm .grid-overview-segment-head:hover{background:#fee2e2}.grid-overview-segment-icon{display:inline-flex;align-items:center;justify-content:center;width:26px;height:26px;border-radius:6px;background:linear-gradient(135deg,#e0f2fe,#7dd3fc);color:#0c4a6e;flex-shrink:0}.grid-overview-segment-block.has-alarm .grid-overview-segment-icon{background:linear-gradient(135deg,#fee2e2,#fca5a5);color:#7f1d1d}.grid-overview-segment-icon .material-symbols-outlined{font-size:16px;font-variation-settings:"FILL" 1}.grid-overview-segment-label{font-family:ui-monospace,SFMono-Regular,Courier New,monospace;font-weight:600;color:#1e293b;flex:1}.grid-overview-segment-block.has-alarm .grid-overview-segment-label{color:#991b1b}.grid-overview-segment-stats{display:inline-flex;align-items:center;gap:8px;color:#64748b;font-size:11.5px}.grid-overview-region.has-alarm{border-color:#fca5a5;box-shadow:0 0 0 1px #fecaca inset,0 1px 3px #dc262614}.grid-overview-region.has-alarm .grid-overview-region-head{background:#fef2f2;border-left:4px solid #ef4444}.grid-overview-region.has-alarm .grid-overview-region-head:hover{background:#fee2e2}.grid-overview-line.has-alarm>.grid-overview-line-head{background:#fef5f5;border-left:3px solid #f87171}.grid-overview-line.has-alarm>.grid-overview-line-head:hover{background:#fee2e2}.grid-overview-row{cursor:pointer;transition:background .12s}.grid-overview-row:hover{background:#f8fafc}.grid-overview-row.is-selected{background:#eff6ff}.grid-overview-row.is-alarm{background:#fef2f2}.grid-overview-row.is-alarm:hover{background:#fee2e2}.grid-overview-status{text-align:center}.grid-overview-status-dot{display:inline-block;width:10px;height:10px;border-radius:50%;background:#cbd5e1}.grid-overview-status-dot.is-online{background:#16a34a;box-shadow:0 0 0 2px #16a34a2e}.grid-overview-status-dot.is-offline{background:#94a3b8}.grid-overview-status-dot.is-alarm{background:#ef4444;box-shadow:0 0 0 2px #ef44442e;animation:grid-overview-alarm-pulse 1.4s ease-in-out infinite}@keyframes grid-overview-alarm-pulse{0%,to{box-shadow:0 0 0 2px #ef44442e}50%{box-shadow:0 0 0 6px #ef444400}}.grid-overview-device{display:flex;flex-direction:column;gap:2px}.grid-overview-device strong{font-size:13px;color:#0f172a}.grid-overview-device code{font-family:ui-monospace,SFMono-Regular,monospace;font-size:11px;color:#64748b}.grid-overview-segment{font-family:ui-monospace,SFMono-Regular,monospace;font-size:12px;color:#475569}.grid-overview-faults{display:flex;flex-wrap:wrap;gap:4px}.grid-overview-fault{display:inline-block;padding:2px 8px;border-radius:4px;font-size:11px;font-weight:600}.grid-overview-fault--critical{background:#fecaca;color:#991b1b}.grid-overview-fault--warning{background:#fde68a;color:#92400e}.grid-overview-fault--info{background:#dbeafe;color:#a85800}.grid-overview-fault-more{font-size:11px;color:#64748b;font-weight:600;align-self:center}.grid-overview-battery{font-weight:700;font-size:13px;color:#1e293b}.grid-overview-last{font-size:12px;color:#475569}.device-popup-detail-btn{margin:12px 14px 14px;display:flex;align-items:center;justify-content:center;gap:6px;padding:10px 14px;background:#e67c00;color:#fff;border:none;border-radius:8px;font-size:13px;font-weight:600;cursor:pointer;transition:background .12s}.device-popup-detail-btn:hover{background:#cc7000}.device-popup-detail-btn .material-symbols-outlined{font-size:18px}.device-detail-modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#0f172a8c;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);display:flex;align-items:center;justify-content:center;z-index:9000;padding:20px}.device-detail-modal{width:100%;max-width:720px;max-height:88vh;background:#fff;border-radius:14px;box-shadow:0 16px 40px #0f172a40;display:flex;flex-direction:column;overflow:hidden}.device-detail-modal-head{display:flex;justify-content:space-between;align-items:flex-start;padding:16px 20px;background:linear-gradient(135deg,#f8fafc,#eef2ff);border-bottom:1px solid #e2e8f0}.device-detail-modal-eyebrow{font-size:10px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:#4338ca}.device-detail-modal-head h3{margin:4px 0 2px;font-size:18px;color:#0f172a}.device-detail-modal-head code{font-family:ui-monospace,SFMono-Regular,monospace;font-size:12px;color:#64748b}.device-detail-modal-close{width:32px;height:32px;border-radius:50%;border:none;background:transparent;color:#64748b;cursor:pointer;display:flex;align-items:center;justify-content:center}.device-detail-modal-close:hover{background:#fee2e2;color:#b91c1c}.device-detail-section{padding:14px 20px;border-bottom:1px solid #f1f5f9}.device-detail-section:last-of-type{border-bottom:none}.device-detail-section-title{margin:0 0 10px;font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:#475569;display:inline-flex;align-items:center;gap:6px}.device-detail-section-title .material-symbols-outlined{font-size:16px;color:#64748b}.device-detail-alarm-list{display:flex;flex-direction:column;gap:8px}.device-detail-alarm{display:flex;flex-direction:column;gap:2px;padding:10px 12px;border-radius:8px;border-left:4px solid #b91c1c;background:#fef2f2}.device-detail-alarm strong{font-size:13px;color:#0f172a}.device-detail-alarm span{font-size:12px;color:#475569}.device-detail-alarm-time{font-size:11px;color:#94a3b8;margin-top:2px}.device-detail-alarm--info{border-left-color:#e67c00;background:#eff6ff}.device-detail-alarm--warning{border-left-color:#d97706;background:#fffbeb}.device-detail-alarm--critical{border-left-color:#b91c1c;background:#fef2f2}.device-detail-batteries{display:flex;flex-direction:column;gap:6px}.device-detail-battery-row{display:grid;grid-template-columns:100px 1fr 80px;gap:12px;align-items:center;padding:8px 12px;background:#f8fafc;border:1px solid #e2e8f0;border-radius:8px;font-size:13px}.device-detail-battery-voltage{font-family:ui-monospace,SFMono-Regular,monospace;font-weight:600;color:#1e293b}.device-detail-battery-percent{text-align:right;font-weight:700;color:#0f172a}.device-detail-status-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:6px}.device-detail-status-pill{display:flex;justify-content:space-between;align-items:center;gap:8px;padding:8px 12px;border-radius:8px;font-size:12px;border:1px solid transparent}.device-detail-status-pill.is-passive{background:#f1f5f9;border-color:#e2e8f0}.device-detail-status-pill.is-passive .device-detail-status-value{color:#64748b;font-weight:600}.device-detail-status-pill.is-active{background:#fef2f2;border-color:#fecaca}.device-detail-status-pill.is-active .device-detail-status-value{color:#b91c1c;font-weight:700}.device-detail-status-label{font-weight:500;color:#1e293b}.device-detail-metrics-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:8px}.device-detail-metric{display:flex;flex-direction:column;gap:2px;padding:10px 12px;background:#f8fafc;border:1px solid #e2e8f0;border-radius:8px}.device-detail-metric-label{font-size:10px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:#64748b}.device-detail-metric strong{font-family:ui-monospace,SFMono-Regular,monospace;font-size:14px;color:#0f172a}.device-detail-modal-foot{display:flex;justify-content:space-between;align-items:center;padding:14px 20px;border-top:1px solid #e2e8f0;background:#f8fafc;flex-shrink:0}.device-detail-modal-foot .helper-text{margin:0}@media (max-width: 600px){.device-detail-status-grid,.device-detail-metrics-grid{grid-template-columns:1fr}.device-detail-battery-row{grid-template-columns:80px 1fr 60px}}.grid-mgmt-list-tab{display:flex;flex-direction:column;gap:10px;flex:1;min-height:0}.grid-mgmt-list-tab-toolbar{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.grid-mgmt-pole-rows{flex:1;min-height:0;overflow-y:auto;display:flex;flex-direction:column;gap:4px}.grid-mgmt-pole-row{display:grid;grid-template-columns:24px 130px 1fr 180px 70px;gap:10px;align-items:center;padding:8px 10px;background:#fff;border:1px solid #e2e8f0;border-radius:8px;cursor:grab;transition:border-color .12s,background .12s}.grid-mgmt-pole-row.is-dragging{opacity:.5;border-color:#e67c00}.grid-mgmt-pole-row-handle{color:#94a3b8;font-size:14px;font-weight:700;-webkit-user-select:none;user-select:none}.grid-mgmt-pole-row-seq{font-weight:700;color:#1e293b;font-size:13px}.grid-mgmt-pole-row-seq.is-start{color:#15803d}.grid-mgmt-pole-row-seq.is-end{color:#b91c1c}.grid-mgmt-pole-row-name{font-size:13px;color:#334155}.grid-mgmt-pole-row-coord{font-size:11px;font-family:ui-monospace,SFMono-Regular,monospace;color:#64748b}.grid-mgmt-pole-row-actions{display:flex;gap:4px;justify-self:end}.grid-mgmt-segment-row{display:flex;align-items:center;gap:12px;padding:6px 16px;margin:-2px 0 4px 22px;border-left:2px solid #cbd5e1;background:#f8fafc}.grid-mgmt-segment-label{font-size:11px;color:#64748b;font-weight:600}.grid-mgmt-segment-device{font-size:12px;color:#0f172a}.grid-mgmt-segment-select{padding:4px 10px;font-size:12px;border-radius:6px;border:1px solid #cbd5e1}.grid-pole-modal{width:92vw;max-width:880px}.grid-pole-modal-grid{display:grid;grid-template-columns:1fr 1.2fr;gap:16px;margin:8px 0}.grid-pole-coords{display:grid;grid-template-columns:1fr 1fr;gap:8px}.grid-pole-modal-map-shell{height:320px;border:1px solid #e2e8f0;border-radius:10px;overflow:hidden}.grid-pole-modal-map{width:100%;height:100%}@media (max-width: 1100px){.grid-mgmt-layout{grid-template-columns:1fr;grid-template-rows:auto auto 1fr}.grid-pole-modal-grid{grid-template-columns:1fr}}.rule-channel-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:10px}.rule-channel-option{display:flex;align-items:flex-start;gap:10px;padding:10px 12px;background:#fff;border:1px solid #e2e8f0;border-radius:10px;cursor:pointer;transition:border-color .15s,background .15s,box-shadow .15s}.rule-channel-option:hover{border-color:#cbd5e1;background:#f8fafc}.rule-channel-option input[type=checkbox]{margin-top:4px;flex-shrink:0;width:16px;height:16px;accent-color:#4338ca}.rule-channel-option:has(input:checked){border-color:#4338ca;background:#eef2ff;box-shadow:0 0 0 1px #4338ca inset}.rule-channel-icon{font-size:24px;line-height:1;flex-shrink:0;color:#4338ca;width:24px;height:24px;display:inline-flex;align-items:center;justify-content:center}.rule-channel-option:has(input:checked) .rule-channel-icon{color:#312e81}.rule-channel-label{display:flex;flex-direction:column;gap:2px;min-width:0}.rule-channel-label strong{font-size:13px;color:#0f172a}.rule-channel-label small{font-size:11px;color:#64748b;line-height:1.35}.project-settings-panel{display:flex;flex:1;flex-direction:column;max-width:100%;min-height:0;overflow:hidden}.project-settings-panel--wide{max-width:none;width:100%}.project-settings-body{flex:1;min-height:0;overflow-y:auto;padding-right:2px}.project-settings-actions{display:flex;justify-content:flex-end;align-items:center;flex-shrink:0;padding-top:12px;margin-top:12px;border-top:1px solid #e2e8f0}.project-settings-save{display:inline-flex;align-items:center;gap:8px;white-space:nowrap;padding:10px 20px;font-weight:700}.project-settings-save .material-symbols-outlined{font-size:18px}.project-settings-grid{display:grid;grid-template-rows:auto auto auto;gap:16px}.project-settings-field{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;align-items:start}@media (max-width: 1100px){.project-settings-field{grid-template-columns:repeat(2,minmax(0,1fr))}}.project-settings-field label{display:flex;flex-direction:column;gap:4px;font-size:13px;font-weight:600;color:#334155}.project-settings-field input{padding:9px 12px;border:1px solid #cbd5e1;border-radius:8px;font-size:13px}.project-settings-logo-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));align-items:stretch;min-height:0;gap:16px}.project-settings-logo-box{background:#fff;border:1px solid #e2e8f0;border-radius:12px;padding:16px;display:flex;flex-direction:column;gap:10px;min-width:0}.project-settings-logo-box .project-settings-logo-preview{flex:0 0 auto;height:200px;min-height:0}.project-settings-logo-head{display:flex;justify-content:space-between;align-items:center}.project-settings-logo-head h4{margin:0;font-size:14px;color:#0f172a}.text-btn{background:transparent;border:none;color:#b91c1c;font-size:12px;cursor:pointer;padding:0}.text-btn:hover{text-decoration:underline}.project-settings-logo-preview{height:140px;display:flex;align-items:center;justify-content:center;border:2px dashed #cbd5e1;border-radius:10px;overflow:hidden;padding:12px}.project-settings-logo-preview img{max-height:100%;max-width:100%;object-fit:contain}.project-settings-logo-preview--light{background:#fff}.project-settings-logo-preview--dark{background:#0f172a}.project-settings-favicon-preview{background:#f8fafc;height:140px}.project-settings-favicon-preview img{width:64px;height:64px;max-height:none;max-width:none;object-fit:contain;background-image:linear-gradient(45deg,#e2e8f0 25%,transparent 25%),linear-gradient(-45deg,#e2e8f0 25%,transparent 25%),linear-gradient(45deg,transparent 75%,#e2e8f0 75%),linear-gradient(-45deg,transparent 75%,#e2e8f0 75%);background-size:12px 12px;background-position:0 0,0 6px,6px -6px,-6px 0;border:1px solid #e2e8f0;border-radius:8px;padding:4px}.project-settings-login-image-preview{background:#f1f5f9;height:200px}.project-settings-login-image-preview img{max-height:100%;max-width:100%;object-fit:cover;border-radius:6px}.project-settings-logo-empty{font-size:12px;color:#94a3b8;font-style:italic}.project-settings-logo-preview--dark .project-settings-logo-empty{color:#64748b}.project-settings-logo-upload{position:relative;display:inline-flex;cursor:pointer;background:#f1f5f9;border:1px solid #cbd5e1;border-radius:8px;padding:8px 14px;font-size:13px;font-weight:600;color:#1e293b;align-self:flex-start}.project-settings-logo-upload:hover{background:#e2e8f0}.project-settings-logo-upload input{position:absolute;top:0;right:0;bottom:0;left:0;opacity:0;cursor:pointer}.success-text{color:#15803d;font-size:13px;font-weight:600;margin:8px 0}.project-settings-battery-box{background:linear-gradient(135deg,#fffaf0,#fff);border:1px solid #fde4c8;border-radius:12px;padding:18px 20px;display:flex;flex-direction:column;gap:12px}.project-settings-battery-head{display:flex;align-items:center;gap:14px}.project-settings-battery-icon{font-size:32px;color:#ff8c00;flex-shrink:0;background:#fff6e6;border-radius:10px;padding:6px}.project-settings-battery-head h4{margin:0 0 2px;font-size:14px;color:#0f172a;font-weight:600}.project-settings-battery-head .helper-text{margin:0;font-size:11.5px;line-height:1.4}.project-settings-battery-box h4{margin:0;font-size:14px;color:#0f172a}.project-settings-battery-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-top:4px}.project-settings-battery-grid label,.project-settings-battery-field{display:flex;flex-direction:column;gap:6px;font-size:13px;color:#334155}.project-settings-battery-label{font-weight:600;font-size:12.5px;color:#475569;letter-spacing:.02em;text-transform:uppercase}.project-settings-battery-input-wrap{position:relative;display:flex;align-items:center}.project-settings-battery-input-wrap input{flex:1;padding:11px 42px 11px 14px;border:1px solid #fde4c8;border-radius:10px;font-size:15px;font-weight:600;color:#0f172a;background:#fff;font-variant-numeric:tabular-nums}.project-settings-battery-input-wrap input:focus{outline:none;border-color:#ff8c00;box-shadow:0 0 0 3px #ff8c0026}.project-settings-battery-unit{position:absolute;right:14px;font-size:13px;font-weight:600;color:#ff8c00;pointer-events:none}.project-settings-battery-grid input{padding:9px 12px;border:1px solid #cbd5e1;border-radius:8px;font-size:13px}@media (max-width: 1200px){.project-settings-logo-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.project-settings-panel{overflow-y:auto}}@media (max-width: 768px){.project-settings-field,.project-settings-logo-grid{grid-template-columns:1fr}}.signal-card-name{font-size:13px;font-weight:600;color:#0f172a;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.signal-card-key{font-family:ui-monospace,SFMono-Regular,monospace;font-size:11px;color:#64748b;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.signals-detail-form-v2{display:grid;grid-template-columns:1fr;gap:12px}.signal-fieldset{border:1px solid #e2e8f0;border-radius:12px;padding:10px 14px 14px;margin:0;background:#fff;display:grid;grid-template-columns:1fr 1fr;gap:10px 12px;transition:opacity .15s,background .15s}.signal-fieldset:disabled{background:#f8fafc;opacity:.85}.signal-fieldset legend{padding:0 6px;font-size:11px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:#94a3b8}.signal-field{display:flex;flex-direction:column;gap:4px;font-size:12px;color:#475569;font-weight:500;min-width:0}.signal-field--wide{grid-column:1 / -1}.signal-field>span{font-weight:600;color:#475569;letter-spacing:.02em}.signal-field input,.signal-field select{padding:7px 10px;border:1px solid #e2e8f0;border-radius:8px;font-size:13px;color:#0f172a;background:#fff;font-family:inherit;transition:border-color .15s,box-shadow .15s;min-width:0;width:100%;box-sizing:border-box}.signal-field input:focus,.signal-field select:focus{outline:none;border-color:#6366f1;box-shadow:0 0 0 3px #6366f126}.signal-fieldset-hint{grid-column:1 / -1;margin:0;font-size:11px;color:#64748b;line-height:1.4}.signals-list-table .col-proto{white-space:nowrap;width:1%;text-align:center;transition:width .15s ease}.signals-list-table .col-proto--expanded{width:auto}.col-proto-head{display:inline-flex;align-items:center;gap:2px}.col-proto-toggle{display:inline-flex;align-items:center;justify-content:center;width:18px;height:18px;padding:0;border:none;border-radius:4px;background:transparent;color:#94a3b8;cursor:pointer}.col-proto-toggle:hover{background:#e2e8f0;color:#0f172a}.col-proto-toggle .material-symbols-outlined{font-size:15px}.proto-check-code{color:inherit;opacity:.75}.proto-check-code:after{content:"·";margin:0 3px;opacity:.6}.proto-check{display:inline-flex;align-items:center;gap:3px;padding:3px 8px;border-radius:999px;font-size:11px;font-weight:500;font-family:JetBrains Mono,Consolas,monospace;color:#94a3b8;border:1px solid transparent}.proto-check .material-symbols-outlined{font-size:14px}.proto-check--on{background:#f0fdf4;color:#15803d;border-color:#dcfce7}.proto-check--off{background:#f8fafc;color:#94a3b8;border-color:#f1f5f9}.proto-check--empty{color:#cbd5e1}.signals-detail-readonly{display:grid;gap:10px;margin:0 0 16px}.signals-detail-readonly-row{display:flex;justify-content:space-between;align-items:baseline;gap:12px;padding:8px 0;border-bottom:1px solid #f1f5f9}.signals-detail-readonly-row dt{font-size:12px;color:#64748b;font-weight:600;white-space:nowrap}.signals-detail-readonly-row dd{margin:0;font-size:13px;color:#0f172a;font-weight:500;text-align:right}.signal-toggle-card{grid-column:1 / -1;display:flex;flex-direction:row;align-items:center;gap:8px;padding:6px 0 0;border:none;border-radius:0;background:none;width:fit-content;cursor:pointer;transition:border-color .15s,background .15s,box-shadow .15s}.signal-toggle-card:hover{border-color:transparent}.signal-toggle-card-on{border-color:transparent;background:none;box-shadow:none}.signal-toggle-card input[type=checkbox]{width:15px;height:15px;accent-color:#10b981;cursor:pointer}.signal-toggle-text{display:flex;flex-direction:row;align-items:center}.signal-toggle-title{font-size:12.5px;font-weight:600;color:#334155}.signal-toggle-card-on .signal-toggle-title{color:#047857}.signal-toggle-hint{font-size:11px;color:#64748b;font-weight:400;line-height:1.35}.signal-toggle-card:has(input:disabled){opacity:.55;cursor:not-allowed}.signal-toggle-card:has(input:disabled) .signal-toggle-title,.signal-toggle-card:has(input:disabled) .signal-toggle-hint{color:#94a3b8}.signal-form-actions{display:flex;justify-content:flex-end;align-items:center;flex-shrink:0;padding:12px 0 0;margin-top:8px;border-top:1px solid #f1f5f9}.signal-form-actions .primary-btn{height:auto;padding:9px 20px}.dashboard-shell{display:flex;flex-direction:column;gap:8px;flex:1;min-height:0;height:100%}.dashboard-body{display:grid;grid-template-columns:300px 1fr;gap:8px;flex:1;min-height:0}.dashboard-body .sidebar.device-sidebar-modern{width:auto;min-width:0;max-width:100%;border-right:none;border:1px solid #e2e8f0;border-radius:12px;padding:10px;box-shadow:0 1px 2px #0f172a0a;overflow-y:auto;overflow-x:hidden;scrollbar-width:thin;scrollbar-color:rgba(148,163,184,.45) transparent}.dashboard-body .sidebar.device-sidebar-modern::-webkit-scrollbar{width:8px}.dashboard-body .sidebar.device-sidebar-modern::-webkit-scrollbar-track{background:transparent}.dashboard-body .sidebar.device-sidebar-modern::-webkit-scrollbar-thumb{background:#94a3b873;border-radius:4px;border:2px solid transparent;background-clip:padding-box}.dashboard-body .sidebar.device-sidebar-modern::-webkit-scrollbar-thumb:hover{background:#64748bb3;background-clip:padding-box}.dashboard-body .sidebar.device-sidebar-modern .device-row{min-width:0}.dashboard-body.sidebar-collapsed{grid-template-columns:1fr}@media (max-width: 1100px){.dashboard-body{grid-template-columns:280px 1fr}}.dashboard-filter-bar{display:flex;align-items:center;gap:12px;flex-wrap:wrap;padding:8px 12px;background:#fff;border:1px solid #e2e8f0;border-radius:12px;box-shadow:0 1px 2px #0f172a0a;flex-shrink:0}.dashboard-filter-toggle{display:inline-flex;align-items:center;justify-content:center;width:34px;height:34px;border:1px solid #e2e8f0;background:#fff;border-radius:9px;color:#475569;cursor:pointer;transition:background .12s,border-color .12s,color .12s;flex-shrink:0}.dashboard-filter-toggle:hover{background:#f8fafc;border-color:#cbd5e1;color:#0f172a}.dashboard-filter-toggle .material-symbols-outlined{font-size:20px}.dashboard-filter-search{flex:1;min-width:200px;max-width:280px;padding:8px 12px;border:1px solid #e2e8f0;border-radius:9px;background:#f8fafc;font-size:13px;transition:border-color .15s,background .15s,box-shadow .15s}.dashboard-filter-search:focus{outline:none;border-color:#6366f1;background:#fff;box-shadow:0 0 0 3px #6366f126}.dashboard-filter-tabs{display:inline-flex;align-items:center;gap:4px;margin-left:8px;padding:3px;background:#f1f5f9;border:1px solid #e2e8f0;border-radius:999px}.dashboard-filter-tab{padding:5px 16px;border:none;background:transparent;color:#64748b;border-radius:999px;font-size:12px;font-weight:600;cursor:pointer;transition:background .12s,color .12s}.dashboard-filter-tab:hover:not(.active){background:#ffffffb3;color:#0f172a}.dashboard-filter-tab.active{background:linear-gradient(135deg,#e67c00,#cc7000);color:#fff;box-shadow:0 1px 3px #e67c004d}.map-filter-bar{display:flex;align-items:center;gap:12px;flex-wrap:wrap;padding:8px 12px;background:#fff;border:1px solid #e2e8f0;border-radius:12px;box-shadow:0 1px 2px #0f172a0a;flex-shrink:0}.map-filter-chips{display:inline-flex;align-items:center;gap:4px;padding:3px;background:#f1f5f9;border:1px solid #e2e8f0;border-radius:999px}.map-filter-chip{display:inline-flex;align-items:center;gap:6px;padding:5px 12px;border:1px solid transparent;background:transparent;color:#64748b;border-radius:999px;font-size:12px;font-weight:600;cursor:pointer;transition:background .12s,color .12s,border-color .12s}.map-filter-chip:hover:not(.active){background:#ffffffb3;color:#0f172a}.map-filter-chip-count{display:inline-flex;align-items:center;justify-content:center;min-width:18px;height:17px;padding:0 6px;border-radius:999px;background:#fff;color:#475569;font-size:10px;font-weight:700;border:1px solid #e2e8f0}.map-filter-chip.active{background:linear-gradient(135deg,#6366f1,#4f46e5);color:#fff;border-color:#4f46e5;box-shadow:0 1px 3px #4f46e540}.map-filter-chip.active .map-filter-chip-count{background:#ffffff40;color:#fff;border-color:transparent}.map-filter-chip--online.active{background:linear-gradient(135deg,#10b981,#059669);border-color:#059669;box-shadow:0 1px 3px #10b98140}.map-filter-chip--offline.active{background:linear-gradient(135deg,#94a3b8,#64748b);border-color:#64748b}.map-filter-chip--alarm.active{background:linear-gradient(135deg,#f59e0b,#d97706);border-color:#d97706;box-shadow:0 1px 3px #f59e0b40}.map-filter-divider{width:1px;height:22px;background:#e2e8f0}.map-filter-area{display:inline-flex;align-items:center;gap:8px;font-size:12px;font-weight:600;color:#475569}.map-filter-area select{padding:6px 10px;border:1px solid #e2e8f0;border-radius:8px;background:#fff;color:#0f172a;font-size:12px;cursor:pointer;min-width:160px;max-width:240px;transition:border-color .15s,box-shadow .15s}.map-filter-area select:focus{outline:none;border-color:#6366f1;box-shadow:0 0 0 3px #6366f11f}.map-filter-area select:disabled{background:#f8fafc;color:#94a3b8;cursor:not-allowed}.map-filter-summary{margin-left:auto;font-size:11px;color:#64748b;font-weight:600;font-variant-numeric:tabular-nums;white-space:nowrap}.map-filter-clear{padding:6px 12px;font-size:12px;font-weight:600}.map-filter-error{margin:0;padding:6px 12px;font-size:12px}.device-pin{width:14px;height:14px;border-radius:999px;display:block;border:2px solid #fff;box-shadow:0 0 0 1px #0f172a26}.device-popup-card{position:absolute;right:16px;bottom:16px;width:320px;border-radius:12px;border:1px solid #d1d5db;background:#fff;padding:14px;box-shadow:0 8px 24px #0f172a33;z-index:700}.device-popup-card h4{margin:0 0 10px}.device-popup-card p{margin:0 0 6px;font-size:13px}.close-popup{position:absolute;right:10px;top:8px;border:none;background:transparent;cursor:pointer}.device-popup-card--modern{width:360px;padding:0;border:1px solid #e2e8f0;border-radius:14px;overflow:hidden;box-shadow:0 12px 32px #0f172a38;display:flex;flex-direction:column}.device-popup-card--modern p{margin:0;font-size:13px}.device-popup-v2-body{padding:16px 16px 8px;display:flex;flex-direction:column;gap:13px}.device-popup-v2-id{display:flex;flex-direction:column;gap:3px;padding-right:34px}.device-popup-v2-info{display:flex;flex-direction:column;gap:8px}.device-popup-card--v2 .device-sidebar-code{font-size:17px;margin:0}.device-popup-card--v2 .device-sidebar-kicker{margin-bottom:2px}.device-popup-close{position:absolute;top:8px;right:8px;width:28px;height:28px;display:inline-flex;align-items:center;justify-content:center;border:1px solid #e2e8f0;background:#ffffffeb;color:#475569;border-radius:8px;cursor:pointer;transition:background .12s,color .12s,border-color .12s;z-index:2}.device-popup-close:hover{background:#f1f5f9;color:#0f172a;border-color:#cbd5e1}.device-popup-close .material-symbols-outlined{font-size:18px}.device-popup-header{position:relative;padding:15px 50px 13px 16px;background:radial-gradient(130% 150% at 100% 0%,rgba(230,124,0,.18) 0%,transparent 46%),linear-gradient(135deg,#1e293b,#0f172a);border-bottom:3px solid #e67c00;display:flex;flex-direction:column;gap:9px}.device-popup-title{display:flex;flex-direction:column;gap:2px;min-width:0}.device-popup-title h4{margin:0;font-size:16px;font-weight:700;color:#f8fafc;letter-spacing:-.01em;line-height:1.2;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.device-popup-code{font-family:ui-monospace,SFMono-Regular,monospace;font-size:11px;letter-spacing:.04em;color:#93a4bb}.device-popup-badges{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.device-popup-status{display:inline-flex;align-items:center;gap:6px;padding:3px 10px;border-radius:999px;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.05em;border:1px solid transparent}.device-popup-status.online{background:#ecfdf5;color:#047857;border-color:#a7f3d0}.device-popup-status.offline{background:#fef2f2;color:#b91c1c;border-color:#fecaca}.device-popup-status-dot{width:8px;height:8px;border-radius:50%;display:inline-block}.device-popup-status.online .device-popup-status-dot{background:#10b981;box-shadow:0 0 0 2px #10b98133}.device-popup-status.offline .device-popup-status-dot{background:#ef4444}.device-popup-alarm-badge{display:inline-flex;align-items:center;gap:4px;padding:3px 9px;border-radius:999px;background:linear-gradient(135deg,#ef4444,#dc2626);color:#fff;font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.05em;box-shadow:0 0 #ef44448c;animation:device-alarm-pulse 1.4s ease-in-out infinite}.device-popup-alarm-badge .material-symbols-outlined{font-size:13px}.device-popup-info{display:grid;grid-template-columns:1fr 1fr;gap:8px;padding:12px 16px;border-bottom:1px solid #f1f5f9;background:#fff}.device-popup-info-item{display:flex;align-items:flex-start;gap:8px;min-width:0}.device-popup-info-item>.material-symbols-outlined{font-size:16px;color:#e67c00;margin-top:2px;flex-shrink:0}.device-popup-info-item>div{display:flex;flex-direction:column;gap:1px;min-width:0}.device-popup-info-label{font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:#94a3b8}.device-popup-info-value{font-size:12px;font-weight:600;color:#0f172a;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.device-popup-batteries{display:flex;flex-direction:column;gap:1px;padding:8px 12px 12px;background:#fff}.device-popup-battery-card{display:grid;grid-template-columns:92px 1fr 40px;align-items:center;column-gap:12px;padding:9px 6px;border:none;border-radius:8px;background:transparent;transition:background .12s ease}.device-popup-battery-card:hover{background:#f8fafc}.device-popup-battery-card-head{display:flex;flex-direction:column;align-items:flex-start;gap:3px;min-width:0}.device-popup-battery-card .badge{font-size:10px;padding:2px 8px;border-radius:999px;font-weight:700;text-transform:uppercase;letter-spacing:.04em}.device-popup-battery-voltage{font-family:ui-monospace,SFMono-Regular,monospace;font-size:11px;font-weight:600;color:#475569}.device-popup-battery-bar{position:relative;width:100%;height:8px;background:#e2e8f0;border-radius:999px;overflow:hidden}.device-popup-battery-fill{display:block;height:100%;border-radius:999px;transition:width .25s ease,background .2s ease;background:#94a3b8}.device-popup-battery-card.device-battery--ok .device-popup-battery-fill{background:linear-gradient(90deg,#10b981,#059669)}.device-popup-battery-card.device-battery--low .device-popup-battery-fill{background:linear-gradient(90deg,#f59e0b,#d97706)}.device-popup-battery-card.device-battery--critical .device-popup-battery-fill{background:linear-gradient(90deg,#ef4444,#dc2626)}.device-popup-battery-card.device-battery--unknown .device-popup-battery-fill{background:#cbd5e1}.device-popup-battery-percent{font-size:12px;font-weight:700;color:#0f172a;text-align:right;font-variant-numeric:tabular-nums}.device-popup-battery-card.device-battery--unknown .device-popup-battery-percent{color:#94a3b8}.map-item{border:1px dashed #9ca3af;border-radius:6px;padding:8px;display:flex;justify-content:space-between}.values-table{width:100%;border-collapse:separate;border-spacing:0}.values-table th,.values-table td{border-bottom:1px solid #f1f5f9;padding:10px 14px;text-align:left;font-size:13px;vertical-align:middle}.values-table th:last-child,.values-table td:last-child{border-right:none}.values-table thead th{background:#f8fafc;color:#475569;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.06em;border-bottom:1px solid #e2e8f0}.values-table tbody tr:hover{background:#f8fafc}.user-table th{text-align:center}.notify-cell{text-align:center!important}.status-toggle{display:inline-flex;align-items:center;justify-content:center;width:34px;height:22px;border-radius:999px;border:1px solid #cbd5e1;font-size:14px;font-weight:700;line-height:1}.status-toggle.on{background:#dcfce7;border-color:#22c55e;color:#15803d}.status-toggle.off{background:#fee2e2;border-color:#ef4444;color:#b91c1c}.notify-col{text-align:center!important;width:64px;white-space:nowrap}.notif-dot{display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;border-radius:50%}.notif-dot .material-symbols-outlined{font-size:20px;line-height:1}.notif-dot.is-on{background:#ecfdf5;color:#047857}.notif-dot.is-off{background:#fef2f2;color:#b91c1c}.notify-group--4{display:grid;grid-template-columns:1fr 1fr;gap:8px 14px;padding:12px 14px}.notify-group--4 legend{grid-column:1 / -1;font-weight:600;padding:0 6px}.notify-group--4 .rule-hint{grid-column:1 / -1}.notify-group--4 .notify-option{display:flex;align-items:center;gap:8px;padding:8px 10px;border:1px solid #e2e8f0;border-radius:9px;cursor:pointer;transition:border-color .15s,background .15s}.notify-group--4 .notify-option:hover{border-color:#cbd5e1;background:#f8fafc}.notify-group--4 .notify-option:has(input:checked){border-color:#6366f1;background:#eef2ff}.notify-group--4 .notify-option input[type=checkbox]{margin:0;accent-color:#4f46e5}.notify-group--4 .notify-option .material-symbols-outlined{font-size:18px;color:#475569}.notify-group--4 .notify-option:has(input:checked) .material-symbols-outlined{color:#4f46e5}@media (max-width: 520px){.notify-group--4{grid-template-columns:1fr}}.login-page{position:relative;height:100vh;display:flex;align-items:stretch;justify-content:stretch;padding:0;background:#0f172a;overflow:hidden}.login-visual-bg{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;object-fit:cover;object-position:center;z-index:0}.login-visual-overlay{position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(135deg,#02061759,#020617bf);z-index:0}.login-layout{width:100%;height:100vh;display:flex;align-items:center;justify-content:center;background:transparent;position:relative;z-index:1}.login-form-container{width:100%;max-width:480px;padding:24px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:20px;background:transparent}.login-glass-card{width:100%;max-width:420px;background:#0f172aa6;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border:1px solid rgba(255,255,255,.1);border-radius:16px;padding:40px 36px;box-shadow:0 20px 40px #0003,0 1px 3px #0000001a;display:flex;flex-direction:column;position:relative}.login-customer-brand{margin-bottom:40px;text-align:center}.login-footer-logo{position:absolute;bottom:28px;left:50%;transform:translate(-50%);z-index:2;height:48px;width:auto;object-fit:contain}.login-customer-logo{width:auto;max-width:100%;height:80px;object-fit:contain;object-position:center;margin-bottom:24px;align-self:center;display:block;margin-left:auto;margin-right:auto}.login-form-core{display:grid;gap:16px;position:relative;z-index:1}.login-form-title{margin:0 0 16px;text-align:left;font-size:24px;color:#fff;font-weight:700}.login-form-options{display:flex;align-items:center;justify-content:space-between;gap:12px}.login-remember{display:flex;align-items:center;gap:8px;font-size:13px;color:#cbd5e1;cursor:pointer}.login-remember input[type=checkbox]{position:absolute;opacity:0;width:0;height:0}.login-remember .checkbox-custom{width:16px;height:16px;border-radius:4px;border:1px solid rgba(255,255,255,.3);background:#0f172a80;display:flex;align-items:center;justify-content:center;color:transparent;flex-shrink:0}.login-remember input[type=checkbox]:checked+.checkbox-custom{background:#f97316;border-color:#f97316;color:#fff}.login-submit-btn{display:flex;align-items:center;justify-content:center;gap:8px;width:100%;padding:13px 20px;border:none;border-radius:10px;background:#f97316;color:#fff;font-size:15px;font-weight:700;cursor:pointer;transition:background .15s ease}.login-submit-btn:hover:not(:disabled){background:#ea6a0d}.login-submit-btn:disabled{opacity:.7;cursor:not-allowed}.login-input-group{display:grid;gap:6px}.login-input-group label{font-size:13px;color:#cbd5e1;font-weight:600}.login-input-wrapper{position:relative;display:flex;align-items:center}.login-input-icon{position:absolute;left:12px;color:#64748b;pointer-events:none}.login-input-wrapper input{width:100%;border:1px solid rgba(255,255,255,.1);border-radius:10px;padding:12px 14px 12px 38px;font-size:14px;background:#0f172a80;color:#fff;transition:all .2s ease}.login-input-wrapper input:hover{border-color:#fff3}.login-input-wrapper input:focus{outline:none;border-color:#f97316;box-shadow:0 0 0 3px #f9731633;background:#0f172acc}.login-input-wrapper input::placeholder{color:#64748b}.password-input-wrap{position:relative;width:100%}.password-input-wrap input{width:100%;padding-right:44px}.password-toggle-btn{position:absolute;right:8px;top:50%;transform:translateY(-50%);width:34px;height:34px;border:none;background:transparent;box-shadow:none;padding:0;border-radius:10px;color:#475569;line-height:1;cursor:pointer;transition:none;display:inline-flex;align-items:center;justify-content:center}.password-toggle-btn:hover{transform:translateY(-50%);filter:none;background:transparent;color:#475569}.password-toggle-btn:active{transform:translateY(-50%)}.password-toggle-btn:focus-visible{outline:none;box-shadow:none}.password-toggle-btn svg{width:18px;height:18px;stroke:currentColor;fill:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}.user-form input,.user-form select{border:1px solid #cbd5e1;border-radius:10px;padding:10px 12px;transition:border-color .2s ease,box-shadow .2s ease,background-color .2s ease;background:#f8fafc}.user-form input:hover,.user-form select:hover{border-color:#94a3b8}.user-form input:focus,.user-form select:focus{outline:none;border-color:#e67c00;box-shadow:0 0 0 3px #e67c002e;background:#fff}.user-form button,.danger-btn{border:1px solid #cc7000;background:linear-gradient(135deg,#e67c00,#cc7000);color:#fff;border-radius:10px;padding:10px 14px;font-weight:600;cursor:pointer;transition:transform .12s ease,box-shadow .2s ease,filter .2s ease;box-shadow:0 6px 16px #cc700047}.user-form button:hover,.danger-btn:hover{filter:brightness(1.03);transform:translateY(-1px)}.user-form button:active,.danger-btn:active{transform:translateY(0);box-shadow:0 2px 8px #cc70003d}.user-form button:focus-visible,.danger-btn:focus-visible{outline:none;box-shadow:0 0 0 3px #ff8c0040}.danger-btn{border-color:#dc2626;background:linear-gradient(135deg,#ef4444,#dc2626);box-shadow:0 6px 16px #dc26263d}.error-text{color:#dc2626;font-size:12px;margin:0}.device-summary-page{display:flex;flex-direction:column;gap:12px;flex:1;min-height:0}.device-summary-empty{flex:1;display:flex;align-items:center;justify-content:center}.device-summary-empty-card{text-align:center;padding:40px 28px;background:#fff;border:1px solid #e2e8f0;border-radius:14px;max-width:420px;box-shadow:0 1px 2px #0f172a0a}.device-summary-empty-icon{font-size:48px;color:#c7d2fe}.device-summary-empty-card h3{margin:12px 0 8px;color:#0f172a;font-size:18px}.device-summary-header{display:flex;flex-direction:column;gap:12px;padding:14px 16px;background:#fff;border:1px solid #e2e8f0;border-radius:12px;box-shadow:0 1px 2px #0f172a0a}.device-summary-title{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.device-summary-title h2{margin:0;font-size:18px;color:#0f172a}.device-summary-code{font-family:ui-monospace,SFMono-Regular,monospace;font-size:12px;color:#64748b;background:#f1f5f9;padding:3px 9px;border-radius:6px}.device-summary-status{display:inline-flex;align-items:center;padding:3px 10px;border-radius:999px;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.05em}.device-summary-status.online{background:#dcfce7;color:#166534;border:1px solid #bbf7d0}.device-summary-status.offline{background:#fee2e2;color:#991b1b;border:1px solid #fecaca}.device-summary-kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:8px}.device-summary-kpi{display:flex;flex-direction:column;gap:2px;padding:10px 14px;border:1px solid #e2e8f0;border-radius:10px;background:linear-gradient(135deg,#f8fafc,#fff)}.device-summary-kpi-label{font-size:11px;font-weight:600;letter-spacing:.04em;text-transform:uppercase;color:#64748b}.device-summary-kpi-value{font-size:22px;font-weight:700;color:#0f172a;line-height:1.1;font-variant-numeric:tabular-nums}.device-summary-kpi--good{background:linear-gradient(135deg,#ecfdf5,#f0fdf4);border-color:#a7f3d0}.device-summary-kpi--good .device-summary-kpi-value{color:#047857}.device-summary-kpi--bad{background:linear-gradient(135deg,#fef2f2,#fff1f2);border-color:#fecaca}.device-summary-kpi--bad .device-summary-kpi-value{color:#b91c1c}.device-summary-kpi--pending{background:linear-gradient(135deg,#fef3c7,#fffbeb);border-color:#fde68a}.device-summary-kpi--pending .device-summary-kpi-value{color:#92400e}.device-summary-kpi--battery{background:linear-gradient(135deg,#eef2ff,#f5f7ff);border-color:#c7d2fe}.device-summary-kpi--battery .device-summary-kpi-value{color:#4338ca}.device-summary-kpi--alarm{background:linear-gradient(135deg,#fef2f2,#fff7ed);border-color:#fdba74}.device-summary-toolbar{display:flex;align-items:center;gap:12px;flex-wrap:wrap;padding:8px 12px;background:#fff;border:1px solid #e2e8f0;border-radius:12px;box-shadow:0 1px 2px #0f172a0a}.device-summary-tabs{display:inline-flex;gap:4px;padding:3px;background:#f1f5f9;border:1px solid #e2e8f0;border-radius:999px}.device-summary-tab{display:inline-flex;align-items:center;gap:6px;padding:6px 14px;border:none;background:transparent;color:#64748b;border-radius:999px;font-size:12px;font-weight:600;cursor:pointer;transition:background .12s,color .12s}.device-summary-tab:hover:not(.active){background:#ffffffb3;color:#0f172a}.device-summary-tab.active{background:linear-gradient(135deg,#6366f1,#4f46e5);color:#fff;box-shadow:0 1px 3px #4f46e540}.device-summary-tab-count{display:inline-flex;align-items:center;justify-content:center;min-width:18px;height:17px;padding:0 6px;border-radius:999px;background:#fff9;color:inherit;font-size:10px;font-weight:700}.device-summary-tab.active .device-summary-tab-count{background:#ffffff40}.device-summary-search{flex:1;min-width:200px;max-width:320px;padding:8px 12px;border:1px solid #e2e8f0;border-radius:9px;background:#f8fafc;font-size:13px;transition:border-color .15s,background .15s,box-shadow .15s}.device-summary-search:focus{outline:none;border-color:#6366f1;background:#fff;box-shadow:0 0 0 3px #6366f126}.device-summary-table-wrap{flex:1;min-height:0;overflow:auto;border:1px solid #e2e8f0;border-radius:12px;background:#fff}.device-summary-table thead th{position:sticky;top:0;background:#f8fafc;font-size:11px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:#64748b;border-bottom:1px solid #e2e8f0;z-index:2}.device-summary-empty-row{padding:32px 12px!important;text-align:center;color:#94a3b8;font-style:italic}.modal-error{padding:8px 12px;background:#fef2f2;border:1px solid #fecaca;border-radius:8px;color:#b91c1c;font-size:13px;font-weight:500;line-height:1.4}.user-form{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:8px;margin-bottom:12px}.login-visual{position:relative;background:#0f172a;overflow:hidden}.visual-image{width:100%;height:100%;object-fit:cover;object-position:center}@media (max-width: 960px){.header{height:auto;padding:8px 10px;flex-wrap:wrap;gap:8px}.header-left h1{font-size:24px}.header-right{width:100%;justify-content:space-between}.profile-trigger{min-width:180px}.login-glass-card{padding:32px 24px}.notification-columns{grid-template-columns:1fr}}.subtabs{display:flex;gap:8px;margin-bottom:16px;padding:4px;background:#f3f4f6;border-radius:8px;width:fit-content}.subtabs button{padding:6px 14px;border:none;background:transparent;border-radius:6px;cursor:pointer;color:#374151;font-size:13px}.subtabs button.active{background:#fff;color:#111827;box-shadow:0 1px 2px #00000014;font-weight:600}.signals-layout .device-management-right{max-width:none}.signals-detail{min-width:320px}.checkbox-row{display:flex;align-items:center;gap:8px;flex-direction:row!important}.checkbox-row input[type=checkbox]{width:auto!important;margin:0}.badge{display:inline-block;padding:2px 8px;border-radius:999px;font-size:11px;font-weight:600;text-transform:uppercase;background:#e5e7eb;color:#374151;margin-left:6px}.badge.badge-analog{background:#dbeafe;color:#cc7000}.badge.badge-binary{background:#fde68a;color:#92400e}.badge.badge-counter{background:#d1fae5;color:#065f46}.badge.badge-string{background:#e9d5ff;color:#6b21a8}.badge.badge-binary_output{background:#fee2e2;color:#b91c1c}.badge.badge-analog_output{background:#cffafe;color:#0e7490}.badge.badge-source{margin-left:4px;letter-spacing:.02em}.badge.badge-source-master{background:#0ea5e9;color:#fff}.badge.badge-source-sat01{background:#22c55e;color:#fff}.badge.badge-source-sat02{background:#f97316;color:#fff}.signals-filter-bar{display:grid;grid-template-columns:1fr 140px 140px auto;gap:8px;align-items:center;margin-bottom:10px}.signals-filter-bar input[type=search],.signals-filter-bar select{padding:6px 10px;border:1px solid #cbd5e1;border-radius:6px;font-size:13px;background:#fff}.signals-filter-bar .helper-text{text-align:right;white-space:nowrap;font-size:12px}.badge.level-info{background:#dbeafe;color:#cc7000}.badge.level-warning{background:#fef3c7;color:#92400e}.badge.level-critical{background:#fee2e2;color:#991b1b}.alarm-rules-panel .section-header{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:12px}.alarm-rules-panel .values-table-wrap,.signals-panel .live-values-table-wrap{overflow-x:auto;border:1px solid #e5e7eb;border-radius:8px;background:#fff}.alarm-rules-panel .action-btn{padding:4px 10px;font-size:12px}.signals-panel-modern,.live-values-page{display:flex;flex-direction:column;gap:14px;min-height:0;flex:1;height:100%}.engineering-content .tab-panel.signals-panel-modern{overflow:hidden;display:flex;flex-direction:column;flex:1;min-height:0}.signals-hero{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:14px 18px;background:linear-gradient(135deg,#1e293b,#334155);border-radius:12px;color:#f1f5f9;box-shadow:0 2px 8px #0f172a1f}.signals-hero-left h3{margin:0 0 4px;color:#f8fafc;font-size:18px;letter-spacing:.01em}.signals-hero-left .helper-text{color:#cbd5e1;margin:0}.signals-hero-left .helper-text strong{color:#fde68a}.signals-hero-actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.signals-hero-actions .helper-text{color:#cbd5e1}.signals-type-tabs{display:flex;gap:4px;flex-wrap:wrap;padding:4px;background:#f1f5f9;border-radius:999px;border:1px solid #e2e8f0}.signals-type-tab{display:inline-flex;align-items:center;gap:6px;padding:6px 12px;border-radius:999px;background:transparent;color:#475569;border:1px solid transparent;font-weight:600;font-size:12px;cursor:pointer;transition:background .15s ease,color .15s ease}.signals-type-tab:hover{background:#ffffffb3;color:#0f172a}.signals-type-tab.active{background:#0f172a;color:#fff;border-color:#0f172a}.signals-type-tab .stt-count{display:inline-flex;align-items:center;justify-content:center;min-width:20px;height:18px;padding:0 6px;border-radius:999px;background:#e2e8f0;color:#475569;font-size:11px;font-weight:700}.signals-type-tab.active .stt-count{background:#fff3;color:#fff}.signals-type-tabs--inline{margin:0;flex:1;min-width:0}.signals-type-tabs--row{margin:0;border-radius:10px}.signals-filters-row{display:flex;align-items:center;flex-wrap:wrap;gap:10px;margin:10px 0;flex-shrink:0}.signals-export-wrap{position:relative;flex-shrink:0}.signals-toolbar--merged .signals-export-wrap{margin-left:auto}.signals-export-btn.secondary-btn{display:inline-flex;align-items:center;gap:6px;margin-right:0;padding:8px 14px;background:#fff;border:1px solid #cbd5e1;border-radius:8px;color:#475569;font-size:12.5px;font-weight:600}.signals-export-btn.secondary-btn:hover{background:#f8fafc;color:#0f172a}.signals-export-btn .material-symbols-outlined{font-size:17px}.signals-export-menu{position:absolute;top:calc(100% + 6px);right:0;z-index:20;display:flex;flex-direction:column;min-width:240px;background:#fff;border:1px solid #e2e8f0;border-radius:10px;box-shadow:0 8px 24px #0f172a1f;padding:6px}.signals-export-menu button{text-align:left;padding:8px 10px;border:none;background:none;border-radius:6px;font-size:12.5px;font-weight:500;color:#334155;cursor:pointer}.signals-export-menu button:hover{background:#f1f5f9;color:#0f172a}.signals-model-label{display:inline-flex;align-items:center;gap:8px;font-size:13px;color:#475569;font-weight:600}.signals-model-select{font-size:12px;font-weight:600;padding:7px 12px;border-radius:999px;border:1px solid #cbd5e1;background:#fff;color:#0f172a;cursor:pointer;min-width:220px}.signals-model-select:focus{outline:none;border-color:#e67c00;box-shadow:0 0 0 3px #e67c0026}.signals-toolbar{display:flex;align-items:center;gap:12px;flex-wrap:wrap;justify-content:flex-start;padding:12px 14px;background:#fff;border:1px solid #e2e8f0;border-radius:12px;box-shadow:0 1px 2px #0f172a0a}.signals-toolbar-reset{margin-left:auto;white-space:nowrap;font-size:12px;padding:8px 12px}.signals-toolbar-readonly{margin-left:auto;font-size:12px;color:#94a3b8}.signals-toolbar--merged .signals-search{flex:1;min-width:220px}.signals-source-chips{display:flex;gap:4px;flex-wrap:wrap;padding:4px;background:#f1f5f9;border-radius:999px;border:1px solid #e2e8f0}.signals-source-chips .chip{border:1px solid transparent;background:transparent}.signals-source-chips .chip:hover:not(.chip-active){background:#ffffffb3;border-color:transparent;color:#1e293b}.chip{padding:6px 12px;border-radius:999px;border:1px solid #cbd5e1;background:#fff;color:#475569;font-size:12px;font-weight:600;cursor:pointer;transition:background .15s ease,color .15s ease,border-color .15s ease}.chip:hover{border-color:#94a3b8;color:#0f172a}.chip.chip-active{background:#0f172a;color:#fff;border-color:#0f172a}.chip.chip-source-master.chip-active{background:#0ea5e9;border-color:#0ea5e9}.chip.chip-source-sat01.chip-active{background:#16a34a;border-color:#16a34a}.chip.chip-source-sat02.chip-active{background:#ea580c;border-color:#ea580c}.signals-count-pill{white-space:nowrap}.signals-main-layout{display:grid;grid-template-columns:minmax(0,1fr) minmax(440px,1.25fr);gap:18px;flex:1;min-height:0;align-items:stretch}@media (min-width: 1400px){.signals-main-layout{grid-template-columns:minmax(0,1fr) minmax(520px,700px)}}@media (max-width: 1280px){.signals-main-layout{grid-template-columns:minmax(0,1fr) minmax(400px,540px)}}@media (max-width: 1024px){.signals-main-layout{grid-template-columns:1fr}}.signals-list-column{min-width:0;min-height:0;display:flex;flex-direction:column}.signals-list-wrap{flex:1;min-height:0;overflow:auto;border:1px solid #e2e8f0;border-radius:12px;background:#fff;box-shadow:0 1px 2px #0f172a0a}.signals-list-table{width:100%;border-collapse:separate;border-spacing:0;font-size:13px}.signals-list-table thead th{position:sticky;top:0;background:#f8fafc;color:#475569;text-align:left;font-weight:700;font-size:11px;letter-spacing:.06em;text-transform:uppercase;padding:10px 12px;border-bottom:1px solid #e2e8f0;z-index:2}.signals-list-table tbody td{padding:10px 12px;border-bottom:1px solid #f1f5f9;vertical-align:middle}.signals-list-table tbody tr.signal-row{cursor:pointer;transition:background .12s ease}.signals-list-table tbody tr.signal-row:hover{background:#f8fafc}.signals-list-table tbody tr.signal-row-active,.signals-list-table tbody tr.signal-row-active:hover{background:#eff6ff;box-shadow:inset 3px 0 #e67c00}.signals-list-table tbody tr.signal-row-inactive{opacity:.6}.signals-list-table .col-source-first{width:1%;white-space:nowrap;padding-right:8px}.signals-list-table .col-label{min-width:0;max-width:42%}.signals-list-table .col-source,.signals-list-table .col-type,.signals-list-table .col-unit{white-space:nowrap;width:1%}.signals-list-table .col-addr{white-space:nowrap;width:1%;color:#475569}.signals-list-table .col-addr .mono{display:inline-flex;align-items:center;gap:4px;padding:4px 10px;background:linear-gradient(135deg,#eef2ff,#f5f7ff);border:1px solid #c7d2fe;border-radius:6px;color:#4338ca;font-weight:600;font-size:11px;letter-spacing:.02em}.signals-list-table tbody tr.signal-row-active .col-addr .mono{background:#fff;border-color:#818cf8;color:#3730a3;box-shadow:0 1px 2px #6366f126}.signals-list-table .cell-inactive-hint{display:inline-block;margin-top:2px;font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:#94a3b8}.signals-list-table .cell-strong{font-weight:600;color:#0f172a}.signals-list-table .cell-helper{font-family:JetBrains Mono,Consolas,monospace;font-size:11px;color:#64748b}.signals-list-table .mono{font-family:JetBrains Mono,Consolas,monospace;font-size:12px}.signals-list-table .badge{margin-left:0;padding:3px 9px;font-weight:500;font-size:11px;letter-spacing:.01em;text-transform:none;border:1px solid transparent}.signals-list-table .badge+.badge{margin-left:6px}.signals-list-table .badge.badge-source-master{background:#f0f9ff;color:#0369a1;border-color:#e0f2fe}.signals-list-table .badge.badge-source-sat01{background:#f0fdf4;color:#15803d;border-color:#dcfce7}.signals-list-table .badge.badge-source-sat02{background:#fff7ed;color:#c2410c;border-color:#ffedd5}.signals-list-table .badge.badge-analog{background:#eff6ff;color:#1d4ed8;border-color:#dbeafe}.signals-list-table .badge.badge-binary{background:#fefce8;color:#a16207;border-color:#fef9c3}.signals-list-table .badge.badge-counter{background:#f0fdfa;color:#0f766e;border-color:#ccfbf1}.signals-list-table .badge.badge-string{background:#faf5ff;color:#7e22ce;border-color:#f3e8ff}.signals-list-table .badge.badge-binary_output{background:#fef2f2;color:#b91c1c;border-color:#fee2e2}.signals-list-table .badge.badge-analog_output{background:#ecfeff;color:#0e7490;border-color:#cffafe}.signals-empty-cell{padding:40px 16px!important;text-align:center;color:#64748b;font-style:italic}.signals-detail-column{min-width:0;display:flex;flex-direction:column;min-height:0;max-width:100%}.signals-detail-card{display:flex;flex-direction:column;padding:0;background:#f8fafc;border:1px solid #e2e8f0;border-radius:12px;box-shadow:0 1px 3px #0f172a0f;overflow:hidden;flex:1;min-height:0;max-height:100%}.signals-detail-head{flex-shrink:0;display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin:0;padding:16px 18px 14px;background:#fff;border-bottom:1px solid #e2e8f0}.signals-detail-empty{flex:1;margin:0;padding:20px 18px 24px;color:#64748b;line-height:1.5}.signal-detail-tabs{display:flex;gap:4px;padding:14px 20px 0;border-bottom:1px solid #e2e8f0;margin-bottom:18px}.signal-detail-tab{padding:10px 16px;font-size:13px;font-weight:600;color:#64748b;background:transparent;border:none;border-bottom:2px solid transparent;cursor:pointer;transition:color .12s,border-color .12s}.signal-detail-tab:hover{color:#334155}.signal-detail-tab.active{color:#e67c00;border-bottom-color:#e67c00}.signals-detail-form-scroll{flex:1;min-height:0;min-width:0;overflow-x:hidden;overflow-y:auto;padding:16px 18px 20px;-webkit-overflow-scrolling:touch;background:#f8fafc}.signals-detail-title{display:flex;flex-direction:column;gap:4px;min-width:0;flex:1}.signals-detail-title h4{margin:0;color:#0f172a;font-size:15px;line-height:1.3;word-break:break-word}.detail-key{font-family:JetBrains Mono,Consolas,monospace;font-size:11px;color:#64748b;background:#f1f5f9;padding:2px 6px;border-radius:4px;align-self:flex-start}.signals-detail-badges{display:flex;gap:6px;flex-wrap:wrap;flex-shrink:0}.signals-detail-badges .badge{margin-left:0}.signals-detail-form{min-width:0;width:100%;box-sizing:border-box}.signals-detail-form .form-row-2col{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}.signals-detail-form label{min-width:0}.signals-detail-form input,.signals-detail-form select{width:100%;min-width:0;max-width:100%;box-sizing:border-box}.signals-detail-form .device-form-actions{position:sticky;bottom:-16px;margin:8px -18px -20px;padding:12px 18px;background:linear-gradient(180deg,#f8fafc99,#f8fafc 60%);border-top:1px solid #e2e8f0;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:2}.signals-detail-form .device-form-actions .primary-btn{padding:9px 24px;font-size:13px;font-weight:600}.detail-form-wide{display:grid;gap:12px}.detail-form-wide label{display:grid;gap:4px;font-size:12px;font-weight:600;color:#334155}.detail-form-wide input,.detail-form-wide select{padding:8px 12px;border:1px solid #cbd5e1;border-radius:8px;font-size:13px;background:#fff;transition:border-color .15s ease,box-shadow .15s ease}.detail-form-wide input:focus,.detail-form-wide select:focus{outline:none;border-color:#ff8c00;box-shadow:0 0 0 3px #ff8c002e}.detail-form-wide input:disabled,.detail-form-wide select:disabled{background:#f8fafc;color:#475569}.detail-fieldset{border:1px solid #e2e8f0;border-radius:10px;padding:12px 14px;margin:0;background:#fafbfc}.detail-fieldset legend{padding:0 6px;font-size:11px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:#475569}.detail-toggles{background:#f8fafc;border:1px solid #e2e8f0;border-radius:10px;padding:10px 14px}.detail-toggles .checkbox-row{display:flex;align-items:flex-start;gap:10px;font-weight:500;color:#334155}.detail-toggles .checkbox-row span{display:flex;flex-direction:column;gap:2px}.field-hint{margin:6px 2px 0;font-size:11px;font-weight:400;color:#64748b;line-height:1.45;font-style:normal}.field-hint-inline{display:block;margin-top:2px;font-size:11px;font-weight:400;color:#64748b;line-height:1.4}.form-row-2col{display:grid;grid-template-columns:1fr 1fr;gap:10px}.form-row-3col{display:grid;grid-template-columns:1fr 1fr 1fr;gap:10px}@media (max-width: 640px){.form-row-3col{grid-template-columns:1fr}}.badge.badge-alarm{background:#fecaca;color:#991b1b}.badge.badge-inactive{background:#e2e8f0;color:#475569}.live-values-page .values-table th{position:sticky;top:0;background:#f8fafc;z-index:1}.live-values-page .cell-strong{font-weight:600;color:#0f172a}.live-values-page .cell-helper{font-size:11px;color:#64748b;font-family:JetBrains Mono,Consolas,monospace}.live-values-page .cell-value{font-family:JetBrains Mono,Consolas,monospace;font-weight:600;color:#0f172a}.quality{display:inline-block;padding:2px 8px;border-radius:999px;font-size:11px;font-weight:600;text-transform:lowercase;background:#e2e8f0;color:#334155}.quality.quality-good{background:#d1fae5;color:#065f46}.quality.quality-questionable{background:#fef3c7;color:#92400e}.quality.quality-bad,.quality.quality-invalid{background:#fee2e2;color:#991b1b}.quality.quality-pending{background:#f1f5f9;color:#64748b;text-transform:none}.live-values-page .cell-value-pending{color:#94a3b8;font-weight:500}.live-binary-pill{display:inline-flex;align-items:center;gap:6px;padding:3px 10px;border-radius:999px;font-size:11px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;border:1px solid transparent}.live-binary-pill:before{content:"";width:7px;height:7px;border-radius:50%;background:currentColor;box-shadow:0 0 0 2px #fff9}.live-binary-pill--true{background:#dcfce7;color:#15803d;border-color:#86efac}.live-binary-pill--false{background:#fee2e2;color:#b91c1c;border-color:#fca5a5}.live-string-chip{display:inline-block;max-width:100%;padding:3px 10px;border-radius:6px;background:#eef2ff;color:#3730a3;border:1px solid #c7d2fe;font-family:ui-monospace,SFMono-Regular,SF Mono,Menlo,Consolas,monospace;font-size:12px;font-weight:600;letter-spacing:.01em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;vertical-align:middle}.cell-value-empty{color:#94a3b8;font-weight:500}.live-values-refresh{white-space:nowrap;font-size:13px;padding:8px 14px;min-width:124px;text-align:center}.live-values-page .signals-type-tabs{flex-shrink:0;gap:3px;padding:4px;min-height:38px;background:linear-gradient(180deg,#f8fafc,#eef2f7);border-color:#dbe4ef;box-shadow:inset 0 1px #ffffffe6}.live-values-page .signals-type-tab{min-height:28px;padding:4px 10px;font-size:11.5px}.live-values-page .signals-type-tab .stt-count{height:16px;min-width:18px;padding:0 6px;font-size:10px}.live-values-toolbar .searchable-select-trigger{padding:8px 12px;border:1px solid #e2e8f0;border-radius:9px;font-size:13px;background:#fff;color:#334155}.live-values-toolbar .searchable-select.live-filter-select--searchable{min-width:140px;max-width:220px;padding:0;border:0;background:none}.live-values-toolbar .auto-refresh-control{gap:8px;font-size:13px}.values-table .cell-center{text-align:center;vertical-align:middle}.auto-refresh-control{display:inline-flex;align-items:center;gap:8px;margin-left:auto;font-size:13px;color:#475569}.auto-refresh-label{white-space:nowrap}.auto-refresh-select{font-size:13px;padding:6px 10px;border-radius:8px;border:1px solid #cbd5e1;background:#fff;color:#0f172a;cursor:pointer;min-width:92px}.auto-refresh-select:focus{outline:none;border-color:#e67c00;box-shadow:0 0 0 3px #e67c0026}.responsibility-page{flex:1;display:flex;flex-direction:column;min-height:0;padding:0}.responsibility-layout{display:grid;grid-template-columns:300px 1fr;gap:14px;align-items:stretch;flex:1;min-height:0}.responsibility-sidebar{background:#fff;border:1px solid #e2e8f0;border-radius:12px;padding:14px;display:flex;flex-direction:column;gap:10px;overflow-y:auto;min-height:0}.responsibility-sidebar-header{display:flex;align-items:center;justify-content:space-between;gap:8px}.responsibility-sidebar-header h3{margin:0;font-size:15px;color:#0f172a}.responsibility-new-btn{font-size:12px;padding:6px 12px;border-radius:8px}.responsibility-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:6px}.responsibility-list-item{padding:10px 12px;border:1px solid #e2e8f0;border-radius:10px;background:#fff;cursor:pointer;transition:background .12s,border-color .12s,box-shadow .12s;display:flex;flex-direction:column;gap:4px}.responsibility-list-item:hover{background:#f8fafc;border-color:#cbd5e1}.responsibility-list-item.active{background:linear-gradient(180deg,#eff6ff,#dbeafe);border-color:#ff8c00;box-shadow:0 1px 4px #e67c002e}.responsibility-list-item.inactive{opacity:.55}.responsibility-list-top{display:flex;align-items:center;justify-content:space-between;gap:6px}.responsibility-list-name{font-weight:600;font-size:14px;color:#0f172a;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.responsibility-list-code{font-size:11px;color:#64748b;font-family:ui-monospace,SFMono-Regular,monospace}.responsibility-list-stats{display:flex;gap:10px;font-size:12px;color:#475569;font-weight:500}.responsibility-stat{display:inline-flex;align-items:center;gap:4px}.responsibility-stat-icon{font-size:12px}.responsibility-empty-list{padding:16px 8px;text-align:center;color:#94a3b8;font-size:13px}.responsibility-empty-list p{margin:4px 0}.empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;text-align:center;padding:40px 24px;color:#64748b}.empty-state>.material-symbols-outlined{font-size:52px;color:#cbd5e1;margin-bottom:2px}.empty-state h3,.empty-state h4,.empty-state strong{margin:0;color:#334155;font-size:16px;font-weight:700}.empty-state p{margin:0;max-width:340px;font-size:13px;line-height:1.55;color:#94a3b8}.empty-state--compact{padding:24px 12px;gap:6px}.empty-state--compact>.material-symbols-outlined{font-size:40px}.empty-state--compact h3,.empty-state--compact h4,.empty-state--compact strong{font-size:14px}.responsibility-detail{background:#fff;border:1px solid #e2e8f0;border-radius:12px;padding:0;overflow:hidden;display:flex;flex-direction:column;min-height:0}.responsibility-empty-detail{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:60px 32px;text-align:center;flex:1}.responsibility-empty-detail h3{margin:8px 0 4px;color:#334155}.responsibility-empty-icon{font-size:52px;color:#cbd5e1;margin-bottom:4px}.responsibility-empty-detail .helper-text{max-width:360px}.responsibility-detail-header{background:linear-gradient(180deg,#f8fafc,#fff);border-bottom:1px solid #e2e8f0;padding:18px 22px;display:flex;flex-direction:column;gap:12px}.responsibility-detail-titlebar{display:flex;align-items:center;justify-content:space-between;gap:12px}.responsibility-detail-title{display:flex;align-items:center;gap:12px;flex:1;min-width:0}.responsibility-detail-title h2{margin:0;font-size:20px;color:#0f172a;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.responsibility-detail-actions{display:flex;gap:8px;align-items:center}.responsibility-detail-actions .rule-active-switch{margin-left:0;margin-right:4px}.responsibility-pill{display:inline-flex;align-items:center;padding:3px 10px;border-radius:999px;font-size:11px;font-weight:600;letter-spacing:.02em;border:1px solid transparent}.responsibility-pill--on{background:#dcfce7;color:#15803d;border-color:#bbf7d0}.responsibility-pill--off{background:#fef2f2;color:#991b1b;border-color:#fecaca}.responsibility-tabs{display:flex;gap:4px;margin:4px -22px -18px;padding:0 22px;border-bottom:1px solid #e2e8f0;flex-wrap:wrap}.responsibility-tab{display:inline-flex;align-items:center;gap:8px;padding:12px 20px;border:none;background:transparent;border-bottom:2px solid transparent;color:#64748b;font-size:14px;font-weight:500;cursor:pointer;transition:color .15s,border-color .15s,background .15s;margin-bottom:-1px}.responsibility-tab .material-symbols-outlined{font-size:20px}.responsibility-tab:hover:not(.active){color:#334155;background:#f8fafc}.responsibility-tab.active{color:#cc7000;border-bottom-color:#cc7000;font-weight:600}.responsibility-tab-label{white-space:nowrap}.responsibility-tab-count{display:inline-flex;align-items:center;justify-content:center;min-width:22px;height:20px;padding:0 7px;border-radius:999px;background:#e2e8f0;color:#475569;font-size:11px;font-weight:700;margin-left:2px}.responsibility-tab.active .responsibility-tab-count{background:#cc7000;color:#fff}.responsibility-tab-content{flex:1;overflow:hidden;padding:0;min-height:0;display:flex;flex-direction:column}.responsibility-section{padding:22px;flex:1;display:flex;flex-direction:column;min-height:0}.responsibility-section-hint-block{margin:0 0 16px;font-size:13px;flex-shrink:0}.responsibility-detail-fields{display:grid;grid-template-columns:2fr 1fr;gap:16px 18px;align-items:start}.responsibility-field{display:flex;flex-direction:column;gap:6px;font-size:12px;color:#475569}.responsibility-field>span{font-weight:600;color:#475569;letter-spacing:.02em}.responsibility-field input,.responsibility-textarea{font-size:14px;padding:10px 14px;border:1px solid #e2e8f0;border-radius:10px;background:#fff;color:#0f172a;transition:border-color .15s,box-shadow .15s;font-family:inherit}.responsibility-field input:focus,.responsibility-textarea:focus{outline:none;border-color:#6366f1;box-shadow:0 0 0 3px #6366f126}.responsibility-field input:disabled,.responsibility-field--readonly input,.responsibility-textarea:disabled{background:#f8fafc;color:#475569;cursor:not-allowed}.responsibility-textarea{width:100%;resize:vertical;min-height:110px;line-height:1.5}.responsibility-field--wide{grid-column:1 / -1}.responsibility-field--description .responsibility-textarea{min-height:130px}.responsibility-toggle{display:inline-flex;align-items:center;gap:8px;font-size:13px;color:#334155;font-weight:500;white-space:nowrap}.responsibility-toggle input[type=checkbox]{width:16px;height:16px;margin:0}.responsibility-toggle--card{grid-column:1 / -1;align-items:flex-start;gap:14px;padding:14px 18px;border:1px solid #e2e8f0;border-radius:12px;background:linear-gradient(135deg,#f8fafc,#fff);white-space:normal;cursor:pointer;transition:border-color .15s,box-shadow .15s,background .15s}.responsibility-toggle--card:hover{border-color:#c7d2fe;box-shadow:0 2px 8px #6366f114}.responsibility-toggle--card:has(input:checked){border-color:#a7f3d0;background:linear-gradient(135deg,#ecfdf5,#f0fdf4);box-shadow:0 1px 3px #10b9811a}.responsibility-toggle--card input[type=checkbox]{width:18px;height:18px;margin-top:2px;accent-color:#10b981;cursor:pointer}.responsibility-toggle-text{display:flex;flex-direction:column;gap:2px}.responsibility-toggle-title{font-size:14px;font-weight:600;color:#0f172a}.responsibility-toggle-hint{font-size:12px;color:#64748b;font-weight:400;line-height:1.4}.responsibility-toggle--card:has(input:checked) .responsibility-toggle-title{color:#047857}.responsibility-section-title{display:flex;align-items:center;gap:8px;margin-bottom:12px;flex-wrap:wrap}.responsibility-section-title h4{margin:0;font-size:15px;color:#0f172a}.responsibility-section-icon{font-size:18px}.responsibility-section-count{display:inline-flex;align-items:center;justify-content:center;min-width:24px;height:22px;padding:0 8px;border-radius:999px;background:#cc7000;color:#fff;font-size:11px;font-weight:700}.responsibility-section-hint{margin-left:auto;font-size:12px}.responsibility-transfer-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px;flex:1;min-height:0}.transfer-pane{border-radius:14px;border:1px solid #e2e8f0;background:#fff;display:flex;flex-direction:column;gap:0;padding:0;overflow:hidden;min-height:0;box-shadow:0 1px 2px #0f172a0a;transition:box-shadow .15s,border-color .15s}.transfer-pane:hover{box-shadow:0 4px 14px #0f172a0f}.transfer-pane--source{background:linear-gradient(180deg,#f8fafc,#fff 60%);border-color:#e2e8f0}.transfer-pane--target{background:linear-gradient(180deg,#eef2ff,#f5f7ff 60%);border-color:#c7d2fe}.transfer-pane-titlebar{display:flex;align-items:center;justify-content:space-between;padding:12px 14px;border-bottom:1px solid #e2e8f0;background:#fff;flex-shrink:0}.transfer-pane--target .transfer-pane-titlebar{background:linear-gradient(90deg,#eef2ff,#e0e7ff);border-bottom-color:#c7d2fe}.transfer-pane-title{font-size:11px;font-weight:700;color:#64748b;text-transform:uppercase;letter-spacing:.08em}.transfer-pane--target .transfer-pane-title{color:#4338ca}.transfer-pane-count{display:inline-flex;align-items:center;justify-content:center;min-width:24px;height:22px;padding:0 8px;border-radius:999px;background:#f1f5f9;color:#475569;font-size:11px;font-weight:700;border:1px solid #e2e8f0}.transfer-pane-count--target{background:linear-gradient(135deg,#6366f1,#4f46e5);color:#fff;border-color:transparent;box-shadow:0 1px 3px #4f46e54d}.transfer-search{margin:12px 14px 0;font-size:13px;padding:9px 14px;border-radius:10px;border:1px solid #e2e8f0;background:#fff;flex-shrink:0;transition:border-color .15s,box-shadow .15s}.transfer-search:focus{outline:none;border-color:#6366f1;box-shadow:0 0 0 3px #6366f126}.transfer-list{list-style:none;margin:0;padding:10px 14px 14px;overflow-y:auto;display:flex;flex-direction:column;gap:6px;flex:1;min-height:0}.transfer-list::-webkit-scrollbar{width:8px}.transfer-list::-webkit-scrollbar-track{background:transparent}.transfer-list::-webkit-scrollbar-thumb{background:#e2e8f0;border-radius:999px}.transfer-list::-webkit-scrollbar-thumb:hover{background:#cbd5e1}.transfer-item{display:flex;align-items:center;gap:10px;padding:10px 12px;background:#fff;border:1px solid #e2e8f0;border-radius:10px;font-size:13px;transition:transform .12s,border-color .12s,box-shadow .12s}.transfer-item:hover{border-color:#c7d2fe;box-shadow:0 2px 8px #6366f114;transform:translateY(-1px)}.transfer-item-in{background:#fff;border-color:#c7d2fe}.transfer-item-in:hover{border-color:#818cf8;box-shadow:0 2px 10px #6366f126}.transfer-item-avatar{flex-shrink:0;width:32px;height:32px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;background:linear-gradient(135deg,#e0e7ff,#ede9fe);color:#4f46e5;font-weight:700;font-size:13px;border:1px solid #e0e7ff}.transfer-item-avatar--in{background:linear-gradient(135deg,#6366f1,#8b5cf6);color:#fff;border-color:transparent;box-shadow:0 1px 3px #6366f14d}.transfer-item-icon{flex-shrink:0;width:32px;height:32px;border-radius:9px;display:inline-flex;align-items:center;justify-content:center;background:linear-gradient(135deg,#f1f5f9,#e2e8f0);color:#475569;font-size:16px}.transfer-item-text{flex:1;display:flex;flex-direction:column;min-width:0}.transfer-item-text strong{font-size:13px;color:#0f172a;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:600}.transfer-item-text span{font-size:11px;color:#64748b;font-family:ui-monospace,SFMono-Regular,monospace;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.transfer-empty{padding:28px 16px;text-align:center;color:#94a3b8;font-size:13px;font-style:italic;background:#fff6;border:1px dashed #e2e8f0;border-radius:10px;margin-top:4px}.icon-btn-add{background:linear-gradient(135deg,#ecfdf5,#d1fae5);border-color:#a7f3d0;color:#047857;font-weight:700;transition:transform .12s,box-shadow .12s,background .12s}.icon-btn-add:hover:not(:disabled){background:linear-gradient(135deg,#10b981,#059669);border-color:#059669;color:#fff;box-shadow:0 2px 8px #10b98159;transform:translateY(-1px)}.icon-btn-remove{background:linear-gradient(135deg,#fef2f2,#fee2e2);border-color:#fecaca;color:#b91c1c;font-weight:700;font-size:16px;transition:transform .12s,box-shadow .12s,background .12s}.icon-btn-remove:hover:not(:disabled){background:linear-gradient(135deg,#ef4444,#dc2626);border-color:#dc2626;color:#fff;box-shadow:0 2px 8px #ef444459;transform:translateY(-1px)}@media (max-width: 1100px){.responsibility-detail-fields{grid-template-columns:1fr 1fr}}@media (max-width: 800px){.responsibility-layout,.responsibility-transfer-grid,.responsibility-detail-fields{grid-template-columns:1fr}}.table-pagination{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:10px 16px;border-top:1px solid #e2e8f0;background:#f8fafc;flex-wrap:wrap;flex-shrink:0}.table-pagination-info{font-size:12px;color:#475569;font-weight:500}.table-pagination-controls{display:flex;align-items:center;gap:14px;flex-wrap:wrap}.table-pagination-size{display:inline-flex;align-items:center;gap:8px;font-size:12px;color:#475569;font-weight:500}.table-pagination-size select{padding:6px 10px;border:1px solid #e2e8f0;border-radius:8px;background:#fff;font-size:12px;color:#0f172a;cursor:pointer}.table-pagination-size select:focus{outline:none;border-color:#6366f1;box-shadow:0 0 0 3px #6366f126}.table-pagination-buttons{display:inline-flex;align-items:center;gap:4px}.pagination-btn{min-width:30px;height:30px;padding:0 8px;border:1px solid #e2e8f0;background:#fff;color:#475569;border-radius:7px;font-size:13px;font-weight:600;cursor:pointer;transition:background .12s,border-color .12s,color .12s}.pagination-btn:hover:not(:disabled):not(.pagination-btn-active){border-color:#c7d2fe;background:#eef2ff;color:#4338ca}.pagination-btn:disabled{opacity:.4;cursor:not-allowed}.pagination-btn-active{background:linear-gradient(135deg,#6366f1,#4f46e5);border-color:#4f46e5;color:#fff;box-shadow:0 1px 3px #4f46e54d}.pagination-gap{padding:0 4px;color:#94a3b8;font-size:13px;-webkit-user-select:none;user-select:none}.alarm-rules-modern{display:flex;flex-direction:column;gap:14px;flex:1;min-height:0}.rules-toolbar{display:flex;align-items:center;gap:12px;flex-wrap:wrap;padding:12px 14px;background:#fff;border:1px solid #e2e8f0;border-radius:12px;box-shadow:0 1px 2px #0f172a0a;flex-shrink:0}.rules-search,.users-search-input,.signals-search,.outbound-search-input,.api-keys-search-input,.sessions-search-input{flex:1;min-width:220px;padding:9px 14px;border:1px solid #e2e8f0;border-radius:10px;font-size:13px;background:#f8fafc;transition:border-color .15s,box-shadow .15s,background .15s}.rules-search:focus,.users-search-input:focus,.signals-search:focus,.outbound-search-input:focus,.api-keys-search-input:focus,.sessions-search-input:focus{outline:none;border-color:#6366f1;background:#fff;box-shadow:0 0 0 3px #6366f126}.rules-filter-group,.users-filter-group,.live-filter-group,.outbound-filter-group,.api-keys-filter-group,.sessions-filter-group{display:inline-flex;align-items:center;flex-wrap:wrap;gap:8px}.rules-filter-group select,.users-filter-group select,.outbound-filter-group select,.api-keys-filter-group select,.sessions-filter-group select,.live-values-toolbar .live-filter-select,.live-values-toolbar .auto-refresh-select{padding:8px 12px;border:1px solid #e2e8f0;border-radius:9px;font-size:13px;background:#fff;color:#334155;cursor:pointer}.rules-filter-group select:focus,.users-filter-group select:focus,.outbound-filter-group select:focus,.api-keys-filter-group select:focus,.sessions-filter-group select:focus,.live-values-toolbar .live-filter-select:focus,.live-values-toolbar .auto-refresh-select:focus{outline:none;border-color:#6366f1;box-shadow:0 0 0 3px #6366f11f}.rules-count-pill,.users-count-pill,.signals-count-pill,.outbound-count-pill,.api-keys-count-pill,.sessions-count-pill{display:inline-flex;align-items:center;padding:5px 12px;border-radius:999px;background:#eef2ff;color:#4338ca;font-size:12px;font-weight:700;border:1px solid #e0e7ff}.rules-new-btn,.users-new-btn,.outbound-new-btn,.api-keys-new-btn{margin-left:auto;font-weight:600;padding:9px 18px}.outbound-toolbar{margin-bottom:12px}.outbound-toolbar-title{margin:0;font-size:14px;font-weight:700;color:#0f172a;white-space:nowrap}.rules-readonly-hint{margin:0;padding:10px 14px;background:#fef3c7;border:1px solid #fde68a;color:#92400e;border-radius:10px;font-size:13px}.rules-layout{display:grid;grid-template-columns:320px 1fr;gap:14px;flex:1;min-height:0}@media (max-width: 1100px){.rules-layout{grid-template-columns:280px 1fr}}@media (max-width: 900px){.rules-layout{grid-template-columns:1fr}}.rules-list-pane{background:#fff;border:1px solid #e2e8f0;border-radius:12px;overflow-y:auto;padding:10px;min-height:0;box-shadow:0 1px 2px #0f172a0a}.rules-empty{padding:32px 12px;text-align:center;color:#94a3b8;font-size:13px;font-style:italic}.rules-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px}.rule-card{position:relative;padding:12px 14px;border:1px solid #e2e8f0;border-radius:10px;background:#fff;cursor:pointer;transition:border-color .15s,box-shadow .15s,transform .12s;display:flex;flex-direction:column;gap:4px}.rule-card:hover{border-color:#c7d2fe;box-shadow:0 2px 8px #6366f114;transform:translateY(-1px)}.rule-card-active{border-color:#6366f1;background:linear-gradient(135deg,#eef2ff,#f5f7ff);box-shadow:0 2px 12px #6366f12e}.rule-card-active:hover{border-color:#4f46e5}.rule-card-inactive{opacity:.6}.rule-card-top{display:flex;align-items:center;justify-content:space-between;gap:8px}.rule-status-dot{width:10px;height:10px;border-radius:50%;flex-shrink:0}.rule-status-active{background:#10b981;box-shadow:0 0 0 3px #10b9812e}.rule-status-inactive{background:#cbd5e1}.rule-card-name{font-weight:600;font-size:14px;color:#0f172a;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.rule-card-signal{font-size:12px;color:#64748b;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.rule-card-condition code{display:inline-block;padding:3px 8px;background:#f1f5f9;border-radius:6px;font-family:JetBrains Mono,Consolas,monospace;font-size:11px;color:#475569;margin-top:4px}.rule-card-active .rule-card-condition code{background:#fff;color:#4338ca;border:1px solid #c7d2fe}.rule-level-badge{display:inline-flex;align-items:center;padding:3px 10px;border-radius:999px;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.05em}.rule-level-badge.level-info{background:#dbeafe;color:#1d4ed8;border:1px solid #bfdbfe}.rule-level-badge.level-warning{background:#fff7ed;color:#c2410c;border:1px solid #fed7aa}.rule-level-badge.level-critical{background:#fee2e2;color:#dc2626;border:1px solid #fecaca}.rules-detail-pane{background:#fff;border:1px solid #e2e8f0;border-radius:12px;overflow:hidden;display:flex;flex-direction:column;min-height:0;box-shadow:0 1px 2px #0f172a0a}.rules-detail-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:60px 32px;text-align:center;flex:1}.rules-detail-empty-icon{font-size:48px;margin-bottom:12px;opacity:.5}.rules-detail-empty h3{margin:0 0 4px;color:#334155;font-size:16px}.rules-detail-empty .helper-text{max-width:380px}.rule-form{display:flex;flex-direction:column;flex:1;min-height:0}.rule-form-header{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:16px 22px;background:linear-gradient(180deg,#f8fafc,#fff);border-bottom:1px solid #e2e8f0;flex-wrap:wrap;flex-shrink:0}.rule-form-titlebar{display:flex;align-items:center;gap:12px;flex:1;min-width:0}.rule-form-titlebar h3{margin:0;font-size:18px;color:#0f172a;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.rule-form-actions{display:inline-flex;gap:8px;flex-shrink:0}.rule-preview{display:flex;align-items:center;gap:12px;padding:12px 22px;background:linear-gradient(135deg,#eef2ff,#f5f7ff);border-bottom:1px solid #e0e7ff;flex-shrink:0}.rule-preview-label{font-size:11px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:#4338ca;padding:3px 10px;background:#fff;border-radius:999px;border:1px solid #c7d2fe;flex-shrink:0}.rule-preview-text{font-size:14px;color:#1e293b;font-weight:500;line-height:1.4}.rule-form-grid{flex:1;overflow-y:auto;padding:12px 18px 14px;display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,1fr);gap:10px 14px;min-height:0;align-content:start}@media (max-width: 1100px){.rule-form-grid{grid-template-columns:1fr}}.rule-fieldset{border:1px solid #e2e8f0;border-radius:12px;padding:10px 14px 12px;margin:0;background:#fff;display:flex;flex-direction:column;gap:8px;transition:border-color .15s,opacity .15s}.rule-fieldset:disabled{background:#f8fafc;opacity:.85}.rule-fieldset legend{padding:2px 10px;font-size:11px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:#4f46e5;background:#eef2ff;border:1px solid #c7d2fe;border-radius:999px}.rule-grid-2{display:grid;grid-template-columns:1fr 1fr;gap:12px}.rule-field{display:flex;flex-direction:column;gap:6px;font-size:12px;color:#475569;font-weight:500}.rule-field>span{font-weight:600;color:#475569;letter-spacing:.02em}.rule-field input,.rule-field select,.rule-textarea{padding:9px 12px;border:1px solid #e2e8f0;border-radius:9px;font-size:13px;color:#0f172a;background:#fff;font-family:inherit;transition:border-color .15s,box-shadow .15s}.rule-field input:focus,.rule-field select:focus,.rule-textarea:focus{outline:none;border-color:#6366f1;box-shadow:0 0 0 3px #6366f126}.rule-field input:disabled,.rule-field select:disabled,.rule-textarea:disabled{background:#f8fafc;color:#475569;cursor:not-allowed}.rule-textarea{width:100%;resize:vertical;min-height:60px;line-height:1.45}.rule-hint{font-size:11px;color:#64748b;font-weight:400;line-height:1.4;margin:2px 0 0}.rule-mode-toggle{display:inline-flex;gap:4px;padding:4px;background:#f1f5f9;border:1px solid #e2e8f0;border-radius:10px;margin-bottom:12px}.rule-mode-btn{display:inline-flex;align-items:center;gap:6px;padding:7px 14px;border:none;background:transparent;border-radius:7px;font-size:13px;font-weight:600;color:#475569;cursor:pointer;transition:background .15s,color .15s}.rule-mode-btn .material-symbols-outlined{font-size:16px}.rule-mode-btn:hover:not(:disabled):not(.is-active){color:#1e293b;background:#e2e8f0}.rule-mode-btn.is-active{background:#4f46e5;color:#fff;box-shadow:0 1px 3px #4f46e54d}.rule-mode-btn--compact{padding:5px 14px;font-size:12px;letter-spacing:.04em}.rule-mode-btn:disabled{opacity:.55;cursor:not-allowed}.rule-composite-editor{display:flex;flex-direction:column;gap:12px}.rule-composite-logic{display:flex;align-items:center;flex-wrap:wrap;gap:10px}.rule-composite-logic-label{font-size:12px;font-weight:600;color:#475569;text-transform:uppercase;letter-spacing:.04em}.rule-composite-logic-toggle{display:inline-flex;gap:4px;padding:3px;background:#f1f5f9;border:1px solid #e2e8f0;border-radius:8px}.rule-composite-logic-hint{margin:0;flex:1 1 200px}.rule-composite-terms{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px}.rule-composite-term{display:flex;flex-direction:column;gap:6px;padding:10px 12px;background:#fff;border:1px solid #e2e8f0;border-left:3px solid #4f46e5;border-radius:9px}.rule-composite-term-head{display:flex;align-items:center;gap:8px;font-size:12px}.rule-composite-term-idx{font-weight:700;color:#4338ca;font-variant-numeric:tabular-nums}.rule-composite-term-joint{font-size:10px;font-weight:700;letter-spacing:.08em;background:#eef2ff;color:#4338ca;padding:2px 8px;border-radius:999px}.rule-composite-term-spacer{flex:1}.rule-composite-kind-toggle{display:inline-flex;gap:3px;padding:2px;background:#f1f5f9;border:1px solid #e2e8f0;border-radius:7px}.rule-formula-editor{display:flex;flex-direction:column;gap:8px;margin-top:6px;padding:10px 12px;background:#f8fafc;border:1px dashed #c7d2fe;border-radius:8px}.rule-formula-expr input{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Courier New,monospace;font-size:14px;letter-spacing:.01em}.rule-formula-help{margin:0;font-size:11px;color:#6366f1}.rule-formula-vars{display:flex;flex-direction:column;gap:6px}.rule-formula-vars-head{display:flex;align-items:center;justify-content:space-between;font-size:12px;color:#475569}.rule-formula-vars-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:6px}.rule-formula-var{display:grid;grid-template-columns:80px 1fr auto;gap:6px;align-items:end}.rule-scope{display:flex;flex-direction:column;gap:8px}.rule-scope-head{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.rule-scope-head strong{font-size:13px;color:#1e293b}.rule-scope-badge{display:inline-flex;align-items:center;font-size:11px;font-weight:600;padding:3px 9px;border-radius:999px;background:#eef2ff;color:#4338ca;letter-spacing:.02em}.rule-scope-badge--all{background:#ecfdf5;color:#047857}.rule-scope-chips{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:6px}.rule-scope-chip{display:inline-flex;align-items:center;gap:4px;padding:4px 4px 4px 10px;background:#f8fafc;border:1px solid #cbd5e1;border-radius:999px;font-size:12px;color:#1e293b}.rule-scope-chip .material-symbols-outlined{font-size:14px;color:#6366f1}.rule-scope-chip-code{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Courier New,monospace;font-weight:600}.rule-scope-chip-rm{display:inline-flex;align-items:center;justify-content:center;width:20px;height:20px;border:none;background:transparent;color:#64748b;border-radius:50%;cursor:pointer;padding:0}.rule-scope-chip-rm:hover{background:#fee2e2;color:#b91c1c}.rule-scope-chip-rm .material-symbols-outlined{font-size:14px;color:inherit}.rule-scope-actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.rule-scope-clear{background:transparent;border:1px solid #e2e8f0;color:#475569;font-size:12px;padding:6px 10px;border-radius:8px;cursor:pointer}.rule-scope-clear:hover:not(:disabled){background:#f1f5f9;border-color:#cbd5e1}.rule-scope-clear:disabled{opacity:.5;cursor:not-allowed}.rule-device-picker{width:min(560px,92vw);max-height:80vh;display:flex;flex-direction:column;gap:12px}.rule-device-picker-search{display:flex;align-items:center;gap:6px;padding:8px 10px;border:1px solid #e2e8f0;border-radius:8px;background:#fff}.rule-device-picker-search .material-symbols-outlined{font-size:18px;color:#94a3b8}.rule-device-picker-search input{flex:1;border:none;outline:none;background:transparent;font-size:13px}.rule-device-picker-bulk{display:flex;align-items:center;gap:6px;flex-wrap:wrap}.rule-device-picker-list{list-style:none;margin:0;padding:4px 0;overflow-y:auto;max-height:50vh;border:1px solid #e2e8f0;border-radius:9px;background:#fff}.rule-device-picker-row{display:flex;align-items:center;gap:10px;padding:8px 12px;cursor:pointer;border-bottom:1px solid #f1f5f9}.rule-device-picker-row:last-child{border-bottom:none}.rule-device-picker-row:hover{background:#f8fafc}.rule-device-picker-row.is-selected{background:#eef2ff}.rule-device-picker-row input[type=checkbox]{width:16px;height:16px;flex-shrink:0;pointer-events:none}.rule-device-picker-row-main{display:flex;flex-direction:column;gap:1px;min-width:0}.rule-device-picker-row-main strong{font-size:13px;color:#1e293b;line-height:1.2}.rule-device-picker-row-main small{font-size:11px;color:#64748b;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Courier New,monospace}.rule-device-picker-empty{padding:24px 16px;text-align:center;color:#94a3b8;font-size:13px}.rule-formula-var-name input{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Courier New,monospace;font-weight:600;color:#4338ca}.rule-formula-var-rm{align-self:end;margin-bottom:2px}.rule-formula-var-add{align-self:flex-start;padding:6px 10px;font-size:12px}@media (max-width: 640px){.rule-formula-var{grid-template-columns:1fr 1fr}}.rule-composite-term-hint{margin-top:4px;font-style:italic;color:#4338ca}.rule-composite-term-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:8px;align-items:end}.rule-composite-field-signal{grid-column:span 2;min-width:200px}.rule-composite-actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.rule-composite-actions .rule-hint{margin:0}.rule-composite-editor{gap:14px}.rule-composite-logic{padding:10px 12px;border:1px solid #e2e8f0;border-radius:12px;background:#f8fafc}.rule-composite-logic-label{color:#334155}.rule-composite-logic-toggle{border-radius:999px}.rule-composite-terms{gap:12px}.rule-composite-term{position:relative;gap:12px;padding:14px;border-left:0;border-radius:14px;background:linear-gradient(180deg,#fff,#fbfdff);box-shadow:0 1px 2px #0f172a0a}.rule-composite-term:before{content:"";position:absolute;left:0;top:14px;bottom:14px;width:3px;border-radius:999px;background:#4f46e5}.rule-composite-term-head{gap:10px;padding-bottom:10px;border-bottom:1px solid #f1f5f9}.rule-composite-term-idx{min-width:30px;height:24px;display:inline-flex;align-items:center;justify-content:center;border-radius:999px;background:#eef2ff;color:#4338ca}.rule-composite-term-joint{background:#ecfdf5;color:#047857;border:1px solid #bbf7d0}.rule-composite-kind-toggle{border-radius:999px;background:#eef2ff;border-color:#dbeafe}.rule-composite-term-row{grid-template-columns:minmax(260px,2fr) minmax(180px,1fr) minmax(140px,.8fr);gap:10px}.rule-composite-term .icon-btn-danger{width:30px;height:30px;border:1px solid #fecaca;border-radius:8px;background:#fff;color:#dc2626}.rule-composite-term .icon-btn-danger:hover:not(:disabled){background:#fef2f2}.rule-composite-actions{padding-top:2px}@media (max-width: 980px){.rule-composite-term-row{grid-template-columns:1fr}}.rules-v3-row-kind{display:inline-flex;align-items:center;gap:3px;font-size:10px;font-weight:700;letter-spacing:.05em;background:#eef2ff;color:#4338ca;padding:2px 8px;border-radius:999px;text-transform:uppercase}.rules-v3-row-kind .material-symbols-outlined{font-size:12px}.rule-level-picker{display:inline-flex;gap:6px;padding:4px;background:#f1f5f9;border-radius:10px;border:1px solid #e2e8f0}.rule-level-option{flex:1;padding:6px 10px;border:1px solid transparent;background:transparent;border-radius:7px;font-size:12px;font-weight:600;color:#64748b;cursor:pointer;transition:background .12s,color .12s,border-color .12s}.rule-level-option:hover:not(:disabled):not(.rule-level-option-active){background:#fff9;color:#334155}.rule-level-option:disabled{cursor:not-allowed}.rule-level-option.level-info.rule-level-option-active{background:#dbeafe;color:#a85800;border-color:#93c5fd}.rule-level-option.level-warning.rule-level-option-active{background:#fef3c7;color:#92400e;border-color:#fcd34d}.rule-level-option.level-critical.rule-level-option-active{background:#fee2e2;color:#991b1b;border-color:#fca5a5}.rule-toggle-card{display:flex;align-items:flex-start;gap:12px;padding:12px 14px;border:1px solid #e2e8f0;border-radius:10px;background:linear-gradient(135deg,#f8fafc,#fff);cursor:pointer;transition:border-color .15s,background .15s,box-shadow .15s}.rule-toggle-card:hover{border-color:#cbd5e1}.rule-toggle-card-on{border-color:#a7f3d0;background:linear-gradient(135deg,#ecfdf5,#f0fdf4);box-shadow:0 1px 3px #10b9811f}.rule-toggle-card input[type=checkbox]{width:18px;height:18px;margin-top:2px;accent-color:#10b981;cursor:pointer}.rule-toggle-text{display:flex;flex-direction:column;gap:2px}.rule-toggle-title{font-size:14px;font-weight:600;color:#0f172a}.rule-toggle-card-on .rule-toggle-title{color:#047857}.rule-toggle-hint{font-size:12px;color:#64748b;font-weight:400;line-height:1.4}.rule-form-error{margin:0 22px 18px;padding:10px 14px;background:#fef2f2;border:1px solid #fecaca;border-radius:10px}.panel-loading-overlay{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;gap:10px;font-size:13px;font-weight:600;color:#4338ca;background:#ffffffc7;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);border-radius:12px;z-index:30;pointer-events:all}.panel-loading-spinner{width:22px;height:22px;border:3px solid #e0e7ff;border-top-color:#6366f1;border-radius:50%;animation:panel-spin .7s linear infinite}@keyframes panel-spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.responsibility-detail{position:relative}.global-loading-overlay{position:fixed;top:0;right:0;bottom:0;left:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:14px;background:#0f172a59;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);z-index:9999;pointer-events:all}.global-loading-overlay .panel-loading-spinner{width:44px;height:44px;border-width:4px;border-color:#ffffff59;border-top-color:#fff}.global-loading-overlay .global-loading-text{color:#fff;font-size:14px;font-weight:600;letter-spacing:.02em;text-shadow:0 1px 2px rgba(0,0,0,.4)}.alarm-rules-v3{display:flex;flex-direction:column;gap:12px;flex:1;min-height:0}.rules-v3-toolbar,.users-toolbar,.live-values-toolbar,.signals-toolbar--merged,.outbound-toolbar,.api-keys-toolbar,.sessions-toolbar{display:flex;align-items:center;gap:12px;flex-wrap:wrap;padding:10px 14px;background:#fff;border:1px solid #e2e8f0;border-radius:12px;box-shadow:0 1px 2px #0f172a0a}.rules-v3-list-wrap{flex:1;min-height:0;overflow:auto;background:#fff;border:1px solid #e2e8f0;border-radius:12px;box-shadow:0 1px 2px #0f172a0a}.rules-v3-table,.api-keys-table,.sessions-table{width:100%;border-collapse:separate;border-spacing:0;min-width:980px}.rules-v3-table th,.api-keys-table th,.sessions-table th{position:sticky;top:0;z-index:1;padding:12px 16px;background:#f8fafc;border-bottom:1px solid #e2e8f0;color:#334155;font-size:11px;font-weight:700;letter-spacing:.03em;text-align:left;text-transform:uppercase;white-space:nowrap}.rules-v3-table td,.api-keys-table td,.sessions-table td{padding:13px 16px;border-bottom:1px solid #eef2f7;color:#0f172a;font-size:13px;vertical-align:middle}.rules-v3-table tbody tr:hover,.api-keys-table tbody tr:hover,.sessions-table tbody tr:hover{background:#f8fafc}.rules-v3-table tbody tr:last-child td,.api-keys-table tbody tr:last-child td,.sessions-table tbody tr:last-child td{border-bottom:0}.rules-v3-status-cell{width:130px}.rules-v3-status-wrap{display:inline-flex;align-items:center;gap:8px}.rules-v3-status-wrap .rule-active-switch{margin-left:0}.rules-v3-status-text{font-size:12px;font-weight:600}.rules-v3-status-text.active{color:#15803d}.rules-v3-status-text.inactive{color:#64748b}.rules-v3-check{width:24px;height:24px;display:inline-flex;align-items:center;justify-content:center;border-radius:999px;font-size:14px;font-weight:800}.rules-v3-check.on{background:#dcfce7;color:#15803d}.rules-v3-check.off{background:#f1f5f9;color:#94a3b8}.rules-v3-condition-cell{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.rules-v3-condition-cell strong{color:#0f172a;font-size:12.5px;font-weight:700}.rules-v3-name-cell{display:flex;flex-direction:column;gap:3px;min-width:220px}.rules-v3-name-cell strong{font-size:13.5px;font-weight:700;color:#0f172a}.rules-v3-name-cell small{color:#64748b;font-size:12px}.rules-v3-id-pill{width:fit-content;padding:2px 6px;border-radius:6px;background:#f1f5f9;color:#64748b;font-size:10.5px;font-weight:600}.rules-v3-notify-cell,.rules-v3-table-actions{display:inline-flex;align-items:center;gap:6px;flex-wrap:wrap}.rules-v3-notify-pill{display:inline-flex;align-items:center;padding:3px 8px;border-radius:6px;background:#eff6ff;border:1px solid #bfdbfe;color:#2563eb;font-size:11px;font-weight:700}.rules-v3-muted{color:#94a3b8}.rules-v3-icon-btn{width:32px;height:32px;display:inline-flex;align-items:center;justify-content:center;border:1px solid #dbeafe;border-radius:8px;background:#eff6ff;color:#2563eb;cursor:pointer;transition:background .15s ease,border-color .15s ease,color .15s ease}.rules-v3-icon-btn:hover{background:#dbeafe;border-color:#bfdbfe}.rules-v3-icon-btn .material-symbols-outlined{font-size:18px}.rules-v3-delete-btn{background:#fff1f2;border-color:#fecdd3;color:#e11d48}.rules-v3-delete-btn:hover{background:#ffe4e6;border-color:#fda4af}.rules-v3-list{list-style:none;margin:0;padding:8px;display:flex;flex-direction:column;gap:8px}.rules-v3-row{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:12px 14px;background:#fff;border:1px solid #e2e8f0;border-radius:10px;transition:border-color .12s,box-shadow .12s}.rules-v3-row:hover{border-color:#c7d2fe;box-shadow:0 2px 6px #6366f114}.rules-v3-row-inactive{opacity:.65}.rules-v3-row-main{flex:1;min-width:0;display:flex;flex-direction:column;gap:4px}.rules-v3-row-headline{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.rules-v3-row-headline strong{font-size:14px;font-weight:600;color:#0f172a}.rules-v3-row-flag{display:inline-flex;align-items:center;padding:2px 8px;background:#f1f5f9;color:#64748b;border:1px solid #e2e8f0;border-radius:999px;font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.05em}.rules-v3-row-meta{display:flex;align-items:center;gap:12px;flex-wrap:wrap;font-size:12px;color:#64748b}.rules-v3-row-signal{display:inline-flex;align-items:center;gap:6px;color:#334155;font-weight:500}.rules-v3-row-condition{font-family:ui-monospace,SFMono-Regular,monospace;font-size:11px;background:#eef2ff;border:1px solid #c7d2fe;color:#4338ca;padding:2px 8px;border-radius:6px}.rules-v3-row-scope{font-size:11px;color:#64748b}.rules-v3-row-actions{display:inline-flex;align-items:center;gap:8px;flex-shrink:0}.rules-v3-row-actions .rule-active-switch{margin-left:0}.rules-v3-empty,.api-keys-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:60px 32px;text-align:center;gap:8px}.rules-v3-empty-icon,.api-keys-empty-icon{font-size:56px!important;color:#cbd5e1}.rules-v3-empty h3,.api-keys-empty h3{margin:0;font-size:18px;color:#334155}.rules-v3-empty p,.api-keys-empty p{margin:2px 0 0;max-width:340px;font-size:13px;line-height:1.55;color:#94a3b8}.rules-v3-form-shell{flex:1;display:flex;flex-direction:column;min-height:0;background:#fff;border:1px solid #e2e8f0;border-radius:12px;overflow:hidden;box-shadow:0 1px 2px #0f172a0a}.rules-v3-form-header{display:flex;align-items:center;gap:14px;padding:14px 18px;background:linear-gradient(180deg,#f8fafc,#fff);border-bottom:1px solid #e2e8f0;flex-shrink:0}.rules-v3-form-header h3{margin:0;flex:1;font-size:18px;color:#0f172a;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.rules-v3-back{padding:6px 14px;font-size:13px;font-weight:600}.rules-v3-form-header-actions{display:inline-flex;align-items:center;gap:8px}.rules-v3-form{display:flex;flex-direction:column;flex:1;min-height:0}.rules-v3-form-grid{display:grid;grid-template-columns:360px minmax(0,1fr);gap:14px;padding:14px 18px;flex:1;min-height:0}@media (max-width: 1100px){.rules-v3-form-grid{grid-template-columns:300px minmax(0,1fr)}}@media (max-width: 880px){.rules-v3-form-grid{grid-template-columns:1fr}}.rules-v3-section-title{margin:0 0 8px;font-size:11px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:#64748b}.rules-v3-picker{display:flex;flex-direction:column;gap:8px;min-height:0}.rules-v3-properties{display:flex;flex-direction:column;min-height:0}.rules-v3-properties-body{flex:1;overflow-y:auto;display:flex;flex-direction:column;align-content:start;gap:12px;padding-right:4px}.rules-v3-properties-empty{display:flex;align-items:center;justify-content:center;flex:1;border:1px dashed #cbd5e1;border-radius:12px;background:#f8fafc;padding:32px}.rules-v3-form-footer{display:flex;justify-content:flex-end;gap:8px;padding:12px 18px;border-top:1px solid #e2e8f0;background:#f8fafc;flex-shrink:0}.rules-v3-wizard-steps{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:8px;padding:12px 18px 0}.rules-v3-wizard-step{display:flex;align-items:center;gap:10px;min-width:0;padding:10px 12px;border:1px solid #e2e8f0;border-radius:12px;background:#fff;color:#64748b;text-align:left;cursor:pointer;transition:border-color .15s ease,background .15s ease,box-shadow .15s ease}.rules-v3-wizard-step:disabled{cursor:not-allowed;opacity:.55}.rules-v3-wizard-step--active{border-color:#c7d2fe;background:#eef2ff;color:#312e81;box-shadow:0 2px 10px #4f46e51f}.rules-v3-wizard-step--done{border-color:#bbf7d0;background:#f0fdf4;color:#047857}.rules-v3-wizard-step-index{width:26px;height:26px;display:inline-flex;align-items:center;justify-content:center;border-radius:999px;background:#f1f5f9;color:inherit;font-size:12px;font-weight:800;flex-shrink:0}.rules-v3-wizard-step--active .rules-v3-wizard-step-index{background:#4f46e5;color:#fff}.rules-v3-wizard-step--done .rules-v3-wizard-step-index{background:#10b981;color:#fff}.rules-v3-wizard-step-text{display:flex;flex-direction:column;gap:1px;min-width:0}.rules-v3-wizard-step-text strong{font-size:13px;font-weight:800;color:inherit}.rules-v3-wizard-step-text small{font-size:11px;color:#64748b}.rules-v3-form-grid--wizard{grid-template-columns:minmax(260px,330px) minmax(0,1fr)}.rules-v3-summary-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.rules-v3-summary-card{padding:14px;border:1px solid #e2e8f0;border-radius:12px;background:#fff}.rules-v3-summary-card--hero{grid-column:1 / -1;background:linear-gradient(135deg,#eef2ff,#fff)}.rules-v3-summary-card h4{margin:0 0 8px;font-size:13px;color:#0f172a}.rules-v3-summary-card--hero h4{margin:8px 0 4px;font-size:18px}.rules-v3-summary-card p{margin:0;color:#64748b;font-size:13px}.rules-v3-summary-signal,.rules-v3-condition-preview{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.rules-v3-summary-signal code{padding:2px 6px;border-radius:6px;background:#f1f5f9;color:#64748b;font-size:11px}.rules-v3-summary-list{margin:0;display:grid;gap:8px}.rules-v3-summary-list div{display:flex;justify-content:space-between;gap:12px;padding-bottom:7px;border-bottom:1px solid #f1f5f9}.rules-v3-summary-list div:last-child{border-bottom:0;padding-bottom:0}.rules-v3-summary-list dt{color:#64748b;font-size:12px;font-weight:600}.rules-v3-summary-list dd{margin:0;color:#0f172a;font-size:12px;font-weight:700;text-align:right}.rules-v3-form-footer-main{display:inline-flex;gap:8px;margin-left:auto}.rules-v3-wizard-footer{justify-content:space-between}@media (max-width: 880px){.rules-v3-wizard-steps,.rules-v3-form-grid--wizard,.rules-v3-summary-grid{grid-template-columns:1fr}}.alarm-rules-v2{display:flex;flex-direction:column;gap:10px;flex:1;min-height:0}.rules-v2-layout{display:grid;grid-template-columns:380px 1fr;gap:12px;flex:1;min-height:0}@media (min-width: 1500px){.rules-v2-layout{grid-template-columns:420px 1fr}}@media (max-width: 1100px){.rules-v2-layout{grid-template-columns:320px 1fr}}@media (max-width: 880px){.rules-v2-layout{grid-template-columns:1fr}}.rules-v2-signals{display:flex;flex-direction:column;gap:8px;padding:10px;background:#fff;border:1px solid #e2e8f0;border-radius:12px;box-shadow:0 1px 2px #0f172a0a;min-height:0}.rules-v2-signals-tabs{display:flex;gap:4px;padding:3px;background:#f1f5f9;border:1px solid #e2e8f0;border-radius:999px;flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none;flex-shrink:0}.rules-v2-signals-tabs::-webkit-scrollbar{display:none}.rules-v2-signal-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:6px;overflow-y:auto;flex:1;min-height:0}.rules-v2-signal-item{display:flex;flex-direction:column;gap:4px;padding:10px 12px;border:1px solid #e2e8f0;border-radius:10px;background:#fff;cursor:pointer;transition:border-color .12s,background .12s,box-shadow .12s,transform .12s}.rules-v2-signal-item:hover{border-color:#c7d2fe;box-shadow:0 2px 6px #6366f114;transform:translateY(-1px)}.rules-v2-signal-item.active{border-color:#6366f1;background:linear-gradient(135deg,#eef2ff,#f5f7ff);box-shadow:0 2px 10px #6366f12e}.rules-v2-signal-item-top{display:flex;align-items:center;gap:6px;flex-wrap:wrap}.rules-v2-signal-item strong{font-size:13px;font-weight:600;color:#0f172a;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.rules-v2-signal-item code{font-family:ui-monospace,SFMono-Regular,monospace;font-size:11px;color:#64748b;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.rules-v2-rule-pill{margin-left:auto;display:inline-flex;align-items:center;justify-content:center;width:18px;height:18px;border-radius:50%;font-size:14px;line-height:1;flex-shrink:0}.rules-v2-rule-pill--info{background:#dbeafe;color:#a85800;border:1px solid #bfdbfe}.rules-v2-rule-pill--warning{background:#fef3c7;color:#92400e;border:1px solid #fde68a}.rules-v2-rule-pill--critical{background:#fee2e2;color:#991b1b;border:1px solid #fecaca}.rules-v2-detail{display:flex;flex-direction:column;background:#fff;border:1px solid #e2e8f0;border-radius:12px;overflow:hidden;min-height:0;box-shadow:0 1px 2px #0f172a0a}.rules-v2-form{display:flex;flex-direction:column;flex:1;min-height:0}.rules-v2-detail-header{display:flex;align-items:flex-start;gap:14px;padding:18px 22px 16px;background:linear-gradient(180deg,#f8fafc,#fff);border-bottom:1px solid #e2e8f0;flex-wrap:wrap;flex-shrink:0}.rules-v2-detail-title{flex:1;min-width:0}.rules-v2-detail-title-top{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-bottom:6px}.rules-v2-new-flag{display:inline-flex;align-items:center;padding:3px 10px;background:#eef2ff;color:#4338ca;border:1px solid #c7d2fe;border-radius:999px;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.05em}.rules-v2-detail-title h2{margin:0;font-size:18px;color:#0f172a;word-break:break-word}.rules-v2-detail-key{display:inline-block;margin-top:4px;font-family:ui-monospace,SFMono-Regular,monospace;font-size:12px;color:#64748b;background:#f1f5f9;padding:2px 8px;border-radius:6px}.rules-v2-detail-desc{margin:8px 0 0;font-size:13px;color:#475569;line-height:1.5}.rules-v2-actions{display:inline-flex;align-items:center;gap:8px;flex-shrink:0}.rules-v2-actions .rule-active-switch{margin-left:0}.rules-v2-form-body{flex:1;overflow-y:auto;padding:16px 22px 22px;display:flex;flex-direction:column;gap:12px;min-height:0}.rule-active-switch{display:inline-flex;align-items:center;gap:8px;font-size:12px;font-weight:600;color:#475569;cursor:pointer;-webkit-user-select:none;user-select:none;margin-left:auto}.rule-active-switch input[type=checkbox]{position:absolute;opacity:0;pointer-events:none}.rule-active-switch-track{position:relative;display:inline-block;width:36px;height:20px;background:#cbd5e1;border-radius:999px;transition:background .18s}.rule-active-switch-thumb{position:absolute;top:2px;left:2px;width:16px;height:16px;background:#fff;border-radius:50%;box-shadow:0 1px 2px #0f172a33;transition:transform .18s}.rule-active-switch-on .rule-active-switch-track{background:linear-gradient(135deg,#10b981,#059669)}.rule-active-switch-on .rule-active-switch-thumb{transform:translate(16px)}.rule-active-switch-on .rule-active-switch-label{color:#047857}.rule-active-switch-disabled{opacity:.6;cursor:not-allowed}.rule-active-switch-disabled .rule-active-switch-track{cursor:not-allowed}.signals-detail-badges .rule-active-switch,.alarm-detail-modal .rule-active-switch,.responsibility-active-row .rule-active-switch{margin-left:0}.responsibility-active-row{grid-column:1 / -1;display:flex;align-items:center;gap:14px;flex-wrap:wrap;padding:8px 0}.responsibility-active-hint{font-size:12px;color:#64748b;line-height:1.4;flex:1;min-width:200px}.signal-picker-tabs{display:flex;gap:4px;padding:3px;background:#f1f5f9;border:1px solid #e2e8f0;border-radius:999px;flex-wrap:wrap}.signal-picker-tab{display:inline-flex;align-items:center;gap:6px;padding:5px 12px;border:1px solid transparent;background:transparent;color:#64748b;border-radius:999px;font-size:12px;font-weight:600;cursor:pointer;transition:background .12s,color .12s}.signal-picker-tab:hover:not(.active){background:#ffffffb3;color:#0f172a}.signal-picker-tab.active{background:linear-gradient(135deg,#6366f1,#4f46e5);color:#fff;box-shadow:0 1px 3px #4f46e540}.signal-picker-tab-count{display:inline-flex;align-items:center;justify-content:center;min-width:18px;height:17px;padding:0 6px;border-radius:999px;background:#fff9;color:inherit;font-size:10px;font-weight:700}.signal-picker-tab.active .signal-picker-tab-count{background:#ffffff40}.signal-picker-search{padding:8px 12px;border:1px solid #e2e8f0;border-radius:9px;font-size:13px;background:#fff;transition:border-color .15s,box-shadow .15s}.signal-picker-search:focus{outline:none;border-color:#6366f1;box-shadow:0 0 0 3px #6366f126}.signal-picker-list{display:flex;flex-direction:column;gap:4px;max-height:220px;overflow-y:auto;padding:4px;border:1px solid #e2e8f0;border-radius:10px;background:#fafbff}.signal-picker{display:flex;flex-direction:column;gap:8px}.signal-picker-empty{padding:24px 12px;text-align:center;color:#94a3b8;font-size:13px;font-style:italic}.signal-picker-item{display:flex;align-items:center;gap:10px;padding:8px 12px;border:1px solid transparent;background:#fff;border-radius:8px;cursor:pointer;text-align:left;transition:border-color .12s,background .12s,box-shadow .12s}.signal-picker-item:hover{border-color:#c7d2fe;background:#fff;box-shadow:0 1px 3px #6366f114}.signal-picker-item.active{border-color:#6366f1;background:linear-gradient(135deg,#eef2ff,#f5f7ff);box-shadow:0 1px 4px #6366f126}.signal-picker-item-text{display:flex;flex-direction:column;flex:1;min-width:0}.signal-picker-item-text strong{font-size:13px;font-weight:600;color:#0f172a;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.signal-picker-item-text code{font-family:ui-monospace,SFMono-Regular,monospace;font-size:11px;color:#64748b;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.rule-signal-readonly{display:flex;align-items:center;gap:8px;flex-wrap:wrap;padding:9px 12px;border:1px solid #e2e8f0;border-radius:9px;background:#f8fafc;font-size:13px;min-height:38px}.rule-signal-readonly strong{font-weight:600;color:#0f172a}.rule-signal-readonly code{font-family:ui-monospace,SFMono-Regular,monospace;font-size:11px;color:#64748b}.rule-signal-readonly small{flex-basis:100%;color:#94a3b8;font-size:11px;font-style:italic}.toast-container{position:fixed;bottom:28px;right:28px;display:flex;flex-direction:column;gap:12px;z-index:10000;pointer-events:none;max-width:calc(100vw - 40px)}.toast{position:relative;pointer-events:auto;display:flex;align-items:flex-start;gap:14px;min-width:380px;max-width:480px;padding:16px 18px;background:#fff;border:1px solid #e2e8f0;border-left:6px solid #94a3b8;border-radius:14px;box-shadow:0 18px 42px #0f172a38,0 3px 10px #0f172a14;color:#0f172a;overflow:hidden;animation:toast-slide-in .26s cubic-bezier(.16,1,.3,1)}@keyframes toast-slide-in{0%{transform:translateY(14px) scale(.97);opacity:0}to{transform:translateY(0) scale(1);opacity:1}}@media (max-width: 520px){.toast{min-width:0;width:calc(100vw - 40px)}}.toast-icon-wrap{width:40px;height:40px;border-radius:12px;display:inline-flex;align-items:center;justify-content:center;flex-shrink:0}.toast-icon{font-size:24px}.toast-body{flex:1;display:flex;flex-direction:column;gap:3px;min-width:0;padding-top:2px}.toast-title{font-size:15px;font-weight:800;letter-spacing:-.01em;color:#0f172a;line-height:1.3;word-break:break-word}.toast-message{font-size:13.5px;color:#334155;line-height:1.45;word-break:break-word}.toast-action{display:inline-flex;align-items:center;gap:4px;margin-top:6px;font-size:12.5px;font-weight:700;color:#4338ca}.toast-action .material-symbols-outlined{font-size:16px;transition:transform .18s ease}.toast--actionable{cursor:pointer;transition:transform .16s ease,box-shadow .2s ease}.toast--actionable:hover{transform:translateY(-2px);box-shadow:0 22px 48px #0f172a42,0 4px 12px #0f172a1a}.toast--actionable:hover .toast-action .material-symbols-outlined{transform:translate(3px)}.toast--actionable:focus-visible{outline:2px solid #6366f1;outline-offset:2px}.toast-close{background:transparent;border:none;cursor:pointer;padding:3px;border-radius:8px;color:#94a3b8;display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;transition:background .15s,color .15s}.toast-close:hover{background:#f1f5f9;color:#334155}.toast-close .material-symbols-outlined{font-size:20px}.toast-progress{position:absolute;left:0;bottom:0;height:3px;width:100%;transform-origin:left center;background:#94a3b8;opacity:.55;animation-name:toast-progress-drain;animation-timing-function:linear;animation-fill-mode:forwards}@keyframes toast-progress-drain{0%{transform:scaleX(1)}to{transform:scaleX(0)}}.toast-success{border-left-color:#10b981}.toast-success .toast-icon-wrap{background:#d1fae5;color:#047857}.toast-success .toast-progress{background:#10b981}.toast-error{border-left-color:#ef4444}.toast-error .toast-icon-wrap{background:#fee2e2;color:#b91c1c}.toast-error .toast-title{color:#b91c1c}.toast-error .toast-progress{background:#ef4444}.toast-info{border-left-color:#ff8c00}.toast-info .toast-icon-wrap{background:#ffedd5;color:#c2410c}.toast-info .toast-progress{background:#ff8c00}.toast-warning{border-left-color:#f59e0b}.toast-warning .toast-icon-wrap{background:#fef3c7;color:#b45309}.toast-warning .toast-title{color:#b45309}.toast-warning .toast-progress{background:#f59e0b}.toast-error.toast--actionable{animation:toast-slide-in .26s cubic-bezier(.16,1,.3,1),toast-attention 1.1s ease-out .26s 2}@keyframes toast-attention{0%,to{box-shadow:0 18px 42px #0f172a38,0 0 #ef444473}50%{box-shadow:0 18px 42px #0f172a38,0 0 0 8px #ef444400}}@media (prefers-reduced-motion: reduce){.toast,.toast-error.toast--actionable,.toast-progress{animation:none}}.alarms-section{display:flex;flex-direction:column;background:#fff;border:1px solid #e2e8f0;border-radius:12px;overflow:hidden;box-shadow:0 1px 2px #0f172a0a;margin-top:10px;min-height:0}.alarms-section:first-of-type{margin-top:0}.alarms-section-resolved .alarms-section-header{padding:10px 16px 8px}.alarms-section-resolved .alarms-section-title h3{font-size:13px}.alarms-section-active{flex:1 1 auto;min-height:320px}.alarms-section-resolved{flex:0 0 auto;height:260px;max-height:260px}@media (max-height: 900px){.alarms-section-active{min-height:280px}.alarms-section-resolved{height:220px;max-height:220px}}@media (max-height: 760px){.alarms-section-active{min-height:240px}.alarms-section-resolved{height:200px;max-height:200px}}.alarms-section .alarms-table-wrap{flex:1;min-height:0;overflow-y:auto;overflow-x:hidden}.alarms-section .alarms-page-table{width:100%;table-layout:auto}.alarms-section-header{padding:14px 18px 10px;border-bottom:1px solid #f1f5f9;background:linear-gradient(180deg,#f8fafc,#fff);display:flex;flex-direction:column;gap:4px}.alarms-section-active .alarms-section-header{background:linear-gradient(180deg,#fef2f2,#fff 80%);border-bottom-color:#fee2e2}.alarms-section-resolved .alarms-section-header{background:linear-gradient(180deg,#f0fdf4,#fff 80%);border-bottom-color:#dcfce7}.alarms-section-title{display:flex;align-items:center;gap:10px}.alarms-section-title h3{margin:0;font-size:15px;color:#0f172a;font-weight:600}.alarms-section-icon{display:inline-flex;align-items:center;justify-content:center;width:30px;height:30px;border-radius:8px;flex-shrink:0}.alarms-section-icon .material-symbols-outlined{font-size:18px}.alarms-section-icon-active{background:linear-gradient(135deg,#fee2e2,#fecaca);color:#b91c1c}.alarms-section-icon-resolved{background:linear-gradient(135deg,#dcfce7,#bbf7d0);color:#15803d}.alarms-section-count{display:inline-flex;align-items:center;justify-content:center;min-width:26px;height:22px;padding:0 9px;border-radius:999px;font-size:12px;font-weight:700}.alarms-section-count-active{background:#fee2e2;color:#991b1b;border:1px solid #fecaca}.alarms-section-count-resolved{background:#dcfce7;color:#166534;border:1px solid #bbf7d0}.alarms-section-hint{display:none}.alarms-section .alarms-table-wrap{border-radius:0;border:none;border-top:none}.alarms-section .alarms-page-table thead th{background:#f8fafc}.alarms-empty-cell{padding:28px 12px!important;text-align:center;color:#94a3b8;font-style:italic;font-size:13px}.alarms-section .alarms-page-table{font-size:14px}.alarms-section .alarms-page-table thead th{padding:12px 16px;font-size:11.5px;font-weight:700;letter-spacing:.05em;text-transform:uppercase;color:#64748b;background:#f8fafc;border-bottom:1px solid #e2e8f0;white-space:nowrap}.alarms-section .alarms-page-table tbody td{padding:8px 14px;vertical-align:middle;border-bottom:1px solid #f1f5f9;border-right:none}.alarms-section .alarms-page-table thead th{border-right:none}.alarm-row{position:relative;cursor:pointer;transition:background .12s,box-shadow .12s}.alarm-row td{transition:background .12s;padding-top:17px;padding-bottom:17px;vertical-align:middle}.alarm-row-level-critical td,.alarm-row-level-error td{background:#ef444409}.alarm-row-level-warning td{background:#f59e0b09}.alarm-row-level-info td{background:#f9731608}.alarm-row:hover td{background:#94a3b81a}.alarm-row.alarm-row-active td{background:#3b82f614!important}.alarm-th-dot{width:28px;padding:0!important}.alarm-cell-dot{width:28px;padding:0!important;text-align:center;position:relative}.alarm-row-dot{display:inline-block;width:11px;height:11px;border-radius:50%;background:#fff;border:2px solid #cbd5e1;vertical-align:middle}.level-dot-critical,.level-dot-error{border-color:#ef4444;background:#ef4444}.level-dot-warning{border-color:#f59e0b;background:#f59e0b}.level-dot-info{border-color:#f97316;background:#fff}.alarm-cell-dot:before{content:"";position:absolute;left:50%;top:50%;bottom:-1px;width:2px;transform:translate(-50%);background:#e2e8f0;z-index:0}.alarm-cell-dot:after{content:"";position:absolute;left:50%;top:-1px;height:50%;width:2px;transform:translate(-50%);background:#e2e8f0;z-index:0}.alarm-row:first-child .alarm-cell-dot:after,.alarm-row:last-child .alarm-cell-dot:before{display:none}.alarm-row-dot{position:relative;z-index:1}.alarms-tabs{display:flex;align-items:center;gap:4px;border-bottom:1px solid #e2e8f0;padding:0 6px;margin-bottom:2px}.alarms-tab{position:relative;display:inline-flex;align-items:center;gap:8px;padding:13px 14px;border:none;background:transparent;cursor:pointer;font-size:14px;font-weight:700;color:#64748b}.alarms-tab:hover{color:#334155}.alarms-tab.active{color:#0f172a}.alarms-tab.active:after{content:"";position:absolute;left:10px;right:10px;bottom:-1px;height:2.5px;border-radius:2px;background:#f97316}.alarms-tab-count{font-size:11px;font-weight:800;color:#64748b;background:#f1f5f9;border-radius:999px;padding:1px 8px;min-width:20px;text-align:center}.alarms-tab.active .alarms-tab-count{background:#ffedd5;color:#c2410c}.alarm-cell-datetime{white-space:nowrap;font-size:13.5px;font-weight:600;color:#334155;font-variant-numeric:tabular-nums}.alarm-cell-region,.alarm-cell-line{font-size:13.5px;color:#475569;white-space:nowrap}.alarms-page-table{table-layout:auto}.alarm-col-level{width:84px}.alarm-col-date{width:150px;white-space:nowrap}.alarm-col-device{width:100px}.alarm-col-source{width:86px}.alarm-col-line{width:78px}.alarm-col-region{width:96px}.alarm-col-alarm{width:auto;min-width:140px}.alarm-col-status{width:132px}.alarm-col-assignee{width:104px}.alarm-col-duration{width:100px}.alarm-cell-level,.alarm-cell-device,.alarm-cell-source,.alarm-cell-line,.alarm-cell-state,.alarm-col-level,.alarm-col-device,.alarm-col-source,.alarm-col-line,.alarm-col-status{text-align:center}.alarm-cell-device .alarm-device-cell{align-items:center}.alarm-cell-state{display:table-cell}.alarm-cell-state .alarm-state{display:inline-flex}.alarm-cell-title .alarm-title-text{overflow:hidden;text-overflow:ellipsis}.alarm-row-actions{display:inline-flex;align-items:center;gap:8px;justify-content:flex-end}.alarm-row-ack{display:inline-flex;align-items:center;gap:5px;padding:6px 12px;border:none;border-radius:8px;background:#f97316;color:#fff;font-size:12px;font-weight:700;cursor:pointer;transition:filter .12s;flex:0 0 auto}.alarm-row-ack:hover{filter:brightness(1.05)}.alarm-history-row{cursor:default}.alarm-event-badge{display:inline-block;padding:2px 9px;border-radius:999px;font-size:11px;font-weight:700;background:#f1f5f9;color:#475569}.alarm-event-badge.ev-alarm_triggered,.alarm-event-badge.ev-alarm_created{background:#fee2e2;color:#b91c1c}.alarm-event-badge.ev-alarm_acknowledged,.alarm-event-badge.ev-alarm_acknowledge_all{background:#dbeafe;color:#1d4ed8}.alarm-event-badge.ev-alarm_reset,.alarm-event-badge.ev-alarm_auto_cleared,.alarm-event-badge.ev-alarm_reset_all{background:#dcfce7;color:#15803d}.alarm-cell-duration{color:#475569;font-size:13.5px;font-weight:600;white-space:nowrap}.alarm-row-inspect{border:none;background:transparent;color:#ea580c;font-size:13px;font-weight:700;cursor:pointer;padding:4px 6px;border-radius:6px}.alarm-row-inspect:hover{background:#fff7ed}.alarm-cell-date{width:110px;white-space:nowrap;line-height:1.2}.alarm-date{font-size:12px;font-weight:600;color:#0f172a}.alarm-time{font-size:11px;color:#64748b;font-family:ui-monospace,SFMono-Regular,monospace;margin-top:1px}.alarm-cell-level{width:1%;white-space:nowrap}.alarms-section .alarms-page-table th:nth-child(3),.alarms-section .alarms-page-table .alarm-cell-device{width:130px;min-width:130px;max-width:130px;text-align:center}.alarms-section .alarms-page-table .alarm-cell-device .alarm-device-cell{align-items:center}.alarms-section .alarms-page-table .alarm-cell-device .alarm-device-name,.alarms-section .alarms-page-table .alarm-cell-device .alarm-device-code{text-align:center}.alarms-section .alarms-page-table th:nth-child(4),.alarms-section .alarms-page-table .alarm-cell-source{width:110px;min-width:110px;max-width:110px;text-align:center;padding-left:0!important;padding-right:0!important}.alarm-cell-source .badge-source{display:inline-flex;align-items:center;justify-content:center;width:78px;padding:3px 0;font-size:10px;font-weight:700;letter-spacing:.04em;text-transform:uppercase}.alarms-section .alarms-page-table th:nth-child(5),.alarms-section .alarms-page-table .alarm-cell-title{text-align:left}.alarm-cell-title{min-width:0;width:auto}.alarm-title-text{font-weight:600;font-size:13px;color:#0f172a;line-height:1.3;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.alarm-cell-device{width:1%;white-space:nowrap;min-width:140px}.alarm-device-cell{display:flex;flex-direction:column;gap:1px;line-height:1.2}.alarm-device-name{font-weight:700;font-size:14px;color:#0f172a}.alarm-device-code{font-size:12px;color:#64748b;font-family:ui-monospace,SFMono-Regular,monospace}.alarm-device-fallback{font-family:ui-monospace,SFMono-Regular,monospace;font-size:13px;color:#94a3b8}.alarm-cell-state{white-space:nowrap;min-width:110px}.alarm-cell-assignee{font-size:12px;color:#475569;white-space:nowrap;width:1%;min-width:130px;max-width:180px;overflow:hidden;text-overflow:ellipsis}.alarm-cell-empty{color:#cbd5e1}.alarms-section .alarm-pill{display:inline-flex;align-items:center;padding:3px 9px;border-radius:999px;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.04em}.alarm-row-open.alarm-row-level-critical td{background:#fef2f299}.alarm-row-open.alarm-row-level-warning td{background:#fffbeb99}.alarm-row-open.alarm-row-level-info td{background:#eff6ff99}.alarm-row-acked td{background:#f8fafc}.alarm-row-acked .alarm-title-text{color:#475569;font-weight:500}.alarm-row-acked .alarm-pill{opacity:.75}.alarm-row:hover td{background:#eef2ff}.alarm-row-active td,.alarm-row-active:hover td{background:#e0e7ff!important}.alarm-row-active td:first-child{border-left-width:4px}.alarm-row-resolved td{background:#f0fdf499}.alarm-row-resolved .alarm-pill{opacity:.7}.alarm-row-resolved td:first-child{border-left-color:#10b981!important}.alarm-row-resolved .alarm-title-text{color:#334155}.alarm-actions-th{text-align:center!important;white-space:nowrap;width:200px}.alarm-actions-cell{white-space:nowrap;width:200px;padding-right:16px}.alarm-actions-cell .alarm-row-actions{display:flex;align-items:center;justify-content:flex-end;gap:10px;width:100%}.alarm-actions-cell .icon-btn{width:28px;height:28px;padding:0;margin-left:4px}.alarm-actions-cell .icon-btn .material-symbols-outlined{font-size:16px}.alarms-section .alarm-state{display:inline-flex;align-items:center;gap:5px;padding:5px 11px;border-radius:8px;font-size:12px;font-weight:700}.alarms-section .alarm-state.state-open{background:#fef3c7;color:#92400e}.alarms-section .alarm-state.state-ack{background:#dbeafe;color:#cc7000}.alarms-section-overflow-hint{padding:8px 18px 12px;margin:0;font-size:12px;color:#64748b;border-top:1px solid #f1f5f9;background:#f8fafc}.device-sidebar-modern .device-search-input{border:1px solid #e2e8f0;border-radius:10px;padding:10px 14px;background:#fff;font-size:13px;transition:border-color .15s,box-shadow .15s}.device-sidebar-modern .device-search-input:focus{outline:none;border-color:#6366f1;box-shadow:0 0 0 3px #6366f126}.device-sidebar-modern .device-filter-row{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:12px;overflow:visible}.device-sidebar-modern .filter-chip{display:inline-flex;align-items:center;gap:6px;padding:5px 10px;border:1px solid #e2e8f0;background:#fff;color:#475569;border-radius:999px;font-size:11px;font-weight:600;letter-spacing:.02em;cursor:pointer;transition:background .15s,border-color .15s,color .15s}.device-sidebar-modern .filter-chip:hover{background:#f1f5f9;border-color:#cbd5e1}.device-sidebar-modern .filter-chip-count{display:inline-flex;align-items:center;justify-content:center;min-width:18px;height:18px;padding:0 6px;border-radius:999px;background:#f1f5f9;color:#475569;font-size:10px;font-weight:700}.device-sidebar-modern .filter-chip.active{background:linear-gradient(135deg,#6366f1,#4f46e5);border-color:#4f46e5;color:#fff;box-shadow:0 1px 3px #4f46e540}.device-sidebar-modern .filter-chip.active .filter-chip-count{background:#ffffff40;color:#fff}.device-sidebar-modern .filter-chip--online.active{background:linear-gradient(135deg,#10b981,#059669);border-color:#059669;box-shadow:0 1px 3px #10b98140}.device-sidebar-modern .filter-chip--offline.active{background:linear-gradient(135deg,#94a3b8,#64748b);border-color:#64748b;box-shadow:0 1px 3px #64748b40}.device-sidebar-modern .filter-chip--warning.active{background:linear-gradient(135deg,#f59e0b,#d97706);border-color:#d97706;box-shadow:0 1px 3px #f59e0b40}.device-sidebar-modern .device-list{display:flex;flex-direction:column;gap:10px;padding-bottom:8px}.device-sidebar-modern .device-list-empty{text-align:center;color:#94a3b8;font-size:13px;font-style:italic;padding:24px 12px}.device-sidebar-viewbar{display:flex;gap:4px;padding:3px;margin-bottom:10px;background:#f1f5f9;border:1px solid #e2e8f0;border-radius:999px;flex-shrink:0}.device-view-tab{display:inline-flex;align-items:center;justify-content:center;gap:6px;flex:1;padding:6px 10px;border:0;border-radius:999px;background:transparent;color:#64748b;font-size:12px;font-weight:600;cursor:pointer;transition:background .15s,color .15s}.device-view-tab .material-symbols-outlined{font-size:16px}.device-view-tab:hover{color:#334155}.device-view-tab.active{background:#fff;color:#4338ca;box-shadow:0 1px 2px #0f172a14}.device-sidebar-pagination{flex-shrink:0;margin-top:8px;padding-top:8px;border-top:1px solid #e2e8f0}.device-sidebar-pagination .table-pagination{flex-wrap:wrap;justify-content:center;gap:6px;font-size:11px}.device-list--tree{gap:2px}.device-tree,.device-tree-region{display:flex;flex-direction:column;gap:2px}.device-tree-node{display:flex;align-items:center;gap:6px;width:100%;padding:7px 8px;border:0;border-radius:8px;background:transparent;text-align:left;cursor:pointer;color:#0f172a;transition:background .12s}.device-tree-node:hover{background:#f1f5f9}.device-tree-node--region{font-weight:700;font-size:12.5px;color:#334155;background:#f8fafc}.device-tree-node--line{padding:0;gap:0;cursor:default}.device-tree-node--line:hover{background:transparent}.device-tree-node-main{display:flex;align-items:center;gap:6px;flex:1;min-width:0;padding:7px 4px 7px 16px;border:0;border-radius:8px 0 0 8px;background:transparent;text-align:left;cursor:pointer;font-size:12.5px;font-weight:600;color:#334155}.device-tree-node-main:hover{background:#f1f5f9}.device-tree-node--unassigned{cursor:default;color:#b45309;background:#fffbeb}.device-tree-node--unassigned:hover{background:#fffbeb}.device-tree-caret,.device-tree-icon{color:#94a3b8;flex-shrink:0}.device-tree-icon--region{color:#6366f1}.device-tree-label{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.device-tree-count{flex-shrink:0;padding:1px 7px;border-radius:999px;background:#eef2ff;color:#4338ca;font-size:10.5px;font-weight:700;font-variant-numeric:tabular-nums}.device-tree-badge--alarm{flex-shrink:0;padding:1px 7px;border-radius:999px;background:#fee2e2;color:#b91c1c;font-size:10.5px;font-weight:700}.device-tree-eye{display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;width:30px;align-self:stretch;border:0;border-radius:0 8px 8px 0;background:transparent;color:#94a3b8;cursor:pointer;transition:background .12s,color .12s}.device-tree-eye:hover{background:#e2e8f0;color:#334155}.device-tree-eye.is-off{color:#d97706}.device-tree-node--line.is-hidden-line .device-tree-node-main{opacity:.5}.device-tree-children{display:flex;flex-direction:column;padding:2px 0 6px;margin-left:23px;border-left:1px solid #e2e8f0}.device-tree-timeline{position:relative;display:flex;flex-direction:column;margin-left:23px;padding:4px 0 8px}.device-tree-timeline:before{content:"";position:absolute;top:10px;bottom:14px;left:4px;width:2px;border-radius:1px;background:#16a34a}.device-tl-pole{position:relative;display:flex;align-items:center;gap:8px;padding:2px 0 2px 16px;min-height:18px}.device-tl-pole-node{position:absolute;left:0;width:10px;height:10px;border-radius:50%;border:2px solid #16a34a;background:#fff;box-sizing:border-box}.device-tl-pole-label{font-size:10.5px;font-weight:700;letter-spacing:.02em;color:#64748b;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.device-tl-span{display:flex;flex-direction:column;padding-left:16px}.device-tl-gap{position:relative;height:14px}.device-tl-gap:before{content:"";position:absolute;left:3px;top:1px;bottom:1px;width:4px;background:#fff;border-top:1px dashed #cbd5e1;border-bottom:1px dashed #cbd5e1}.device-tl-span.is-fault:before{content:"";position:absolute;left:3px;top:0;bottom:0;width:4px;border-radius:2px;background:#dc2626;animation:device-tl-fault 1.4s ease-in-out infinite}.device-tl-span{position:relative}@keyframes device-tl-fault{0%,to{opacity:1;box-shadow:0 0 #dc262680}50%{opacity:.55;box-shadow:0 0 0 4px #dc262600}}.device-tl-pole.is-fault .device-tl-pole-node{border-color:#dc2626;background:#fee2e2}.device-tl-pole.is-fault .device-tl-pole-label{color:#b91c1c}.device-tl-span.is-fault .device-tree-row{background:#fef2f2}.device-tl-span.is-fault .device-tree-row:hover{background:#fee2e2}.device-tl-span.is-fault .device-tree-row-name,.device-tree-node--line.is-fault .device-tree-node-main{color:#b91c1c}.device-tree-node--line.is-fault .device-tree-icon{color:#dc2626;animation:device-tl-fault 1.4s ease-in-out infinite}.device-tree-badge--fault{display:inline-flex;align-items:center;gap:3px;flex-shrink:0;padding:1px 6px;border-radius:999px;background:#dc2626;color:#fff;font-size:10.5px;font-weight:700;animation:device-tl-fault 1.4s ease-in-out infinite}.device-tree-badge--comm{display:inline-flex;align-items:center;gap:3px;flex-shrink:0;padding:1px 6px;border-radius:999px;background:#f1f5f9;border:1px solid #e2e8f0;color:#64748b;font-size:10.5px;font-weight:700}.device-tree-row-comm{flex-shrink:0;color:#94a3b8}.device-marker-comm{position:absolute;right:-3px;top:-3px;width:13px;height:13px;display:flex;align-items:center;justify-content:center;border-radius:50%;background:#64748b;border:1.5px solid #fff;box-shadow:0 1px 3px #0f172a59}.device-marker{position:relative}.device-marker.is-alarm .device-marker-comm{background:#7f1d1d}.device-tree-row{display:flex;align-items:center;gap:7px;width:100%;padding:5px 8px 5px 10px;border:0;border-left:2px solid transparent;border-radius:0 6px 6px 0;background:transparent;text-align:left;cursor:pointer;font-size:12px;line-height:1.3;color:#334155;transition:background .12s,border-color .12s}.device-tree-row:hover{background:#f1f5f9}.device-tree-row.selected{background:#eef2ff;color:#1e1b4b}.device-tree-dot{width:7px;height:7px;flex-shrink:0;border-radius:50%;background:#cbd5e1}.device-tree-dot.online{background:#10b981;box-shadow:0 0 0 2px #10b9812e}.device-tree-dot.offline{background:#cbd5e1}.device-tree-row-name{flex:1 1 auto;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:600}.device-tree-row-alarm{flex-shrink:0;color:#dc2626}.device-tree-row.has-alarm--ack .device-tree-row-alarm{color:#d97706}.device-tree-row-batt{flex-shrink:0;font-size:10.5px;font-weight:600;font-variant-numeric:tabular-nums;color:#64748b}.device-tree-row.is-dimmed{opacity:.45}.device-tree-row.is-dimmed:hover{opacity:.85}.device-marker-wrap.is-dimmed{filter:grayscale(1);opacity:.45}.device-sidebar-modern .device-row{position:relative;display:flex;flex-direction:column;gap:6px;padding:10px 12px;border:1px solid #e2e8f0;border-radius:12px;background:#fff;text-align:left;cursor:pointer;transition:border-color .15s,box-shadow .15s,transform .12s;overflow:hidden}.device-row-alarm-pulse{display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px;padding:0;background:linear-gradient(135deg,#ef4444,#dc2626);color:#fff;border:none;border-radius:50%;flex-shrink:0;box-shadow:0 0 #ef4444b3;animation:device-alarm-pulse 1.4s ease-in-out infinite}.device-row-alarm-pulse .material-symbols-outlined{font-size:14px;font-weight:700;line-height:1}.device-row-alarm-pulse--corner{position:absolute;top:8px;right:8px;z-index:2}.device-sidebar-modern .device-row-meta-row.device-row-meta-row--bare{background:transparent;border:none;padding:0 2px;gap:10px;justify-content:space-between}.device-sidebar-modern .device-row-meta-row.device-row-meta-row--bare .device-row-location{flex:1 1 auto;min-width:0}.device-sidebar-modern .device-row-meta-row.device-row-meta-row--bare .device-battery-chip{flex:0 0 auto;margin-left:auto}.device-battery-chip.device-battery-chip--bare{background:transparent;border:none;padding:0}.device-sidebar-modern .device-row-last-line{display:flex;align-items:center;gap:4px;padding:6px 2px 0;border-top:1px solid #f1f5f9;margin-top:2px;font-size:11px;color:#64748b}.device-sidebar-modern .device-row-last-line .material-symbols-outlined{font-size:13px;color:#94a3b8}.device-sidebar-modern .device-row-last-text{font-weight:500;font-variant-numeric:tabular-nums}.device-row-alarm-pulse .material-symbols-outlined{font-size:12px}@keyframes device-alarm-pulse{0%,to{box-shadow:0 0 #ef44448c;transform:scale(1)}50%{box-shadow:0 0 0 8px #ef444400;transform:scale(1.05)}}.device-sidebar-modern .device-row-meta-row{display:flex;align-items:center;gap:8px;padding:6px 10px;background:#f8fafc;border:1px solid #e2e8f0;border-radius:8px}.device-sidebar-modern .device-row-meta-row .device-row-location{display:inline-flex;align-items:center;gap:4px;flex:1;min-width:0;font-size:12px;color:#334155;font-weight:500;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.device-sidebar-modern .device-row-meta-row .device-row-location .material-symbols-outlined{font-size:14px;color:#6366f1;flex-shrink:0}.device-battery-chip{display:inline-flex;align-items:center;gap:5px;padding:2px 8px;border-radius:999px;background:#fff;border:1px solid #e2e8f0;font-size:11px;font-weight:600;color:#0f172a;flex-shrink:0;white-space:nowrap}.device-battery-chip.device-battery--ok{border-color:#a7f3d0;color:#047857}.device-battery-chip.device-battery--low{border-color:#fcd34d;color:#92400e}.device-battery-chip.device-battery--critical{border-color:#fca5a5;color:#991b1b}.device-battery-chip.device-battery--unknown{color:#94a3b8}.device-battery-chip .device-battery-icon{width:22px;height:11px}.device-sidebar-modern .device-row:hover{border-color:#c7d2fe;box-shadow:0 2px 8px #6366f114;transform:translateY(-1px)}.device-sidebar-modern .device-row.selected{border-color:#6366f1;background:linear-gradient(135deg,#eef2ff,#f5f7ff);box-shadow:0 2px 12px #6366f12e}.device-sidebar-modern .device-row--alarm:not(.selected){border-color:#fecaca;background:linear-gradient(135deg,#fef2f2,#fff)}.device-sidebar-modern .device-row-top{display:grid;grid-template-columns:auto minmax(0,1fr) 78px;align-items:center;gap:10px}.device-sidebar-modern .device-row-name{display:flex;flex-direction:column;gap:2px;min-width:0}.device-sidebar-modern .device-row-name strong{font-size:14px;font-weight:600;color:#0f172a;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.device-sidebar-modern .device-row-code{font-size:11px;color:#64748b;font-family:ui-monospace,SFMono-Regular,monospace}.device-sidebar-modern .device-status-dot{width:10px;height:10px;border-radius:50%;flex-shrink:0;margin-top:4px}.device-sidebar-modern .device-status-dot.online{background:#10b981;box-shadow:0 0 0 3px #10b9812e}.device-sidebar-modern .device-status-dot.offline{background:#cbd5e1}.device-battery,.device-battery-mini{display:inline-flex;align-items:center;gap:6px;font-size:12px;flex-shrink:0}.device-battery-mini{white-space:nowrap;justify-content:flex-end;width:78px}.device-battery-mini .device-battery-text{min-width:36px;text-align:right}.device-battery-icon{position:relative;display:inline-block;width:28px;height:13px;border:1.5px solid #94a3b8;border-radius:3px;flex-shrink:0;overflow:hidden;background:#fff}.device-battery-icon:after{content:"";position:absolute;right:-3px;top:3px;width:2px;height:6px;background:#94a3b8;border-radius:0 1px 1px 0}.device-battery-fill{display:block;height:100%;border-radius:1px;transition:width .3s ease,background .2s ease}.device-battery--ok .device-battery-icon{border-color:#10b981}.device-battery--ok .device-battery-icon:after{background:#10b981}.device-battery--ok .device-battery-fill{background:linear-gradient(90deg,#10b981,#059669)}.device-battery--low .device-battery-icon{border-color:#f59e0b}.device-battery--low .device-battery-icon:after{background:#f59e0b}.device-battery--low .device-battery-fill{background:linear-gradient(90deg,#f59e0b,#d97706)}.device-battery--critical .device-battery-icon{border-color:#ef4444}.device-battery--critical .device-battery-icon:after{background:#ef4444}.device-battery--critical .device-battery-fill{background:linear-gradient(90deg,#ef4444,#dc2626)}.device-battery--unknown .device-battery-icon{border-color:#cbd5e1}.device-battery--unknown .device-battery-icon:after{background:#cbd5e1}.device-battery-text{font-weight:600;color:#0f172a;font-size:12px;font-variant-numeric:tabular-nums}.device-battery--unknown .device-battery-text{color:#94a3b8;font-weight:500}.device-row-alarm-badge{display:inline-flex;align-items:center;gap:3px;margin-left:auto;padding:2px 8px;background:#fee2e2;color:#b91c1c;border:1px solid #fecaca;border-radius:999px;font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.04em}.device-row-alarm-badge .material-symbols-outlined{font-size:13px}.device-sidebar-modern .device-row-foot{display:flex;align-items:center;gap:8px;font-size:11px;color:#94a3b8;border-top:1px solid #f1f5f9;padding-top:6px;flex-wrap:wrap}.device-sidebar-modern .device-row-last{font-style:italic;margin-left:auto}.device-sidebar-modern .device-row-location{display:inline-flex;align-items:center;gap:4px;color:#475569;font-weight:500;font-style:normal;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:60%}.device-sidebar-modern .device-row-location .material-symbols-outlined{font-size:13px;color:#64748b}.device-row--unassigned{border-left:3px solid #fb923c}.device-sidebar-modern .device-row-location--unassigned{background:#fff7ed;color:#c2410c;font-weight:600;padding:2px 8px;border-radius:999px;border:1px solid #fed7aa}.device-sidebar-modern .device-row-location--unassigned .material-symbols-outlined{color:#c2410c}.live-values-toolbar .live-filter-select{min-width:140px;max-width:220px;transition:border-color .15s,box-shadow .15s}.live-values-toolbar .live-filter-select:hover{border-color:#cbd5e1}.live-values-toolbar .live-filter-clear{padding:7px 14px;font-size:12px;font-weight:600}.searchable-select{position:relative;display:inline-block}.searchable-select-trigger{display:inline-flex;align-items:center;justify-content:space-between;gap:6px;width:100%;padding:8px 10px 8px 12px;border:1px solid #e2e8f0;border-radius:9px;font-size:13px;background:#fff;color:#334155;cursor:pointer;transition:border-color .15s,box-shadow .15s}.searchable-select-trigger:hover{border-color:#cbd5e1}.searchable-select.is-open .searchable-select-trigger{border-color:#6366f1;box-shadow:0 0 0 3px #6366f11f}.searchable-select-trigger-label{flex:1;text-align:left;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.searchable-select-trigger-chev{font-size:18px;color:#64748b;flex-shrink:0}.searchable-select-popover{position:absolute;top:calc(100% + 6px);left:0;right:0;z-index:20;background:#fff;border:1px solid #e2e8f0;border-radius:10px;box-shadow:0 12px 30px #0f172a2e;overflow:hidden;min-width:240px}.searchable-select-search{display:flex;align-items:center;gap:6px;padding:8px 10px;border-bottom:1px solid #e2e8f0;background:#f8fafc}.searchable-select-search .material-symbols-outlined{font-size:18px;color:#94a3b8}.searchable-select-search input{flex:1;border:none;outline:none;background:transparent;font-size:13px;color:#0f172a}.searchable-select-empty{padding:14px 12px;font-size:13px;color:#94a3b8;text-align:center}.searchable-select-list{list-style:none;margin:0;padding:4px 0;overflow-y:auto}.searchable-select-item{display:flex;flex-direction:column;gap:1px;padding:7px 12px;font-size:13px;cursor:pointer;color:#1e293b}.searchable-select-item.is-active{background:#eef2ff}.searchable-select-item.is-selected{background:#e0e7ff;color:#4338ca;font-weight:600}.searchable-select-item.is-selected.is-active{background:#c7d2fe}.searchable-select-item-label{line-height:1.2}.searchable-select-item-secondary{font-size:11px;color:#64748b;font-variant-numeric:tabular-nums}.searchable-select-item.is-selected .searchable-select-item-secondary{color:#6366f1}.login-card .login-remember{display:inline-flex;align-items:center;gap:8px;font-size:13px;font-weight:500;color:#334155;cursor:pointer;-webkit-user-select:none;user-select:none;margin:4px 0 -2px;width:fit-content}.login-card .login-remember input[type=checkbox]{width:16px;height:16px;margin:0;accent-color:#4f46e5;cursor:pointer;flex-shrink:0}.login-card .login-remember>span{font-size:13px;color:#334155;font-weight:500}.grid-pole-pin.is-transformer{background:transparent!important;border:none!important;border-radius:0!important;box-shadow:none!important;outline:none!important}.grid-pole-pin.is-transformer.is-start,.grid-pole-pin.is-transformer.is-end{outline:none!important;background:transparent!important}.grid-pole-pin.is-breaker{background:linear-gradient(135deg,#6366f1,#4338ca);width:34px;height:34px;border-radius:4px;border:2px solid #fff;box-shadow:0 2px 6px #4338ca66}.grid-pole-pin.is-breaker.is-start{outline:3px solid #16a34a;outline-offset:1px}.grid-pole-pin.is-breaker.is-end{outline:3px solid #dc2626;outline-offset:1px}.grid-pole-pin .grid-pole-symbol{font-size:16px;line-height:1}.grid-pole-pin .grid-pole-seq{font-size:8px;font-weight:800;position:absolute;bottom:-6px;right:-6px;background:#0f172a;color:#fff;border-radius:8px;padding:1px 4px;border:1.5px solid #fff}.grid-pole-pin{position:relative}.grid-pole-pin.is-draft-added{outline:2px dashed #f59e0b;outline-offset:2px;animation:pole-draft-pulse 1.2s ease-in-out infinite}.grid-pole-pin.is-draft-moved{outline:2px dashed #ff8c00;outline-offset:2px}@keyframes pole-draft-pulse{0%,to{box-shadow:0 0 #f59e0b99}50%{box-shadow:0 0 0 6px #f59e0b00}}.grid-mgmt-map-toolbar.is-edit-mode{background:#fef3c7;border:1px solid #fcd34d;border-radius:8px;padding:10px 12px}.grid-mgmt-draft-badge{display:inline-flex;align-items:center;justify-content:center;min-width:18px;height:18px;padding:0 5px;margin-left:6px;background:#dc2626;color:#fff;border-radius:9px;font-size:10px;font-weight:700}.pole-type-fieldset{border:1px solid #e2e8f0;border-radius:6px;padding:8px 12px 12px;margin:6px 0 10px}.pole-type-fieldset legend{font-size:12px;color:#475569;padding:0 6px;font-weight:600}.pole-type-options{display:grid;grid-template-columns:repeat(2,1fr);gap:8px}.pole-type-option{display:flex;flex-direction:column;align-items:center;gap:4px;padding:10px 6px;border:1.5px solid #e2e8f0;border-radius:6px;background:#f8fafc;cursor:pointer;transition:all .15s}.pole-type-option:hover{border-color:#94a3b8;background:#f1f5f9}.pole-type-option.is-selected{border-color:#4f46e5;background:#eef2ff;box-shadow:0 0 0 2px #4f46e526}.pole-type-option input{display:none}.pole-type-option .pole-type-icon{font-size:22px;line-height:1}.pole-type-option>span:last-child{font-size:11px;font-weight:600;color:#334155}.device-detail-modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#0f172a8c;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);z-index:9000;display:flex;align-items:center;justify-content:center;padding:12px}.device-detail-modal{width:100%;max-width:1200px;height:calc(100vh - 48px);max-height:900px;background:#fff;border-radius:14px;box-shadow:0 30px 80px #00000059;display:flex;flex-direction:column;overflow:hidden}.device-detail-modal-head{display:flex;align-items:flex-start;justify-content:space-between;padding:12px 20px;background:linear-gradient(135deg,#eff6ff,#f8fafc);border-bottom:1px solid #e2e8f0}.device-detail-modal-head .label{font-size:11px;font-weight:700;color:#6366f1;letter-spacing:.5px;text-transform:uppercase}.device-detail-modal-head h3{margin:4px 0 2px;font-size:22px;color:#0f172a}.device-detail-modal-head .device-code{color:#64748b;font-size:13px;font-family:ui-monospace,SFMono-Regular,monospace}.device-detail-modal-close{background:transparent;border:1px solid #cbd5e1;border-radius:6px;width:32px;height:32px;cursor:pointer;font-size:18px;color:#475569;display:flex;align-items:center;justify-content:center}.device-detail-modal-close:hover{background:#f1f5f9}.device-detail-modal-body{flex:1;overflow-y:auto;padding:18px 24px;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;align-content:start}.device-detail-section{background:#f8fafc;border:1px solid #e2e8f0;border-radius:10px;padding:14px 16px}.device-detail-section.is-fullwidth{grid-column:1 / -1}.device-detail-section h4{margin:0 0 10px;font-size:13px;font-weight:700;color:#334155;display:flex;align-items:center;gap:6px}.device-detail-section h4 .material-symbols-outlined{font-size:18px;color:#4f46e5}.device-detail-alarm-row{background:#fffbeb;border-left:4px solid #f59e0b;padding:10px 12px;border-radius:6px;margin-bottom:8px}.device-detail-alarm-row strong{color:#b45309;font-size:13px}.device-detail-alarm-row .desc{font-size:12px;color:#475569;margin-top:2px}.device-detail-alarm-row .ts{font-size:11px;color:#64748b;margin-top:4px}.device-detail-battery-list{display:flex;flex-direction:column;gap:8px}.device-detail-battery-row{display:grid;grid-template-columns:100px 1fr 80px 60px;align-items:center;gap:10px;padding:8px 10px;background:#fff;border:1px solid #e2e8f0;border-radius:6px}.device-detail-battery-source{font-size:11px;font-weight:700;text-align:center;padding:4px 8px;border-radius:12px;color:#fff;letter-spacing:.3px}.device-detail-battery-source.is-master{background:#e67c00}.device-detail-battery-source.is-sat1{background:#16a34a}.device-detail-battery-source.is-sat2{background:#f59e0b}.device-detail-battery-bar{position:relative;height:8px;background:#e2e8f0;border-radius:4px;overflow:hidden}.device-detail-battery-bar>span{position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(90deg,#16a34a,#22c55e);border-radius:4px;transition:width .3s ease}.device-detail-battery-bar.is-low>span{background:linear-gradient(90deg,#dc2626,#ef4444)}.device-detail-battery-bar.is-mid>span{background:linear-gradient(90deg,#f59e0b,#fbbf24)}.device-detail-battery-volt{font-size:12px;font-weight:700;color:#0f172a;font-family:ui-monospace,SFMono-Regular,monospace;text-align:right}.device-detail-battery-pct{font-size:11px;color:#64748b;text-align:right}.device-detail-binary-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.device-detail-binary-pill{display:flex;align-items:center;justify-content:space-between;padding:8px 12px;background:#fff;border:1px solid #e2e8f0;border-radius:6px;font-size:12px;color:#475569}.device-detail-binary-pill.is-active{background:#fef2f2;border-color:#fecaca;color:#b91c1c}.device-detail-binary-pill .state{font-size:10px;font-weight:800;padding:2px 8px;border-radius:10px;background:#e2e8f0;color:#475569}.device-detail-binary-pill.is-active .state{background:#dc2626;color:#fff}.device-detail-analog-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.device-detail-analog-card{background:#fff;border:1px solid #e2e8f0;border-radius:6px;padding:10px 12px}.device-detail-analog-card .lbl{font-size:10px;font-weight:700;color:#64748b;letter-spacing:.4px;text-transform:uppercase}.device-detail-analog-card .val{font-size:14px;font-weight:700;color:#0f172a;font-family:ui-monospace,SFMono-Regular,monospace;margin-top:4px}.device-detail-analog-card .unit{font-size:11px;color:#64748b;margin-left:4px;font-family:inherit;font-weight:500}.device-detail-counter-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.device-detail-counter-card{display:flex;align-items:center;gap:12px;padding:12px 14px;background:#fff;border:1px solid #e2e8f0;border-radius:8px}.device-detail-counter-card .icn{width:38px;height:38px;border-radius:8px;display:flex;align-items:center;justify-content:center;font-size:20px;flex-shrink:0}.device-detail-counter-card.is-permanent .icn{background:#fef2f2;color:#dc2626}.device-detail-counter-card.is-transient .icn{background:#fffbeb;color:#d97706}.device-detail-counter-card .lbl{font-size:11px;font-weight:700;color:#64748b;text-transform:uppercase;letter-spacing:.3px}.device-detail-counter-card .val{font-size:22px;font-weight:800;color:#0f172a;font-family:ui-monospace,SFMono-Regular,monospace;line-height:1.1}.device-detail-counter-card .meta{font-size:11px;color:#64748b;margin-top:2px}.device-detail-modal-foot{padding:8px 20px;border-top:1px solid #e2e8f0;background:#f8fafc;display:flex;align-items:center;justify-content:space-between;gap:12px}.device-detail-modal-foot .helper-text{margin:0;font-size:12px;color:#64748b}@media (max-width: 900px){.device-detail-modal-body,.device-detail-counter-grid,.device-detail-binary-grid{grid-template-columns:1fr}.device-detail-analog-grid{grid-template-columns:repeat(2,1fr)}}.grid-mgmt-tree{display:flex;flex-direction:column;gap:6px;padding:4px 0}.grid-mgmt-tree-scroll{max-height:calc(100vh - 320px);min-height:320px;overflow-y:auto;overflow-x:hidden;padding-right:6px;scrollbar-width:thin;scrollbar-color:#cbd5e1 transparent}.grid-mgmt-tree-scroll::-webkit-scrollbar{width:8px}.grid-mgmt-tree-scroll::-webkit-scrollbar-track{background:transparent}.grid-mgmt-tree-scroll::-webkit-scrollbar-thumb{background:#cbd5e1;border-radius:4px}.grid-mgmt-tree-scroll::-webkit-scrollbar-thumb:hover{background:#94a3b8}.grid-mgmt-tree-pair{display:flex;flex-direction:column}.grid-mgmt-pole-card{display:flex;align-items:center;gap:12px;padding:10px 14px;background:#fff;border:1px solid #e2e8f0;border-radius:10px;box-shadow:0 1px 2px #00000008;transition:all .15s}.grid-mgmt-pole-card:hover{border-color:#94a3b8;box-shadow:0 2px 6px #0000000f}.grid-mgmt-pole-card.is-dragging{opacity:.55}.grid-mgmt-pole-card.is-start{border-left:4px solid #16a34a}.grid-mgmt-pole-card.is-end{border-left:4px solid #dc2626}.grid-mgmt-pole-card-handle{display:inline-flex;align-items:center;color:#94a3b8;cursor:grab}.grid-mgmt-pole-card-handle:active{cursor:grabbing}.grid-mgmt-pole-card-handle .material-symbols-outlined{font-size:20px}.grid-mgmt-pole-card-icon{width:40px;height:40px;border-radius:10px;background:linear-gradient(135deg,#dbeafe,#93c5fd);color:#1e3a8a;display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;box-shadow:0 1px 3px #1e3a8a26}.grid-mgmt-pole-card-icon .material-symbols-outlined{font-size:22px;font-variation-settings:"FILL" 1,"wght" 500}.grid-mgmt-pole-card-icon.is-transformer{background:linear-gradient(135deg,#fef3c7,#fbbf24);color:#78350f;box-shadow:0 1px 3px #78350f33}.grid-mgmt-pole-card-icon.is-transformer .material-symbols-outlined{font-variation-settings:"FILL" 1,"wght" 600}.grid-mgmt-pole-card.is-start .grid-mgmt-pole-card-icon:not(.is-transformer){background:linear-gradient(135deg,#dcfce7,#4ade80);color:#14532d;box-shadow:0 1px 3px #14532d33}.grid-mgmt-pole-card.is-end .grid-mgmt-pole-card-icon:not(.is-transformer){background:linear-gradient(135deg,#fee2e2,#f87171);color:#7f1d1d;box-shadow:0 1px 3px #7f1d1d33}.grid-mgmt-pole-card-main{flex:1;min-width:0}.grid-mgmt-pole-card-title{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-bottom:2px}.grid-mgmt-pole-card-title strong{font-size:14px;color:#0f172a}.grid-mgmt-pole-card-seq{font-size:12px;font-weight:700;color:#475569;padding:2px 8px;background:#f1f5f9;border-radius:10px}.grid-mgmt-pole-card-seq.is-start{background:#dcfce7;color:#15803d}.grid-mgmt-pole-card-seq.is-end{background:#fee2e2;color:#b91c1c}.grid-mgmt-pole-card-tag{font-size:10px;font-weight:700;padding:2px 7px;border-radius:8px;letter-spacing:.4px;text-transform:uppercase}.grid-mgmt-pole-card-tag.is-start{background:#16a34a;color:#fff}.grid-mgmt-pole-card-tag.is-end{background:#dc2626;color:#fff}.grid-mgmt-pole-card-tag.is-type{background:#fef3c7;color:#b45309}.grid-mgmt-pole-card-meta{display:inline-flex;align-items:center;gap:4px;font-size:11px;color:#64748b;font-family:ui-monospace,SFMono-Regular,monospace}.grid-mgmt-pole-card-meta .material-symbols-outlined{font-size:14px;color:#94a3b8}.grid-mgmt-pole-card-actions{display:inline-flex;align-items:center;gap:4px}.grid-mgmt-pole-card-actions .icon-btn .material-symbols-outlined{font-size:18px}.grid-mgmt-segment-card{display:flex;align-items:center;gap:14px;margin:4px 0 4px 36px;padding:10px 14px;background:#f8fafc;border:1px dashed #cbd5e1;border-radius:8px;position:relative;transition:all .15s}.grid-mgmt-segment-card.is-empty{background:#fafbfc}.grid-mgmt-segment-card.has-device{background:#f0fdf4;border-color:#86efac;border-style:solid}.grid-mgmt-segment-card.is-drop-target{background:#eef2ff;border-color:#6366f1;border-style:solid;box-shadow:0 0 0 3px #6366f126}.grid-mgmt-segment-card-track{display:inline-flex;align-items:center;gap:6px;flex-shrink:0}.grid-mgmt-segment-card-dot{width:22px;height:22px;border-radius:50%;background:#e2e8f0;color:#475569;font-size:10px;font-weight:700;display:inline-flex;align-items:center;justify-content:center;border:2px solid #fff;box-shadow:0 1px 2px #0000001a}.grid-mgmt-segment-card-line{width:28px;height:3px;background:linear-gradient(90deg,#94a3b8,#64748b);border-radius:2px}.grid-mgmt-segment-card.has-device .grid-mgmt-segment-card-line{background:linear-gradient(90deg,#16a34a,#15803d)}.grid-mgmt-device-chip{flex:1;display:flex;align-items:center;gap:10px;padding:8px 12px;background:#fff;border:1px solid #e2e8f0;border-radius:8px;cursor:grab;transition:all .15s}.grid-mgmt-device-chip:active{cursor:grabbing}.grid-mgmt-device-chip:hover{border-color:#94a3b8;box-shadow:0 2px 6px #0000000f}.grid-mgmt-device-chip.is-dragging{opacity:.55}.grid-mgmt-device-chip.is-alarm{border-color:#fca5a5;background:#fef2f2}.grid-mgmt-device-chip-handle{display:inline-flex;color:#94a3b8}.grid-mgmt-device-chip-handle .material-symbols-outlined{font-size:18px}.grid-mgmt-device-chip-status{width:10px;height:10px;border-radius:50%;background:#16a34a;flex-shrink:0;box-shadow:0 0 0 3px #16a34a2e}.grid-mgmt-device-chip-status.is-alarm{background:#dc2626;box-shadow:0 0 0 3px #dc262638;animation:device-chip-pulse 1.2s ease-in-out infinite}@keyframes device-chip-pulse{0%,to{box-shadow:0 0 0 3px #dc262638}50%{box-shadow:0 0 0 6px #dc262600}}.grid-mgmt-device-chip-main{flex:1;min-width:0;display:flex;flex-direction:column;gap:1px}.grid-mgmt-device-chip-main strong{font-size:13px;color:#0f172a}.grid-mgmt-device-chip-main code{font-size:11px;color:#64748b;font-family:ui-monospace,SFMono-Regular,monospace}.grid-mgmt-device-chip .icon-btn .material-symbols-outlined{font-size:16px}.grid-mgmt-device-empty{flex:1;display:flex;align-items:center;gap:10px}.grid-mgmt-device-empty .material-symbols-outlined{font-size:18px;color:#94a3b8}.grid-mgmt-device-empty .helper-text{font-size:11px;color:#94a3b8;font-style:italic}.grid-mgmt-device-empty .grid-mgmt-segment-select{padding:6px 10px;border:1px solid #cbd5e1;border-radius:6px;background:#fff;font-size:12px;color:#334155;cursor:pointer}.device-detail-modal--wide{max-width:1500px;width:calc(100vw - 24px);height:auto;max-height:80vh}.device-detail-modal-head-left{flex:1;min-width:0}.device-detail-modal-titlebar{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.device-detail-modal-title{margin:0;font-size:18px;font-weight:700;color:#0f172a;letter-spacing:-.01em}.device-detail-modal-titlebar-code{font-family:ui-monospace,SFMono-Regular,monospace;font-size:12px;font-weight:600;color:#64748b;padding:2px 8px;background:#f1f5f9;border-radius:4px}.device-detail-modal-meta{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-top:6px}.device-detail-modal-meta-sep{color:#cbd5e1}.device-detail-modal-meta-chip{display:inline-flex;align-items:center;gap:4px;font-size:12px;font-weight:500;padding:3px 10px;border-radius:14px;background:#eef2ff;color:#4338ca;border:1px solid #c7d2fe}.device-detail-modal-meta-chip .material-symbols-outlined{font-size:14px}.device-detail-modal-meta-chip.is-line{background:#f0fdf4;color:#15803d;border-color:#bbf7d0}.device-detail-modal-meta-chip.is-seg{background:#fef3c7;color:#92400e;border-color:#fde68a}.device-detail-modal-meta-chip.is-warn{background:#fef2f2;color:#b91c1c;border-color:#fecaca}.device-detail-alert-bar{display:flex;align-items:center;gap:10px;padding:10px 24px;background:#fef3c7;border-bottom:1px solid #fcd34d;color:#92400e;font-size:13px;flex-wrap:wrap}.device-detail-alert-bar .material-symbols-outlined{color:#d97706}.device-detail-alert-bar strong{font-weight:700;color:#b45309}.device-detail-alert-list{color:#78350f;font-size:12px}.device-detail-alert-more{margin-left:6px;color:#92400e;font-weight:600;font-size:12px}.device-detail-modal-cols{flex:1;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;padding:12px 16px;overflow:hidden;background:#f8fafc;min-height:0}.device-detail-col{display:flex;flex-direction:column;gap:0;background:#fff;border:1px solid #e2e8f0;border-radius:10px;padding:10px 12px;min-width:0;min-height:0;overflow:hidden;justify-content:space-between}.device-detail-col>.device-detail-col-section,.device-detail-col>.device-detail-col-head,.device-detail-col>.device-detail-col-batt-card,.device-detail-col>.device-detail-col-counters{flex:0 0 auto}.device-detail-col--master{border-top:4px solid #e67c00}.device-detail-col--sat01{border-top:4px solid #16a34a}.device-detail-col--sat02{border-top:4px solid #f59e0b}.device-detail-col-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:2px}.device-detail-col-badge{display:inline-block;font-size:11px;font-weight:700;padding:4px 10px;border-radius:10px;letter-spacing:.5px;color:#fff}.device-detail-col-badge.is-master{background:#e67c00}.device-detail-col-badge.is-sat1{background:#16a34a}.device-detail-col-badge.is-sat2{background:#f59e0b}.device-detail-col-batt{display:flex;flex-direction:column;gap:4px;padding:8px 10px;background:#f8fafc;border-radius:8px}.device-detail-col-batt .device-detail-battery-bar{height:6px}.device-detail-col-batt-row{display:flex;align-items:center;justify-content:space-between;font-size:12px;color:#475569;font-family:ui-monospace,SFMono-Regular,monospace}.device-detail-col-batt-row strong{color:#0f172a;font-size:13px}.device-detail-col-counters{display:grid;grid-template-columns:1fr 1fr;gap:8px}.device-detail-mini-counter{display:flex;align-items:center;gap:8px;padding:8px 10px;background:#fff;border:1px solid #e2e8f0;border-radius:8px}.device-detail-mini-counter .material-symbols-outlined{font-size:22px}.device-detail-mini-counter.is-permanent .material-symbols-outlined{color:#dc2626}.device-detail-mini-counter.is-transient .material-symbols-outlined{color:#d97706}.device-detail-mini-counter .lbl{font-size:10px;font-weight:700;color:#64748b;text-transform:uppercase;letter-spacing:.3px}.device-detail-mini-counter .val{font-size:18px;font-weight:800;color:#0f172a;font-family:ui-monospace,SFMono-Regular,monospace;line-height:1.1}.device-detail-col-section{display:flex;flex-direction:column;gap:6px}.device-detail-col-title{display:flex;align-items:center;gap:6px;font-size:11px;font-weight:700;color:#64748b;text-transform:uppercase;letter-spacing:.4px;padding-bottom:4px;border-bottom:1px solid #e2e8f0}.device-detail-col-title .material-symbols-outlined{font-size:16px;color:#4f46e5}.device-detail-col-analog{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:4px}.device-detail-col-analog-row{display:flex;flex-direction:column;justify-content:center;align-items:flex-start;gap:1px;padding:5px 8px;background:#f8fafc;border-radius:5px;font-size:11px;min-width:0}.device-detail-col-analog-row .lbl{color:#64748b;font-size:10px;font-weight:600;text-transform:uppercase;letter-spacing:.3px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}.device-detail-col-analog-row .val{font-weight:700;color:#0f172a;font-family:ui-monospace,SFMono-Regular,monospace;font-size:12px;line-height:1.2}.device-detail-col-analog-row .val .unit{color:#94a3b8;font-size:10px;font-weight:500}.device-detail-col-binary{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:4px}.device-detail-col-binary-row{display:flex;align-items:center;gap:6px;padding:5px 8px;background:#f8fafc;border-radius:5px;font-size:11px;color:#64748b}.device-detail-col-binary-row .dot{width:8px;height:8px;border-radius:50%;background:#cbd5e1;flex-shrink:0}.device-detail-col-binary-row.is-active{background:#fef2f2;color:#b91c1c}.device-detail-col-binary-row.is-active .dot{background:#dc2626;box-shadow:0 0 0 3px #dc26262e}.device-detail-col-binary-row .lbl{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}@media (max-width: 1100px){.device-detail-modal-cols{grid-template-columns:1fr}}.device-detail-col-head{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:6px}.device-detail-col-head .device-battery{display:inline-flex;align-items:center;gap:6px}.device-detail-col-head .device-battery-fill{animation:device-detail-batt-fill .7s ease-out}@keyframes device-detail-batt-fill{0%{width:0!important}}.device-detail-modal-foot--right{justify-content:flex-end}.device-detail-modal-info{display:flex;align-items:center;gap:6px;flex-wrap:wrap}.device-detail-modal-info-chip{display:inline-flex;align-items:center;gap:5px;padding:3px 9px;border-radius:6px;background:#fff;border:1px solid #e2e8f0;font-size:11px;color:#334155;max-width:280px;cursor:default;transition:border-color .15s}.device-detail-modal-info-chip:hover{border-color:#94a3b8}.device-detail-modal-info-chip .material-symbols-outlined{font-size:14px;color:#6366f1;flex-shrink:0}.device-detail-modal-info-label{font-weight:700;color:#64748b;text-transform:uppercase;letter-spacing:.4px;font-size:9px;flex-shrink:0}.device-detail-modal-info-value{font-family:ui-monospace,SFMono-Regular,monospace;font-weight:600;color:#0f172a;font-size:11px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0}.grid-fault-leaflet-wrap{background:transparent;border:none}.grid-fault-pin{width:34px;height:34px;border-radius:50%;background:radial-gradient(circle at 30% 30%,#fca5a5,#dc2626 60%,#991b1b);border:3px solid #fff;box-shadow:0 2px 8px #0006,0 0 0 4px #dc262659;display:flex;align-items:center;justify-content:center;color:#fff;cursor:pointer;animation:grid-fault-pin-pulse 1.2s ease-in-out infinite}.grid-fault-pin .material-symbols-outlined{font-size:22px!important;font-variation-settings:"FILL" 1,"wght" 700}@keyframes grid-fault-pin-pulse{0%,to{box-shadow:0 2px 8px #0006,0 0 0 4px #dc262673}50%{box-shadow:0 2px 8px #0006,0 0 0 14px #dc262600}}.grid-segment-menu{width:420px!important;max-height:80vh!important}.grid-segment-menu-inner{display:contents}.seg-menu{display:flex;flex-direction:column;min-height:0;flex:1;overflow:hidden;background:#fff}.seg-menu-head{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:14px 16px;background:linear-gradient(135deg,#eef2ff,#f8fafc);border-bottom:1px solid #e2e8f0}.seg-menu-head-text{flex:1;min-width:0}.seg-menu-eyebrow{font-size:10px;font-weight:800;color:#6366f1;letter-spacing:1px;text-transform:uppercase}.seg-menu-title{display:flex;align-items:center;gap:6px;margin-top:2px;flex-wrap:wrap}.seg-menu-pole{display:inline-flex;align-items:center;justify-content:center;min-width:32px;height:26px;padding:0 8px;background:#fff;border:1.5px solid #cbd5e1;border-radius:6px;font-weight:700;font-size:13px;color:#0f172a}.seg-menu-arrow{color:#94a3b8;font-size:16px;font-weight:700}.seg-menu-count{margin-left:4px;padding:2px 8px;background:#4f46e5;color:#fff;border-radius:10px;font-size:11px;font-weight:700}.seg-menu-count.seg-menu-count--empty{background:#e2e8f0;color:#64748b}.seg-menu-close{display:inline-flex;align-items:center;justify-content:center;width:30px;height:30px;background:transparent;border:1px solid transparent;border-radius:6px;cursor:pointer;color:#64748b;flex-shrink:0;padding:0}.seg-menu-close:hover{background:#fee2e2;border-color:#fecaca;color:#b91c1c}.seg-menu-close .material-symbols-outlined{font-size:20px}.seg-menu-body{display:flex;flex-direction:column;min-height:0;flex:1;padding:12px;gap:10px;overflow-y:auto}.seg-menu-empty{display:flex;align-items:flex-start;gap:12px;padding:16px;background:#f8fafc;border:1px dashed #cbd5e1;border-radius:8px;color:#64748b}.seg-menu-empty>.material-symbols-outlined{font-size:28px;color:#94a3b8;flex-shrink:0}.seg-menu-empty strong{display:block;font-size:13px;color:#334155;margin-bottom:2px}.seg-menu-empty p{margin:0;font-size:12px;color:#64748b}.seg-menu-devices{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px}.seg-menu-device-item{display:flex;align-items:center;gap:12px;padding:12px;background:#fff;border:1px solid #e2e8f0;border-radius:10px;transition:border-color .15s,box-shadow .15s}.seg-menu-device-item:hover{border-color:#94a3b8;box-shadow:0 2px 6px #0000000d}.seg-menu-device-icon{display:inline-flex;align-items:center;justify-content:center;width:38px;height:38px;border-radius:10px;flex-shrink:0}.seg-menu-device-icon.is-online{background:#dcfce7;color:#15803d}.seg-menu-device-icon.is-offline{background:#fee2e2;color:#b91c1c}.seg-menu-device-icon .material-symbols-outlined{font-size:22px}.seg-menu-device-main{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}.seg-menu-device-name-row{display:flex;align-items:center;gap:6px}.seg-menu-device-name{font-size:13px;font-weight:700;color:#0f172a;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.seg-menu-device-pos{font-size:10px;font-weight:700;color:#64748b;padding:2px 6px;background:#f1f5f9;border-radius:8px;flex-shrink:0}.seg-menu-device-meta{display:flex;align-items:center;gap:6px;flex-wrap:wrap;font-size:11px;color:#64748b}.seg-menu-device-code{font-family:ui-monospace,SFMono-Regular,monospace;font-size:11px;font-weight:600;color:#475569;padding:1px 6px;background:#f1f5f9;border-radius:4px}.seg-menu-device-gw{color:#475569;font-size:11px}.seg-menu-device-status{display:inline-flex;align-items:center;gap:4px;font-size:11px;font-weight:600}.seg-menu-device-status .dot{width:7px;height:7px;border-radius:50%;flex-shrink:0}.seg-menu-device-status.is-online{color:#15803d}.seg-menu-device-status.is-online .dot{background:#16a34a;box-shadow:0 0 0 2px #16a34a2e}.seg-menu-device-status.is-offline{color:#b91c1c}.seg-menu-device-status.is-offline .dot{background:#dc2626}.seg-menu-device-actions{display:inline-flex;align-items:center;gap:4px;flex-shrink:0}.seg-menu-icon-btn{display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;background:#fff;border:1px solid #cbd5e1;border-radius:6px;cursor:pointer;color:#475569;padding:0;transition:all .15s}.seg-menu-icon-btn:hover{background:#f1f5f9;border-color:#94a3b8;color:#0f172a}.seg-menu-icon-btn .material-symbols-outlined{font-size:18px}.seg-menu-icon-btn--danger{color:#b91c1c}.seg-menu-icon-btn--danger:hover{background:#fef2f2;border-color:#fca5a5;color:#991b1b}.seg-menu-add-btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:12px 16px;background:#4f46e5;color:#fff;border:none;border-radius:10px;font-size:13px;font-weight:700;cursor:pointer;transition:background .15s;margin-top:4px}.seg-menu-add-btn:hover:not(:disabled){background:#4338ca}.seg-menu-add-btn:disabled{background:#cbd5e1;cursor:not-allowed}.seg-menu-add-btn .material-symbols-outlined{font-size:20px}.seg-menu-add-count{margin-left:6px;padding:2px 8px;background:#ffffff40;border-radius:10px;font-size:11px;font-weight:700}.seg-menu-search{display:flex;align-items:center;gap:8px;padding:8px 12px;background:#f8fafc;border:1px solid #cbd5e1;border-radius:8px}.seg-menu-search>.material-symbols-outlined{font-size:18px;color:#94a3b8;flex-shrink:0}.seg-menu-search input{flex:1;min-width:0;background:transparent;border:none;outline:none;font-size:13px;color:#0f172a}.seg-menu-search input::placeholder{color:#94a3b8}.seg-menu-search-count{font-size:11px;font-weight:700;color:#64748b;font-family:ui-monospace,SFMono-Regular,monospace;padding:2px 8px;background:#fff;border:1px solid #e2e8f0;border-radius:8px;flex-shrink:0}.seg-menu-pickable{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:6px}.seg-menu-pickable-item{display:flex;align-items:center;gap:12px;width:100%;padding:10px 12px;background:#fff;border:1px solid #e2e8f0;border-radius:8px;cursor:pointer;text-align:left;transition:all .15s}.seg-menu-pickable-item:hover{background:#eef2ff;border-color:#6366f1;box-shadow:0 2px 6px #6366f11f}.seg-menu-pickable-arrow{color:#94a3b8;font-size:18px;flex-shrink:0}.seg-menu-pickable-item:hover .seg-menu-pickable-arrow{color:#4f46e5}.seg-menu-target-route{display:inline-flex;align-items:center;gap:4px;flex-shrink:0}.seg-menu-target-status{flex:1;font-size:11px;font-weight:600;text-align:right}.seg-menu-target-status.is-ok{color:#16a34a}.seg-menu-target-status.is-warn{color:#b45309}.seg-menu-move-info{display:flex;align-items:center;gap:10px;padding:10px 12px;background:#fffbeb;border:1px solid #fde68a;border-radius:8px}.seg-menu-move-info>.material-symbols-outlined{font-size:22px;color:#d97706}.seg-menu-move-info strong{display:block;font-size:13px;color:#92400e}.seg-menu-move-info p{margin:0;font-size:11px;color:#b45309}.seg-menu-back-btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;padding:8px 12px;background:transparent;border:1px solid #cbd5e1;border-radius:8px;color:#475569;font-size:12px;font-weight:600;cursor:pointer;transition:all .15s;margin-top:auto;align-self:flex-start}.seg-menu-back-btn:hover{background:#f1f5f9;border-color:#94a3b8;color:#0f172a}.seg-menu-back-btn .material-symbols-outlined{font-size:18px}.map-ctx-menu{position:fixed;z-index:9999;background:#fff;border:1px solid #cbd5e1;border-radius:8px;box-shadow:0 8px 24px #0f172a2e;min-width:220px;overflow:hidden}.map-ctx-menu-head{display:flex;align-items:center;justify-content:space-between;padding:8px 12px;background:linear-gradient(135deg,#eef2ff,#f8fafc);border-bottom:1px solid #e2e8f0;font-size:12px;font-weight:700;color:#1e293b}.map-ctx-menu-close{background:transparent;border:none;color:#64748b;cursor:pointer;font-size:18px;padding:0 4px}.map-ctx-menu-close:hover{color:#b91c1c}.map-ctx-menu-item{display:flex;align-items:center;gap:8px;width:100%;padding:8px 12px;background:transparent;border:none;text-align:left;cursor:pointer;font-size:13px;color:#334155;transition:background .15s}.map-ctx-menu-item:hover{background:#eef2ff;color:#4338ca}.map-ctx-menu-item .material-symbols-outlined{font-size:18px;color:#6366f1}.map-ctx-menu-item--danger{color:#b91c1c}.map-ctx-menu-item--danger:hover{background:#fef2f2;color:#991b1b}.map-ctx-menu-item--danger .material-symbols-outlined{color:#dc2626}.line-branch-fieldset{border:1px solid #cbd5e1;border-radius:8px;padding:10px 12px;margin:8px 0;background:#f8fafc}.line-branch-fieldset legend{font-size:12px;font-weight:600;color:#334155;padding:0 6px}.line-branch-fieldset legend .notify-option{display:inline-flex;align-items:center;gap:6px;font-size:13px;font-weight:600;color:#1e293b;cursor:pointer}.line-branch-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:8px}.line-branch-grid label{display:flex;flex-direction:column;gap:4px;font-size:12px;color:#475569}.line-branch-grid select{padding:6px 8px;border:1px solid #cbd5e1;border-radius:6px;font-size:13px;background:#fff}.grid-device-name-label.leaflet-tooltip{background:#0f172ad9;color:#fff;border:none;border-radius:4px;padding:2px 6px;font-size:10px;font-weight:600;box-shadow:0 1px 3px #00000040;white-space:nowrap}.grid-device-name-label.leaflet-tooltip-top:before{border-top-color:#0f172ad9}.notif-prefs-section{display:flex;flex-direction:column;gap:12px;padding:14px 16px;background:#f8fafc;border-radius:12px;margin-top:14px}.notif-prefs-section h4{margin:0;font-size:14px;font-weight:700;color:#0f172a}.notif-prefs-row{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:10px 12px;background:#fff;border-radius:10px;border:1px solid rgba(148,163,184,.25)}.notif-prefs-row-label{display:flex;flex-direction:column;flex:1}.notif-prefs-row-label strong{font-size:13.5px;color:#0f172a}.notif-prefs-row-label span{font-size:11.5px;color:#64748b}.notif-prefs-toggle{position:relative;width:44px;height:24px;background:#cbd5e1;border-radius:999px;cursor:pointer;border:none;padding:0;transition:background .18s ease}.notif-prefs-toggle:after{content:"";position:absolute;top:2px;left:2px;width:20px;height:20px;background:#fff;border-radius:50%;box-shadow:0 1px 3px #0003;transition:transform .18s ease}.notif-prefs-toggle.on{background:#ff8c00}.notif-prefs-toggle.on:after{transform:translate(20px)}.faults-page{display:flex;flex-direction:column;gap:14px;padding:4px 0 20px;background:transparent;width:100%;max-width:none;flex:1 1 auto;min-height:0;overflow-y:auto}.fx-kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr)) auto;gap:12px;align-items:stretch;flex-shrink:0}@media (max-width: 1100px){.fx-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}.fx-kpi-updated{grid-column:1 / -1}}.fx-kpi{display:flex;align-items:center;gap:12px;padding:14px 16px;background:#fff;border:1px solid #e2e8f0;border-radius:14px;box-shadow:0 1px 3px #0f172a0a;transition:border-color .15s ease,box-shadow .15s ease}.fx-kpi:hover{border-color:#cbd5e1;box-shadow:0 3px 10px #0f172a12}.fx-kpi-icon{width:40px;height:40px;flex-shrink:0;display:inline-flex;align-items:center;justify-content:center;border-radius:12px;background:#f1f5f9;color:#64748b}.fx-kpi--bad .fx-kpi-icon{background:#fee2e2;color:#dc2626}.fx-kpi--ok .fx-kpi-icon{background:#dcfce7;color:#059669}.fx-kpi--info .fx-kpi-icon{background:#e0e7ff;color:#4f46e5}.fx-kpi--muted .fx-kpi-icon{background:#f1f5f9;color:#64748b}.fx-kpi-body{display:flex;flex-direction:column;gap:3px;min-width:0}.fx-kpi-label{font-size:12px;font-weight:600;color:#64748b}.fx-kpi-value{font-size:22px;font-weight:800;line-height:1.05;letter-spacing:-.02em;color:#0f172a;font-variant-numeric:tabular-nums}.fx-kpi--bad .fx-kpi-value{color:#dc2626}.fx-kpi--ok .fx-kpi-value{color:#059669}.fx-kpi--info .fx-kpi-value{color:#4338ca}.fx-kpi-updated{display:flex;align-items:center;gap:9px;padding:14px 16px;background:#fff;border:1px solid #e2e8f0;border-radius:14px;color:#64748b;white-space:nowrap}.fx-kpi-updated svg{color:#94a3b8}.fx-kpi-updated span{display:flex;flex-direction:column;line-height:1.3}.fx-kpi-updated small{font-size:11px}.fx-kpi-updated strong{font-size:13px;color:#334155;font-variant-numeric:tabular-nums}.fx-spin{animation:fx-spin-rotate 1s linear infinite}@keyframes fx-spin-rotate{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.fx-tabs{display:flex;align-items:center;gap:4px;flex-shrink:0;border-bottom:1px solid #e2e8f0}.fx-tab{display:inline-flex;align-items:center;gap:8px;padding:11px 16px;border:0;border-bottom:2px solid transparent;background:transparent;color:#64748b;font-size:14px;font-weight:600;cursor:pointer;transition:color .15s ease,border-color .15s ease}.fx-tab:hover{color:#334155}.fx-tab svg{color:#94a3b8}.fx-tab.is-active{color:#2563eb;border-bottom-color:#2563eb}.fx-tab.is-active svg{color:#2563eb}.fx-tab-count{display:inline-flex;align-items:center;min-width:20px;justify-content:center;padding:1px 7px;border-radius:999px;background:#f1f5f9;color:#475569;font-size:11.5px;font-weight:700}.fx-tab.is-active .fx-tab-count{background:#dbeafe;color:#1d4ed8}.fx-active-list,.fx-history,.fx-empty{flex:1 0 auto;min-height:0}.fx-active-list{display:flex;flex-direction:column;gap:12px}.fx-card{display:grid;grid-template-columns:minmax(230px,300px) minmax(0,1fr) minmax(170px,190px);gap:20px;align-items:stretch;padding:18px 20px;background:#fff;border:1px solid #e2e8f0;border-left:4px solid #ef4444;border-radius:16px;box-shadow:0 1px 3px #0f172a0d;transition:box-shadow .18s ease}.fx-card:hover{box-shadow:0 4px 16px #0f172a17}.fx-card--assigned{border-left-color:#f59e0b}.fx-card--in_progress{border-left-color:#3b82f6}@media (max-width: 1240px){.fx-card{grid-template-columns:minmax(0,1fr)}}.fx-card-ident{display:flex;flex-direction:column;gap:4px;min-width:0}.fx-card-region{display:inline-flex;align-items:center;gap:5px;font-size:11.5px;font-weight:700;letter-spacing:.05em;text-transform:uppercase;color:#2563eb}.fx-card-line{margin:2px 0 6px;font-size:26px;font-weight:800;letter-spacing:-.025em;color:#0f172a;line-height:1.05}.fx-card-range-label{font-size:11px;color:#94a3b8;font-weight:600}.fx-card-range{font-size:15px;font-weight:700;color:#dc2626;margin-bottom:8px}.fx-card-badges{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:10px}.fx-badge{display:inline-flex;align-items:center;gap:5px;padding:3px 9px;border-radius:999px;font-size:11.5px;font-weight:700;background:#f1f5f9;border:1px solid #e2e8f0;color:#475569;white-space:nowrap}.fx-badge--status-open{background:#fee2e2;border-color:#fecaca;color:#b91c1c}.fx-badge--status-assigned{background:#fef3c7;border-color:#fde68a;color:#92400e}.fx-badge--status-in_progress{background:#dbeafe;border-color:#bfdbfe;color:#1d4ed8}.fx-badge--status-resolved,.fx-badge--status-closed{background:#dcfce7;border-color:#bbf7d0;color:#15803d}.fx-badge--located{background:#ecfdf5;border-color:#a7f3d0;color:#047857}.fx-card-meta{display:flex;flex-direction:column;gap:7px;margin:0}.fx-card-meta>div{display:flex;align-items:baseline;gap:8px}.fx-card-meta dt{display:inline-flex;align-items:center;gap:5px;min-width:86px;flex-shrink:0;font-size:12px;color:#94a3b8}.fx-card-meta dt svg{color:#cbd5e1}.fx-card-meta dd{margin:0;font-size:12.5px;font-weight:600;color:#334155;font-variant-numeric:tabular-nums}.fx-card-meta-live{display:inline-flex;align-items:center;gap:6px;color:#dc2626!important}.fx-live-dot{width:7px;height:7px;border-radius:50%;background:#ef4444;animation:fx-pulse 1.6s ease-in-out infinite}@keyframes fx-pulse{0%,to{opacity:1}50%{opacity:.3}}.fx-dim{color:#94a3b8;font-style:normal;font-weight:500}.fx-card-zone{display:flex;flex-direction:column;align-items:center;gap:8px;min-width:0;padding:0 8px}.fx-card-zone-title{font-size:11px;font-weight:700;letter-spacing:.07em;text-transform:uppercase;color:#94a3b8}.fx-strip{width:100%;max-width:520px;height:auto;display:block}.fx-strip-pin.is-active{animation:fx-pin-bob 2.4s ease-in-out infinite;transform-box:fill-box;transform-origin:center bottom}@keyframes fx-pin-bob{0%,to{transform:translateY(0)}50%{transform:translateY(-3px)}}.fx-card-devices{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;width:100%;max-width:520px}.fx-dev{display:flex;align-items:center;gap:10px;padding:9px 11px;border-radius:11px;border:1px solid #e2e8f0;background:#f8fafc;min-width:0}.fx-dev--red{background:#fef2f2;border-color:#fecaca}.fx-dev--green{background:#f0fdf4;border-color:#bbf7d0}.fx-dev-icon{width:30px;height:30px;flex-shrink:0;display:inline-flex;align-items:center;justify-content:center;border-radius:9px;background:#fff}.fx-dev--red .fx-dev-icon{color:#dc2626}.fx-dev--green .fx-dev-icon{color:#059669}.fx-dev-text{display:flex;flex-direction:column;gap:1px;min-width:0}.fx-dev-text small{font-size:10.5px;color:#64748b;line-height:1.25}.fx-dev-text strong{font-size:13px;font-weight:700;color:#0f172a;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.fx-dev-text code{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:10.5px;color:#94a3b8}.fx-card-actions{display:flex;flex-direction:column;gap:8px;justify-content:center}.fx-btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:10px 14px;border:1px solid #e2e8f0;border-radius:10px;background:#fff;color:#334155;font-size:13px;font-weight:600;cursor:pointer;white-space:nowrap;transition:background .15s ease,border-color .15s ease,box-shadow .15s ease}.fx-btn:hover:not(:disabled){background:#f8fafc;border-color:#cbd5e1}.fx-btn:disabled{opacity:.55;cursor:not-allowed}.fx-btn svg{flex-shrink:0}.fx-btn--primary{background:linear-gradient(135deg,#3b82f6,#2563eb);border-color:#2563eb;color:#fff;box-shadow:0 2px 8px #2563eb47}.fx-btn--primary:hover:not(:disabled){background:linear-gradient(135deg,#2563eb,#1d4ed8);border-color:#1d4ed8}.fx-btn--soft{background:#eff6ff;border-color:#bfdbfe;color:#1d4ed8}.fx-btn--soft:hover:not(:disabled){background:#dbeafe;border-color:#93c5fd}.fx-btn--ghost{background:transparent;border-color:#e2e8f0;color:#64748b}.fx-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;padding:64px 32px;text-align:center;background:#fff;border:1px solid #e2e8f0;border-radius:16px;color:#94a3b8;font-size:13px}.fx-empty svg{color:#cbd5e1}.fx-empty--ok svg{color:#34d399}.fx-empty h4{margin:4px 0 0;font-size:17px;color:#334155}.fx-empty p{margin:0;max-width:46ch;line-height:1.5}.fx-history{display:flex;flex-direction:column;background:#fff;border:1px solid #e2e8f0;border-radius:16px;overflow:hidden;box-shadow:0 1px 3px #0f172a0d}.fx-history-head{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap;padding:14px 18px;border-bottom:1px solid #e2e8f0;background:linear-gradient(180deg,#f8fafc,#fff)}.fx-history-head h3{margin:0;font-size:17px;font-weight:700;color:#0f172a}.fx-history-filters{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.fx-history-filters select{padding:8px 12px;border:1px solid #e2e8f0;border-radius:9px;background:#fff;color:#334155;font-size:13px;cursor:pointer}.fx-history-filters select:focus{outline:none;border-color:#93c5fd;box-shadow:0 0 0 3px #3b82f61f}.fx-search{display:inline-flex;align-items:center;gap:7px;padding:0 12px;border:1px solid #e2e8f0;border-radius:9px;background:#f8fafc;transition:border-color .15s,box-shadow .15s,background .15s}.fx-search:focus-within{border-color:#93c5fd;background:#fff;box-shadow:0 0 0 3px #3b82f61f}.fx-search svg{color:#94a3b8;flex-shrink:0}.fx-search input{width:260px;max-width:100%;padding:8px 0;border:0;background:transparent;font-size:13px;color:#0f172a}.fx-search input:focus{outline:none}.fx-history-table-wrap{overflow-x:auto}.fx-history-table{width:100%;border-collapse:separate;border-spacing:0;min-width:900px}.fx-history-table th{padding:10px 14px;background:#f8fafc;border-bottom:1px solid #e2e8f0;color:#475569;font-size:10.5px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;text-align:left;white-space:nowrap}.fx-history-table td{padding:11px 14px;border-bottom:1px solid #eef2f7;font-size:13px;color:#334155;vertical-align:middle}.fx-col-toggle{width:40px}.fx-history-row{cursor:pointer;transition:background .12s ease}.fx-history-row:hover td{background:#f8fafc}.fx-history-row.is-open td{background:#f1f5f9;border-bottom-color:transparent}.fx-toggle-btn{display:inline-flex;align-items:center;justify-content:center;width:24px;height:24px;border-radius:7px;background:#f1f5f9;color:#64748b}.fx-history-row.is-open .fx-toggle-btn{background:#dbeafe;color:#1d4ed8}.fx-history-line{display:block;font-size:13.5px;font-weight:700;color:#2563eb}.fx-history-region{display:block;font-size:11px;color:#94a3b8}.fx-history-range{color:#dc2626;font-weight:600;white-space:nowrap}.fx-history-date,.fx-history-duration{white-space:nowrap;font-variant-numeric:tabular-nums}.fx-history-detail-row td{padding:0 14px 14px!important;background:#f1f5f9}.fx-history-detail{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}@media (max-width: 960px){.fx-history-detail{grid-template-columns:minmax(0,1fr)}}.fx-panel{display:flex;flex-direction:column;gap:8px;padding:13px 15px;background:#fff;border:1px solid #e2e8f0;border-radius:12px}.fx-panel-head{display:inline-flex;align-items:center;gap:7px;font-size:12.5px;font-weight:700;color:#334155}.fx-panel-head svg{color:#94a3b8}.fx-panel>p{margin:0;font-size:12.5px;line-height:1.5}.fx-note-body{color:#334155;white-space:pre-wrap;word-break:break-word}.fx-comment-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px;max-height:190px;overflow-y:auto}.fx-comment-list li{padding:8px 10px;background:#f8fafc;border-left:3px solid #bfdbfe;border-radius:8px}.fx-comment-meta{display:flex;align-items:baseline;gap:8px;margin-bottom:3px}.fx-comment-meta strong{font-size:12px;color:#1d4ed8}.fx-comment-meta span{font-size:10.5px;color:#94a3b8}.fx-comment-list p{margin:0;font-size:12.5px;color:#334155;line-height:1.45;white-space:pre-wrap;word-break:break-word}.fx-inline-form{display:flex;flex-direction:column;gap:8px;align-items:flex-start}.fx-inline-form textarea{width:100%;padding:8px 10px;border:1px solid #e2e8f0;border-radius:9px;font-size:12.5px;font-family:inherit;color:#0f172a;resize:vertical;background:#f8fafc}.fx-inline-form textarea:focus{outline:none;border-color:#93c5fd;background:#fff;box-shadow:0 0 0 3px #3b82f61f}.fx-inline-form-actions{display:flex;gap:8px}.fault-modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#0f172a8c;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:1500;display:flex;align-items:center;justify-content:center;padding:20px;animation:fault-modal-fade .18s ease-out}@keyframes fault-modal-fade{0%{opacity:0}to{opacity:1}}.fault-modal{background:#fff;border-radius:18px;width:100%;max-width:1480px;max-height:calc(100vh - 40px);overflow:hidden;display:flex;flex-direction:column;box-shadow:0 20px 60px #0f172a66;animation:fault-modal-slide .22s ease-out;position:relative}@keyframes fault-modal-slide{0%{transform:translateY(12px);opacity:.6}to{transform:translateY(0);opacity:1}}.fault-modal-close{position:absolute;top:18px;right:22px;width:32px;height:32px;border-radius:50%;border:none;background:#0f172a0f;color:#475569;cursor:pointer;display:flex;align-items:center;justify-content:center;z-index:2;transition:background .15s ease}.fault-modal-close:hover{background:#0f172a24;color:#0f172a}.fault-modal-head{position:relative;padding:22px 56px 18px 24px;border-bottom:1px solid rgba(148,163,184,.2);display:flex;flex-wrap:wrap;gap:16px;align-items:flex-start;justify-content:space-between}.fault-modal-head-left{display:flex;flex-direction:column;gap:6px;min-width:0}.fault-modal-head-left h2{margin:0;font-size:20px;color:#0f172a}.fault-modal-status-pill{align-self:flex-start;padding:4px 12px;border-radius:999px;font-size:11px;font-weight:700;letter-spacing:.04em;text-transform:uppercase}.fault-modal-breadcrumbs{display:flex;align-items:center;gap:6px;font-size:12.5px;color:#64748b;flex-wrap:wrap}.fault-modal-breadcrumbs .material-symbols-outlined{font-size:16px!important}.fault-modal-breadcrumbs strong{color:#6366f1}.fault-modal-bc-sep{color:#cbd5e1}.fault-modal-head-right{display:flex;gap:10px;align-items:stretch;flex-wrap:wrap}.fault-modal-time-pill{display:inline-flex;align-items:center;gap:10px;padding:8px 14px 8px 10px;border-radius:12px;background:#f8fafc;border:1px solid rgba(148,163,184,.25);min-width:160px;transition:transform .18s ease,box-shadow .18s ease}.fault-modal-time-pill>div{display:flex;flex-direction:column;gap:0;min-width:0}.fault-modal-time-pill-label{font-size:10px;text-transform:uppercase;letter-spacing:.08em;color:#94a3b8;font-weight:700;line-height:1.2;margin-bottom:2px}.fault-modal-time-pill strong{font-size:14px;color:#0f172a;font-weight:700;font-variant-numeric:tabular-nums;letter-spacing:.01em;line-height:1.25;white-space:nowrap}.fault-modal-time-pill-icon{width:32px;height:32px;border-radius:9px;display:flex;align-items:center;justify-content:center;flex-shrink:0}.fault-modal-time-pill-icon .material-symbols-outlined{font-size:18px!important}.fault-modal-time-pill--opened{background:linear-gradient(135deg,#f5f3ff,#ede9fe);border-color:#6366f140}.fault-modal-time-pill--opened .fault-modal-time-pill-icon{background:#6366f12e;color:#6366f1}.fault-modal-time-pill--opened .fault-modal-time-pill-label{color:#6366f1}.fault-modal-time-pill--elapsed.is-live{background:linear-gradient(135deg,#fef2f2,#ffe4e6);border-color:#ef444459;box-shadow:0 2px 10px #ef44441a}.fault-modal-time-pill--elapsed.is-live .fault-modal-time-pill-icon{background:#ef44442e}.fault-modal-time-pill--elapsed.is-live .fault-modal-time-pill-label,.fault-modal-time-pill--elapsed.is-live strong{color:#b91c1c}.fault-modal-time-pill--elapsed.is-final{background:linear-gradient(135deg,#f0fdf4,#dcfce7);border-color:#10b9814d}.fault-modal-time-pill--elapsed.is-final .fault-modal-time-pill-icon{background:#10b9812e;color:#10b981}.fault-modal-time-pill--elapsed.is-final .fault-modal-time-pill-label,.fault-modal-time-pill--elapsed.is-final strong{color:#047857}.fault-modal-elapsed-pulse{width:14px;height:14px;border-radius:50%;background:#ef4444;display:inline-block;box-shadow:0 0 #ef444499;animation:fault-elapsed-pulse 1.4s ease-out infinite;position:relative}.fault-modal-elapsed-pulse:after{content:"";position:absolute;top:4px;right:4px;bottom:4px;left:4px;border-radius:50%;background:#fff;opacity:.6}@keyframes fault-elapsed-pulse{0%{box-shadow:0 0 #ef44448c}70%{box-shadow:0 0 0 10px #ef444400}to{box-shadow:0 0 #ef444400}}.fault-modal-body{flex:1;display:grid;grid-template-columns:minmax(0,1.35fr) minmax(280px,.85fr) minmax(320px,1fr);gap:0;overflow:hidden}@media (max-width: 1200px){.fault-modal-body{grid-template-columns:minmax(0,1fr) minmax(0,.85fr)}.fault-modal-comments-col{grid-column:1 / -1;border-top:1px solid rgba(148,163,184,.18);border-left:none!important}}@media (max-width: 900px){.fault-modal-body{grid-template-columns:1fr;overflow-y:auto}}.fault-modal-left,.fault-modal-mid,.fault-modal-comments-col{padding:18px 22px;display:flex;flex-direction:column;gap:16px;min-width:0}.fault-modal-mid,.fault-modal-comments-col{overflow-y:auto}.fault-modal-left{border-right:1px solid rgba(148,163,184,.18);overflow:hidden}.fault-modal-mid{border-right:1px solid rgba(148,163,184,.18);background:#fcfcfd}.fault-modal-comments-col{background:#f8fafc}@media (max-width: 900px){.fault-modal-left,.fault-modal-mid{border-right:none;border-bottom:1px solid rgba(148,163,184,.18);overflow-y:visible}}.fault-modal-section h4{margin:0 0 10px;font-size:13px;font-weight:700;color:#0f172a;text-transform:uppercase;letter-spacing:.05em;display:flex;align-items:center;gap:8px}.fault-modal-section--comments h4{margin-bottom:8px}.fault-modal-count{background:#6366f1;color:#fff;font-size:11px;padding:2px 8px;border-radius:999px;text-transform:none;letter-spacing:0;font-weight:700}.fault-modal-map-wrap{display:flex;flex-direction:column;gap:8px}.fault-modal-map{width:100%;height:240px;border-radius:12px;overflow:hidden;border:1px solid rgba(148,163,184,.25);z-index:0;flex-shrink:0}.fault-modal-map-empty{padding:40px;text-align:center;color:#94a3b8;font-size:13px;background:#f8fafc;border-radius:10px;border:1px dashed rgba(148,163,184,.3)}.fault-modal-map-legend{display:flex;gap:14px;font-size:11.5px;color:#64748b;flex-wrap:wrap}.fault-modal-map-legend i{display:inline-block;width:14px;height:4px;margin-right:5px;vertical-align:middle;border-radius:2px}.fault-modal-pole-icon-wrap{background:transparent!important;border:none!important}.fault-modal-pole-icon{width:22px;height:22px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:10px;font-weight:700;color:#fff;border:2px solid #fff;box-shadow:0 1px 4px #0006}.fault-modal-dev-icon-wrap{background:transparent!important;border:none!important}.fault-modal-dev-icon{--c: #10b981;width:22px;height:22px;border-radius:50%;background:var(--c);border:3px solid #fff;box-shadow:0 2px 4px #00000059;display:flex;align-items:center;justify-content:center;position:relative}.fault-modal-dev-icon:after{content:"";position:absolute;top:-3px;right:-3px;bottom:-3px;left:-3px;border-radius:50%;border:1.5px solid var(--c);opacity:.45;pointer-events:none}.fault-modal-map-legend .fault-modal-legend-dot{width:10px!important;height:10px!important;border-radius:50%!important;margin-right:6px}.fault-modal-card{background:#fff;border:1px solid rgba(148,163,184,.2);border-radius:14px;padding:14px 16px;display:flex;flex-direction:column;gap:12px;box-shadow:0 1px 3px #0f172a0a}.fault-modal-card-head{display:flex;align-items:center;gap:10px}.fault-modal-card-icon{width:36px;height:36px;border-radius:10px;display:flex;align-items:center;justify-content:center;flex-shrink:0}.fault-modal-card-icon .material-symbols-outlined{font-size:20px!important}.fault-modal-card-head h4{margin:0;font-size:13.5px;font-weight:700;text-transform:none;letter-spacing:0;color:#0f172a}.fault-modal-card-head p{margin:1px 0 0;font-size:11.5px;color:#64748b;font-weight:500}.fault-modal-field{display:flex;flex-direction:column;gap:6px}.fault-modal-assignee-display{display:flex;align-items:center;gap:10px;background:#f8fafc;border-radius:10px;padding:8px 12px}.fault-modal-assignee-avatar{width:32px;height:32px;border-radius:50%;background:#6366f1;color:#fff;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:11px;letter-spacing:.04em}.fault-modal-assignee-display strong{font-size:13px;display:block;color:#0f172a}.fault-modal-assignee-display small{font-size:11px;color:#64748b}.fault-modal-assignee-empty{font-style:italic;color:#94a3b8}.fault-modal-status-grid{display:grid;grid-template-columns:1fr 1fr;gap:6px}.fault-modal-status-card{display:flex;align-items:center;gap:8px;padding:9px 12px;background:#fff;border:1.5px solid rgba(148,163,184,.35);border-radius:10px;font-size:12.5px;font-weight:600;color:#0f172a;cursor:pointer;transition:all .15s ease;text-align:left}.fault-modal-status-card:hover:not(:disabled){background:#f8fafc;border-color:#6366f1}.fault-modal-status-card:disabled{opacity:.55;cursor:not-allowed}.fault-modal-status-card.active{font-weight:700}.fault-modal-status-card-dot{width:10px;height:10px;border-radius:50%;flex-shrink:0;box-shadow:0 0 0 3px #ffffffb3}.fault-modal-status-card.active .fault-modal-status-card-dot{background:#ffffffd9!important;box-shadow:0 0 0 3px #fff6}.fault-modal-card textarea,.fault-modal-card select{padding:9px 12px;border:1.5px solid rgba(148,163,184,.35);border-radius:10px;font-family:inherit;font-size:13px;background:#f9fafb;color:#0f172a;resize:none;transition:border-color .15s ease,background .15s ease}.fault-modal-card textarea:focus,.fault-modal-card select:focus{outline:none;border-color:#6366f1;background:#fff;box-shadow:0 0 0 3px #6366f11a}.fault-modal-card .fault-modal-save-btn{align-self:flex-end;display:inline-flex;align-items:center;gap:6px}.fault-modal-card .fault-modal-save-btn .material-symbols-outlined{font-size:16px!important}.fault-modal-card--note{flex:1 1 auto;display:flex;flex-direction:column;min-height:200px}.fault-modal-card--note textarea{flex:1 1 auto;min-height:140px}.fault-modal-poles-list{list-style:none;margin:0;display:flex;flex-direction:column;gap:4px;background:#f8fafc;border-radius:10px;padding:6px;border:1px solid rgba(148,163,184,.2)}.fault-modal-pole-row{display:grid;grid-template-columns:auto 1fr auto;gap:10px;align-items:center;padding:6px 10px;background:#fff;border-radius:8px;font-size:12.5px;border-left:3px solid transparent}.fault-modal-pole-row.is-start{border-left-color:#ef4444;background:#ef44440a}.fault-modal-pole-row.is-end{border-left-color:#10b981;background:#10b9810a}.fault-modal-pole-seq{font-weight:700;color:#6366f1;font-size:12px;min-width:30px}.fault-modal-pole-name{display:flex;align-items:center;gap:8px;min-width:0}.fault-modal-pole-name strong{font-weight:600;color:#0f172a;font-size:12.5px}.fault-modal-pole-tag{padding:2px 6px;border-radius:999px;font-size:9.5px;font-weight:700;letter-spacing:.04em;text-transform:uppercase}.fault-modal-pole-tag--red{background:#ef444426;color:#b91c1c}.fault-modal-pole-tag--green{background:#10b98126;color:#047857}.fault-modal-pole-coords{font-family:monospace;font-size:11px;color:#64748b;white-space:nowrap}.fault-modal-devices{display:flex;align-items:stretch;gap:10px}.fault-modal-device{flex:1;display:flex;align-items:flex-start;gap:8px;background:#f8fafc;border-radius:10px;padding:12px 14px;border:1px solid rgba(148,163,184,.2)}.fault-modal-device--red{border-left:4px solid #ef4444;background:#ef44440d}.fault-modal-device--green{border-left:4px solid #10b981;background:#10b9810d}.fault-modal-device-dot{width:12px;height:12px;border-radius:50%;margin-top:4px;flex-shrink:0}.fault-modal-device--red .fault-modal-device-dot{background:#ef4444;box-shadow:0 0 0 4px #ef444433}.fault-modal-device--green .fault-modal-device-dot{background:#10b981;box-shadow:0 0 0 4px #10b98133}.fault-modal-device>div{display:flex;flex-direction:column;gap:2px}.fault-modal-device-role{font-size:10.5px;text-transform:uppercase;letter-spacing:.04em;color:#64748b;font-weight:700}.fault-modal-device strong{font-size:14px;color:#0f172a;font-weight:700}.fault-modal-device small{font-size:11px;color:#94a3b8;font-family:monospace}.fault-modal-device-arrow{display:flex;align-items:center;color:#cbd5e1}.fault-modal-device-arrow .material-symbols-outlined{font-size:22px!important}.fault-modal-devices-hint{margin:8px 0 0;font-size:11.5px;color:#64748b;font-style:italic}.fault-modal-row{display:flex;flex-direction:column;gap:6px;margin-bottom:10px}.fault-modal-label{font-size:10.5px;text-transform:uppercase;letter-spacing:.06em;color:#94a3b8;font-weight:700}.fault-modal-row select,.fault-modal-section textarea{padding:8px 10px;border:1px solid rgba(148,163,184,.4);border-radius:8px;font-family:inherit;font-size:13px;background:#f9fafb;resize:vertical}.fault-modal-row select:focus,.fault-modal-section textarea:focus{outline:none;border-color:#ff8c00;background:#fff}.fault-modal-value{padding:8px 10px;background:#f8fafc;border-radius:8px;color:#0f172a;font-weight:500}.fault-modal-status-buttons{display:flex;flex-wrap:wrap;gap:6px}.fault-modal-status-btn{padding:6px 12px;border:1px solid rgba(148,163,184,.4);background:#fff;border-radius:999px;font-size:12px;font-weight:600;cursor:pointer;transition:all .15s ease}.fault-modal-status-btn:hover:not(:disabled){border-color:#6366f1;color:#6366f1}.fault-modal-status-btn:disabled{opacity:.6;cursor:not-allowed}.fault-modal-save-btn{align-self:flex-start;padding:6px 14px;margin-top:6px;background:#ff8c00;color:#fff;border:none;border-radius:8px;font-size:12.5px;font-weight:600;cursor:pointer}.fault-modal-save-btn:hover:not(:disabled){background:#e67c00}.fault-modal-save-btn:disabled{opacity:.6;cursor:not-allowed}.fault-modal-comments{list-style:none;margin:0 0 10px;padding:0;display:flex;flex-direction:column;gap:10px;flex:1;min-height:200px;overflow-y:auto}.fault-modal-comments-col .fault-modal-section--comments{flex:1;display:flex;flex-direction:column;min-height:0}.fault-modal-comments-empty{padding:20px;text-align:center;font-size:12.5px;color:#94a3b8;background:#f8fafc;border-radius:10px;border:1px dashed rgba(148,163,184,.3)}.fault-modal-comment{background:#f8fafc;border-radius:10px;padding:10px 12px;border-left:3px solid #6366f1}.fault-modal-comment header{display:flex;justify-content:space-between;align-items:center;font-size:12px;margin-bottom:6px}.fault-modal-comment-author{display:flex;align-items:center;gap:6px}.fault-modal-comment-avatar{width:22px;height:22px;border-radius:50%;background:#6366f1;color:#fff;display:flex;align-items:center;justify-content:center;font-size:10px;font-weight:700}.fault-modal-comment-author strong{color:#0f172a;font-weight:700}.fault-modal-comment-time{font-size:11px;color:#94a3b8}.fault-modal-comment p{margin:0;font-size:13px;color:#0f172a;white-space:pre-wrap;line-height:1.5}.fault-modal-comment-add{display:flex;flex-direction:column;gap:8px}.fault-modal-comment-add textarea{width:100%}.fault-modal-comment-add button{align-self:flex-end;display:inline-flex;align-items:center;gap:6px;padding:7px 16px;background:#16a34a;color:#fff;border:none;border-radius:8px;font-size:12.5px;font-weight:600;cursor:pointer}.fault-modal-comment-add button:hover:not(:disabled){background:#15803d}.fault-modal-comment-add button:disabled{opacity:.6;cursor:not-allowed}.fault-modal-comment-add button .material-symbols-outlined{font-size:16px!important}.fault-modal-error{padding:8px 12px;background:#ef44441a;color:#b91c1c;border-radius:8px;font-size:12px}.backups-panel{display:flex;flex-direction:column;gap:12px;padding:14px 16px!important;min-height:0;flex:1;overflow:hidden!important;background:#f6f8fb!important}.backups-hero{display:flex;align-items:center;justify-content:space-between;gap:20px;flex-wrap:wrap;flex-shrink:0;padding:16px 18px;border-radius:16px;border:1px solid #e2e8f0;background:#fff;box-shadow:0 1px 3px #0f172a0d;border-left:5px solid #94a3b8;position:relative;overflow:hidden}.backups-hero.is-ok{border-left-color:#10b981;background:linear-gradient(100deg,#ecfdf5,#fff 42%)}.backups-hero.is-stale{border-left-color:#f59e0b;background:linear-gradient(100deg,#fffbeb,#fff 42%)}.backups-hero.is-fail{border-left-color:#ef4444;background:linear-gradient(100deg,#fef2f2,#fff 42%)}.backups-hero.is-empty{border-left-color:#94a3b8;background:linear-gradient(100deg,#f8fafc,#fff 42%)}.backups-hero-main{display:flex;align-items:center;gap:16px;min-width:260px;flex:1 1 380px}.backups-hero-badge{width:54px;height:54px;flex-shrink:0;display:flex;align-items:center;justify-content:center;border-radius:15px;color:#fff;background:linear-gradient(135deg,#94a3b8,#64748b);box-shadow:0 4px 12px #64748b4d}.backups-hero.is-ok .backups-hero-badge{background:linear-gradient(135deg,#34d399,#059669);box-shadow:0 4px 12px #0596694d}.backups-hero.is-stale .backups-hero-badge{background:linear-gradient(135deg,#fbbf24,#d97706);box-shadow:0 4px 12px #d977064d}.backups-hero.is-fail .backups-hero-badge{background:linear-gradient(135deg,#f87171,#dc2626);box-shadow:0 4px 12px #dc26264d}.backups-hero-badge .material-symbols-outlined{font-size:30px;font-variation-settings:"FILL" 1}.backups-hero-text{min-width:0;display:flex;flex-direction:column;gap:5px}.backups-hero-text h3{margin:0;font-size:17px;font-weight:700;color:#0f172a;letter-spacing:-.01em}.backups-hero-sub{margin:0;font-size:12.5px;color:#64748b;max-width:46ch;line-height:1.45}.backups-hero-meta{display:flex;align-items:center;gap:14px;flex-wrap:wrap;font-size:12.5px;color:#475569}.backups-hero-meta>span{display:inline-flex;align-items:center;gap:5px;white-space:nowrap}.backups-hero-meta .material-symbols-outlined{font-size:16px;color:#94a3b8}.backups-schedule-chip{display:inline-flex;align-items:center;gap:7px;align-self:flex-start;max-width:100%;margin-top:10px;padding:7px 8px 7px 11px;border-radius:999px;border:1px solid #e2e8f0;background:#fff;cursor:pointer;white-space:nowrap;transition:border-color .15s ease,box-shadow .15s ease,background .15s ease}.backups-schedule-chip-hint{font-size:11.5px;color:#94a3b8;overflow:hidden;text-overflow:ellipsis}.backups-schedule-chip-hint:before{content:"·";margin-right:6px;color:#cbd5e1}.backups-schedule-chip:hover{border-color:#c7d2fe;background:#f8fafc;box-shadow:0 2px 8px #6366f124}.backups-schedule-chip>.material-symbols-outlined:first-child{font-size:18px;color:#94a3b8}.backups-schedule-chip.is-on>.material-symbols-outlined:first-child{color:#059669;animation:backups-spin 4s linear infinite}.backups-schedule-chip-text{font-size:12.5px;font-weight:600;color:#334155}.backups-schedule-chip.is-off .backups-schedule-chip-text{color:#64748b}.backups-schedule-chip-arrow{font-size:17px!important;color:#cbd5e1}.backups-hero-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap;justify-content:flex-end}.backups-hero-actions>.secondary-btn{margin-right:0}.backups-head{display:flex;align-items:center;justify-content:space-between;gap:14px;flex-wrap:wrap}.backups-head h3{margin:0;font-size:18px;color:#0f172a}.backups-create-btn{display:inline-flex;align-items:center;gap:8px;padding:10px 18px;font-size:14px;flex-shrink:0}.backups-create-btn .material-symbols-outlined{font-size:18px}.backups-create-btn:disabled .material-symbols-outlined{animation:backups-spin .9s linear infinite}.backups-head--actions-only{justify-content:flex-end}.backups-upload-btn{display:inline-flex;align-items:center;gap:8px;padding:10px 16px;font-size:14px;flex-shrink:0}.backups-upload-btn .material-symbols-outlined{font-size:18px}.backups-action-btn{display:inline-flex;align-items:center;gap:8px;padding:10px 14px;font-size:14px;flex-shrink:0;white-space:nowrap}.backups-action-btn .material-symbols-outlined{font-size:18px}.backups-schedule-modal{max-width:540px}.backups-schedule-fields--modal{margin-top:12px;margin-bottom:8px}.backups-refresh-btn{display:inline-flex;align-items:center;gap:8px;padding:9px 16px;border-radius:999px;border:1px solid rgba(99,102,241,.25);background:linear-gradient(135deg,#eef2ff,#fff 80%);color:#4338ca;font-size:13px;font-weight:600;cursor:pointer;box-shadow:0 1px 3px #0f172a0f;transition:transform .12s ease,box-shadow .18s ease,background .18s ease,border-color .18s ease}.backups-refresh-btn:hover:not(:disabled){background:linear-gradient(135deg,#e0e7ff,#f5f3ff 80%);border-color:#4f46e573;box-shadow:0 3px 8px #4f46e52e;transform:translateY(-1px)}.backups-refresh-btn:hover:not(:disabled) .backups-refresh-icon{transform:rotate(180deg)}.backups-refresh-btn:active:not(:disabled){transform:translateY(0);box-shadow:0 1px 3px #0f172a14}.backups-refresh-btn:disabled{opacity:.6;cursor:not-allowed}.backups-refresh-icon{font-size:18px;transition:transform .4s ease}.backups-refresh-btn.is-spinning .backups-refresh-icon{animation:backups-spin .9s linear infinite}@keyframes backups-spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.backups-refresh-label{letter-spacing:.01em}.backups-restart-btn{border:1px solid rgba(245,158,11,.45);background:linear-gradient(135deg,#fff7ed,#fff 80%);color:#b45309}.backups-restart-btn:hover:not(:disabled){background:linear-gradient(135deg,#ffedd5,#fff7ed 80%);border-color:#d97706b3;box-shadow:0 3px 8px #d977062e;transform:translateY(-1px)}.backups-restart-btn .material-symbols-outlined{color:#d97706}.backups-stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;flex-shrink:0}@media (max-width: 820px){.backups-stats{grid-template-columns:repeat(2,minmax(0,1fr))}}.backups-stat-chip{display:flex;align-items:center;gap:12px;background:#fff;border:1px solid #e2e8f0;border-radius:14px;padding:12px 14px;box-shadow:0 1px 3px #0f172a0a;transition:border-color .15s ease,box-shadow .15s ease}.backups-stat-chip:hover{border-color:#cbd5e1;box-shadow:0 2px 8px #0f172a12}.backups-stat-icon{width:38px;height:38px;flex-shrink:0;display:flex;align-items:center;justify-content:center;border-radius:11px;background:#f1f5f9;color:#64748b}.backups-stat-icon .material-symbols-outlined{font-size:21px}.backups-stat-chip.is-ok .backups-stat-icon{background:#dcfce7;color:#059669}.backups-stat-chip.is-fail .backups-stat-icon{background:#fee2e2;color:#dc2626}.backups-stat-chip.is-size .backups-stat-icon{background:#e0e7ff;color:#4f46e5}.backups-stat-body{display:flex;flex-direction:column;gap:3px;min-width:0}.backups-stat-num{font-size:21px;font-weight:800;color:#0f172a;line-height:1;font-variant-numeric:tabular-nums}.backups-stat-label{font-size:10.5px;text-transform:uppercase;letter-spacing:.06em;color:#64748b;font-weight:700}.backups-schedule-card{display:flex;gap:14px;background:linear-gradient(135deg,#f5f3ff,#fff 60%);border:1px solid rgba(99,102,241,.2);border-radius:14px;padding:14px 16px}.backups-schedule-icon{width:40px;height:40px;border-radius:10px;background:#6366f12e;color:#4338ca;display:flex;align-items:center;justify-content:center;flex-shrink:0}.backups-schedule-icon .material-symbols-outlined{font-size:22px}.backups-schedule-body{flex:1;display:flex;flex-direction:column;gap:8px}.backups-schedule-body h4{margin:0;font-size:14px;color:#0f172a}.backups-schedule-fields{display:flex;gap:16px;flex-wrap:wrap;align-items:flex-end;margin-top:6px}.backups-schedule-toggle{display:inline-flex;align-items:center;gap:6px;font-weight:600;font-size:13px;color:#0f172a}.backups-schedule-field{display:flex;flex-direction:column;gap:4px;font-size:12px;color:#475569}.backups-schedule-field input{width:110px;padding:6px 8px;border:1px solid rgba(148,163,184,.4);border-radius:8px;font-size:13px;font-variant-numeric:tabular-nums}.backups-schedule-last{font-size:12px;color:#64748b}.backups-schedule-last strong{color:#0f172a;margin-left:4px}.backups-list{background:#fff;border:1px solid #e2e8f0;border-radius:14px;box-shadow:0 1px 3px #0f172a0d;overflow:hidden;display:flex;flex-direction:column;flex:1 1 auto;min-height:0}.backups-list-table-wrap{flex:1 1 auto;min-height:0;overflow:auto}.backups-error-row td{background:#fef2f2;padding:0!important;box-shadow:inset 3px 0 #ef4444}.backups-error-banner{display:flex;align-items:flex-start;gap:10px;padding:9px 14px;color:#991b1b;font-size:12px}.backups-error-banner .material-symbols-outlined{flex-shrink:0;font-size:18px;margin-top:1px;color:#ef4444}.backups-error-banner strong{display:block;font-size:11px;text-transform:uppercase;letter-spacing:.05em}.backups-error-banner code{display:block;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;white-space:pre-wrap;word-break:break-word;margin-top:2px;color:#7f1d1d}.backups-list-head{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-shrink:0;padding:11px 14px;background:linear-gradient(180deg,#f8fafc,#fff);border-bottom:1px solid #e2e8f0}.backups-list-head h4{display:flex;align-items:center;gap:8px;margin:0;font-size:14px;font-weight:700;color:#0f172a}.backups-list-head h4 .material-symbols-outlined{font-size:19px;color:#94a3b8}.backups-list-count{display:inline-flex;align-items:center;padding:2px 9px;border-radius:999px;background:#eef2ff;border:1px solid #e0e7ff;color:#4338ca;font-size:11px;font-weight:700}.backups-empty{display:flex;flex:1;flex-direction:column;align-items:center;justify-content:center;gap:6px;padding:54px 32px;text-align:center;color:#94a3b8;font-size:13px}.backups-empty-icon{font-size:54px!important;color:#cbd5e1}.backups-empty h3{margin:0;font-size:17px;color:#334155}.backups-empty p{margin:0;max-width:44ch;line-height:1.5}.backups-table{width:100%;border-collapse:separate;border-spacing:0;font-size:13px;min-width:900px}.backups-table thead th{position:sticky;top:0;z-index:1;background:#f8fafc;text-align:left;padding:10px 14px;font-size:10.5px;text-transform:uppercase;letter-spacing:.06em;color:#475569;font-weight:700;white-space:nowrap;border-bottom:1px solid #e2e8f0}.backups-table tbody td{padding:10px 14px;border-bottom:1px solid #eef2f7;vertical-align:middle}.backups-row:hover td{background:#f8fafc}.backups-row.is-failed td:first-child{box-shadow:inset 3px 0 #ef4444}.backups-row.is-running td:first-child{box-shadow:inset 3px 0 #3b82f6}.backups-date-cell{display:flex;flex-direction:column;gap:2px;white-space:nowrap}.backups-date-cell strong{font-size:13px;font-weight:600;color:#0f172a;font-variant-numeric:tabular-nums}.backups-date-cell small{font-size:11px;color:#94a3b8}.backups-muted{color:#cbd5e1}.backups-cell-mono{font-family:monospace;font-size:12px;color:#475569}.backups-cell-filename{max-width:300px}.backups-file-cell{display:flex;align-items:center;gap:6px;min-width:0}.backups-file-cell .material-symbols-outlined{flex-shrink:0;font-size:17px;color:#94a3b8}.backups-file-cell code{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:11.5px;color:#475569}.backups-size-badge{display:inline-flex;align-items:center;padding:3px 8px;border-radius:7px;background:#f1f5f9;color:#334155;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:11.5px;font-weight:600;font-variant-numeric:tabular-nums;white-space:nowrap}.backups-user-cell{display:inline-flex;align-items:center;gap:7px;font-size:12.5px;color:#334155;white-space:nowrap}.backups-user-avatar{width:24px;height:24px;flex-shrink:0;display:inline-flex;align-items:center;justify-content:center;border-radius:50%;background:linear-gradient(135deg,#a5b4fc,#6366f1);color:#fff;font-size:11px;font-weight:700}.backups-type-pill{display:inline-flex;align-items:center;gap:5px;padding:3px 9px;border-radius:999px;font-size:11px;font-weight:700;background:#eef2ff;border:1px solid #e0e7ff;color:#4338ca;white-space:nowrap}.backups-type-pill .material-symbols-outlined{font-size:14px}.backups-type-pill.is-scheduled{background:#f0fdf4;border-color:#d1fae5;color:#047857}.backups-type-pill.is-uploaded{background:#fffbeb;border-color:#fde68a;color:#b45309}.backups-status-pill{display:inline-flex;align-items:center;gap:6px;padding:3px 10px;border-radius:999px;font-size:11px;font-weight:700;white-space:nowrap;background:#f1f5f9;color:#475569}.backups-status-dot{width:7px;height:7px;border-radius:50%;background:currentColor;flex-shrink:0}.backups-status-pill.is-success{background:#dcfce7;color:#15803d}.backups-status-pill.is-failed{background:#fee2e2;color:#b91c1c}.backups-status-pill.is-running{background:#dbeafe;color:#1d4ed8}.backups-status-pill.is-running .backups-status-dot{animation:backups-pulse 1.2s ease-in-out infinite}@keyframes backups-pulse{0%,to{opacity:1}50%{opacity:.25}}.backups-actions{display:inline-flex;gap:4px}.backups-confirm-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#0f172a8c;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);z-index:1500;display:flex;align-items:center;justify-content:center;padding:24px}.backups-confirm-modal{background:#fff;border-radius:16px;padding:24px 28px;max-width:480px;width:100%;text-align:center;box-shadow:0 20px 60px #0f172a66}.backups-confirm-icon{width:56px;height:56px;border-radius:50%;background:#ef44441f;color:#ef4444;margin:0 auto 12px;display:flex;align-items:center;justify-content:center}.backups-confirm-icon .material-symbols-outlined{font-size:32px}.backups-confirm-modal h3{margin:0 0 12px;color:#0f172a;font-size:18px}.backups-confirm-modal p{margin:0 0 8px;color:#475569;font-size:14px;line-height:1.5}.backups-confirm-warn{background:#ef444414;border-left:3px solid #ef4444;padding:10px 12px;border-radius:8px;text-align:left;margin-top:12px!important;color:#b91c1c!important;font-size:13px!important}.backups-confirm-actions{display:flex;gap:10px;justify-content:center;margin-top:18px}.backups-confirm-restore{background:#ef4444!important}.backups-confirm-restore:hover{background:#dc2626!important}.lang-switcher{display:inline-flex;gap:4px;padding:2px;border:1px solid rgba(0,0,0,.08);background:#fff9;border-radius:8px}.lang-switcher__btn{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:none;background:transparent;color:#555;font-size:11px;font-weight:600;letter-spacing:.04em;padding:4px 8px;border-radius:6px;cursor:pointer;transition:background .15s,color .15s}.lang-switcher__btn:hover{background:#ff8c0014;color:#a85800}.lang-switcher__btn.is-active{background:#e67c00;color:#fff}.lang-switcher--compact{margin-left:auto}.login-header-row{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:8px}.login-header-row h2{margin:0}.login-lang-bar{position:absolute;top:14px;right:18px;z-index:5;display:flex;align-items:center;gap:8px}.login-lang-select{display:inline-flex;align-items:center;gap:8px;background:#ffffffd9;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);border:1px solid rgba(148,163,184,.4);border-radius:10px;padding:4px 10px;font-size:12px;color:#475569;font-weight:600;letter-spacing:.04em;box-shadow:0 2px 6px #0f172a14}.login-lang-select__label{text-transform:uppercase}.login-lang-select select{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:none;background:transparent;font-size:13px;font-weight:600;color:#0f172a;padding:4px 22px 4px 4px;cursor:pointer;background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%2364748b' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'><polyline points='6 9 12 15 18 9'/></svg>");background-repeat:no-repeat;background-position:right 4px center;background-size:12px 12px;outline:none}.login-lang-select select:focus{color:#a85800}.profile-dropdown__lang{display:flex;flex-direction:column;gap:6px;padding:8px 12px 10px;border-top:1px solid rgba(148,163,184,.18);border-bottom:1px solid rgba(148,163,184,.18);margin:4px 0}.profile-dropdown__lang-label{font-size:11px;text-transform:uppercase;letter-spacing:.06em;color:#64748b;font-weight:600}.profile-dropdown__lang-options{display:inline-flex;gap:6px}.profile-dropdown__lang-btn{flex:1;-webkit-appearance:none;-moz-appearance:none;appearance:none;border:1px solid rgba(148,163,184,.4);background:#fff;color:#475569;font-size:12px;font-weight:700;letter-spacing:.04em;padding:6px 10px;border-radius:8px;cursor:pointer;transition:background .15s,color .15s,border-color .15s}.profile-dropdown__lang-btn:hover{background:#ff8c0014;color:#a85800;border-color:#e67c0080}.profile-dropdown__lang-btn.is-active{background:#e67c00;color:#fff;border-color:#e67c00}.customer-logo--placeholder,.header-customer-logo--placeholder{background:transparent;border:none}.engineering-content .tab-panel.api-access-panel{display:flex;flex-direction:column;gap:10px;flex:1;min-height:0;overflow:hidden}.api-keys-toolbar,.api-access-panel>.helper-text,.api-access-panel>.error-text{flex-shrink:0;margin:0}.api-access-panel .api-keys-table-wrap{flex:1;min-height:0;overflow:auto;background:#fff;border:1px solid #e2e8f0;border-radius:12px;box-shadow:0 1px 2px #0f172a0a}.api-keys-row-inactive{opacity:.65}.api-keys-table-actions{display:inline-flex;align-items:center;gap:6px;flex-wrap:wrap}.api-keys-icon-btn{width:32px;height:32px;display:inline-flex;align-items:center;justify-content:center;border:1px solid #dbeafe;border-radius:8px;background:#eff6ff;color:#2563eb;cursor:pointer;transition:background .15s ease,border-color .15s ease,color .15s ease}.api-keys-icon-btn:hover{background:#dbeafe;border-color:#bfdbfe}.api-keys-icon-btn .material-symbols-outlined{font-size:18px}.api-keys-icon-btn--danger{background:#fff1f2;border-color:#fecdd3;color:#e11d48}.api-keys-icon-btn--danger:hover{background:#ffe4e6;border-color:#fda4af}.api-key-prefix{background:#f3f4f6;padding:2px 6px;border-radius:4px;font-size:12px}.api-key-name-cell{display:flex;flex-direction:column;align-items:flex-start;gap:4px;min-width:200px}.api-key-name-cell strong{display:block;font-size:13.5px;font-weight:700;color:#0f172a}.api-key-id-pill{padding:2px 6px;border-radius:6px;background:#f1f5f9;color:#64748b;font-size:10.5px;font-weight:600}.api-key-ip-pill{display:inline-flex;align-items:center;gap:4px;padding:2px 6px;border-radius:6px;background:#fef3c7;border:1px solid #fde68a;color:#92400e;font-size:11px;font-weight:600}.api-key-ip-pill .material-symbols-outlined{font-size:13px}.api-key-scopes-cell{display:flex;flex-wrap:wrap;gap:3px;max-width:240px}.api-key-date-cell{white-space:nowrap;color:#475569!important;font-size:12.5px!important}.scope-chip{display:inline-block;background:#eff6ff;color:#a85800;border:1px solid #bfdbfe;border-radius:4px;padding:2px 6px;font-size:11px;font-family:ui-monospace,SF Mono,Menlo,monospace;white-space:nowrap}.api-key-status{display:inline-flex;align-items:center;gap:6px;padding:3px 8px;border-radius:999px;font-size:12px;font-weight:500}.api-key-status .status-dot{width:8px;height:8px;border-radius:50%}.api-key-status--active{background:#dcfce7;color:#15803d}.api-key-status--active .status-dot{background:#22c55e}.api-key-status--disabled{background:#fef3c7;color:#92400e}.api-key-status--disabled .status-dot{background:#f59e0b}.api-key-status--expired,.api-key-status--revoked{background:#fee2e2;color:#991b1b}.api-key-status--expired .status-dot,.api-key-status--revoked .status-dot{background:#ef4444}.api-key-create-modal{width:92vw;max-width:640px}.api-key-created-modal{width:96vw;max-width:1180px;max-height:92vh;overflow-y:auto}.api-key-created-head{display:flex;align-items:center;gap:14px;margin-bottom:16px;padding-bottom:14px;border-bottom:1px solid #e5e7eb}.api-key-created-head-icon{width:48px;height:48px;border-radius:12px;background:linear-gradient(135deg,#6366f1,#4338ca);display:grid;place-items:center;color:#fff;box-shadow:0 4px 10px #4f46e540;flex-shrink:0}.api-key-created-head-icon .material-symbols-outlined{font-size:24px}.api-key-created-head-text{flex:1;min-width:0}.api-key-created-head-text h3{margin:0 0 2px;font-size:18px;color:#0f172a}.api-key-created-head-text p{margin:0;font-size:13px;color:#64748b}.api-key-created-warning{display:flex;align-items:flex-start;gap:10px;background:linear-gradient(135deg,#fef3c7,#fde68a);border:1px solid #fbbf24;border-radius:10px;padding:11px 14px;color:#78350f;font-size:13px;font-weight:500;line-height:1.45;margin-bottom:14px}.api-key-created-warning .material-symbols-outlined{font-size:20px;color:#b45309;flex-shrink:0;margin-top:1px}.api-key-created-label{display:block;font-size:12px;font-weight:600;color:#475569;letter-spacing:.03em;text-transform:uppercase;margin-bottom:6px}.api-key-token-display{display:flex;gap:10px;align-items:center;background:linear-gradient(180deg,#1e293b,#0f172a);padding:10px 10px 10px 14px;border-radius:10px;margin-bottom:22px;border:1px solid #334155}.api-key-token-display code{flex:1;color:#f1f5f9;font-family:ui-monospace,SF Mono,Menlo,monospace;font-size:13px;word-break:break-all;min-width:0}.api-key-token-copy{display:inline-flex;align-items:center;gap:6px;padding:8px 14px;background:#6366f1;color:#fff;border:none;border-radius:8px;font-size:13px;font-weight:600;cursor:pointer;flex-shrink:0;transition:background .15s,transform .1s}.api-key-token-copy:hover{background:#4f46e5}.api-key-token-copy:active{transform:scale(.97)}.api-key-token-copy .material-symbols-outlined{font-size:16px}.api-key-created-examples{margin-top:4px}.api-key-created-examples-head{display:flex;align-items:center;gap:8px;margin-bottom:10px}.api-key-created-examples-head h4{margin:0;font-size:14px;color:#1e293b;font-weight:600}.api-key-created-examples-head .material-symbols-outlined{font-size:18px;color:#6366f1}.api-key-created-actions{margin-top:18px;padding-top:14px;border-top:1px solid #e5e7eb;justify-content:flex-end}.scope-fieldset{border:1px solid #e5e7eb;border-radius:8px;padding:12px;margin:8px 0}.scope-fieldset legend{font-weight:600;padding:0 6px}.scope-checkboxes{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:6px;margin-top:8px}.scope-checkbox{display:flex;align-items:center;gap:6px;cursor:pointer;padding:4px 6px;border-radius:4px}.scope-checkbox:hover{background:#f9fafb}.scope-checkbox code{font-size:12px}.scope-fieldset--cards{border:1px solid #e2e8f0;border-radius:12px;padding:14px 16px 12px;background:linear-gradient(180deg,#f8fafc,#fff)}.scope-fieldset--cards legend{font-weight:700;padding:0 8px;color:#1e293b;font-size:13px;letter-spacing:.02em}.scope-fieldset-intro{margin:0 0 12px;font-size:12px;color:#475569}.scope-cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:8px}.scope-card{position:relative;display:grid;grid-template-columns:auto auto 1fr;align-items:center;gap:10px;padding:10px 12px;background:#fff;border:1px solid #e2e8f0;border-radius:10px;cursor:pointer;transition:border-color .15s,box-shadow .15s,background .15s}.scope-card:hover{border-color:#a5b4fc;box-shadow:0 2px 6px #6366f11a}.scope-card.is-selected{border-color:#6366f1;background:linear-gradient(135deg,#eef2ff,#faf5ff);box-shadow:0 2px 8px #4f46e526}.scope-card input[type=checkbox]{position:absolute;opacity:0;width:1px;height:1px;pointer-events:none}.scope-card-check .material-symbols-outlined{font-size:22px;color:#cbd5e1;transition:color .15s}.scope-card.is-selected .scope-card-check .material-symbols-outlined{color:#4f46e5}.scope-card-icon{display:grid;place-items:center;width:32px;height:32px;background:#f1f5f9;border-radius:8px;flex-shrink:0}.scope-card.is-selected .scope-card-icon{background:#fff;border:1px solid #c7d2fe}.scope-card-icon .material-symbols-outlined{font-size:18px;color:#475569}.scope-card.is-selected .scope-card-icon .material-symbols-outlined{color:#4f46e5}.scope-card-text{display:flex;flex-direction:column;gap:2px;min-width:0}.scope-card-text code{font-size:12px;font-weight:600;color:#1e293b;background:transparent;padding:0}.scope-card.is-selected .scope-card-text code{color:#4338ca}.scope-card-text small{font-size:11px;color:#64748b;line-height:1.35}.scope-card-bulk{display:flex;align-items:center;gap:8px;margin-top:10px;padding-top:10px;border-top:1px dashed #e2e8f0;flex-wrap:wrap}.scope-card-bulk-btn{background:transparent;border:1px solid #cbd5e1;color:#475569;font-size:11px;font-weight:600;padding:4px 10px;border-radius:999px;cursor:pointer;letter-spacing:.02em;transition:background .15s,color .15s,border-color .15s}.scope-card-bulk-btn:hover:not(:disabled){background:#f1f5f9;color:#1e293b;border-color:#94a3b8}.scope-card-bulk-btn:disabled{opacity:.45;cursor:not-allowed}.scope-card-bulk-count{margin-left:auto;font-size:11px;color:#4f46e5;font-weight:600;letter-spacing:.02em}.api-key-examples-modal{width:min(820px,94vw);max-height:88vh;display:flex;flex-direction:column}.api-key-examples-head{display:flex;align-items:center;gap:12px;padding-bottom:14px;border-bottom:1px solid #e5e7eb;margin-bottom:14px}.api-key-examples-head-icon{width:44px;height:44px;border-radius:11px;background:linear-gradient(135deg,#1e293b,#0f172a);display:grid;place-items:center;color:#f1f5f9;flex-shrink:0}.api-key-examples-head-icon .material-symbols-outlined{font-size:22px}.api-key-examples-head-text{flex:1;min-width:0}.api-key-examples-head-text h3{margin:0 0 2px;font-size:16px;color:#0f172a}.api-key-examples-head-text p{margin:0;font-size:12px;color:#64748b}.api-key-examples-close{width:32px;height:32px;display:grid;place-items:center;background:transparent;border:1px solid #e2e8f0;border-radius:8px;cursor:pointer;color:#64748b;flex-shrink:0;transition:background .15s}.api-key-examples-close:hover{background:#f1f5f9;color:#0f172a}.api-key-examples-close .material-symbols-outlined{font-size:18px}.api-key-examples-body{flex:1;overflow-y:auto;margin:0 -4px;padding:0 4px}.api-key-examples-actions{margin-top:14px;padding-top:12px;border-top:1px solid #e5e7eb;justify-content:flex-end}.api-key-form-row{display:grid;grid-template-columns:1fr 1fr;gap:14px}@media (max-width: 640px){.api-key-form-row{grid-template-columns:1fr}}.curl-examples{display:flex;flex-direction:column;gap:10px;background:#f8fafc;padding:12px;border:1px solid #e2e8f0;border-radius:10px}.curl-examples-hint{margin:0 0 4px;padding:8px 10px;background:#fff;border:1px dashed #cbd5e1;border-radius:8px;font-size:12px;color:#475569}.curl-examples-hint code{background:#f1f5f9;border:1px solid #e2e8f0;padding:1px 6px;border-radius:4px;font-size:11px;color:#1e293b}.curl-block{background:#fff;border:1px solid #e5e7eb;border-radius:10px;overflow:hidden;box-shadow:0 1px 2px #0f172a0a;transition:box-shadow .18s,border-color .18s}.curl-block:hover{border-color:#cbd5e1;box-shadow:0 4px 12px #0f172a14}.curl-block-head{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:10px 14px;background:linear-gradient(180deg,#f8fafc,#f1f5f9);border-bottom:1px solid #e2e8f0}.curl-block-head-text{display:flex;flex-direction:column;gap:1px;min-width:0}.curl-block-head-text strong{font-size:13px;color:#1e293b;font-weight:600}.curl-block-head-desc{font-size:11px;color:#64748b;font-weight:400}.curl-block-copy{display:inline-flex;align-items:center;gap:5px;padding:6px 10px;background:#fff;border:1px solid #cbd5e1;color:#475569;border-radius:7px;font-size:12px;font-weight:500;cursor:pointer;flex-shrink:0;transition:background .15s,color .15s,border-color .15s}.curl-block-copy:hover{background:#f1f5f9;border-color:#94a3b8;color:#1e293b}.curl-block-copy.is-copied{background:#ecfdf5;border-color:#6ee7b7;color:#047857}.curl-block-copy .material-symbols-outlined{font-size:14px}.curl-block-code{margin:0;padding:14px 16px;background:linear-gradient(180deg,#1e293b,#0f172a);color:#e2e8f0;font-family:ui-monospace,SF Mono,Menlo,monospace;font-size:13px;line-height:1.6;overflow-x:auto;white-space:pre-wrap;word-break:break-all}.curl-block-code code{background:transparent;color:inherit;white-space:pre-wrap;word-break:break-all}.api-key-created-modal .curl-block-code{font-size:13.5px}.api-key-created-modal .api-key-token-display code{font-size:14px}.webhook-hint-card{margin:12px 0 6px;border:1px solid #e2e8f0;border-radius:10px;background:linear-gradient(180deg,#fafbfd,#fff);overflow:hidden}.webhook-hint-card.is-open{border-color:#cbd5e1;box-shadow:0 1px 4px #0f172a0d}.webhook-hint-card-head{display:flex;align-items:center;gap:12px;width:100%;padding:12px 14px;background:transparent;border:none;cursor:pointer;text-align:left;font:inherit;color:#1f2937}.webhook-hint-card-head:hover{background:#0f172a06}.webhook-hint-card-icon{font-size:22px;color:#ff8c00;flex-shrink:0}.webhook-hint-card-title{display:flex;flex-direction:column;gap:2px;flex:1;min-width:0}.webhook-hint-card-title strong{font-size:13px;font-weight:600;color:#0f172a;line-height:1.2}.webhook-hint-card-title small{font-size:11.5px;color:#64748b;font-weight:400;line-height:1.35}.webhook-hint-card-chev{font-size:20px;color:#94a3b8;flex-shrink:0;transition:transform .15s ease,color .15s ease}.webhook-hint-card.is-open .webhook-hint-card-chev{color:#475569}.webhook-hint-card-body{padding:0 14px 14px;border-top:1px solid #f1f5f9}.webhook-hint-tabs{display:flex;gap:4px;padding:10px 0 12px;flex-wrap:wrap}.webhook-hint-tab{display:inline-flex;align-items:center;gap:6px;padding:6px 12px;border:1px solid #e2e8f0;background:#fff;border-radius:8px;font-size:12.5px;font-weight:500;color:#475569;cursor:pointer;transition:border-color .15s,background .15s,color .15s}.webhook-hint-tab:hover{border-color:#cbd5e1}.webhook-hint-tab .material-symbols-outlined{font-size:16px}.webhook-hint-tab.is-active{background:#fff6e6;border-color:#ff8c00;color:#a85800}.webhook-hint-pane-head{margin-bottom:8px}.webhook-hint-pane-meta{display:flex;flex-direction:column;gap:2px}.webhook-hint-pane-meta strong{font-size:13px;color:#0f172a}.webhook-hint-pane-meta small{font-size:11.5px;color:#64748b}.webhook-hint{margin:6px 0;border-top:1px dashed #e5e7eb;padding-top:10px}.webhook-hint-toggle{background:none;border:none;color:#e67c00;cursor:pointer;font-size:13px;font-weight:500;padding:4px 0}.webhook-hint-toggle:hover{text-decoration:underline}.webhook-hint-body{margin-top:8px}.webhook-hint-block{margin-bottom:12px}.webhook-hint-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:4px}.backups-restore-progress-modal{min-width:480px;max-width:560px}.backups-restore-progress-modal .backups-confirm-icon{background:#3b82f61f;color:#2563eb}.backups-restore-progress-modal .restore-status-done{background:#10b9811f;color:#059669}.backups-restore-progress-modal .restore-status-failed{background:#ef44441f;color:#dc2626}.backups-restore-progress-modal .backups-confirm-icon .material-symbols-outlined{font-size:32px;font-variation-settings:"FILL" 1}.restore-status-queued .material-symbols-outlined,.restore-status-validating .material-symbols-outlined,.restore-status-preparing .material-symbols-outlined,.restore-status-restoring .material-symbols-outlined,.restore-status-finalizing .material-symbols-outlined{animation:restore-spin 1.4s linear infinite}@keyframes restore-spin{to{transform:rotate(360deg)}}.restore-progress-filename{display:inline-flex;align-items:center;gap:6px;font-size:13px;color:#64748b;font-family:ui-monospace,Courier New,monospace;background:#f8fafc;padding:4px 10px;border-radius:6px;margin:4px 0 14px}.restore-progress-filename .material-symbols-outlined{font-size:16px}.restore-progress-bar-wrap{margin:8px 0 16px}.restore-progress-bar-track{width:100%;height:10px;background:#e2e8f0;border-radius:999px;overflow:hidden;position:relative}.restore-progress-bar-fill{height:100%;background:linear-gradient(90deg,#3b82f6,#2563eb);border-radius:999px;transition:width .4s ease-out;position:relative;overflow:hidden}.restore-progress-bar-fill:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(90deg,#ffffff26,#fff6,#ffffff26);animation:restore-bar-shimmer 1.4s linear infinite}.restore-progress-bar-fill--done{background:linear-gradient(90deg,#10b981,#059669)}.restore-progress-bar-fill--done:after{display:none}.restore-progress-bar-fill--failed{background:linear-gradient(90deg,#ef4444,#dc2626)}.restore-progress-bar-fill--failed:after{display:none}@keyframes restore-bar-shimmer{0%{transform:translate(-100%)}to{transform:translate(100%)}}.restore-progress-bar-label{display:flex;justify-content:space-between;font-size:12px;font-weight:600;color:#475569;margin-top:6px}.restore-progress-elapsed{font-weight:500;color:#94a3b8}.restore-progress-steps{list-style:none;margin:12px 0;border-top:1px solid #e2e8f0;border-bottom:1px solid #e2e8f0;padding:10px 0}.restore-step{display:flex;align-items:center;gap:10px;padding:5px 6px;font-size:13px;border-radius:6px}.restore-step .material-symbols-outlined{font-size:18px;font-variation-settings:"FILL" 1}.restore-step.step-pending{color:#94a3b8}.restore-step.step-pending .material-symbols-outlined{color:#cbd5e1}.restore-step.step-active{color:#2563eb;background:#3b82f60f;font-weight:600}.restore-step.step-active .material-symbols-outlined{color:#2563eb;animation:restore-spin 1.4s linear infinite}.restore-step.step-done{color:#059669}.restore-step.step-done .material-symbols-outlined{color:#10b981}.restore-step.step-failed{color:#dc2626;background:#ef44440f;font-weight:600}.restore-step.step-failed .material-symbols-outlined{color:#ef4444}.restore-progress-message{font-size:13px;color:#475569;margin:8px 0 4px;text-align:center}.restore-progress-error{font-size:12px;color:#b91c1c;background:#fef2f2;border-left:3px solid #ef4444;padding:8px 10px;border-radius:4px;margin:6px 0;font-family:ui-monospace,monospace;word-break:break-word;max-height:80px;overflow:auto}.mqtt-form-section{margin-top:12px;padding:14px 16px;background:#f8fafc;border:1px solid #e2e8f0;border-radius:8px}.mqtt-form-heading{font-size:12px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:#475569;margin:14px 0 8px;padding-bottom:4px;border-bottom:1px solid #e2e8f0}.mqtt-form-heading:first-child{margin-top:0}.mqtt-form-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:10px 14px}.mqtt-form-grid>label{display:flex;flex-direction:column;font-size:12px;color:#475569;gap:4px}.mqtt-form-grid>label>input,.mqtt-form-grid>label>select{font-size:13px;padding:6px 8px;border:1px solid #cbd5e1;border-radius:6px}.mqtt-form-full-row{display:flex;flex-direction:column;font-size:12px;color:#475569;gap:4px;margin-top:10px}.mqtt-form-full-row>input{font-size:13px;padding:6px 8px;border:1px solid #cbd5e1;border-radius:6px;font-family:ui-monospace,Courier New,monospace}.mqtt-template-help{font-size:11px;color:#94a3b8;font-family:ui-monospace,monospace}.mqtt-advanced-toggle{display:inline-block;margin:12px 0 6px;font-size:12px;color:#2563eb;background:none;border:none;padding:0;cursor:pointer}.mqtt-advanced-toggle:hover{text-decoration:underline}.mqtt-mapping-modal{min-width:720px;max-width:900px}.mqtt-mapping-header{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:8px}.mqtt-mapping-header h3{margin:0 0 4px;font-size:16px}.mqtt-mapping-subtitle{margin:0;font-size:12px;color:#64748b}.signal-edit-header{align-items:center;padding-bottom:12px;border-bottom:1px solid #f1f5f9;margin-bottom:0}.signal-edit-header-actions{display:flex;align-items:center;gap:10px}.signal-modal-close{width:32px;height:32px;display:inline-flex;align-items:center;justify-content:center;border:1px solid #e2e8f0;border-radius:999px;background:#fff;color:#64748b;font-size:20px;line-height:1;cursor:pointer;transition:background .15s ease,color .15s ease,border-color .15s ease}.signal-modal-close:hover{background:#fef2f2;border-color:#fecaca;color:#b91c1c}.signal-active-pill{display:inline-flex;align-items:center;gap:6px;padding:6px 12px;border-radius:999px;border:1px solid #e2e8f0;background:#f8fafc;color:#64748b;font-size:12px;font-weight:600;cursor:pointer;transition:background .15s ease,color .15s ease,border-color .15s ease}.signal-active-pill-dot{width:7px;height:7px;border-radius:999px;background:#94a3b8}.signal-active-pill:hover{border-color:#cbd5e1}.signal-active-pill-on{background:#f0fdf4;color:#15803d;border-color:#dcfce7}.signal-active-pill-on .signal-active-pill-dot{background:#22c55e}.mqtt-mapping-help{background:#eff6ff;border-left:3px solid #3b82f6;padding:10px 12px;border-radius:4px;margin:8px 0 16px;font-size:12px;color:#1e3a8a}.mqtt-mapping-help p{margin:0 0 6px;font-weight:600}.mqtt-mapping-help ul{margin:0;padding-left:18px}.mqtt-mapping-help li{margin:2px 0}.mqtt-mapping-table{width:100%;border-collapse:collapse;font-size:12px;margin-bottom:12px}.mqtt-mapping-table th{background:#f1f5f9;text-align:left;padding:8px;border-bottom:1px solid #cbd5e1;font-weight:600;color:#475569}.mqtt-mapping-table td{padding:8px;border-bottom:1px solid #f1f5f9}.mqtt-mapping-table tr.is-inactive{opacity:.55}.mqtt-mapping-table code{font-family:ui-monospace,Courier New,monospace;font-size:11px;background:#f8fafc;padding:2px 6px;border-radius:3px}.mqtt-mapping-form{margin-top:14px;padding:14px;background:#f8fafc;border:1px solid #e2e8f0;border-radius:8px}.mqtt-mapping-form h4{margin:0 0 12px;font-size:14px}.mqtt-mapping-form label{display:flex;flex-direction:column;margin-bottom:10px;font-size:12px;color:#475569;gap:4px}.mqtt-mapping-form label>input,.mqtt-mapping-form label>select{font-size:13px;padding:6px 8px;border:1px solid #cbd5e1;border-radius:6px}.mqtt-mapping-form small{font-size:11px;color:#94a3b8}.mqtt-mapping-form-grid{display:grid;grid-template-columns:1fr 1fr 1fr;gap:12px;margin-top:4px}.settings-modal.mqtt-edit-modal{width:960px;max-width:96vw;height:720px;max-height:92vh;overflow-y:auto}.mqtt-wizard{margin-top:12px;display:flex;flex-direction:column;gap:14px}.mqtt-steps{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(4,1fr);gap:8px}.mqtt-steps li{min-width:0}.mqtt-step{width:100%;display:flex;align-items:center;gap:8px;padding:8px 10px;border:1px solid #e2e8f0;border-radius:10px;background:#fff;color:#64748b;cursor:pointer;text-align:left;transition:border-color .15s ease,background .15s ease,color .15s ease}.mqtt-step:hover{border-color:#cbd5e1}.mqtt-step.is-active{border-color:#e67c00;background:#fff7ed;color:#9a3412}.mqtt-step.is-done{color:#334155}.mqtt-step-num{width:22px;height:22px;flex-shrink:0;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;background:#f1f5f9;color:#64748b;font-size:12px;font-weight:700}.mqtt-step-num .material-symbols-outlined{font-size:15px}.mqtt-step.is-active .mqtt-step-num{background:#e67c00;color:#fff}.mqtt-step.is-done .mqtt-step-num{background:#dcfce7;color:#16a34a}.mqtt-step-label{font-size:12.5px;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.mqtt-wizard-body{min-height:250px;border:1px solid #e2e8f0;border-radius:12px;background:#f9fafb;padding:16px}.mqtt-wizard-step-tls{display:flex;flex-direction:column;gap:10px}.mqtt-wizard-nav{display:flex;justify-content:space-between;gap:8px}.mqtt-wizard-nav .secondary-btn:disabled{opacity:.5;cursor:default}.mqtt-topic-card--full{width:100%;margin:0}@media (max-width: 680px){.mqtt-steps{grid-template-columns:repeat(2,1fr)}}.mqtt-form-v2{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-top:12px;align-items:stretch}.mqtt-form-v2-panel{background:#f8fafc;border:1px solid #e2e8f0;border-radius:10px;padding:14px 16px;display:flex;flex-direction:column}.mqtt-panel-heading{display:flex;align-items:center;gap:8px;font-size:12px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:#1e293b;margin-bottom:12px;padding-bottom:8px;border-bottom:2px solid #e2e8f0}.mqtt-panel-heading .material-symbols-outlined{font-size:18px;color:#ff8c00;font-variation-settings:"FILL" 1}.mqtt-panel-heading--with-margin{margin-top:18px}.mqtt-panel-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px 12px}.mqtt-panel-grid>label{display:flex;flex-direction:column;font-size:12px;color:#475569;gap:4px}.mqtt-panel-grid>label>input,.mqtt-panel-grid>label>select{font-size:13px;padding:7px 9px;border:1px solid #cbd5e1;border-radius:6px}.mqtt-panel-grid>label.notify-option{flex-direction:row;align-items:center;gap:6px;font-size:13px}.mqtt-tls-toggle{margin-bottom:10px;font-size:13px}.settings-modal.mqtt-edit-modal,.settings-modal.iec104-edit-modal{padding:20px 22px;border-color:#e2e8f0;box-shadow:0 24px 60px #0f172a2e}.mqtt-edit-modal>h3,.iec104-edit-modal>h3{font-size:17px;font-weight:700;color:#0f172a;margin:0 0 14px;padding-bottom:12px;border-bottom:1px solid #eef2f6}.mqtt-edit-modal .mqtt-panel-heading{border-bottom:1px solid #e2e8f0;color:#334155}.mqtt-edit-modal .mqtt-panel-heading .material-symbols-outlined{width:26px;height:26px;display:inline-flex;align-items:center;justify-content:center;border-radius:8px;background:#fff7ed;color:#ea580c;font-size:16px;font-variation-settings:"FILL" 1}.mqtt-edit-modal .mqtt-form-v2-panel{background:#f9fafb;border-radius:12px;padding:14px 16px}.mqtt-panel-grid>label>input,.mqtt-panel-grid>label>select{border-radius:8px;padding:8px 10px;background:#fff;transition:border-color .15s ease,box-shadow .15s ease}.settings-modal input:focus,.settings-modal textarea:focus,.mqtt-panel-grid>label>input:focus,.mqtt-panel-grid>label>select:focus,.iec104-edit-col input:focus{outline:none;border-color:#e67c00;box-shadow:0 0 0 3px #e67c0026}.iec104-edit-col{background:#f9fafb;border:1px solid #e2e8f0;border-radius:12px;padding:14px}.iec104-edit-col-title{padding-bottom:8px;margin-bottom:2px;border-bottom:1px solid #e2e8f0}.iec104-edit-col input{border-radius:8px;padding:8px 10px;transition:border-color .15s ease,box-shadow .15s ease}.mqtt-edit-modal .settings-actions,.iec104-edit-modal .settings-actions{margin-top:8px;padding-top:14px;border-top:1px solid #eef2f6}.mqtt-edit-modal .settings-actions button,.iec104-edit-modal .settings-actions button{padding:9px 18px;font-weight:600}.mqtt-edit-modal .settings-actions button:not([type=submit]),.iec104-edit-modal .settings-actions button:not([type=submit]){background:#fff;color:#475569;border-color:#cbd5e1}.mqtt-edit-modal .settings-actions button:not([type=submit]):hover,.iec104-edit-modal .settings-actions button:not([type=submit]):hover{background:#f8fafc;filter:none}.mqtt-cert-upload-grid{display:flex;flex-direction:column;gap:10px;margin-top:8px}.mqtt-cert-uploader{border:1px dashed #cbd5e1;border-radius:8px;padding:10px 12px;background:#fff}.mqtt-cert-uploader.is-loaded{border-style:solid;border-color:#86efac;background:#f0fdf4}.mqtt-cert-uploader-label{font-size:11.5px;font-weight:600;color:#475569;margin-bottom:6px;text-transform:uppercase;letter-spacing:.03em}.mqtt-cert-uploader-row{display:flex;align-items:center;justify-content:space-between;gap:8px;flex-wrap:wrap}.mqtt-cert-badge{display:inline-flex;align-items:center;gap:6px;font-size:12px;font-family:ui-monospace,Courier New,monospace;color:#166534;word-break:break-all;flex:1;min-width:0}.mqtt-cert-badge .material-symbols-outlined{font-size:16px;color:#16a34a;font-variation-settings:"FILL" 1}.mqtt-cert-actions{display:flex;gap:8px;flex-shrink:0}.mqtt-cert-drop{width:100%;display:flex;flex-direction:column;align-items:center;gap:4px;padding:14px;background:transparent;border:none;cursor:pointer;color:#2563eb;transition:background .15s;border-radius:6px}.mqtt-cert-drop:hover:not(:disabled){background:#eff6ff}.mqtt-cert-drop:disabled{opacity:.5;cursor:not-allowed}.mqtt-cert-drop .material-symbols-outlined{font-size:26px;color:#3b82f6}.mqtt-cert-drop>span:nth-child(2){font-size:13px;font-weight:600}.mqtt-cert-drop small{font-size:11px;color:#64748b;font-weight:400}.mqtt-cert-error{margin-top:6px;font-size:11.5px;color:#b91c1c;background:#fef2f2;border-left:3px solid #ef4444;padding:6px 8px;border-radius:4px}.danger-link{background:none;border:none;font-size:12px;color:#dc2626;cursor:pointer;padding:2px 4px}.danger-link:hover{text-decoration:underline}.mqtt-cert-upload-hint{display:flex;align-items:center;gap:6px;font-size:11.5px;color:#64748b;padding:6px 8px;background:#f1f5f9;border-radius:6px;border-left:3px solid #94a3b8;margin-top:8px;line-height:1.3}.mqtt-cert-upload-hint .material-symbols-outlined{font-size:16px;color:#64748b;flex-shrink:0}.mqtt-topic-card{grid-column:1 / -1;background:#fff;border:1px solid #e2e8f0;border-radius:10px;padding:14px 16px}.mqtt-topic-card-head{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:12px;padding-bottom:8px;border-bottom:1px solid #f1f5f9}.mqtt-topic-card-title{display:flex;align-items:center;gap:8px;font-size:13px;font-weight:700;color:#1e293b}.mqtt-topic-card-title .material-symbols-outlined{font-size:18px;color:#ff8c00;font-variation-settings:"FILL" 1}.mqtt-topic-card-head small{display:block;font-size:11.5px;color:#64748b;margin-top:2px}.mqtt-topic-card-head .link-btn{display:inline-flex;align-items:center;gap:4px;font-size:12px;color:#2563eb;background:none;border:1px solid #dbeafe;border-radius:6px;padding:4px 10px;cursor:pointer}.mqtt-topic-card-head .link-btn .material-symbols-outlined{font-size:14px}.mqtt-topic-card-head .link-btn:hover{background:#eff6ff}.mqtt-topic-card-body{display:flex;flex-direction:column;gap:10px}.mqtt-topic-meta-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px 12px}.mqtt-topic-meta-grid>label{display:flex;flex-direction:column;font-size:12px;color:#475569;gap:4px}.mqtt-topic-meta-grid>label>input{font-size:13px;padding:7px 9px;border:1px solid #cbd5e1;border-radius:6px}.mqtt-topic-template-display{background:#f1f5f9;border:1px solid #e2e8f0;border-radius:6px;padding:10px 12px;font-family:ui-monospace,Courier New,monospace;font-size:12px;color:#475569;word-break:break-all}.mqtt-topic-template-edit{display:flex;flex-direction:column;font-size:12px;color:#475569;gap:4px}.mqtt-topic-template-edit>input{font-size:13px;padding:8px 10px;border:1px solid #cbd5e1;border-radius:6px;font-family:ui-monospace,Courier New,monospace}.mqtt-topic-vars{display:flex;flex-wrap:wrap;gap:6px}.mqtt-topic-var-chip{font-family:ui-monospace,Courier New,monospace;font-size:11px;background:#eff6ff;border:1px solid #bfdbfe;color:#1e40af;border-radius:12px;padding:3px 10px;cursor:pointer;transition:background .15s}.mqtt-topic-var-chip:hover{background:#dbeafe}.mqtt-topic-preview{background:linear-gradient(90deg,#f0fdf4,#fff);border-left:3px solid #22c55e;border-radius:4px;padding:8px 12px}.mqtt-topic-preview small{display:block;font-size:11px;font-weight:600;color:#166534;text-transform:uppercase;letter-spacing:.04em;margin-bottom:2px}.mqtt-topic-preview code{font-family:ui-monospace,Courier New,monospace;font-size:12px;color:#064e3b;word-break:break-all}.mqtt-advanced-grid{margin-top:8px;background:#fafafa;padding:10px 12px;border-radius:6px;border:1px solid #f1f5f9;grid-column:1 / -1}.mqtt-form-v2>.mqtt-advanced-toggle{grid-column:1 / -1;justify-self:flex-start}.mqtt-form-v2-panel .mqtt-panel-grid{grid-template-columns:repeat(auto-fit,minmax(140px,1fr))}.mqtt-form-v3 .mqtt-form-v2-panel{min-height:unset}.mqtt-form-v2:not(.mqtt-form-v3) .mqtt-form-v2-panel{min-height:220px}.mqtt-form-v3 .mqtt-topic-card--right-col{grid-column:2 / 3;margin-top:0}@media (max-width: 720px){.mqtt-form-v3 .mqtt-topic-card--right-col{grid-column:1 / -1}}.mqtt-cert-pending-grid{display:flex;flex-direction:column;gap:6px;margin-top:8px}.mqtt-cert-pending{display:flex;flex-direction:column;gap:4px;padding:6px 8px;border:1px dashed #cbd5e1;border-radius:6px;background:#fff}.mqtt-cert-pending.is-selected{border-style:solid;border-color:#86efac;background:#f0fdf4}.mqtt-cert-pending-label{font-size:11px;font-weight:600;color:#475569;text-transform:uppercase;letter-spacing:.04em}.mqtt-cert-pending-row{display:flex;align-items:center;gap:8px}.mqtt-cert-pending-pick{display:inline-flex;align-items:center;gap:4px;padding:4px 10px;background:transparent;border:1px dashed #cbd5e1;border-radius:6px;color:#475569;cursor:pointer;font-size:12px}.mqtt-cert-pending-pick:hover{background:#f8fafc;border-color:#94a3b8}.mqtt-cert-pending-pick .material-symbols-outlined{font-size:14px}.mqtt-cert-pending-name{display:inline-flex;align-items:center;gap:4px;font-size:12px;font-weight:600;color:#166534;flex:1 1 auto;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.mqtt-cert-pending-name .material-symbols-outlined{font-size:14px}.mqtt-cert-pending-hint{font-size:11px;color:#64748b;margin-top:2px;font-style:italic}.mqtt-cert-upload-grid--compact{gap:6px}.mqtt-cert-upload-grid--compact .mqtt-cert-uploader{padding:8px 10px}.mqtt-cert-upload-grid--compact .mqtt-cert-uploader-label{font-size:11px}@media (max-width: 720px){.mqtt-form-v2{grid-template-columns:1fr}.mqtt-form-v2-panel{min-height:unset}}.outbound-runtime-pill{display:inline-flex;align-items:center;gap:6px;padding:3px 10px;border-radius:999px;font-size:11px;font-weight:700;letter-spacing:.04em;border:1px solid transparent}.outbound-runtime-pill small{font-weight:500;font-size:10px;letter-spacing:0;color:inherit;opacity:.85}.outbound-runtime-pill--ok{background:#dcfce7;color:#15803d;border-color:#86efac}.outbound-runtime-pill--ok .status-dot{background:#16a34a;box-shadow:0 0 0 2px #22c55e40}.outbound-runtime-pill--off{background:#f1f5f9;color:#64748b;border-color:#cbd5e1}.outbound-runtime-pill--off .status-dot{background:#94a3b8}.outbound-runtime-pill--bad{background:#fee2e2;color:#b91c1c;border-color:#fca5a5}.outbound-runtime-pill--bad .status-dot{background:#dc2626}.auto-topics-modal{width:min(880px,96vw);height:720px;max-height:92vh;display:grid;grid-template-rows:auto auto 1fr auto;gap:12px;overflow:hidden;padding:16px}.auto-topics-head{display:flex;flex-direction:column;gap:4px}.auto-topics-modal h3{display:flex;align-items:center;gap:8px;margin:0}.auto-topics-modal h3 .material-symbols-outlined{color:#ff8c00;font-variation-settings:"FILL" 1}.auto-topics-count-badge{display:inline-flex;align-items:center;justify-content:center;min-width:28px;height:22px;padding:0 8px;border-radius:999px;background:#ff8c00;color:#fff;font-size:12px;font-weight:700;margin-left:4px}.auto-topics-toolbar{display:flex;align-items:center;gap:10px}.auto-topics-search{flex:1 1 auto;position:relative;display:flex;align-items:center}.auto-topics-search .material-symbols-outlined{position:absolute;left:10px;color:#94a3b8;font-size:18px;pointer-events:none}.auto-topics-search input{width:100%;padding:9px 36px;border:1px solid #cbd5e1;border-radius:8px;font-size:13px;background:#fff}.auto-topics-search input:focus{outline:none;border-color:#ff8c00;box-shadow:0 0 0 3px #ff8c0026}.auto-topics-search-clear{position:absolute;right:6px;background:transparent;border:0;padding:4px;cursor:pointer;color:#94a3b8;display:flex;align-items:center;justify-content:center;border-radius:4px}.auto-topics-search-clear:hover{background:#f1f5f9;color:#475569}.auto-topics-search-clear .material-symbols-outlined{position:static;font-size:16px}.auto-topics-copy-all{display:inline-flex;align-items:center;gap:6px;white-space:nowrap}.auto-topics-copy-all .material-symbols-outlined{font-size:16px}.auto-topics-scroll{overflow-y:auto;border:1px solid #e2e8f0;border-radius:10px;background:#fff}.auto-topics-cards{list-style:none;margin:0;padding:0}.auto-topics-card{display:grid;grid-template-columns:180px 1fr auto;align-items:center;gap:12px;padding:10px 12px;border-bottom:1px solid #f1f5f9;transition:background .12s}.auto-topics-card:hover{background:#f8fafc}.auto-topics-card:last-child{border-bottom:0}.auto-topics-card--custom{background:#fffbeb}.auto-topics-card--custom:hover{background:#fef3c7}.auto-topics-card-meta{display:flex;align-items:center;gap:8px;min-width:0}.auto-topics-card-device{display:inline-flex;align-items:center;gap:4px;font-weight:600;font-size:13px;color:#1e293b;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.auto-topics-card-device .material-symbols-outlined{font-size:16px;color:#64748b}.auto-topics-card-topic{font-family:ui-monospace,SF Mono,Menlo,Consolas,monospace;font-size:12.5px;background:#f1f5f9;padding:5px 10px;border-radius:6px;color:#1e293b;word-break:break-all;min-width:0}.auto-topics-copy-btn{display:inline-flex;align-items:center;justify-content:center;width:30px;height:30px;padding:0;background:transparent;border:1px solid transparent;border-radius:6px;cursor:pointer;color:#64748b;transition:background .12s,color .12s,border-color .12s}.auto-topics-copy-btn:hover{background:#f1f5f9;color:#1e293b;border-color:#e2e8f0}.auto-topics-copy-btn.is-copied{background:#dcfce7;color:#15803d;border-color:#86efac}.auto-topics-copy-btn .material-symbols-outlined{font-size:16px}.auto-topics-tag{display:inline-block;padding:2px 8px;border-radius:6px;font-size:11px;font-weight:600;background:#e0e7ff;color:#4338ca;white-space:nowrap}.auto-topics-tag--custom{background:#fef3c7;color:#92400e}.bulk-notify-panel{display:flex;flex:1;flex-direction:column;gap:10px;height:100%;min-height:0;padding:14px 16px;overflow:hidden}.bulk-notify-form{flex:1;min-height:0;overflow:hidden;display:flex;flex-direction:column;gap:10px}.bulk-notify-form .bulk-notify-field textarea{max-height:200px}.bulk-notify-form .bulk-notify-templates-section{flex:1;min-height:0}.bulk-notify-form .bulk-notify-templates-section .bulk-notify-templates-grid{flex:1;min-height:0;overflow-y:auto}.bulk-notify-stepper-row{display:flex;align-items:center;gap:12px}.bulk-notify-stepper-row .bulk-notify-stepper{flex:1 1 auto;margin:0}.bulk-notify-stepper-btn{display:inline-flex;align-items:center;gap:4px;height:42px;padding:0 16px;font-size:14px;border-radius:999px;cursor:pointer;flex-shrink:0;white-space:nowrap;border:1px solid transparent;line-height:1}.bulk-notify-stepper-btn.secondary-btn{background:#fff;border:1px solid #cbd5e1;color:#475569}.bulk-notify-stepper-btn.secondary-btn:hover:not(:disabled){background:#f8fafc}.bulk-notify-stepper-btn.primary-btn{background:#ff8c00;border:0;color:#fff;font-weight:700}.bulk-notify-stepper-btn.primary-btn:hover:not(:disabled){background:#ea7c00}.bulk-notify-stepper-btn:disabled{opacity:.5;cursor:not-allowed}.bulk-notify-stepper-btn .material-symbols-outlined{font-size:18px}.bulk-notify-page-head{display:flex;align-items:center;justify-content:space-between;gap:16px}.bulk-notify-panel .panel-head h3{display:inline-flex;align-items:center;gap:8px;margin:0}.bulk-notify-panel .panel-head h3 .material-symbols-outlined{color:#ff8c00;font-variation-settings:"FILL" 1}.bulk-notify-form{display:flex;flex-direction:column;gap:16px}.bulk-notify-card{flex:1;min-height:0;overflow-y:auto;background:#fff;border:1px solid #e2e8f0;border-radius:12px;padding:16px;display:flex;flex-direction:column;gap:12px}.bulk-notify-form:has(.bulk-notify-templates-section)>.bulk-notify-card{flex:0 0 auto;overflow:visible}.bulk-notify-card-head{display:flex;align-items:center;gap:8px;padding-bottom:8px;border-bottom:1px solid #f1f5f9}.bulk-notify-card-head .material-symbols-outlined{color:#ff8c00;font-variation-settings:"FILL" 1;font-size:18px}.bulk-notify-card-head strong{font-size:13px;letter-spacing:.04em;text-transform:uppercase;color:#1e293b}.bulk-notify-count-badge{margin-left:auto;background:#ff8c00;color:#fff;border-radius:999px;padding:2px 10px;font-size:12px;font-weight:700}.bulk-notify-field{display:flex;flex-direction:column;gap:4px;font-size:13px;color:#475569}.bulk-notify-field input,.bulk-notify-field textarea{padding:8px 10px;border:1px solid #cbd5e1;border-radius:8px;font-size:13px;font-family:inherit}.bulk-notify-field textarea{resize:vertical}.bulk-notify-channels{display:flex;gap:10px;flex-wrap:wrap}.bulk-notify-channel{display:inline-flex;align-items:center;gap:8px;padding:8px 14px;border:1px solid #cbd5e1;border-radius:999px;background:#fff;cursor:pointer;transition:background .12s,border-color .12s,color .12s}.bulk-notify-channel:hover{background:#f8fafc}.bulk-notify-channel.is-on{background:#fff7ed;border-color:#ff8c00;color:#c2410c}.bulk-notify-channel input{margin:0}.bulk-notify-channel .material-symbols-outlined{font-size:18px;color:#94a3b8}.bulk-notify-channel.is-on .material-symbols-outlined{color:#c2410c;font-variation-settings:"FILL" 1}.bulk-notify-channel-label{font-size:13px;font-weight:600}.bulk-notify-all-toggle{display:inline-flex;align-items:center;gap:8px;font-size:13px;color:#1e293b;font-weight:600}.bulk-notify-targets-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}.bulk-notify-targets-col{display:flex;flex-direction:column;gap:8px;background:#f8fafc;border:1px solid #e2e8f0;border-radius:10px;padding:12px}.bulk-notify-targets-head{display:flex;align-items:center;justify-content:space-between;font-size:12px;text-transform:uppercase;letter-spacing:.05em;color:#1e293b}.bulk-notify-targets-head small{background:#fff;border:1px solid #cbd5e1;border-radius:999px;padding:1px 8px;font-size:11px;font-weight:700;color:#475569}.bulk-notify-search{padding:7px 10px;border:1px solid #cbd5e1;border-radius:6px;font-size:12.5px;background:#fff}.bulk-notify-list{max-height:280px;overflow-y:auto;display:flex;flex-direction:column;gap:4px}.bulk-notify-list-item{display:flex;align-items:center;gap:8px;padding:7px 10px;background:#fff;border:1px solid #e2e8f0;border-radius:8px;cursor:pointer}.bulk-notify-list-item:hover{background:#f1f5f9}.bulk-notify-list-item.is-on{background:#fff7ed;border-color:#ff8c00}.bulk-notify-list-item input{margin:0;flex-shrink:0}.bulk-notify-list-item-main{display:flex;flex-direction:column;min-width:0}.bulk-notify-list-item-main strong{font-size:13px;color:#1e293b;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.bulk-notify-list-item-main small{font-size:11px;color:#64748b;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.bulk-notify-actions{display:flex;justify-content:flex-end;gap:8px}.bulk-notify-actions .primary-btn{display:inline-flex;align-items:center;gap:6px;padding:10px 16px;background:#ff8c00;border:0;color:#fff;border-radius:8px;font-size:14px;font-weight:700;cursor:pointer}.bulk-notify-actions .primary-btn:disabled{background:#cbd5e1;cursor:not-allowed}.bulk-notify-result{display:flex;align-items:center;gap:12px;padding:12px 14px;background:#dcfce7;border:1px solid #86efac;border-radius:10px;color:#166534}.bulk-notify-result .material-symbols-outlined{color:#16a34a;font-variation-settings:"FILL" 1}.bulk-notify-result small{display:block;font-size:12px;color:#166534;margin-top:2px}@media (max-width: 720px){.bulk-notify-targets-grid{grid-template-columns:1fr}}.bulk-notify-wizard .bulk-notify-stepper{list-style:none;margin:0;padding:0 20px;display:flex;align-items:center;background:#fff;border:1px solid #e2e8f0;border-radius:999px;height:42px}.bulk-notify-step{display:inline-flex;align-items:center;gap:10px;font-size:13px;color:#94a3b8;flex-shrink:0}.bulk-notify-step:not(:last-child):after{content:"";flex:1 1 auto;display:inline-block;height:2px;background:#cbd5e1;margin:0 10px;min-width:30px}.bulk-notify-step:not(:last-child){flex:1 1 auto}.bulk-notify-step--done:not(:last-child):after{background:#16a34a}.bulk-notify-step-num{display:inline-flex;align-items:center;justify-content:center;width:24px;height:24px;border-radius:50%;background:#e2e8f0;color:#475569;font-size:12px;font-weight:700;flex-shrink:0}.bulk-notify-step-label{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.bulk-notify-step--current{color:#c2410c;font-weight:700}.bulk-notify-step--current .bulk-notify-step-num{background:#ff8c00;color:#fff;box-shadow:0 0 0 3px #ff8c002e}.bulk-notify-step--done{color:#15803d}.bulk-notify-step--done .bulk-notify-step-num{background:#16a34a;color:#fff}.bulk-notify-review{display:flex;flex-direction:column;gap:10px}.bulk-notify-review-row{display:grid;grid-template-columns:140px 1fr;gap:12px;padding:8px 0;border-bottom:1px solid #f1f5f9}.bulk-notify-review-row:last-child{border-bottom:0}.bulk-notify-review-label{font-size:12px;font-weight:700;color:#64748b;text-transform:uppercase;letter-spacing:.04em}.bulk-notify-review-value{font-size:13px;color:#1e293b}.bulk-notify-review-value--multiline{white-space:pre-wrap}.bulk-notify-review-targets{display:flex;flex-direction:column;gap:4px}.bulk-notify-review-targets strong{color:#475569}.bulk-notify-review-save-template{margin-top:16px;padding-top:14px;border-top:1px dashed #e2e8f0;display:flex;align-items:center;gap:12px}.bulk-notify-review-save-template .secondary-btn{display:inline-flex;align-items:center;gap:6px;padding:8px 14px;background:#fff;border:1px solid #cbd5e1;border-radius:8px;color:#475569;cursor:pointer;font-size:13px}.bulk-notify-review-save-template .secondary-btn:hover:not(:disabled){background:#fff7ed;border-color:#ff8c00;color:#c2410c}.bulk-notify-review-save-template .secondary-btn:disabled{opacity:.5;cursor:not-allowed}.bulk-notify-review-save-template .secondary-btn .material-symbols-outlined{font-size:16px}.bulk-notify-review-save-template .helper-text{margin:0;font-size:12px}.bulk-notify-wizard .bulk-notify-actions{justify-content:space-between}.bulk-notify-actions .secondary-btn{display:inline-flex;align-items:center;gap:4px;padding:8px 14px;background:#fff;border:1px solid #cbd5e1;color:#475569;border-radius:8px;cursor:pointer;font-size:14px}.bulk-notify-actions .secondary-btn:hover{background:#f8fafc}.bulk-notify-actions .secondary-btn:disabled,.bulk-notify-actions .primary-btn:disabled{opacity:.6;cursor:not-allowed}.bulk-notify-actions .material-symbols-outlined{font-size:18px}@media (max-width: 720px){.bulk-notify-review-row{grid-template-columns:1fr}.bulk-notify-stepper{flex-wrap:wrap}}.bulk-notify-template-controls{margin-left:auto;display:inline-flex;align-items:center;gap:6px}.bulk-notify-template-pick{display:inline-flex;align-items:center;gap:6px;font-size:12px;color:#64748b}.bulk-notify-template-pick select{padding:5px 8px;border:1px solid #cbd5e1;border-radius:6px;font-size:12.5px;background:#fff;min-width:180px}.bulk-notify-template-controls .secondary-btn{display:inline-flex;align-items:center;gap:4px;padding:5px 10px;font-size:12.5px}.bulk-notify-template-controls .material-symbols-outlined{font-size:16px}@media (max-width: 720px){.bulk-notify-template-controls{margin-left:0;width:100%;flex-wrap:wrap}.bulk-notify-template-pick{width:100%}.bulk-notify-template-pick select{flex:1 1 auto}}.bulk-notify-templates-section{margin-top:24px;background:#fff;border:1px solid #e2e8f0;border-radius:12px;padding:16px;display:flex;flex-direction:column;gap:12px}.bulk-notify-template-grid{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:12px}.bulk-notify-template-card{display:flex;flex-direction:column;gap:10px;padding:14px;background:#f8fafc;border:1px solid #e2e8f0;border-radius:10px;transition:border-color .12s,box-shadow .12s}.bulk-notify-template-card:hover{border-color:#ff8c00;box-shadow:0 4px 12px #ff8c0014}.bulk-notify-template-card-head{display:flex;align-items:center;justify-content:space-between;gap:8px}.bulk-notify-template-card-name{font-size:14px;color:#1e293b;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;flex:1 1 auto}.bulk-notify-template-card-actions{display:inline-flex;align-items:center;gap:4px;flex-shrink:0}.bulk-notify-template-load{display:inline-flex;align-items:center;gap:4px;padding:5px 10px;font-size:12.5px;background:#ff8c00;color:#fff;border:0;border-radius:6px;cursor:pointer}.bulk-notify-template-load:hover{background:#ea7c00}.bulk-notify-template-load .material-symbols-outlined{font-size:16px}.bulk-notify-template-card-meta{display:flex;flex-wrap:wrap;gap:6px}.bulk-notify-template-chip{display:inline-flex;align-items:center;gap:4px;padding:2px 8px;border-radius:999px;font-size:11px;font-weight:600;background:#e2e8f0;color:#475569}.bulk-notify-template-chip .material-symbols-outlined{font-size:13px}.bulk-notify-template-chip--web{background:#dbeafe;color:#1e40af}.bulk-notify-template-chip--email{background:#fef3c7;color:#92400e}.bulk-notify-template-chip--sms{background:#fce7f3;color:#9d174d}.bulk-notify-template-target{display:inline-flex;align-items:center;gap:4px;padding:2px 8px;border-radius:999px;font-size:11px;background:#f1f5f9;color:#64748b;margin-left:auto}.bulk-notify-template-target .material-symbols-outlined{font-size:13px}.bulk-notify-template-preview{border-top:1px dashed #e2e8f0;padding-top:10px;font-size:12.5px;color:#334155}.bulk-notify-template-preview strong{display:block;color:#1e293b;margin-bottom:4px;font-size:13px}.bulk-notify-template-preview p{margin:0;white-space:pre-wrap;color:#475569;line-height:1.4}@media (max-width: 720px){.auto-topics-card{grid-template-columns:1fr auto}.auto-topics-card-meta{grid-column:1 / -1}.auto-topics-card-topic{grid-column:1 / 2}.auto-topics-copy-btn{grid-column:2 / 3;grid-row:2 / 3}}.engineering-content .tab-panel.active-sessions-panel{display:flex;flex-direction:column;gap:10px;padding:14px 16px;flex:1;min-height:0;overflow:hidden}.sessions-toolbar{flex-shrink:0}.active-sessions-panel>.error-text{flex-shrink:0;margin:0}.sessions-refresh-btn{display:inline-flex;align-items:center;gap:6px;margin-left:auto;padding:8px 14px;background:#fff;border:1px solid #e2e8f0;border-radius:9px;color:#475569;cursor:pointer;font-size:13px;font-weight:600;transition:background .15s ease,border-color .15s ease}.sessions-refresh-btn:hover:not(:disabled){background:#f8fafc;border-color:#cbd5e1}.sessions-refresh-btn:disabled{opacity:.6;cursor:not-allowed}.sessions-refresh-btn .material-symbols-outlined{font-size:17px}.sessions-refresh-btn.is-spinning .material-symbols-outlined{animation:backups-spin .9s linear infinite}.sessions-user-cell{display:flex;align-items:center;gap:10px;min-width:210px}.sessions-avatar{position:relative;width:32px;height:32px;flex-shrink:0;display:inline-flex;align-items:center;justify-content:center;border-radius:50%;background:linear-gradient(135deg,#cbd5e1,#94a3b8);color:#fff;font-size:13px;font-weight:700}.sessions-avatar.is-online{background:linear-gradient(135deg,#6ee7b7,#059669)}.sessions-avatar.is-online:after{content:"";position:absolute;right:-1px;bottom:-1px;width:10px;height:10px;border-radius:50%;background:#22c55e;border:2px solid #fff}.sessions-user-text{display:flex;flex-direction:column;min-width:0}.sessions-user-text strong{font-size:13px;font-weight:700;color:#0f172a}.sessions-user-text small{font-size:11.5px;color:#64748b}.sessions-multi-pill{display:inline-flex;align-items:center;gap:3px;padding:2px 7px;border-radius:999px;background:#fffbeb;border:1px solid #fde68a;color:#b45309;font-size:11px;font-weight:700;cursor:help}.sessions-multi-pill .material-symbols-outlined{font-size:13px}.sessions-ip{font-family:ui-monospace,SF Mono,Menlo,Consolas,monospace;font-size:12px;background:#f1f5f9;padding:3px 8px;border-radius:6px;color:#334155;white-space:nowrap}.sessions-device-cell{display:inline-flex;align-items:center;gap:8px}.sessions-device-cell>.material-symbols-outlined{font-size:19px;color:#94a3b8}.sessions-device-text{display:flex;flex-direction:column;line-height:1.25}.sessions-device-text strong{font-size:12.5px;font-weight:600;color:#334155}.sessions-device-text small{font-size:11px;color:#94a3b8}.sessions-time-cell{white-space:nowrap;color:#475569!important;font-size:12.5px!important}.sessions-lastseen{display:inline-flex;align-items:center;gap:6px;font-weight:600;color:#64748b}.sessions-lastseen-dot{width:7px;height:7px;border-radius:50%;background:#cbd5e1;flex-shrink:0}.sessions-lastseen.is-online{color:#15803d}.sessions-lastseen.is-online .sessions-lastseen-dot{background:#22c55e;animation:backups-pulse 1.6s ease-in-out infinite}.sessions-revoke-btn{display:inline-flex;align-items:center;gap:5px;padding:6px 12px;background:#fff1f2;border:1px solid #fecdd3;border-radius:8px;color:#e11d48;cursor:pointer;font-size:12.5px;font-weight:600;white-space:nowrap;transition:background .15s ease,border-color .15s ease}.sessions-revoke-btn:hover:not(:disabled){background:#ffe4e6;border-color:#fda4af}.sessions-revoke-btn:disabled{opacity:.5;cursor:not-allowed}.sessions-revoke-btn .material-symbols-outlined{font-size:16px}.sessions-empty{display:flex;flex:1;flex-direction:column;align-items:center;justify-content:center;gap:6px;padding:56px 32px;text-align:center;color:#94a3b8;font-size:13px}.sessions-empty h3{margin:0;font-size:17px;color:#334155}.sessions-empty p{margin:0;max-width:42ch;line-height:1.5}.sessions-empty-icon{font-size:52px!important;color:#cbd5e1}.sessions-empty-icon:not(:only-child){margin-bottom:2px}.active-sessions-table-wrap{display:flex;flex-direction:column;flex:1;min-height:0;overflow:auto;background:#fff;border:1px solid #e2e8f0;border-radius:12px;box-shadow:0 1px 2px #0f172a0a}.sessions-role-pill{display:inline-block;padding:2px 8px;border-radius:6px;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.04em;background:#e0e7ff;color:#4338ca}.sessions-role-pill.role-installer{background:#fef3c7;color:#92400e}.sessions-role-pill.role-engineer{background:#dbeafe;color:#1e40af}.sessions-role-pill.role-ops_manager{background:#ede9fe;color:#6d28d9}.sessions-role-pill.role-operator{background:#dcfce7;color:#15803d}.tab-bar-shell{position:relative;display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:stretch;min-height:40px;background:#e2e8f0;border-bottom:1px solid #cbd5e1;z-index:1000}.tab-bar{display:flex;align-items:flex-end;gap:2px;min-width:0;padding:6px 4px 0;overflow-x:auto;overflow-y:hidden;scrollbar-width:none;scroll-behavior:smooth;overscroll-behavior-inline:contain}.tab-bar::-webkit-scrollbar{display:none}.tab-bar-scroll{position:relative;z-index:2;display:grid;place-items:center;width:32px;padding:0;border:0;background:linear-gradient(90deg,#e2e8f0 65%,#e2e8f033);color:#475569;cursor:pointer}.tab-bar-scroll--right{background:linear-gradient(270deg,#e2e8f0 65%,#e2e8f033)}.tab-bar-scroll:hover:not(:disabled){color:#0f172a;background-color:#cbd5e1}.tab-bar-scroll:disabled{opacity:.25;cursor:default}.tab-bar-scroll svg{flex:0 0 auto}.tab-bar-scroll:focus-visible{outline:2px solid #2563eb;outline-offset:-2px}.tab-bar-item{display:inline-flex;align-items:center;gap:7px;flex:0 0 auto;max-width:220px;min-width:96px;height:34px;padding:0 10px 0 12px;background:#cbd5e1;color:#475569;border:1px solid transparent;border-bottom:none;border-radius:9px 9px 0 0;font-size:13px;font-weight:500;cursor:pointer;-webkit-user-select:none;user-select:none;white-space:nowrap;transition:background .12s ease,color .12s ease}.tab-bar-item:hover{background:#dbe2ea;color:#334155}.tab-bar-item.active{background:#fff;color:#0f172a;font-weight:600;box-shadow:0 -1px 3px #0f172a0f;position:relative}.tab-bar-item.active:after{content:"";position:absolute;left:0;right:0;bottom:-1px;height:2px;background:#fff}.tab-bar-item:focus-visible{outline:2px solid #2563eb;outline-offset:-2px}.tab-bar-item-icon{flex:0 0 auto;opacity:.85}.tab-bar-item.active .tab-bar-item-icon{opacity:1;color:#2563eb}.tab-bar-item-label{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.tab-bar-item-close,.tab-bar-item-pin{flex:0 0 auto;display:inline-flex;align-items:center;justify-content:center;width:18px;height:18px;border-radius:5px}.tab-bar-item-close{border:none;background:transparent;color:inherit;cursor:pointer;padding:0;opacity:.6}.tab-bar-item-close .material-symbols-outlined{font-size:15px}.tab-bar-item-close:hover{background:#0f172a1f;opacity:1}.tab-bar-item-pin{font-size:13px;opacity:.45;cursor:default}.tab-bar-item.dragging{opacity:.45}.tab-bar-item.drag-over{box-shadow:inset 3px 0 #2563eb}.tab-ctx-menu{position:fixed;z-index:1200;min-width:200px;padding:5px;background:#fff;border:1px solid #e2e8f0;border-radius:10px;box-shadow:0 10px 30px #0f172a29;display:flex;flex-direction:column;gap:1px}.tab-ctx-menu button{display:flex;align-items:center;gap:10px;width:100%;padding:8px 10px;border:none;background:transparent;border-radius:7px;font-size:13px;color:#334155;text-align:left;cursor:pointer}.tab-ctx-menu button .material-symbols-outlined{font-size:18px;color:#64748b}.tab-ctx-menu button:hover:not(:disabled){background:#f1f5f9}.tab-ctx-menu button:disabled{opacity:.4;cursor:not-allowed}.device-detail{padding:18px 20px;display:flex;flex-direction:column;gap:16px;overflow-y:auto;flex:1;min-height:0}.device-detail-empty{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;color:#64748b}.device-detail-empty .material-symbols-outlined{font-size:48px;color:#cbd5e1}.device-detail-head{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}.device-detail-title{display:flex;align-items:center;gap:12px}.device-detail-title h2{margin:0;font-size:20px;color:#0f172a}.device-detail-code{font-size:13px;color:#64748b}.device-detail-dot{width:12px;height:12px;border-radius:50%;flex:0 0 auto}.device-detail-dot.online{background:#22c55e;box-shadow:0 0 0 3px #22c55e33}.device-detail-dot.offline{background:#94a3b8;box-shadow:0 0 0 3px #94a3b833}.device-detail-alarm{display:inline-flex;align-items:center;gap:6px;padding:4px 10px;border-radius:8px;background:#fef2f2;color:#b91c1c;font-size:13px;font-weight:600}.device-detail-alarm .material-symbols-outlined{font-size:18px}.device-detail-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:12px}.device-detail-card{display:flex;align-items:center;gap:12px;background:#fff;border:1px solid #e2e8f0;border-radius:10px;padding:14px 16px}.device-detail-card>.material-symbols-outlined{font-size:26px;color:#2563eb}.device-detail-card-label{display:block;font-size:11px;text-transform:uppercase;letter-spacing:.05em;color:#64748b;font-weight:600;margin-bottom:2px}.device-detail-card strong{font-size:16px;color:#0f172a}.device-detail-charts-placeholder{flex:1;min-height:220px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;background:#fff;border:1px dashed #cbd5e1;border-radius:12px;color:#64748b;text-align:center;padding:32px}.device-detail-charts-placeholder .material-symbols-outlined{font-size:52px;color:#cbd5e1}.device-detail-charts-placeholder h3{margin:0;font-size:16px;color:#475569}.device-detail-chips{display:flex;align-items:center;gap:6px;flex-wrap:wrap}.device-detail-chip{display:inline-flex;align-items:center;gap:4px;padding:4px 10px;border-radius:999px;background:#f1f5f9;color:#334155;font-size:12px;font-weight:600;max-width:220px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.device-detail-chip .material-symbols-outlined{font-size:15px}.device-detail-chip.is-line{background:#eef2ff;color:#4338ca}.device-detail-chip.is-battery{background:#ecfdf5;color:#047857}.device-detail-chip.is-alarm{background:#fef2f2;color:#b91c1c}.device-detail-commands{display:flex;flex-direction:column;gap:8px;padding:12px 0;border-bottom:1px solid #e2e8f0}.device-detail-commands-title{display:inline-flex;align-items:center;gap:6px;font-size:12px;font-weight:700;color:#64748b;text-transform:uppercase;letter-spacing:.04em}.device-detail-commands-title .material-symbols-outlined{font-size:16px}.device-detail-commands-row,.device-detail-commands-more{display:flex;gap:8px;flex-wrap:wrap}.device-detail-commands .action-btn.danger{border-color:#fecaca;color:#b91c1c}.device-detail-commands .action-btn.danger:hover:not(:disabled){background:#fef2f2}.device-detail-cmd-history{list-style:none;margin:4px 0 0;padding:0;display:flex;flex-direction:column;gap:4px}.device-detail-cmd-history .cmd-hist{display:flex;align-items:center;gap:8px;font-size:12px;color:#475569}.cmd-hist-label{font-weight:600}.cmd-hist-status{padding:1px 8px;border-radius:999px;font-weight:600;font-size:11px}.cmd-hist-status.status-pending,.cmd-hist-status.status-sent{background:#fef9c3;color:#854d0e}.cmd-hist-status.status-ok{background:#dbeafe;color:#1d4ed8}.cmd-hist-status.status-failed{background:#fee2e2;color:#b91c1c}.cmd-hist-status.status-expired{background:#f1f5f9;color:#64748b}.device-cmd-async-note{display:flex;align-items:flex-start;gap:6px;margin:0 0 4px;padding:8px 10px;font-size:12px;line-height:1.45;color:#475569;background:#f0f9ff;border:1px solid #bae6fd;border-radius:8px}.device-cmd-async-note .material-symbols-outlined{font-size:16px;color:#0ea5e9;flex:0 0 auto;margin-top:1px}.cmd-hist-err{color:#b91c1c;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:260px}.device-detail-sources{display:flex;gap:8px;flex-wrap:wrap}.device-detail-source-tab{display:inline-flex;align-items:center;gap:8px;padding:8px 14px;border:1px solid #e2e8f0;border-radius:10px;background:#fff;cursor:pointer;transition:border-color .15s,box-shadow .15s,background .15s}.device-detail-source-tab:disabled{opacity:.45;cursor:default}.device-detail-source-tab .device-detail-source-badge{font-weight:700;font-size:13px;color:#fff;padding:2px 10px;border-radius:999px}.device-detail-source-tab.tone-master .device-detail-source-badge{background:#e67c00}.device-detail-source-tab.tone-green .device-detail-source-badge{background:#16a34a}.device-detail-source-tab.tone-amber .device-detail-source-badge{background:#f59e0b}.device-detail-source-count{font-size:12px;font-weight:600;color:#64748b}.device-detail-source-tab.active{border-color:#94a3b8;box-shadow:0 2px 10px #0f172a14;background:#f8fafc}.device-detail-source-tab.active.tone-master{border-color:#e67c00}.device-detail-source-tab.active.tone-green{border-color:#16a34a}.device-detail-source-tab.active.tone-amber{border-color:#f59e0b}.device-detail-body{display:flex;flex-direction:column;gap:16px;background:#fff;border:1px solid #e2e8f0;border-top:4px solid #e67c00;border-radius:12px;padding:16px 18px}.device-detail-body.tone-green{border-top-color:#16a34a}.device-detail-body.tone-amber{border-top-color:#f59e0b}.device-detail-counters{display:grid;grid-template-columns:repeat(2,1fr);gap:12px}.device-detail-counter{display:flex;align-items:center;gap:12px;border:1px solid #e2e8f0;border-radius:10px;padding:12px 14px;background:#f8fafc}.device-detail-counter .material-symbols-outlined{font-size:28px}.device-detail-counter.tone-red .material-symbols-outlined{color:#dc2626}.device-detail-counter.tone-amber .material-symbols-outlined{color:#d97706}.device-detail-counter-label{display:block;font-size:11px;text-transform:uppercase;letter-spacing:.05em;color:#64748b;font-weight:700}.device-detail-counter strong{font-size:22px;color:#0f172a}.device-detail-cat{display:flex;flex-direction:column;gap:8px}.device-detail-cat-title{display:flex;align-items:center;gap:6px;margin:0;font-size:12px;font-weight:700;letter-spacing:.05em;color:#475569;padding-bottom:6px;border-bottom:1px solid #f1f5f9}.device-detail-cat-title .material-symbols-outlined{font-size:18px;color:#94a3b8}.device-detail-cat-title.as-toggle{background:none;border:none;border-bottom:1px solid #f1f5f9;cursor:pointer;text-align:left;width:100%}.device-detail-measures{display:grid;grid-template-columns:repeat(2,1fr);gap:8px 16px}.device-detail-measures.is-other{grid-template-columns:repeat(auto-fill,minmax(220px,1fr))}.device-detail-measure{display:flex;flex-direction:column;gap:1px;padding:6px 0;border-bottom:1px solid #f8fafc}.device-detail-measure-label{font-size:11px;text-transform:uppercase;letter-spacing:.03em;color:#94a3b8;font-weight:600}.device-detail-measure-value{font-size:14px;font-weight:600;color:#0f172a}.device-detail-bits{display:grid;grid-template-columns:repeat(2,1fr);gap:6px 16px}.device-detail-bit{display:flex;align-items:center;gap:8px;padding:5px 0}.device-detail-bit-dot{width:10px;height:10px;border-radius:50%;background:#cbd5e1;flex:0 0 auto}.device-detail-bit-label{font-size:13px;color:#64748b}.device-detail-bit.is-on .device-detail-bit-dot{background:#64748b}.device-detail-bit.is-on .device-detail-bit-label{color:#0f172a;font-weight:600}.device-detail-bit.is-on.dir-a .device-detail-bit-dot{background:#16a34a;box-shadow:0 0 0 3px #16a34a2e}.device-detail-bit.is-on.dir-b .device-detail-bit-dot{background:#dc2626;box-shadow:0 0 0 3px #dc26262e}.device-detail-bits:not(.is-direction) .device-detail-bit.is-on .device-detail-bit-dot{background:#dc2626;box-shadow:0 0 0 3px #dc262626}@media (max-width: 720px){.device-detail-counters,.device-detail-measures,.device-detail-bits{grid-template-columns:1fr}}.grid-import-trigger{display:inline-flex;align-items:center;justify-content:center;gap:3px;font-size:11px;font-weight:600;padding:6px;border:1px solid #cbd5e1;background:#fff;color:#334155;border-radius:9px;cursor:pointer;white-space:nowrap;transition:background .14s ease,border-color .14s ease,color .14s ease}.grid-import-trigger:hover{background:#f1f5f9;border-color:#94a3b8;color:#0f172a}.grid-import-trigger:active{transform:scale(.97)}.grid-import-trigger-label{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}.grid-import-trigger .material-symbols-outlined{flex:0 0 auto;font-size:14px}.grid-import-btn-soft{display:inline-flex;align-items:center;gap:6px;padding:9px 16px;border:1px solid #bfdbfe;background:#eff6ff;color:#1d4ed8;border-radius:10px;font-weight:600;font-size:13px;cursor:pointer;transition:background .14s ease,border-color .14s ease}.grid-import-btn-soft:hover:not(:disabled){background:#dbeafe;border-color:#93c5fd}.grid-import-btn-soft:disabled{opacity:.55;cursor:default}.grid-import-btn-soft .material-symbols-outlined{font-size:19px}.grid-import-filepick{display:inline-flex;align-items:center;gap:8px;max-width:100%;padding:10px 14px;border:1.5px dashed #cbd5e1;background:#f8fafc;color:#475569;border-radius:10px;font-weight:600;font-size:13px;cursor:pointer;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;transition:border-color .14s ease,background .14s ease,color .14s ease}.grid-import-filepick:hover:not(:disabled){border-color:#2563eb;background:#eff6ff;color:#1d4ed8}.grid-import-filepick.has-file{border-style:solid;border-color:#86efac;background:#f0fdf4;color:#15803d}.grid-import-filepick:disabled{opacity:.6;cursor:default}.grid-import-filepick .material-symbols-outlined{font-size:19px;flex:0 0 auto}.grid-import-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:6px}.grid-import-btn-cancel{padding:9px 18px;border:1px solid #e2e8f0;background:#fff;color:#475569;border-radius:10px;font-weight:600;font-size:13px;cursor:pointer;transition:background .14s ease}.grid-import-btn-cancel:hover:not(:disabled){background:#f1f5f9}.grid-import-btn-cancel:disabled{opacity:.55;cursor:default}.grid-import-btn-primary{display:inline-flex;align-items:center;gap:6px;padding:9px 20px;border:1px solid #cc7000;background:linear-gradient(135deg,#e67c00,#cc7000);color:#fff;border-radius:10px;font-weight:700;font-size:13px;cursor:pointer;box-shadow:0 6px 16px #e67c003d;transition:filter .16s ease,transform .12s ease,box-shadow .16s ease}.grid-import-btn-primary:hover:not(:disabled){filter:brightness(1.05)}.grid-import-btn-primary:active:not(:disabled){transform:scale(.97)}.grid-import-btn-primary:disabled{background:#e2e8f0;border-color:#e2e8f0;color:#94a3b8;box-shadow:none;cursor:default}.grid-import-btn-primary .material-symbols-outlined{font-size:18px}.grid-import-modal{max-width:620px;width:92vw}.grid-import-step{display:flex;gap:12px;padding:12px 0;border-bottom:1px solid #f1f5f9}.grid-import-step-num{flex:0 0 26px;height:26px;border-radius:50%;background:#2563eb;color:#fff;font-weight:700;font-size:14px;display:flex;align-items:center;justify-content:center}.grid-import-step-body{display:flex;flex-direction:column;gap:6px;flex:1;min-width:0}.grid-import-step-body strong{font-size:14px;color:#0f172a}.grid-import-step-body button{align-self:flex-start;display:inline-flex;align-items:center;gap:6px}.grid-import-step-body button .material-symbols-outlined{font-size:18px}.grid-import-preview{padding:12px 0}.grid-import-summary{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin-bottom:12px}.grid-import-summary-card{background:#f8fafc;border:1px solid #e2e8f0;border-radius:10px;padding:12px 8px;text-align:center;display:flex;flex-direction:column;gap:2px}.grid-import-summary-card strong{font-size:22px;color:#2563eb}.grid-import-summary-card span{font-size:11px;text-transform:uppercase;letter-spacing:.04em;color:#64748b;font-weight:600}.grid-import-ok{display:flex;align-items:center;gap:8px;color:#15803d;font-weight:600;font-size:13px}.grid-import-ok .material-symbols-outlined{font-size:20px}.grid-import-errors{background:#fef2f2;border:1px solid #fecaca;border-radius:10px;padding:10px 12px;max-height:220px;overflow-y:auto}.grid-import-errors>strong{display:block;color:#b91c1c;font-size:13px;margin-bottom:6px}.grid-import-errors ul{margin:0;padding:0;list-style:none;display:flex;flex-direction:column;gap:4px}.grid-import-errors li{font-size:12px;color:#7f1d1d;line-height:1.4}.grid-import-error-row{font-weight:700;margin-right:2px}.grid-wizard-modal{max-width:640px;width:92vw}.grid-wizard-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:4px}.grid-wizard-head h3{margin:0;font-size:18px;color:#0f172a}.grid-wizard-back{display:inline-flex;align-items:center;gap:4px;background:none;border:none;color:#2563eb;font-size:13px;font-weight:600;cursor:pointer;padding:4px 6px;border-radius:6px}.grid-wizard-back:hover{background:#eff6ff}.grid-wizard-back .material-symbols-outlined{font-size:18px}.grid-wizard-methods{display:flex;flex-direction:column;gap:12px;padding-top:8px}.grid-wizard-cards{display:grid;grid-template-columns:repeat(2,1fr);gap:12px}@media (max-width: 560px){.grid-wizard-cards{grid-template-columns:1fr}}.grid-wizard-card{position:relative;display:flex;flex-direction:column;align-items:flex-start;gap:8px;text-align:left;padding:18px 16px;border:1px solid #e2e8f0;border-radius:12px;background:#fff;cursor:pointer;transition:border-color .15s,box-shadow .15s,transform .05s}.grid-wizard-card:hover{border-color:#2563eb;box-shadow:0 4px 14px #2563eb1f}.grid-wizard-card:active{transform:translateY(1px)}.grid-wizard-card strong{font-size:15px;color:#0f172a}.grid-wizard-card-icon{font-size:30px;color:#2563eb}.grid-wizard-card-desc{font-size:12.5px;color:#64748b;line-height:1.45}.grid-wizard-card--soon{background:#f8fafc;cursor:pointer}.grid-wizard-card--soon .grid-wizard-card-icon,.grid-wizard-card--soon strong{color:#94a3b8}.grid-wizard-card--soon:hover{border-color:#cbd5e1;box-shadow:none}.grid-wizard-soon-badge{position:absolute;top:10px;right:10px;font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:#b45309;background:#fef3c7;border-radius:999px;padding:2px 8px}.grid-wizard-qa-placeholder{display:flex;flex-direction:column;align-items:center;text-align:center;gap:8px;padding:40px 20px;color:#64748b}.grid-wizard-qa-placeholder .material-symbols-outlined{font-size:40px;color:#cbd5e1}.grid-wizard-qa-placeholder h4{margin:0;font-size:15px;color:#334155}.device-detail-tabs{display:flex;gap:4px;border-bottom:1px solid #e2e8f0;margin-bottom:2px}.device-detail-tab{display:inline-flex;align-items:center;gap:6px;padding:9px 14px;border:none;background:none;color:#64748b;font-size:13px;font-weight:600;cursor:pointer;border-bottom:2px solid transparent;margin-bottom:-1px;transition:color .15s,border-color .15s}.device-detail-tab .material-symbols-outlined{font-size:18px}.device-detail-tab:hover{color:#0f172a}.device-detail-tab.active{color:#0369a1;border-bottom-color:#0ea5e9}.device-cmd-panel{display:flex;flex-direction:column;gap:16px}.device-cmd-group{display:flex;flex-direction:column;gap:8px}.device-cmd-group-title{display:flex;align-items:center;gap:6px;margin:0;font-size:12px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:#64748b}.device-cmd-group-title .material-symbols-outlined{font-size:16px}.device-cmd-group.is-alarm_reset .device-cmd-group-title{color:#b45309}.device-cmd-group.is-config .device-cmd-group-title{color:#0369a1}.device-cmd-group.is-danger .device-cmd-group-title{color:#b91c1c}.device-cmd-group-row{display:flex;flex-wrap:wrap;gap:8px}.device-cmd-group.is-config{padding:10px 12px;background:#f0f9ff;border:1px solid #bae6fd;border-radius:10px}.device-trend{display:flex;flex-direction:column;gap:12px;flex:1;min-height:0}.device-trend-timebar{display:flex;align-items:center;justify-content:space-between;gap:14px;flex-wrap:wrap;flex:0 0 auto}.device-trend-ranges{display:inline-flex;gap:4px;flex-wrap:wrap}.device-trend-range{padding:7px 13px;border:1px solid #e2e8f0;border-radius:8px;background:#fff;color:#475569;font-size:12px;font-weight:700;cursor:pointer;transition:background .15s,border-color .15s,color .15s}.device-trend-range:hover{background:#f8fafc}.device-trend-range.active{background:#0f172a;border-color:#0f172a;color:#fff}.device-trend-custom{display:inline-flex;align-items:center;gap:8px}.device-trend-custom input{padding:7px 10px;border:1px solid #cbd5e1;border-radius:8px;font-size:13px;color:#0f172a}.device-trend-custom-sep{color:#94a3b8;font-weight:700}.device-trend-typebar{display:inline-flex;align-items:center;gap:8px}.device-trend-types{display:inline-flex;gap:2px;padding:3px;background:#f1f5f9;border-radius:9px}.device-trend-live{display:inline-flex;align-items:center;gap:6px;padding:7px 11px;border:1px solid #e2e8f0;border-radius:9px;background:#fff;font-size:12px;font-weight:700;color:#64748b;cursor:pointer;transition:all .15s}.device-trend-live:hover{border-color:#cbd5e1}.device-trend-live.active{border-color:#ef4444;background:#fef2f2;color:#dc2626}.device-trend-live-dot{width:8px;height:8px;border-radius:50%;background:#cbd5e1;flex:0 0 auto}.device-trend-live-dot.is-on{background:#ef4444;box-shadow:0 0 #ef444480;animation:trend-live-pulse 1.6s infinite}@keyframes trend-live-pulse{0%{box-shadow:0 0 #ef444480}70%{box-shadow:0 0 0 6px #ef444400}to{box-shadow:0 0 #ef444400}}.device-trend-type{display:inline-flex;align-items:center;justify-content:center;width:32px;height:30px;border:none;border-radius:7px;background:transparent;color:#64748b;cursor:pointer;transition:background .15s,color .15s}.device-trend-type:hover{color:#0f172a}.device-trend-type.active{background:#fff;color:#0f172a;box-shadow:0 1px 2px #0f172a1a}.device-trend-type .material-symbols-outlined{font-size:18px}.device-trend-gear-wrap{position:relative}.device-trend-gear{display:inline-flex;align-items:center;justify-content:center;width:34px;height:34px;border:1px solid #e2e8f0;border-radius:9px;background:#fff;color:#64748b;cursor:pointer;transition:background .15s,border-color .15s}.device-trend-gear:hover{background:#f8fafc;color:#0f172a}.device-trend-gear.active{background:#0f172a;border-color:#0f172a;color:#fff}.device-trend-gear .material-symbols-outlined{font-size:18px}.device-trend-gear-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:40}.device-trend-gear-panel{position:absolute;top:calc(100% + 6px);right:0;z-index:41;min-width:220px;background:#fff;border:1px solid #e2e8f0;border-radius:12px;box-shadow:0 10px 30px #0f172a26;padding:12px;display:flex;flex-direction:column;gap:10px}.device-trend-gear-title{font-size:11px;font-weight:800;letter-spacing:.04em;text-transform:uppercase;color:#94a3b8}.device-trend-gear-row{display:flex;align-items:center;gap:8px;font-size:13px;font-weight:600;color:#334155;cursor:pointer}.device-trend-gear-row input[type=checkbox]{accent-color:#0ea5e9;cursor:pointer}.device-trend-gear-slider{flex-direction:column;align-items:stretch;gap:5px;cursor:default}.device-trend-gear-slider span{font-size:12px;color:#64748b;font-weight:600}.device-trend-gear-slider input[type=range]{accent-color:#0ea5e9;width:100%}.device-trend-gear-slider select{padding:5px 8px;border:1px solid #e2e8f0;border-radius:7px;font-size:13px;color:#334155;background:#fff}.device-trend-heat-modes{display:flex;gap:4px;background:#f1f5f9;padding:3px;border-radius:9px}.device-trend-heat-mode{flex:1;padding:6px 8px;border:none;background:transparent;border-radius:7px;font-size:12px;font-weight:700;color:#64748b;cursor:pointer}.device-trend-heat-mode.active{background:#fff;color:#0ea5e9;box-shadow:0 1px 3px #0f172a1a}.device-trend-gear-note{font-size:11px;line-height:1.4;color:#94a3b8}.device-trend-body{display:grid;grid-template-columns:240px 1fr;gap:12px;flex:1;min-height:0}.device-trend-body.is-heatmap{grid-template-columns:1fr}.device-trend-side{display:flex;flex-direction:column;border:1px solid #e2e8f0;border-radius:14px;background:#fff;overflow:hidden}.device-trend-side-head{display:flex;align-items:center;justify-content:space-between;padding:12px 14px;border-bottom:1px solid #f1f5f9;font-size:11px;font-weight:800;letter-spacing:.04em;text-transform:uppercase;color:#64748b}.device-trend-add{display:inline-flex;align-items:center;justify-content:center;width:26px;height:26px;border:none;border-radius:7px;background:#0f172a;color:#fff;cursor:pointer}.device-trend-add:hover{background:#1e293b}.device-trend-add .material-symbols-outlined{font-size:18px}.device-trend-list{list-style:none;margin:0;padding:8px;display:flex;flex-direction:column;gap:6px;overflow-y:auto;flex:1}.device-trend-list-empty{padding:20px 12px;text-align:center;font-size:12px;color:#94a3b8}.device-trend-listitem{display:flex;align-items:center;gap:9px;padding:9px 10px;border:1px solid #f1f5f9;border-radius:9px;background:#fafbfc;cursor:pointer;transition:border-color .15s,background .15s}.device-trend-listitem:hover{border-color:#cbd5e1;background:#fff}.device-trend-radio{display:inline-flex;align-items:center;gap:6px;font-size:13px;font-weight:600;color:#64748b;cursor:pointer}.device-trend-radio.active{color:#0f172a}.device-trend-radio.is-disabled{opacity:.4;cursor:not-allowed}.device-trend-radio input{accent-color:#0ea5e9;cursor:pointer}.device-trend-listcolor{width:10px;height:10px;border-radius:3px;flex:0 0 auto}.device-trend-listbody{display:flex;flex-direction:column;gap:1px;min-width:0;flex:1}.device-trend-listlabel{font-size:13px;font-weight:700;color:#0f172a;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.device-trend-listsrc{font-size:11px;color:#94a3b8}.device-trend-listdel{display:inline-flex;border:none;background:none;cursor:pointer;color:#cbd5e1;padding:2px}.device-trend-listdel:hover{color:#ef4444}.device-trend-listdel .material-symbols-outlined{font-size:16px}.device-trend-chart{position:relative;border-radius:14px;background:#fff;border:1px solid #e2e8f0;padding:12px;min-height:0;overflow:hidden;box-shadow:0 1px 3px #0f172a0a}.device-trend-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;height:100%;min-height:300px;color:#94a3b8;font-size:13px}.device-trend-empty .material-symbols-outlined{font-size:40px;color:#cbd5e1}.device-trend-empty.is-error{color:#f87171}.device-trend-empty.is-error .material-symbols-outlined{color:#ef4444}.device-trend-empty p{margin:0}.device-trend-src{display:inline-flex;align-items:center;gap:6px;font-size:13px;font-weight:600;color:#64748b;cursor:pointer}.device-trend-src.active{color:#0f172a}.device-trend-src.is-disabled{opacity:.4;cursor:not-allowed}.device-trend-src input{accent-color:#0ea5e9;cursor:pointer}.device-trend-src-dash{width:20px;height:0;border-top:2px solid #94a3b8}.device-trend-src-dash[data-src=sat01]{border-top-style:dashed}.device-trend-src-dash[data-src=sat02]{border-top-style:dotted}.device-trend-modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1000;background:#0f172a66;display:flex;align-items:center;justify-content:center;padding:20px}.device-trend-modal{width:100%;max-width:420px;background:#fff;border-radius:16px;box-shadow:0 20px 50px #00000040;overflow:hidden}.device-trend-modal-head{display:flex;align-items:center;justify-content:space-between;padding:16px 18px;border-bottom:1px solid #f1f5f9}.device-trend-modal-head h4{margin:0;font-size:15px;font-weight:800;color:#0f172a}.device-trend-modal-head button{border:none;background:none;cursor:pointer;color:#94a3b8}.device-trend-modal-head .material-symbols-outlined{font-size:20px}.device-trend-modal-body{padding:18px;display:flex;flex-direction:column;gap:16px}.device-trend-field{display:flex;flex-direction:column;gap:7px}.device-trend-field>span{font-size:12px;font-weight:700;color:#64748b}.device-trend-field select{padding:9px 11px;border:1px solid #cbd5e1;border-radius:9px;font-size:13px;color:#0f172a;background:#fff}.device-trend-modal-sources{display:flex;gap:14px;flex-wrap:wrap}.device-trend-colors{display:flex;gap:8px;flex-wrap:wrap}.device-trend-colorbtn{width:26px;height:26px;border-radius:7px;border:2px solid transparent;cursor:pointer;transition:transform .1s}.device-trend-colorbtn:hover{transform:scale(1.1)}.device-trend-colorbtn.active{border-color:#0f172a;box-shadow:0 0 0 2px #fff,0 0 0 4px #0f172a}.device-trend-modal-foot{display:flex;justify-content:flex-end;gap:10px;padding:14px 18px;border-top:1px solid #f1f5f9}.device-trend-btn-secondary{padding:9px 16px;border:1px solid #cbd5e1;border-radius:9px;background:#fff;color:#475569;font-size:13px;font-weight:600;cursor:pointer}.device-trend-btn-primary{padding:9px 18px;border:none;border-radius:9px;background:#0f172a;color:#fff;font-size:13px;font-weight:700;cursor:pointer}.device-trend-btn-primary:disabled{opacity:.5;cursor:default}@media (max-width: 1024px){.device-trend-body{grid-template-columns:1fr}.device-trend-side{max-height:200px}}.device-chart-panel{display:flex;flex-direction:column;gap:12px}.device-chart-controls{display:flex;align-items:flex-end;justify-content:space-between;gap:12px;flex-wrap:wrap}.device-chart-select{display:flex;flex-direction:column;gap:4px;font-size:12px;font-weight:600;color:#64748b}.device-chart-select select{padding:7px 10px;border:1px solid #cbd5e1;border-radius:8px;font-size:13px;color:#0f172a;background:#fff;min-width:220px}.device-chart-ranges{display:inline-flex;gap:2px;padding:3px;background:#f1f5f9;border-radius:9px}.device-chart-range{padding:6px 12px;border:none;background:none;color:#64748b;font-size:12px;font-weight:600;border-radius:6px;cursor:pointer;transition:background .15s,color .15s}.device-chart-range:hover{color:#0f172a}.device-chart-range.active{background:#fff;color:#0369a1;box-shadow:0 1px 2px #0f172a14}.device-chart-canvas{position:relative;height:340px;padding:12px;background:#fff;border:1px solid #e2e8f0;border-radius:12px}.device-chart-status{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;gap:8px;color:#64748b;font-size:13px}.device-chart-status .material-symbols-outlined{font-size:22px;color:#cbd5e1}.device-chart-status.is-error{color:#b91c1c}.device-chart-status.is-error .material-symbols-outlined{color:#ef4444}.device-config-panel{display:flex;flex-direction:column;gap:18px}.device-config-section{display:flex;flex-direction:column;gap:12px;padding:16px;background:#fff;border:1px solid #e2e8f0;border-radius:12px}.device-config-section.is-placeholder{background:#f8fafc;border-style:dashed}.device-config-title{display:flex;align-items:center;gap:8px;margin:0;font-size:14px;font-weight:700;color:#0f172a}.device-config-title .material-symbols-outlined{font-size:18px;color:#0ea5e9}.device-config-badge{margin-left:4px;padding:2px 8px;font-size:11px;font-weight:600;text-transform:lowercase;color:#92400e;background:#fef3c7;border-radius:999px}.device-config-hint{margin:0;font-size:12px;color:#64748b}.device-config-actions{display:flex;align-items:center;justify-content:flex-end;gap:12px}.device-config-msg{display:inline-flex;align-items:center;gap:5px;font-size:12px;font-weight:600}.device-config-msg .material-symbols-outlined{font-size:16px}.device-config-msg.is-ok{color:#166534}.device-config-msg.is-err{color:#b91c1c}.device-config-ftp-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:10px;opacity:.65}.device-detail-head{align-items:flex-start}.device-detail-title{flex-wrap:wrap}.device-detail-status-pill{display:inline-flex;align-items:center;gap:5px;padding:4px 10px;border-radius:999px;font-size:12px;font-weight:700;margin-left:4px}.device-detail-status-pill .material-symbols-outlined{font-size:15px}.device-detail-status-pill.is-online{background:#dcfce7;color:#15803d}.device-detail-status-pill.is-offline{background:#f1f5f9;color:#64748b}.device-detail-status-pill.is-alarm{background:#fee2e2;color:#b91c1c}.device-detail-quick{display:inline-flex;gap:8px}.action-btn.is-reset{background:#fff7ed;border-color:#fdba74;color:#c2410c;font-weight:700}.action-btn.is-reset:hover:not(:disabled){background:#ffedd5}.device-summary{display:flex;flex-direction:column;gap:12px;padding:16px;background:linear-gradient(180deg,#f8fafc,#fff);border:1px solid #e2e8f0;border-radius:14px}.device-summary-kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:10px}.device-kpi{display:flex;align-items:center;gap:12px;padding:12px 14px;background:#fff;border:1px solid #e2e8f0;border-radius:12px;position:relative;overflow:hidden}.device-kpi:before{content:"";position:absolute;left:0;top:0;bottom:0;width:3px}.device-kpi-icon{font-size:26px;width:42px;height:42px;display:flex;align-items:center;justify-content:center;border-radius:10px;flex:0 0 auto}.device-kpi-body{display:flex;flex-direction:column;min-width:0}.device-kpi-value{font-size:19px;font-weight:800;color:#0f172a;line-height:1.1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.device-kpi-label{font-size:11px;font-weight:600;color:#94a3b8;text-transform:uppercase;letter-spacing:.03em}.device-kpi.tone-amber:before{background:#f59e0b}.device-kpi.tone-amber .device-kpi-icon{background:#fef3c7;color:#b45309}.device-kpi.tone-blue:before{background:#3b82f6}.device-kpi.tone-blue .device-kpi-icon{background:#dbeafe;color:#1d4ed8}.device-kpi.tone-rose:before{background:#f43f5e}.device-kpi.tone-rose .device-kpi-icon{background:#ffe4e6;color:#be123c}.device-kpi.tone-red:before{background:#ef4444}.device-kpi.tone-red .device-kpi-icon{background:#fee2e2;color:#b91c1c}.device-kpi.tone-orange:before{background:#f97316}.device-kpi.tone-orange .device-kpi-icon{background:#ffedd5;color:#c2410c}.device-summary-meta{display:flex;flex-wrap:wrap;gap:8px 16px;padding-top:4px;border-top:1px dashed #e2e8f0}.device-meta-item{display:inline-flex;align-items:center;gap:5px;font-size:12px;color:#334155;min-width:0}.device-meta-item .material-symbols-outlined{font-size:16px;color:#94a3b8}.device-meta-label{color:#94a3b8;font-weight:600}.device-meta-value{font-weight:700;color:#0f172a;max-width:220px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.device-summary-serials{display:flex;flex-wrap:wrap;gap:8px}.device-serial-card{display:flex;align-items:center;gap:8px;padding:7px 12px;background:#fff;border:1px solid #e2e8f0;border-radius:10px;border-left-width:3px}.device-serial-badge{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.03em;color:#64748b}.device-serial-value{display:inline-flex;align-items:center;gap:4px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:13px;font-weight:700;color:#0f172a}.device-serial-value .material-symbols-outlined{font-size:15px;color:#94a3b8}.device-serial-card.tone-master{border-left-color:#f59e0b}.device-serial-card.tone-green{border-left-color:#22c55e}.device-serial-card.tone-amber{border-left-color:#f59e0b}.device-dir-grid{display:flex;flex-direction:column;gap:10px}.device-dir-row{display:grid;grid-template-columns:180px 1fr 120px;align-items:center;gap:14px;padding:12px 14px;background:#fff;border:1px solid #e2e8f0;border-radius:12px}.device-dir-label{font-size:13px;font-weight:600;color:#334155}.device-dir-flow{display:flex;align-items:center;gap:10px}.device-dir-node{width:34px;height:34px;display:flex;align-items:center;justify-content:center;border-radius:50%;font-weight:800;font-size:14px;background:#f1f5f9;color:#94a3b8;border:2px solid #e2e8f0;flex:0 0 auto;transition:all .2s}.device-dir-node.node-a.active{background:#dcfce7;color:#15803d;border-color:#22c55e;box-shadow:0 0 0 3px #22c55e2e}.device-dir-node.node-b.active{background:#fee2e2;color:#b91c1c;border-color:#ef4444;box-shadow:0 0 0 3px #ef44442e}.device-dir-track{flex:1;display:flex;align-items:center;gap:2px;min-width:60px}.device-dir-line{flex:1;height:2px;background:#e2e8f0;border-radius:2px}.device-dir-arrow{font-size:18px;color:#cbd5e1;transition:color .2s}.device-dir-row.is-a .arrow-a{color:#22c55e}.device-dir-row.is-a .device-dir-line{background:linear-gradient(90deg,#22c55e,#e2e8f0)}.device-dir-row.is-b .arrow-b{color:#ef4444}.device-dir-row.is-b .device-dir-line{background:linear-gradient(90deg,#e2e8f0,#ef4444)}.device-dir-state{font-size:12px;font-weight:700;text-align:right;color:#94a3b8}.device-dir-row.is-a .device-dir-state{color:#15803d}.device-dir-row.is-b .device-dir-state{color:#b91c1c}.device-config-section.is-readonly{background:#fff}.device-config-badge.is-muted{color:#64748b;background:#f1f5f9}.device-cfg-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:10px}.device-cfg-row{display:flex;flex-direction:column;gap:2px;padding:8px 10px;background:#f8fafc;border-radius:8px}.device-cfg-label{font-size:11px;font-weight:600;color:#94a3b8;text-transform:uppercase;letter-spacing:.03em}.device-cfg-value{font-size:14px;font-weight:700;color:#0f172a;font-family:ui-monospace,SFMono-Regular,Menlo,monospace}@media (max-width: 640px){.device-dir-row{grid-template-columns:1fr;gap:8px}.device-dir-state{text-align:left}}.device-detail-shell{display:grid;grid-template-columns:270px 1fr;gap:0;flex:1;min-height:0;background:#f8fafc}.device-sidebar{display:flex;flex-direction:column;gap:20px;padding:20px 18px 0;background:#fff;border-right:1px solid #e2e8f0;overflow-y:auto}.device-sidebar-brand{padding-bottom:4px}.device-sidebar-logo{height:30px;width:auto;object-fit:contain}.device-sidebar-section{display:flex;flex-direction:column;gap:8px}.device-sidebar-kicker{font-size:11px;font-weight:700;letter-spacing:.06em;color:#94a3b8}.device-sidebar-code{margin:0;font-size:26px;font-weight:800;color:#0f172a;line-height:1.1}.device-sidebar-name{font-size:13px;color:#64748b;font-weight:600}.device-sidebar-status{display:inline-flex;align-items:center;gap:7px;font-size:13px;font-weight:700;margin-top:2px}.device-sidebar-dot{width:9px;height:9px;border-radius:50%;flex:0 0 auto}.device-sidebar-status.is-online{color:#15803d}.device-sidebar-status.is-online .device-sidebar-dot{background:#22c55e;box-shadow:0 0 0 3px #22c55e2e}.device-sidebar-status.is-offline{color:#64748b}.device-sidebar-status.is-offline .device-sidebar-dot{background:#94a3b8}.device-sidebar-lastcomm{font-size:12px;color:#94a3b8}.device-sidebar-lastcomm strong{color:#475569;font-weight:700}.device-sidebar-section+.device-sidebar-section{border-top:1px solid #f1f5f9;padding-top:16px}.device-sidebar-info,.device-sidebar-summary,.device-sidebar-channels{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:9px}.device-sidebar-info-row{display:grid;grid-template-columns:20px 1fr auto;align-items:center;gap:8px;font-size:12px}.device-sidebar-info-row .material-symbols-outlined{font-size:17px;color:#94a3b8}.device-sidebar-info-label{color:#64748b}.device-sidebar-info-value{font-weight:700;color:#0f172a;max-width:130px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;text-align:right}.device-sidebar-summary-row{display:grid;grid-template-columns:12px 1fr auto;align-items:center;gap:8px;font-size:12px}.device-summary-dot{width:9px;height:9px;border-radius:50%}.device-summary-dot.dot-green{background:#22c55e}.device-summary-dot.dot-sky{background:#0ea5e9}.device-summary-dot.dot-amber{background:#f59e0b}.device-summary-dot.dot-slate{background:#94a3b8}.device-sidebar-summary-label{color:#64748b}.device-sidebar-summary-value{font-weight:700;color:#0f172a;text-align:right}.device-channel{width:100%;display:flex;align-items:center;justify-content:space-between;gap:8px;padding:9px 12px;border:1px solid #e2e8f0;border-left:3px solid #e2e8f0;border-radius:8px;background:#fff;font-size:13px;font-weight:600;color:#334155;cursor:pointer;transition:background .15s,border-color .15s}.device-channel .material-symbols-outlined{font-size:18px;color:#94a3b8}.device-channel-serial{font-size:12px;font-weight:700;color:#94a3b8;font-variant-numeric:tabular-nums}.device-channel-batt{display:inline-flex;align-items:center;gap:5px;flex:0 0 auto}.device-channel-batt .device-battery-icon{position:relative;width:24px;height:12px;border:1.5px solid currentColor;border-radius:3px;padding:1px;display:inline-block}.device-channel-batt .device-battery-icon:after{content:"";position:absolute;right:-3px;top:3px;width:2px;height:4px;background:currentColor;border-radius:0 1px 1px 0}.device-channel-batt .device-battery-fill{display:block;height:100%;border-radius:1px;background:currentColor}.device-channel-batt.device-battery--ok{color:#16a34a}.device-channel-batt.device-battery--low{color:#d97706}.device-channel-batt.device-battery--critical{color:#dc2626}.device-channel-batt-text{font-size:11px;font-weight:700;color:#64748b;font-variant-numeric:tabular-nums;min-width:30px}.device-channel{gap:8px}.device-channel-label{flex:1;text-align:left}.device-channel.active .device-channel-serial{color:inherit}.device-channel:hover:not(:disabled){background:#f8fafc}.device-channel:disabled{opacity:.45;cursor:not-allowed}.device-channel.active{background:#f8fafc}.device-channel.tone-master.active{border-left-color:#f59e0b;color:#b45309}.device-channel.tone-master.active .material-symbols-outlined{color:#f59e0b}.device-channel.tone-green.active{border-left-color:#22c55e;color:#15803d}.device-channel.tone-green.active .material-symbols-outlined{color:#22c55e}.device-channel.tone-amber.active{border-left-color:#f59e0b;color:#b45309}.device-channel.tone-amber.active .material-symbols-outlined{color:#f59e0b}.device-channel.tone-blue.active{border-left-color:#0ea5e9;color:#0369a1}.device-channel.tone-blue.active .material-symbols-outlined{color:#0ea5e9}.device-sidebar-reset{display:inline-flex;align-items:center;justify-content:center;gap:8px;width:100%;padding:11px;border:1px solid #fdba74;border-radius:10px;background:#fff7ed;color:#c2410c;font-size:14px;font-weight:700;cursor:pointer;transition:background .15s}.device-sidebar-reset:hover:not(:disabled){background:#ffedd5}.device-sidebar-reset:disabled{opacity:.6;cursor:default}.device-sidebar-reset .material-symbols-outlined{font-size:19px}.device-sidebar-more{display:inline-flex;align-items:center;gap:6px;width:100%;padding:4px 2px;border:none;background:none;color:#64748b;font-size:13px;font-weight:600;cursor:pointer}.device-sidebar-more:hover{color:#0f172a}.device-sidebar-more .material-symbols-outlined{font-size:18px}.device-sidebar-more-chevron{margin-left:auto}.device-detail-main{display:flex;flex-direction:column;min-width:0;min-height:0;padding:0 24px 24px;overflow-y:auto}.device-detail-main:has(>.device-overview),.device-detail-main:has(>.device-events-fullpanel),.device-detail-main:has(>.device-trend-panel){overflow:hidden}.device-detail-main:has(>.device-set){overflow:hidden}.device-set{flex:1;min-height:0}.device-set .device-set-card{height:100%}.device-set .device-set-measures{align-content:start}.device-trend-panel,.device-events-fullpanel{flex:1;min-height:0;display:flex;flex-direction:column;padding-bottom:4px}.device-card.is-events-full{flex:1;min-height:0;display:flex;flex-direction:column}.device-card.is-events-full{overflow:hidden}.device-card.is-events-full .device-events{flex:1;min-height:0;display:flex;flex-direction:column;overflow-y:auto}.device-card.is-events-full .device-events-table{flex:0 0 auto}.device-card.is-events-full .device-events-pager{position:sticky;bottom:0;z-index:2;margin-top:auto;background:#fff;border-top:1px solid #e2e8f0;padding:12px 0 4px}.device-events-empty.is-filtered{flex:1;min-height:200px}.device-detail-main .device-detail-tabs{position:sticky;top:0;z-index:2;background:#f8fafc;padding-top:16px;margin-bottom:16px}.device-detail-panel{display:flex;flex-direction:column;gap:14px}.device-panel-title{margin:0;font-size:13px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:#64748b}.device-overview{display:flex;flex-direction:column;gap:16px;flex:1;min-height:0}.device-overview-kpis{display:grid;grid-template-columns:repeat(5,1fr);gap:14px;flex:0 0 auto}.device-overview-srchint{flex:0 0 auto}.device-overview-kpis .device-kpi{position:relative;border:1px solid #e8edf3;border-radius:16px;padding:16px 18px 14px;background:#fff;display:flex;flex-direction:column;gap:10px;overflow:hidden;box-shadow:0 1px 2px #0f172a0a;transition:box-shadow .18s,transform .18s,border-color .18s}.device-overview-kpis .device-kpi:hover{box-shadow:0 6px 20px #0f172a14;transform:translateY(-2px);border-color:#dbe3ec}.device-overview-kpis .device-kpi:before{content:"";display:block;position:absolute;top:0;left:0;right:0;height:3px}.device-overview-kpis .device-kpi.tone-amber:before{background:linear-gradient(90deg,#fbbf24,#f59e0b)}.device-overview-kpis .device-kpi.tone-blue:before{background:linear-gradient(90deg,#60a5fa,#3b82f6)}.device-overview-kpis .device-kpi.tone-rose:before{background:linear-gradient(90deg,#fb7185,#f43f5e)}.device-overview-kpis .device-kpi.tone-red:before{background:linear-gradient(90deg,#f87171,#ef4444)}.device-overview-kpis .device-kpi.tone-orange:before{background:linear-gradient(90deg,#fb923c,#f97316)}.device-kpi-head{display:flex;align-items:center;gap:9px}.device-kpi-head .device-kpi-label{font-size:11px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:#64748b;order:2}.device-kpi-head .device-kpi-icon{order:1;display:inline-flex;align-items:center;justify-content:center;width:34px;height:34px;border-radius:10px;font-size:19px;flex:0 0 auto}.device-overview-kpis .device-kpi-value{font-size:27px;font-weight:800;color:#0f172a;line-height:1.05;letter-spacing:-.01em}.device-overview-kpis .device-kpi.tone-blue .device-kpi-value{color:#1d4ed8}.device-overview-kpis .device-kpi.tone-rose .device-kpi-value{color:#be123c}.device-overview-kpis .device-kpi.tone-red .device-kpi-value{color:#b91c1c}.device-overview-kpis .device-kpi.tone-orange .device-kpi-value{color:#c2410c}.device-kpi-value{color:#0369a1}.device-kpi-spark{height:38px;margin:6px -18px -14px;opacity:.9}.device-spark{height:38px}.device-spark.is-empty{height:34px}.device-overview-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px;align-items:start}.device-overview-col{display:flex;flex-direction:column;gap:16px}.device-card{background:#fff;border:1px solid #e2e8f0;border-radius:14px;padding:18px}.device-card.is-events{min-height:100%}.device-card-title{margin:0 0 14px;font-size:12px;font-weight:700;letter-spacing:.05em;color:#64748b}.device-status-table{width:100%;border-collapse:collapse;font-size:13px}.device-status-table th{text-align:left;font-size:11px;font-weight:700;letter-spacing:.04em;color:#94a3b8;padding:6px 0 10px;border-bottom:1px solid #e2e8f0}.device-status-table td{padding:9px 0;border-bottom:1px solid #f1f5f9}.device-status-table tr:last-child td{border-bottom:none}.device-status-name{display:flex;align-items:center;gap:9px;color:#334155;font-weight:500}.device-status-name .material-symbols-outlined{font-size:18px;color:#94a3b8}.device-status-badge{display:inline-flex;align-items:center;gap:5px;font-size:12px;font-weight:700}.device-status-badge .material-symbols-outlined{font-size:16px}.device-flow{display:flex;flex-direction:column;align-items:center;gap:14px;padding:12px 0}.device-flow-diagram{display:flex;align-items:center;gap:12px;width:100%;max-width:380px}.device-flow-node{width:46px;height:46px;display:flex;align-items:center;justify-content:center;border-radius:50%;font-weight:800;font-size:16px;background:#f1f5f9;color:#94a3b8;border:2px solid #e2e8f0;flex:0 0 auto}.device-flow-node.node-a.active{background:#dcfce7;color:#15803d;border-color:#22c55e;box-shadow:0 0 0 4px #22c55e26}.device-flow-node.node-b.active{background:#fee2e2;color:#b91c1c;border-color:#ef4444;box-shadow:0 0 0 4px #ef444426}.device-flow-track{flex:1;display:flex;align-items:center;gap:6px}.device-flow-line{flex:1;border-top:2px dashed #cbd5e1}.device-flow-chip{padding:4px 10px;font-size:12px;font-weight:700;color:#475569;background:#fff;border:1px solid #e2e8f0;border-radius:6px;white-space:nowrap}.device-flow-caption{margin:0;font-size:13px;font-weight:700;color:#64748b}.device-flow-diagram.is-a~.device-flow-caption{color:#15803d}.device-flow-diagram.is-b~.device-flow-caption{color:#b91c1c}.device-flow-note{margin:0;font-size:11px;color:#94a3b8;text-align:center}.device-events-table{width:100%;border-collapse:collapse;font-size:13px}.device-events-table th{text-align:left;font-size:11px;font-weight:700;letter-spacing:.04em;color:#94a3b8;padding:6px 8px 10px;border-bottom:1px solid #e2e8f0}.device-events-table td{padding:11px 8px;border-bottom:1px solid #e2e8f0;vertical-align:middle}.device-events-table tr:last-child td{border-bottom:none}.device-events-time{display:flex;align-items:center;gap:8px;color:#475569;font-weight:600;font-variant-numeric:tabular-nums;white-space:nowrap}.device-events-dot{width:8px;height:8px;border-radius:50%;flex:0 0 auto}.device-events-dot.tone-ok{background:#22c55e}.device-events-dot.tone-info{background:#0ea5e9}.device-events-dot.tone-warn{background:#f59e0b}.device-events-dot.tone-err{background:#ef4444}.device-events-dot.tone-pending{background:#eab308}.device-events-msg{color:#0f172a}.device-events-source{color:#64748b;text-transform:capitalize}.device-events-badge{display:inline-flex;padding:3px 10px;border-radius:999px;font-size:11px;font-weight:700;border:1px solid transparent}.device-events-badge.tone-ok{background:#dcfce7;color:#15803d;border-color:#bbf7d0}.device-events-badge.tone-info{background:#dbeafe;color:#1d4ed8;border-color:#bfdbfe}.device-events-badge.tone-warn{background:#fef3c7;color:#b45309;border-color:#fde68a}.device-events-badge.tone-err{background:#fee2e2;color:#b91c1c;border-color:#fecaca}.device-events-badge.tone-pending{background:#fef9c3;color:#854d0e;border-color:#fef08a}.device-events-viewall{display:flex;align-items:center;justify-content:center;gap:4px;width:100%;margin-top:12px;padding:10px;border:none;border-top:1px solid #f1f5f9;background:none;color:#0369a1;font-size:13px;font-weight:600;cursor:pointer}.device-events-viewall:hover{color:#075985}.device-events-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;padding:32px;color:#94a3b8;font-size:13px}.device-events-empty .material-symbols-outlined{font-size:32px;color:#cbd5e1}.device-detail-topbar{position:sticky;top:0;z-index:2;display:flex;align-items:center;justify-content:space-between;gap:16px;background:#f8fafc;padding-top:16px;margin-bottom:16px;border-bottom:1px solid #e2e8f0}.device-detail-topbar .device-detail-tabs{border-bottom:none;margin-bottom:0;padding-top:0}.device-detail-topbar-actions{display:inline-flex;align-items:center;gap:10px;padding-bottom:8px}.device-alarm-badge{display:inline-flex;align-items:center;gap:6px;padding:5px 12px;border-radius:999px;background:#fee2e2;color:#b91c1c;font-size:12px;font-weight:700}.device-alarm-pulse{width:8px;height:8px;border-radius:50%;background:#ef4444;box-shadow:0 0 #ef444499;animation:device-alarm-pulse 1.6s infinite}@keyframes device-alarm-pulse{0%{box-shadow:0 0 #ef44448c}70%{box-shadow:0 0 0 7px #ef444400}to{box-shadow:0 0 #ef444400}}.device-reset-btn{display:inline-flex;align-items:center;gap:7px;padding:8px 16px;border:1px solid #fdba74;border-radius:9px;background:#fff7ed;color:#c2410c;font-size:13px;font-weight:700;cursor:pointer;transition:background .15s}.device-reset-btn:hover:not(:disabled){background:#ffedd5}.device-reset-btn:disabled{opacity:.6;cursor:default}.device-reset-btn .material-symbols-outlined{font-size:18px}.device-kpi-value.is-stale{color:#94a3b8!important}.device-overview-srchint{display:inline-flex;align-items:center;gap:6px;font-size:12px;color:#94a3b8;font-weight:600}.device-overview-srchint .material-symbols-outlined{font-size:15px}.device-overview-grid{align-items:stretch;flex:1;min-height:0}.device-overview-col{min-height:0;display:flex;flex-direction:column}.device-overview-col:first-child .device-card{min-height:100%;display:flex;flex-direction:column}.device-overview-col:first-child .device-status-grid{align-content:start}.device-overview-col:last-child{gap:16px}.device-overview-col:last-child .device-card{flex:1 1 0;min-height:0;display:flex;flex-direction:column}.device-overview-col:last-child .device-card .device-alarms-list,.device-overview-col:last-child .device-card .device-events,.device-overview-col:last-child .device-card .device-alarms-empty{flex:1;min-height:0;overflow-y:auto}.device-overview-col:last-child .device-alarms-list{max-height:none}.device-events-who{white-space:nowrap}.device-events-actor{display:inline-flex;align-items:center;gap:4px;font-size:12px;font-weight:600;color:#475569}.device-events-actor .material-symbols-outlined{font-size:15px;color:#94a3b8}.device-events-actor.is-system{color:#94a3b8}.device-set{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;align-items:start}.device-set-card{position:relative;display:flex;flex-direction:column;border:1px solid #e8edf3;border-radius:18px;background:#fff;overflow:hidden;box-shadow:0 2px 8px #0f172a0d;transition:box-shadow .2s,transform .2s}.device-set-card:hover{box-shadow:0 8px 24px #0f172a17;transform:translateY(-2px)}.device-set-card:before{content:"";position:absolute;top:0;left:0;right:0;height:5px}.device-set-card.tone-master:before{background:linear-gradient(90deg,#fcd34d,#f59e0b,#ea580c)}.device-set-card.tone-green:before{background:linear-gradient(90deg,#6ee7b7,#22c55e,#16a34a)}.device-set-card.tone-amber:before{background:linear-gradient(90deg,#fdba74,#f97316,#ea580c)}.device-set-card.tone-blue:before{background:linear-gradient(90deg,#7dd3fc,#38bdf8,#0284c7)}.device-set-card.tone-master .device-set-head{background:linear-gradient(180deg,#fffbeb,#fff)}.device-set-card.tone-green .device-set-head{background:linear-gradient(180deg,#f0fdf4,#fff)}.device-set-card.tone-amber .device-set-head{background:linear-gradient(180deg,#fff7ed,#fff)}.device-set-card.tone-blue .device-set-head{background:linear-gradient(180deg,#f0f9ff,#fff)}.device-set-card.is-offline{opacity:.6;background:#f8fafc}.device-set-card.is-offline:hover{transform:none;box-shadow:0 2px 8px #0f172a0d}.device-set-head{display:flex;align-items:center;gap:10px;padding:16px 16px 14px;border-bottom:1px solid #f1f5f9}.device-set-icon{font-size:20px;width:36px;height:36px;display:inline-flex;align-items:center;justify-content:center;border-radius:10px;flex:0 0 auto}.device-set-card.tone-master .device-set-icon{background:#fef3c7;color:#d97706}.device-set-card.tone-green .device-set-icon{background:#dcfce7;color:#16a34a}.device-set-card.tone-amber .device-set-icon{background:#ffedd5;color:#ea580c}.device-set-card.tone-blue .device-set-icon{background:#e0f2fe;color:#0284c7}.device-set-title{display:flex;flex-direction:column;gap:1px;flex:1;min-width:0}.device-set-name{font-size:15px;font-weight:800;color:#0f172a}.device-set-serial{font-size:12px;color:#94a3b8;font-weight:600;font-variant-numeric:tabular-nums}.device-set-status{display:inline-flex;align-items:center;gap:5px;font-size:12px;font-weight:700;white-space:nowrap}.device-set-status-dot{width:8px;height:8px;border-radius:50%}.device-set-status.is-online{color:#15803d}.device-set-status.is-online .device-set-status-dot{background:#22c55e;box-shadow:0 0 0 3px #22c55e2e}.device-set-status.is-off{color:#94a3b8}.device-set-status.is-off .device-set-status-dot{background:#cbd5e1}.device-set-nodata{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;padding:48px 20px;color:#94a3b8;font-size:13px}.device-set-nodata .material-symbols-outlined{font-size:36px;color:#cbd5e1}.device-set-nodata p{margin:0}.device-set-kpis{display:grid;grid-template-columns:1fr 1fr;gap:1px;background:#f1f5f9;border-bottom:1px solid #f1f5f9}.device-set-kpi{display:flex;align-items:center;gap:9px;padding:13px 14px;background:#fff}.device-set-kpi-icon{font-size:19px;width:36px;height:36px;display:inline-flex;align-items:center;justify-content:center;border-radius:11px;flex:0 0 auto;box-shadow:0 2px 6px #0f172a14}.device-set-kpi.tone-amber .device-set-kpi-icon{background:linear-gradient(135deg,#fef3c7,#fde68a);color:#d97706}.device-set-kpi.tone-blue .device-set-kpi-icon{background:linear-gradient(135deg,#dbeafe,#bfdbfe);color:#2563eb}.device-set-kpi.tone-rose .device-set-kpi-icon{background:linear-gradient(135deg,#ffe4e6,#fecdd3);color:#e11d48}.device-set-kpi.tone-green .device-set-kpi-icon{background:linear-gradient(135deg,#dcfce7,#bbf7d0);color:#16a34a}.device-set-kpi.tone-red .device-set-kpi-icon{background:linear-gradient(135deg,#fee2e2,#fecaca);color:#dc2626}.device-set-kpi.tone-slate .device-set-kpi-icon{background:linear-gradient(135deg,#f1f5f9,#e2e8f0);color:#94a3b8}.device-set-kpi-body{display:flex;flex-direction:column;gap:1px;min-width:0}.device-set-kpi-value{font-size:17px;font-weight:800;color:#0f172a;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.device-set-kpi-label{font-size:11px;color:#94a3b8;font-weight:600}.device-set-block{padding:14px 16px}.device-set-block-title{display:block;font-size:11px;font-weight:800;letter-spacing:.04em;color:#64748b;margin-bottom:10px}.device-set-status-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px}.device-set-status-row{display:flex;align-items:center;justify-content:space-between;gap:8px}.device-set-status-name{display:inline-flex;align-items:center;gap:7px;font-size:12px;color:#334155}.device-set-status-name .material-symbols-outlined{font-size:16px;color:#94a3b8}.device-set-badge{display:inline-flex;align-items:center;gap:3px;font-size:11px;font-weight:700;white-space:nowrap}.device-set-badge .material-symbols-outlined{font-size:14px}.device-set-badge.is-normal{color:#16a34a}.device-set-badge.is-active{color:#d97706}.device-set-measures{display:grid;grid-template-columns:1fr 1fr;gap:3px 20px}.device-set-measure{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:5px 0;border-bottom:1px solid #f5f7fa;min-width:0}.device-set-measure-label{font-size:12px;color:#64748b;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.device-set-measure-value{font-size:12px;font-weight:700;color:#0f172a;white-space:nowrap;font-variant-numeric:tabular-nums}.device-set-counters{display:grid;grid-template-columns:1fr 1fr;gap:10px;padding:0 16px 16px;margin-top:auto}.device-set-counter{display:flex;align-items:center;gap:9px;padding:11px 12px;border-radius:11px}.device-set-counter.tone-red{background:#fef2f2}.device-set-counter.tone-orange{background:#fff7ed}.device-set-counter .material-symbols-outlined{font-size:20px}.device-set-counter.tone-red .material-symbols-outlined{color:#dc2626}.device-set-counter.tone-orange .material-symbols-outlined{color:#ea580c}.device-set-counter-label{display:block;font-size:10px;color:#94a3b8;font-weight:600}.device-set-counter strong{font-size:20px;font-weight:800;color:#0f172a}@media (max-width: 1100px){.device-set{grid-template-columns:1fr}}.device-all{display:flex;flex-direction:column;gap:18px}.device-all-source{display:flex;flex-direction:column;gap:10px}.device-all-source-title{display:flex;align-items:center;gap:8px;margin:0;padding-bottom:8px;border-bottom:2px solid #e2e8f0}.device-all-source-badge{font-size:13px;font-weight:800;color:#0f172a}.device-all-source-count{font-size:12px;font-weight:700;color:#64748b;background:#f1f5f9;padding:1px 9px;border-radius:999px}.device-all-source-title.tone-master{border-bottom-color:#fcd34d}.device-all-source-title.tone-green{border-bottom-color:#86efac}.device-all-source-title.tone-amber{border-bottom-color:#fcd34d}.device-all-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:8px}.device-all-item{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:9px 12px;background:#fff;border:1px solid #e2e8f0;border-radius:8px}.device-all-item.is-stale{opacity:.55}.device-all-item-label{font-size:12px;color:#64748b;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.device-all-item-value{font-size:13px;font-weight:700;color:#0f172a;white-space:nowrap}.device-cmd-history{display:flex;flex-direction:column;gap:8px}.device-cmd-row{display:grid;grid-template-columns:10px 1fr auto;align-items:center;gap:12px;padding:11px 14px;background:#fff;border:1px solid #e2e8f0;border-radius:10px}.device-cmd-row-dot{width:9px;height:9px;border-radius:50%}.device-cmd-row-dot.tone-ok{background:#0ea5e9}.device-cmd-row-dot.tone-failed{background:#ef4444}.device-cmd-row-dot.tone-pending,.device-cmd-row-dot.tone-sent{background:#eab308}.device-cmd-row-main{display:flex;flex-direction:column;gap:3px;min-width:0}.device-cmd-row-label{font-size:13px;font-weight:700;color:#0f172a}.device-cmd-row-meta{display:inline-flex;align-items:center;gap:12px;font-size:12px;color:#94a3b8}.device-cmd-row-actor{display:inline-flex;align-items:center;gap:4px}.device-cmd-row-actor .material-symbols-outlined{font-size:14px}.device-cmd-row-err{font-size:11px;color:#b91c1c;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.device-cmd-row-status{padding:3px 10px;border-radius:999px;font-size:11px;font-weight:700}.device-cmd-row-status.status-ok{background:#dbeafe;color:#1d4ed8}.device-cmd-row-status.status-failed{background:#fee2e2;color:#b91c1c}.device-cmd-row-status.status-pending,.device-cmd-row-status.status-sent{background:#fef9c3;color:#854d0e}.device-cmd-row-status.status-expired{background:#f1f5f9;color:#64748b}.device-card-title-icon{font-size:16px;vertical-align:-3px;margin-right:5px;color:#f43f5e}.device-alarms-list{list-style:none;margin:0;padding:2px;display:flex;flex-direction:column;gap:8px;max-height:320px;overflow-y:auto}.device-alarm-row{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:11px;padding:10px 12px;border:1px solid #e2e8f0;border-left-width:3px;border-radius:9px;background:#fff}.device-alarm-row.tone-err{border-left-color:#ef4444;background:#fef2f2}.device-alarm-row.tone-warn{border-left-color:#f59e0b;background:#fffbeb}.device-alarm-row.tone-info{border-left-color:#3b82f6}.device-alarm-row.is-done{background:#fff;border-left-color:#cbd5e1;opacity:.75}.device-alarm-row.is-acked{border-left-color:#3b82f6}.device-alarm-icon.is-acked{color:#2563eb!important}.device-alarm-acked-at{font-size:11px;color:#2563eb;font-weight:600}.device-alarm-badge.is-acked{background:#dbeafe;color:#1d4ed8}.device-alarm-icon{display:inline-flex}.device-alarm-icon .material-symbols-outlined{font-size:20px}.device-alarm-icon.tone-err{color:#dc2626}.device-alarm-icon.tone-warn{color:#d97706}.device-alarm-icon.tone-info{color:#2563eb}.device-alarm-row.is-done .device-alarm-icon{color:#94a3b8}.device-alarm-body{display:flex;flex-direction:column;gap:3px;min-width:0}.device-alarm-title{font-size:13px;font-weight:700;color:#0f172a;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.device-alarm-meta{display:inline-flex;align-items:center;gap:8px}.device-alarm-src{font-size:10px;font-weight:700;padding:1px 7px;border-radius:5px}.device-alarm-src.tone-master{background:#fef3c7;color:#b45309}.device-alarm-src.tone-green{background:#dcfce7;color:#15803d}.device-alarm-src.tone-amber{background:#fef3c7;color:#b45309}.device-alarm-src.tone-blue{background:#e0f2fe;color:#0369a1}.device-alarm-time{font-size:12px;color:#94a3b8;font-variant-numeric:tabular-nums}.device-alarm-badge{padding:3px 10px;border-radius:999px;font-size:11px;font-weight:700;white-space:nowrap}.device-alarm-badge.tone-err{background:#fee2e2;color:#b91c1c}.device-alarm-badge.tone-warn{background:#fef3c7;color:#b45309}.device-alarm-badge.tone-info{background:#dbeafe;color:#1d4ed8}.device-alarm-badge.is-done{background:#f1f5f9;color:#64748b}.device-alarms-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;padding:28px;color:#94a3b8;font-size:13px}.device-alarms-empty.is-clear .material-symbols-outlined{font-size:32px;color:#86efac}.device-alarms-empty p{margin:0}.device-sidebar-map{margin-top:10px;border-radius:10px;overflow:hidden;border:1px solid #e2e8f0}.device-sidebar-map .leaflet-container{border-radius:10px}.device-map-pin-dot{display:block;width:14px;height:14px;border-radius:50%;background:#0ea5e9;border:2px solid #fff;box-shadow:0 0 0 2px #0ea5e959}.device-sidebar-alarmcard{position:relative;display:flex;align-items:center;gap:10px;margin-top:10px;padding:11px 13px;border-radius:11px;border:1px solid;overflow:hidden}.device-sidebar-alarmcard.is-ok{background:#f0fdf4;border-color:#bbf7d0}.device-sidebar-alarmcard.is-alarm{background:#fef2f2;border-color:#fecaca;animation:sidebar-alarm-blink 1.4s ease-in-out infinite}@keyframes sidebar-alarm-blink{0%,to{background:#fef2f2;border-color:#fecaca}50%{background:#fee2e2;border-color:#f87171}}.device-sidebar-alarmcard-icon{display:inline-flex;flex:0 0 auto}.device-sidebar-alarmcard-icon .material-symbols-outlined{font-size:24px}.device-sidebar-alarmcard.is-ok .device-sidebar-alarmcard-icon{color:#16a34a}.device-sidebar-alarmcard.is-alarm .device-sidebar-alarmcard-icon{color:#dc2626}.device-sidebar-alarmcard-body{display:flex;flex-direction:column;gap:1px;min-width:0}.device-sidebar-alarmcard-title{font-size:13px;font-weight:800;letter-spacing:.02em}.device-sidebar-alarmcard.is-ok .device-sidebar-alarmcard-title{color:#15803d}.device-sidebar-alarmcard.is-alarm .device-sidebar-alarmcard-title{color:#b91c1c}.device-sidebar-alarmcard-sub{font-size:11px;color:#64748b}.device-sidebar-alarmcard-pulse{position:absolute;right:12px;width:9px;height:9px;border-radius:50%;background:#ef4444;box-shadow:0 0 #ef444499;animation:device-alarm-pulse 1.4s infinite}.device-map-label.leaflet-tooltip{background:#0f172a;color:#fff;border:none;border-radius:6px;padding:3px 9px;font-size:12px;font-weight:700;box-shadow:0 2px 6px #00000040}.device-map-label.leaflet-tooltip-top:before{border-top-color:#0f172a}.device-events-table.is-compact{table-layout:fixed;width:100%}.device-events-table.is-compact thead th{position:sticky;top:0;z-index:1;background:#fff}.device-events-table.is-compact .device-events-th-status,.device-events-table.is-compact .device-events-td-status.is-first{width:110px;text-align:left}.device-events-table.is-compact .device-events-th-time{width:90px}.device-events-table.is-compact th:nth-child(4){width:110px}.device-events-table.is-compact .device-events-msg{white-space:normal;overflow:hidden;text-overflow:ellipsis}.device-events-table:not(.is-full) .device-events-time{display:flex;align-items:flex-start;white-space:nowrap}.device-card-titlerow{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:14px}.device-card-titlerow .device-card-title{margin:0}.device-card-viewall{display:inline-flex;align-items:center;gap:2px;border:none;background:none;color:#0369a1;font-size:12px;font-weight:700;cursor:pointer;white-space:nowrap}.device-card-viewall:hover{color:#075985}.device-card-viewall .material-symbols-outlined{font-size:16px}.device-events-badge.is-alarm{display:inline-flex;align-items:center;gap:3px;background:#fee2e2;color:#b91c1c;border:1px solid #fecaca;padding:3px 9px;border-radius:999px;font-size:11px;font-weight:800}.device-events-badge.is-alarm .material-symbols-outlined{font-size:13px}.device-events-time-compact{display:inline-flex;flex-direction:column;align-items:flex-start;gap:1px;line-height:1.25}.device-events-time-compact .device-events-alarm-tag{margin-bottom:2px}.device-events-time-date{font-size:11px;color:#94a3b8;font-weight:600}.device-events-time-hm{font-size:13px;color:#334155;font-weight:700}.device-sidebar-serial{display:inline-flex;align-items:center;gap:5px;font-size:12px;color:#64748b;margin-top:2px}.device-sidebar-serial .material-symbols-outlined{font-size:15px;color:#94a3b8}.device-sidebar-serial strong{color:#334155;font-weight:700}.device-overview-kpis .device-kpi-head .device-kpi-icon{display:inline-flex;align-items:center;justify-content:center;width:30px;height:30px;border-radius:9px;font-size:18px}.device-overview-kpis .device-kpi.tone-amber .device-kpi-icon{background:#fef3c7;color:#d97706}.device-overview-kpis .device-kpi.tone-blue .device-kpi-icon{background:#dbeafe;color:#2563eb}.device-overview-kpis .device-kpi.tone-rose .device-kpi-icon{background:#ffe4e6;color:#e11d48}.device-overview-kpis .device-kpi.tone-red .device-kpi-icon{background:#fee2e2;color:#dc2626}.device-overview-kpis .device-kpi.tone-orange .device-kpi-icon{background:#ffedd5;color:#ea580c}.device-overview-kpis .device-kpi.tone-red,.device-overview-kpis .device-kpi.tone-orange{justify-content:flex-start}.device-overview-kpis .device-kpi.tone-red .device-kpi-value,.device-overview-kpis .device-kpi.tone-orange .device-kpi-value{font-size:42px;line-height:1;margin-top:6px}.device-status{display:flex;flex-direction:column;gap:14px}.device-status-tabs{display:flex;gap:4px;flex-wrap:wrap;padding-bottom:12px;border-bottom:1px solid #e2e8f0}.device-status-tab{display:inline-flex;align-items:center;gap:6px;padding:7px 12px;border:1px solid #e2e8f0;border-radius:9px;background:#fff;color:#475569;font-size:12px;font-weight:700;cursor:pointer;transition:background .15s,border-color .15s,color .15s}.device-status-tab .material-symbols-outlined{font-size:16px;color:#94a3b8}.device-status-tab:hover{background:#f8fafc}.device-status-tab.active{background:#0f172a;border-color:#0f172a;color:#fff}.device-status-tab.active .material-symbols-outlined{color:#fff}.device-status-tab-count{font-size:10px;font-weight:700;padding:1px 6px;border-radius:999px;background:#f1f5f9;color:#64748b}.device-status-tab.active .device-status-tab-count{background:#fff3;color:#fff}.device-status-grid{display:grid;grid-template-columns:1fr 1fr;gap:2px 24px;align-content:start}.device-status-grid.is-values.has-sep{margin-top:12px;padding-top:12px;border-top:1px dashed #e2e8f0}.device-status-item{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:7px 0;border-bottom:1px solid #f1f5f9;min-width:0}.device-status-name{display:inline-flex;align-items:center;gap:8px;font-size:13px;color:#334155;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.device-status-name .material-symbols-outlined{font-size:17px;color:#94a3b8;flex:0 0 auto}.device-status-badge{display:inline-flex;align-items:center;gap:4px;font-size:12px;font-weight:700;white-space:nowrap}.device-status-badge .material-symbols-outlined{font-size:15px}.device-status-badge.is-normal{color:#16a34a}.device-status-badge.is-active{color:#d97706}.device-status-itemval{font-size:13px;font-weight:800;color:#0f172a;white-space:nowrap;font-variant-numeric:tabular-nums}.device-events-toolbar{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}.device-events-count{font-size:13px;color:#64748b;font-weight:600}.device-events-export{display:inline-flex;align-items:center;gap:6px;padding:7px 14px;border:1px solid #cbd5e1;border-radius:8px;background:#fff;color:#334155;font-size:13px;font-weight:600;cursor:pointer;transition:background .15s,border-color .15s}.device-events-export:hover{background:#f8fafc;border-color:#94a3b8}.device-events-export .material-symbols-outlined{font-size:17px}.device-events-filters{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:14px;padding-bottom:14px;border-bottom:1px solid #e2e8f0}.device-events-filters .device-events-count{margin-left:auto;font-size:12px;color:#64748b;font-weight:600;white-space:nowrap}.device-events-search{display:inline-flex;align-items:center;gap:6px;padding:0 10px;border:1px solid #cbd5e1;border-radius:9px;background:#fff;min-width:180px;flex:0 1 240px}.device-events-search .material-symbols-outlined{font-size:18px;color:#94a3b8}.device-events-search input{flex:1;border:none;outline:none;padding:9px 0;font-size:13px;color:#0f172a;background:transparent}.device-events-search-clear{display:inline-flex;border:none;background:none;cursor:pointer;color:#94a3b8;padding:2px}.device-events-search-clear:hover{color:#475569}.device-events-search-clear .material-symbols-outlined{font-size:16px}.device-events-chips{display:inline-flex;gap:4px}.device-events-chip{padding:7px 14px;border:1px solid #e2e8f0;border-radius:999px;background:#fff;color:#475569;font-size:12px;font-weight:700;cursor:pointer;transition:background .15s,border-color .15s,color .15s}.device-events-chip:hover{background:#f8fafc}.device-events-chip.active{background:#0f172a;border-color:#0f172a;color:#fff}.device-events-select{padding:8px 12px;border:1px solid #cbd5e1;border-radius:9px;background:#fff;color:#334155;font-size:13px;font-weight:600;cursor:pointer}.device-events-th-status,.device-events-td-status{text-align:center}.device-events-td-status .device-events-badge{min-width:88px;justify-content:center}.device-events-alarm-tag{display:inline-flex;align-items:center;gap:3px;padding:1px 7px;border-radius:5px;background:#fee2e2;color:#b91c1c;font-size:10px;font-weight:800;letter-spacing:.03em}.device-events-alarm-tag .material-symbols-outlined{font-size:13px}.device-events-table tr.is-alarm-row{background:#fef2f2}.device-events-table tr.is-alarm-row:hover{background:#fee2e2}.device-events-table.is-full{table-layout:fixed;width:100%;border-collapse:collapse}.device-events-table.is-full th,.device-events-table.is-full td{overflow:hidden;text-overflow:ellipsis}.device-events-table.is-full td{height:52px;border-bottom:1px solid #eef2f6;vertical-align:middle}.device-events-table.is-full tbody tr:hover td{background:#f8fafc}.device-events-table.is-full tbody tr.is-alarm-row:hover td{background:#fee2e2}.device-events-table.is-full thead th{position:sticky;top:0;z-index:3;background:#fff;box-shadow:inset 0 -1px #e2e8f0}.device-events-table.is-full .device-events-th-status,.device-events-table.is-full .device-events-td-status{width:120px;text-align:left}.device-events-th-time{width:155px;white-space:nowrap}.device-events-table.is-full .device-events-msg{white-space:normal}.device-events-th-channel,.device-events-table.is-full .device-events-channel{width:100px;text-align:center}.device-events-who-empty{color:#cbd5e1}.device-events-chan{display:inline-block;font-size:11px;font-weight:700;padding:2px 9px;border-radius:6px}.device-events-chan.tone-master{background:#fef3c7;color:#b45309}.device-events-chan.tone-green{background:#dcfce7;color:#15803d}.device-events-chan.tone-amber{background:#fef3c7;color:#b45309}.device-events-chan.tone-blue{background:#e0f2fe;color:#0369a1}.device-events-chan-none{color:#cbd5e1}.device-events-table.is-full td.device-events-who{width:150px;text-align:left}.device-events-alarm-none{color:#cbd5e1}.device-events-table.is-full .device-events-time{white-space:nowrap}.device-events-table.is-full .device-events-time>span:last-child{display:inline-flex;align-items:center;gap:8px}.device-events-pager{display:flex;align-items:center;justify-content:center;gap:16px;margin-top:16px;padding-top:14px;border-top:1px solid #f1f5f9}.device-events-pagebtn{display:inline-flex;align-items:center;gap:4px;padding:7px 14px;border:1px solid #cbd5e1;border-radius:8px;background:#fff;color:#334155;font-size:13px;font-weight:600;cursor:pointer;transition:background .15s,border-color .15s}.device-events-pagebtn:hover:not(:disabled){background:#f8fafc;border-color:#94a3b8}.device-events-pagebtn:disabled{opacity:.4;cursor:default}.device-events-pagebtn .material-symbols-outlined{font-size:18px}.device-events-pageinfo{font-size:13px;font-weight:600;color:#64748b;font-variant-numeric:tabular-nums}.device-cmd-accordion{border:1px solid #e2e8f0;border-radius:10px;overflow:hidden;background:#fff}.device-cmd-accordion.is-danger{border-color:#fecaca}.device-cmd-accordion-head{display:flex;align-items:center;gap:10px;width:100%;padding:12px 16px;border:none;background:#f8fafc;cursor:pointer;font-size:14px;font-weight:700;color:#334155;transition:background .15s}.device-cmd-accordion-head:hover{background:#f1f5f9}.device-cmd-accordion.is-open .device-cmd-accordion-head{border-bottom:1px solid #e2e8f0}.device-cmd-accordion.is-danger .device-cmd-accordion-head{background:#fff5f5;color:#b91c1c}.device-cmd-accordion-icon{font-size:19px;color:#64748b}.device-cmd-accordion.is-danger .device-cmd-accordion-icon{color:#dc2626}.device-cmd-accordion-title{flex:1;text-align:left}.device-cmd-accordion-count{font-size:12px;font-weight:700;color:#64748b;background:#e2e8f0;padding:1px 9px;border-radius:999px}.device-cmd-accordion-chevron{font-size:20px;color:#94a3b8}.device-cmd-accordion-body{display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:8px;padding:14px 16px}.device-cmd-btn{display:inline-flex;align-items:center;gap:8px;padding:10px 12px;border:1px solid #e2e8f0;border-radius:8px;background:#fff;color:#334155;font-size:13px;font-weight:600;cursor:pointer;text-align:left;transition:background .15s,border-color .15s}.device-cmd-btn:hover:not(:disabled){background:#f0f9ff;border-color:#7dd3fc}.device-cmd-btn:disabled{opacity:.5;cursor:default}.device-cmd-btn .material-symbols-outlined{font-size:18px;color:#0284c7;flex:0 0 auto}.device-cmd-btn-label{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.device-cmd-btn.is-danger{border-color:#fecaca;color:#b91c1c}.device-cmd-btn.is-danger:hover:not(:disabled){background:#fef2f2;border-color:#f87171}.device-cmd-btn.is-danger .material-symbols-outlined{color:#dc2626}.device-cmd-history-section{margin-top:8px}.device-cmd-history-count{font-size:12px;font-weight:700;color:#64748b;background:#f1f5f9;padding:1px 9px;border-radius:999px;margin-left:6px}.device-cmd-history-box{display:flex;flex-direction:column;gap:8px;max-height:420px;overflow-y:auto;padding:4px;border:1px solid #e2e8f0;border-radius:10px;background:#fafbfc}.device-cmd-row-time{font-variant-numeric:tabular-nums}.device-sidebar-idrow{display:flex;align-items:center;gap:10px}.device-sidebar-statusdot{width:12px;height:12px;border-radius:50%;flex:0 0 auto}.device-sidebar-statusdot.is-online{background:#22c55e;box-shadow:0 0 0 4px #22c55e2e}.device-sidebar-statusdot.is-offline{background:#94a3b8;box-shadow:0 0 0 4px #94a3b826}.device-sidebar-info-value.tone-green,.device-sidebar-info-value.tone-amber,.device-sidebar-info-value.tone-slate{display:inline-flex;align-items:center;gap:5px}.device-sidebar-info-dot{width:7px;height:7px;border-radius:50%}.device-sidebar-info-dot.dot-green{background:#22c55e}.device-sidebar-info-dot.dot-amber{background:#f59e0b}.device-sidebar-info-dot.dot-slate{background:#94a3b8}.device-sidebar-serials{list-style:none;margin:12px 0 0;padding:12px 0 0;border-top:1px solid #f1f5f9;display:flex;flex-direction:column;gap:7px}.device-sidebar-serial-row{display:flex;align-items:center;justify-content:space-between;gap:8px}.device-sidebar-serial-tag{font-size:11px;font-weight:700;padding:2px 8px;border-radius:5px}.device-sidebar-serial-tag.tone-master{background:#fef3c7;color:#b45309}.device-sidebar-serial-tag.tone-green{background:#dcfce7;color:#15803d}.device-sidebar-serial-tag.tone-amber{background:#fef3c7;color:#b45309}.device-sidebar-serial-val{font-size:12px;font-weight:700;color:#334155;font-variant-numeric:tabular-nums}.device-sidebar-battery{display:inline-flex;align-items:center;gap:7px;font-size:13px;font-weight:700}.device-sidebar-battery .device-battery-icon{position:relative;width:26px;height:13px;border:1.5px solid currentColor;border-radius:3px;padding:1px;display:inline-block}.device-sidebar-battery .device-battery-icon:after{content:"";position:absolute;right:-3px;top:3px;width:2px;height:5px;background:currentColor;border-radius:0 1px 1px 0}.device-sidebar-battery .device-battery-fill{display:block;height:100%;border-radius:1px;background:currentColor}.device-sidebar-battery.device-battery--ok{color:#16a34a}.device-sidebar-battery.device-battery--low{color:#d97706}.device-sidebar-battery.device-battery--critical{color:#dc2626}.device-sidebar-battery-text{color:#334155}.device-sidebar-signal{display:inline-flex;align-items:center;gap:7px}.device-sidebar-signal-bars{display:inline-flex;align-items:flex-end;gap:2px;height:14px}.device-sidebar-signal-bars .bar{width:3px;border-radius:1px;background:#e2e8f0}.device-sidebar-signal-bars .bar:nth-child(1){height:5px}.device-sidebar-signal-bars .bar:nth-child(2){height:8px}.device-sidebar-signal-bars .bar:nth-child(3){height:11px}.device-sidebar-signal-bars .bar:nth-child(4){height:14px}.device-sidebar-signal.sig-good .bar.on{background:#16a34a}.device-sidebar-signal.sig-fair .bar.on{background:#d97706}.device-sidebar-signal.sig-poor .bar.on{background:#dc2626}.device-sidebar-signal-text{font-size:12px;font-weight:700;color:#334155;font-variant-numeric:tabular-nums}.device-sidebar-mapsection{margin:auto -18px 0;display:flex;flex-direction:column;border-top:1px solid #f1f5f9}.device-sidebar-maphead{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:16px 18px 10px}.device-sidebar-coords{display:inline-flex;align-items:center;gap:4px;font-size:11px;color:#64748b;font-variant-numeric:tabular-nums}.device-sidebar-coords .material-symbols-outlined{font-size:14px;color:#94a3b8}.device-sidebar-mapsection .device-sidebar-map{margin:0;border:none;border-radius:0;height:170px;flex:0 0 auto}.device-sidebar-mapsection .device-sidebar-map .leaflet-container{border-radius:0}.device-sidebar-nomap{display:flex;align-items:center;justify-content:center;gap:6px;margin-top:12px;padding:18px;border:1px dashed #e2e8f0;border-radius:10px;color:#94a3b8;font-size:12px}.device-sidebar-nomap .material-symbols-outlined{font-size:18px;color:#cbd5e1}@media (max-width: 1024px){.device-detail-shell{grid-template-columns:1fr}.device-sidebar{border-right:none;border-bottom:1px solid #e2e8f0}.device-overview-kpis{grid-template-columns:repeat(2,1fr)}.device-overview-kpis .device-kpi:nth-child(2n){border-right:none}.device-overview-grid{grid-template-columns:1fr}.device-detail-topbar{flex-direction:column;align-items:stretch;gap:8px}.device-status-grid{grid-template-columns:1fr}.device-status-measures{grid-template-columns:repeat(2,1fr)}}.net-page{display:flex;flex-direction:column;gap:12px;flex:1;min-height:0;width:100%;overflow:hidden}.net-access-bar{display:flex;align-items:stretch;flex-wrap:wrap;gap:4px;flex-shrink:0;padding:8px 12px;background:#fff;border:1px solid #e2e8f0;border-radius:12px;box-shadow:0 1px 2px #0f172a0a}.net-access-item{display:flex;align-items:center;gap:9px;flex:1 1 220px;min-width:0;padding:4px 6px}.net-access-sep{width:1px;align-self:stretch;margin:4px 2px;background:#e2e8f0;flex-shrink:0}.net-access-icon{width:28px;height:28px;border-radius:8px;display:inline-flex;align-items:center;justify-content:center;background:#f1f5f9;color:#64748b;flex-shrink:0}.net-access-item.is-ok .net-access-icon{background:#d1fae5;color:#047857}.net-access-item.is-warn .net-access-icon{background:#fef3c7;color:#b45309}.net-access-body{display:flex;flex-direction:column;min-width:0;flex:1}.net-access-label{font-size:10px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:#94a3b8;line-height:1.4}.net-access-value{font-size:13px;font-weight:700;color:#0f172a;line-height:1.35;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.net-copy-btn{background:transparent;border:1px solid #e2e8f0;border-radius:8px;padding:6px;cursor:pointer;color:#64748b;display:inline-flex;transition:background .15s,color .15s,border-color .15s}.net-copy-btn:hover{background:#f1f5f9;color:#0f172a;border-color:#cbd5e1}.net-chip{flex-shrink:0;font-size:10px;font-weight:700;padding:2px 8px;border-radius:999px;background:#f1f5f9;color:#64748b;white-space:nowrap}.net-chip--open{background:#fef3c7;color:#b45309}.net-banner{display:flex;align-items:center;gap:8px;margin:0;padding:10px 14px;border-radius:10px;font-size:12.5px;font-weight:500;border:1px solid transparent}.net-banner--info{background:#eff6ff;border-color:#bfdbfe;color:#1e40af}.net-banner--warn{background:#fffbeb;border-color:#fde68a;color:#b45309}.net-banner--bad{background:#fef2f2;border-color:#fecaca;color:#b91c1c}.net-card{background:#fff;border:1px solid #e2e8f0;border-radius:14px;padding:18px 20px;display:flex;flex-direction:column;gap:16px;flex:1;min-height:0;overflow-y:auto;box-shadow:0 1px 2px #0f172a0a}.net-card-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.net-card-head h2{margin:0 0 2px;font-size:1rem;color:#0f172a}.net-refresh{display:inline-flex;align-items:center;gap:6px;flex-shrink:0}.net-form{display:flex;flex-direction:column;gap:14px;max-width:720px}.net-field{display:flex;flex-direction:column;gap:5px}.net-field>span{font-size:11px;font-weight:700;letter-spacing:.05em;text-transform:uppercase;color:#475569}.net-field input,.net-field select{padding:9px 11px;border:1px solid #cbd5e1;border-radius:9px;font-size:13.5px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;background:#fff;color:#0f172a;transition:border-color .15s,box-shadow .15s}.net-field select{font-family:inherit}.net-field input:focus,.net-field select:focus{outline:none;border-color:#6366f1;box-shadow:0 0 0 3px #6366f126}.net-field input:disabled,.net-field select:disabled{background:#f8fafc;color:#94a3b8;cursor:not-allowed}.net-segment{display:inline-flex;padding:3px;background:#f1f5f9;border-radius:10px;gap:3px;align-self:flex-start}.net-segment button{border:none;background:transparent;padding:7px 16px;border-radius:8px;font-size:13px;font-weight:600;color:#475569;cursor:pointer;transition:background .15s,color .15s,box-shadow .15s}.net-segment button:hover:not(:disabled):not(.is-active){color:#0f172a}.net-segment button.is-active{background:#fff;color:#4338ca;box-shadow:0 1px 3px #0f172a1f}.net-segment button:disabled{opacity:.55;cursor:not-allowed}.net-static-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:12px;padding:14px;background:#f8fafc;border:1px solid #e2e8f0;border-radius:12px}.net-form-actions{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.net-empty{margin:0;padding:24px;text-align:center;color:#94a3b8;font-size:13px}.net-unavailable{display:flex;align-items:flex-start;gap:14px;padding:20px 22px;background:#eff6ff;border:1px solid #bfdbfe;border-radius:14px;color:#1e40af}.net-unavailable h2{margin:0 0 6px;font-size:1rem;color:#1e3a8a}.net-unavailable p{margin:0 0 8px;font-size:13px}.net-unavailable-cmd{font-size:12.5px}.net-confirm{width:min(520px,94vw);gap:12px}.net-confirm h3{display:flex;align-items:center;gap:8px;margin:0;font-size:1.05rem;color:#b45309}.net-confirm-summary{list-style:none;margin:0;padding:12px 14px;background:#f8fafc;border:1px solid #e2e8f0;border-radius:10px;display:flex;flex-direction:column;gap:6px}.net-confirm-summary li{display:flex;align-items:baseline;justify-content:space-between;gap:12px;font-size:12.5px}.net-confirm-summary li span{color:#64748b}.net-confirm-summary li strong{color:#0f172a;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;text-align:right;word-break:break-all}.net-confirm-warn{display:flex;align-items:flex-start;gap:8px;margin:0;padding:10px 12px;background:#ecfdf5;border:1px solid #a7f3d0;border-radius:10px;font-size:12px;color:#065f46;line-height:1.45}.net-confirm-actions{display:flex;justify-content:flex-end;gap:10px}.net-page--reboot{align-items:center;justify-content:center;min-height:60vh}.net-reboot-card{max-width:520px;width:100%;text-align:center;padding:32px 28px;background:#fff;border:1px solid #e2e8f0;border-radius:18px;box-shadow:0 18px 42px #0f172a1f;display:flex;flex-direction:column;align-items:center;gap:10px}.net-reboot-icon{width:72px;height:72px;border-radius:50%;background:#e0e7ff;color:#4338ca;display:inline-flex;align-items:center;justify-content:center}.net-reboot-card h2{margin:6px 0 0;font-size:1.25rem;color:#0f172a}.net-reboot-lead{margin:0;font-size:13.5px;color:#475569}.net-reboot-countdown{display:flex;align-items:baseline;gap:6px;margin:6px 0 2px}.net-reboot-countdown strong{font-size:2.6rem;font-weight:800;color:#4338ca;font-variant-numeric:tabular-nums;line-height:1}.net-reboot-countdown span{font-size:12px;color:#94a3b8}.net-reboot-links{display:flex;flex-direction:column;gap:8px;width:100%;margin-top:6px}.net-reboot-links a{display:inline-flex;align-items:center;justify-content:center;text-decoration:none;word-break:break-all}.net-reboot-hint{display:flex;align-items:flex-start;gap:8px;margin:8px 0 0;padding:10px 12px;background:#f8fafc;border:1px solid #e2e8f0;border-radius:10px;font-size:11.5px;color:#475569;text-align:left;line-height:1.45}.net-spin{animation:net-spin 1.1s linear infinite}@keyframes net-spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@media (prefers-reduced-motion: reduce){.net-spin{animation:none}}.modbus-edit-modal{width:min(900px,96vw);max-height:92vh;overflow:auto}.modbus-form{display:flex;flex-direction:column;gap:14px}.modbus-mode-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:10px}.modbus-mode-card{display:flex;flex-direction:column;gap:6px;text-align:left;padding:14px 16px;background:#fff;border:2px solid #e2e8f0;border-radius:12px;cursor:pointer;transition:border-color .15s,background .15s,box-shadow .15s}.modbus-mode-card:hover{border-color:#cbd5e1}.modbus-mode-card.is-active{border-color:#6366f1;background:#eef2ff;box-shadow:0 2px 10px #6366f12e}.modbus-mode-card strong{font-size:14px;color:#0f172a}.modbus-mode-card span{font-size:12px;color:#64748b;line-height:1.4}.modbus-mode-card code{font-size:11.5px;color:#4338ca;background:#6366f11a;border-radius:6px;padding:4px 8px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace}.modbus-capacity{margin:0;padding:8px 12px;background:#f8fafc;border:1px solid #e2e8f0;border-radius:8px;font-size:12.5px;color:#334155;font-weight:600}.modbus-capacity-good{color:#047857;font-weight:700}.modbus-form-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:12px}.modbus-form-grid label{display:flex;flex-direction:column;gap:4px;font-size:12px;font-weight:600;color:#334155}.modbus-readonly-note{margin:0;padding:10px 12px;background:#ecfdf5;border:1px solid #a7f3d0;border-radius:8px;font-size:11.5px;color:#065f46;line-height:1.5}.modbus-peers{display:flex;flex-direction:column;gap:8px;padding:12px 14px;background:#f8fafc;border:1px solid #e2e8f0;border-radius:10px}.modbus-plan-modal{width:min(1100px,97vw);max-height:92vh;display:flex;flex-direction:column;gap:12px}.modbus-plan-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.modbus-plan-head h3{margin:0;font-size:1.05rem;color:#0f172a}.modbus-plan-head p{margin:2px 0 0}.modbus-plan-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(130px,1fr));gap:8px}.modbus-plan-stat{display:flex;flex-direction:column;gap:2px;padding:10px 12px;background:#f8fafc;border:1px solid #e2e8f0;border-radius:10px}.modbus-plan-stat span{font-size:10px;font-weight:700;letter-spacing:.07em;text-transform:uppercase;color:#64748b}.modbus-plan-stat strong{font-size:1.15rem;font-weight:800;color:#0f172a;font-variant-numeric:tabular-nums}.modbus-plan-stat em{font-style:normal;font-size:12px;font-weight:600;color:#94a3b8}.modbus-plan-note{margin:0;padding:8px 12px;background:#eff6ff;border:1px solid #bfdbfe;border-radius:8px;font-size:12px;color:#1e40af;line-height:1.5}.modbus-plan-toolbar{display:flex;gap:8px;flex-wrap:wrap;align-items:center}.modbus-plan-toolbar input[type=search]{flex:1 1 220px;min-width:180px}.modbus-plan-table-wrap{flex:1;min-height:0;overflow:auto;border:1px solid #e2e8f0;border-radius:10px}.modbus-plan-table{width:100%;border-collapse:collapse;font-size:12.5px}.modbus-plan-table thead th{position:sticky;top:0;z-index:2;background:#f8fafc;text-align:left;padding:9px 12px;font-size:10.5px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:#64748b;border-bottom:1px solid #e2e8f0;white-space:nowrap}.modbus-plan-table tbody td{padding:8px 12px;border-bottom:1px solid #f1f5f9;vertical-align:top}.modbus-plan-table tbody tr:hover{background:#f8fafc}.modbus-plan-table .mono{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-variant-numeric:tabular-nums;white-space:nowrap}.modbus-fc{display:inline-block;font-size:10.5px;font-weight:700;padding:2px 7px;border-radius:999px;white-space:nowrap}.modbus-fc--1{background:#ffedd5;color:#c2410c}.modbus-fc--2{background:#e0f2fe;color:#0369a1}.modbus-fc--3{background:#ede9fe;color:#6d28d9}.modbus-fc--4{background:#d1fae5;color:#047857}.modbus-plan-truncated{margin:0;padding:8px 12px;text-align:center;background:#f8fafc}
