.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}.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.header-nav--framed button.active{background:#ff8c0038;border-color:#ff8c0073;color:#fff;box-shadow:0 1px 4px #ff8c0033}.header-nav button{border:1px solid transparent;background:transparent;color:#e2e8f0;border-radius:8px;padding:7px 10px;cursor:pointer;transition:background-color .18s ease,border-color .18s ease,transform .12s ease}.header-nav button:hover{background:#1e293b73}.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{border-color:#94a3b880;background:#0f172a73;color:#fff}.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:36px;height:36px}.engineering-btn--icon-only .material-symbols-outlined{font-size:20px}.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:4px;padding:4px 6px;background:#0f172a59;border:1px solid rgba(148,163,184,.25);border-radius:12px;box-shadow:inset 0 1px #ffffff0d}.header-user-cluster-divider{width:1px;height:22px;background:#94a3b859;margin:0 2px;flex-shrink:0}.header-user-cluster .notif-bell-btn,.header-user-cluster .profile-trigger{background:transparent;border:none;box-shadow:none}.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 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{border:1px solid #cbd5e1;border-radius:8px;padding:9px 10px}.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}.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}.section-actions{display:flex;align-items:center;gap:8px;margin-bottom:10px}.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-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;overflow-y:auto;overflow-x:hidden;padding:10px 12px 12px;background:linear-gradient(180deg,#fff,#f8fbff)}.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-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(.bulk-notify-panel){overflow:hidden}.engineering-content>.tabs{flex-shrink:0}.engineering-content .tabs{background:#fff;border-color:#cbd5e1;box-shadow:inset 0 -1px #e2e8f0}.engineering-content .tabs button{color:#0f172a;font-weight:700}.engineering-content .tabs button:hover{background:#e2e8f0;color:#0f172a}.engineering-content .tabs button.active{background:#e67c00;color:#fff;border-color:#cc7000;box-shadow:0 6px 14px #e67c0047}.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}.twilio-whatsapp-card{background:linear-gradient(135deg,#ecfdf5,#f0fdf4);border:1px solid #bbf7d0;border-radius:10px;padding:12px 14px;display:flex;flex-direction:column;gap:10px}.twilio-whatsapp-toggle{display:flex;align-items:flex-start;gap:10px;cursor:pointer;font-size:13px;-webkit-user-select:none;user-select:none}.twilio-whatsapp-toggle input[type=checkbox]{width:18px;height:18px;margin-top:2px;accent-color:#16a34a;cursor:pointer;flex-shrink:0}.twilio-whatsapp-toggle-text{display:flex;align-items:flex-start;gap:8px;flex:1}.twilio-whatsapp-icon{font-size:22px!important;color:#16a34a;background:#fff;padding:4px;border-radius:8px;border:1px solid #bbf7d0;flex-shrink:0}.twilio-whatsapp-toggle-text span:last-child{display:flex;flex-direction:column;gap:2px}.twilio-whatsapp-toggle-text strong{color:#14532d;font-size:13px}.twilio-whatsapp-toggle-text small{color:#166534;font-size:11px;line-height:1.4}.twilio-whatsapp-body{margin-top:4px;padding-top:10px;border-top:1px dashed #bbf7d0}.twilio-whatsapp-body .helper-text{color:#166534}.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}}.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-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-th,.alarm-actions-cell{text-align:right;white-space:nowrap}.alarm-actions-cell{display:flex;gap:4px;justify-content:flex-end;align-items:center}.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:24px;background:linear-gradient(180deg,#f8fafc,#f1f5f9);flex:1 1 auto;min-height:0;padding:8px 4px 32px}.system-status-shell{position:relative}.sys-fab{position:absolute;top:12px;right:8px;z-index:5;display:inline-flex;align-items:center;gap:8px;padding:9px 16px;background:linear-gradient(135deg,#6366f1,#4338ca);color:#fff;border:none;border-radius:10px;font-size:13px;font-weight:600;cursor:pointer;box-shadow:0 4px 14px #4338ca52;transition:transform .15s,box-shadow .2s,opacity .2s}.sys-fab:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 6px 18px #4338ca73}.sys-fab:disabled{opacity:.7;cursor:not-allowed}.sys-fab .material-symbols-outlined{font-size:18px}.sys-fab-spin{animation:sys-fab-spin 1s linear infinite}@keyframes sys-fab-spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.sys-tri-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;align-items:stretch;flex:1 1 auto;min-height:380px}@media (max-width: 1280px){.sys-tri-grid{grid-template-columns:repeat(2,1fr)}}@media (max-width: 800px){.sys-tri-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;height:100%;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{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:38px;height:38px;border-radius:10px;display:flex;align-items:center;justify-content:center;font-size:22px!important;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-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-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 .material-symbols-outlined{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 .material-symbols-outlined{font-size:18px;color:#6366f1}.sys-trend--ok .sys-trend-head .material-symbols-outlined{color:#10b981}.sys-trend--warn .sys-trend-head .material-symbols-outlined{color:#f59e0b}.sys-trend--bad .sys-trend-head .material-symbols-outlined{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 .material-symbols-outlined{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 .material-symbols-outlined{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-info-tiles{display:grid;grid-template-columns:repeat(2,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 .material-symbols-outlined{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 .material-symbols-outlined{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(190px,1fr));gap:14px;padding-right:130px}@media (max-width: 720px){.sys-kpis{padding-right:0}.sys-fab{position:relative;align-self:flex-end;top:0;right:0;margin-bottom:-8px}}.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:48px;height:48px;border-radius:12px;background:#f1f5f9;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-icon .material-symbols-outlined{font-size:24px}.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.85rem;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}.sys-gw-status{font-size:11.5px;font-weight:700;padding:3px 10px;border-radius:999px;text-transform:uppercase;letter-spacing:.04em}.sys-gw-status--ok{background:#d1fae5;color:#047857}.sys-gw-status--warn{background:#fef3c7;color:#b45309}.sys-gw-status--bad{background:#fee2e2;color:#b91c1c}.sys-gw-status--muted{background:#f1f5f9;color:#475569}.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;border-radius:999px;padding:3px 8px;font-size:11px;font-weight:700}.state-open{background:#fee2e2;color:#b91c1c}.state-ack{background:#dbeafe;color:#cc7000}.state-reset{background:#dcfce7;color:#166534}.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{border:1px solid #e2e8f0;border-radius:10px;padding:10px 12px;background:#f8fafc}.alarm-comment-card-meta{display:flex;align-items:center;gap:8px;margin-bottom:6px}.alarm-comment-card-avatar{width:26px;height:26px;border-radius:50%;background:linear-gradient(135deg,#6366f1,#8b5cf6);color:#fff;font-weight:700;font-size:11px;display:inline-flex;align-items:center;justify-content:center;flex-shrink:0}.alarm-comment-card-meta-text{display:flex;flex-direction:column;gap:0;line-height:1.2}.alarm-comment-card-meta-text strong{font-size:12px;color:#0f172a;font-weight:600}.alarm-comment-card-meta-text span{font-size:11px;color:#94a3b8}.alarm-comment-card-body{margin:0;font-size:13px;line-height:1.4;color:#1e293b;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:4px;padding:10px 14px;background:#f8fafc;border:1px solid #e2e8f0;border-radius:8px}.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}.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;justify-content:space-between;align-items:center;padding-bottom:10px;border-bottom:1px solid #e2e8f0;margin-bottom:10px}.grid-mgmt-col-head h4{margin:0;font-size:14px;color:#0f172a}.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{max-width:100%}.project-settings-panel--wide{max-width:none;width:100%}.project-settings-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:12px}.project-settings-head-text{flex:1;min-width:0}.project-settings-head-text h3{margin:0 0 4px}.project-settings-head-text .helper-text{margin:0}.project-settings-save-top{white-space:nowrap;flex-shrink:0;align-self:flex-start}@media (max-width: 640px){.project-settings-head{flex-direction:column}.project-settings-save-top{align-self:flex-end}}.project-settings-grid{display:flex;flex-direction:column;gap:20px;margin-top: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(auto-fit,minmax(260px,1fr));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:1 1 auto;min-height:140px}.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: 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:2px 10px;font-size:10px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:#4f46e5;background:#eef2ff;border:1px solid #c7d2fe;border-radius:999px}.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}.signal-toggle-card{grid-column:1 / -1;display:flex;align-items:flex-start;gap:10px;padding:10px 12px;border:1px solid #e2e8f0;border-radius:10px;background:linear-gradient(135deg,#f8fafc,#fff);cursor:pointer;transition:border-color .15s,background .15s,box-shadow .15s}.signal-toggle-card:hover{border-color:#cbd5e1}.signal-toggle-card-on{border-color:#a7f3d0;background:linear-gradient(135deg,#ecfdf5,#f0fdf4);box-shadow:0 1px 3px #10b9811a}.signal-toggle-card input[type=checkbox]{width:16px;height:16px;margin-top:2px;accent-color:#10b981;cursor:pointer}.signal-toggle-text{display:flex;flex-direction:column;gap:2px}.signal-toggle-title{font-size:13px;font-weight:600;color:#0f172a}.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;background:#f1f5f9}.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;padding:4px 0 0}.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:auto}.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-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:14px 50px 12px 16px;background:linear-gradient(135deg,#f8fafc,#fff);border-bottom:1px solid #f1f5f9;display:flex;flex-direction:column;gap:8px}.device-popup-title{display:flex;flex-direction:column;gap:2px;min-width:0}.device-popup-title h4{margin:0;font-size:15px;font-weight:700;color:#0f172a;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;color:#64748b}.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:#6366f1;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:8px;padding:12px 16px 14px;background:#fff}.device-popup-battery-card{display:grid;grid-template-columns:1fr;gap:6px;padding:8px 10px;border:1px solid #e2e8f0;border-radius:10px;background:#f8fafc}.device-popup-battery-card-head{display:flex;align-items:center;justify-content:space-between;gap:8px}.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:collapse}.values-table th,.values-table td{border-bottom:1px solid #e5e7eb;border-right:1px solid #e5e7eb;padding:8px;text-align:left;font-size:13px}.values-table th:last-child,.values-table td:last-child{border-right:none}.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:linear-gradient(135deg,#f3f4f6,#e5e7eb);overflow:hidden}.login-shell{width:100%;height:100vh;display:grid;grid-template-columns:1fr 3fr;gap:0;border-radius:0;background:transparent;box-shadow:none;overflow:hidden}.login-card{width:100%;border-right:none;background:#ffffffe6;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);padding:38px 28px;display:flex;flex-direction:column;justify-content:center;gap:12px;position:relative;overflow:hidden}.login-card:after{content:"";position:absolute;left:0;right:0;bottom:0;height:240px;background:linear-gradient(to top,#020617e6,#02061785 52%,#02061700);pointer-events:none}.customer-logo{width:390px;max-width:100%;height:106px;object-fit:contain;object-position:center;margin-bottom:12px;justify-self:center;align-self:center}.form-logo-bottom{width:370px;max-width:100%;height:82px;object-fit:contain;object-position:center;margin-top:auto;padding-top:28px;align-self:center;position:relative;z-index:1}.login-card label{display:grid;gap:4px;font-size:13px;color:#4b5563;font-weight:600}.login-form-fields{display:grid;gap:10px;margin-top:42px;position:relative;z-index:1}.login-card h2{margin:2px 0 12px;text-align:center}.password-input-wrap{position:relative}.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}.login-card input,.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}.login-card input:hover,.user-form input:hover,.user-form select:hover{border-color:#94a3b8}.login-card input:focus,.user-form input:focus,.user-form select:focus{outline:none;border-color:#e67c00;box-shadow:0 0 0 3px #e67c002e;background:#fff}.login-card button:not(.password-toggle-btn),.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}.login-card button:not(.password-toggle-btn):hover,.user-form button:hover,.danger-btn:hover{filter:brightness(1.03);transform:translateY(-1px)}.login-card button:not(.password-toggle-btn):active,.user-form button:active,.danger-btn:active{transform:translateY(0);box-shadow:0 2px 8px #cc70003d}.login-card button:not(.password-toggle-btn):focus-visible,.user-form button:focus-visible,.danger-btn:focus-visible{outline:none;box-shadow:0 0 0 3px #ff8c0040}.login-card button:not(.password-toggle-btn):disabled{cursor:not-allowed;opacity:.72;transform:none;box-shadow:none}.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-shell{min-height:auto;grid-template-columns:1fr}.login-visual{min-height:260px}.login-card{padding:28px}.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-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:8px;flex-wrap:wrap;padding:6px;background:#f1f5f9;border-radius:10px}.signals-type-tab{display:inline-flex;align-items:center;gap:8px;padding:8px 14px;border-radius:8px;background:transparent;color:#475569;border:1px solid transparent;font-weight:600;font-size:13px;cursor:pointer;transition:background .15s ease,color .15s ease,box-shadow .15s ease}.signals-type-tab:hover{background:#e2e8f0;color:#0f172a}.signals-type-tab.active{background:#fff;color:#0f172a;border-color:#cbd5e1;box-shadow:0 1px 2px #0f172a14}.signals-type-tab .stt-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}.signals-type-tab.active .stt-count{background:#cc7000;color:#fff}.signals-type-tab.stt-analog.active{border-color:#93c5fd}.signals-type-tab.stt-binary.active{border-color:#fcd34d}.signals-type-tab.stt-counter.active{border-color:#6ee7b7}.signals-type-tab.stt-string.active{border-color:#d8b4fe}.signals-header-row{display:flex;align-items:center;gap:16px;flex-wrap:wrap;margin-bottom:12px}.signals-type-tabs--inline{margin:0;flex:1;min-width:0}.signals-model-label{display:inline-flex;align-items:center;gap:8px;font-size:13px;color:#475569;font-weight:600}.signals-model-select{font-size:13px;padding:6px 12px;border-radius:8px;border:1px solid #cbd5e1;background:#fff;color:#0f172a;cursor:pointer;min-width:240px}.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-search{flex:1;min-width:260px;padding:10px 14px;border:1px solid #cbd5e1;border-radius:10px;background:#fff;font-size:13px;transition:border-color .15s ease,box-shadow .15s ease}.signals-search:focus{outline:none;border-color:#ff8c00;box-shadow:0 0 0 3px #ff8c002e}.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{padding:6px 12px;border-radius:999px;background:#e2e8f0;color:#334155;font-size:12px;font-weight:700;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:#f1f5f9;color:#334155;text-align:left;font-weight:700;font-size:11px;letter-spacing:.04em;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}.signals-list-table .badge+.badge{margin-left:6px}.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:#f1f5f9;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}.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}.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:48px;margin-bottom:8px;filter:grayscale(.2)}.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{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{outline:none;border-color:#6366f1;background:#fff;box-shadow:0 0 0 3px #6366f126}.rules-filter-group{display:inline-flex;gap:8px}.rules-filter-group 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{outline:none;border-color:#6366f1;box-shadow:0 0 0 3px #6366f11f}.rules-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{margin-left:auto;font-weight:600;padding:9px 18px}.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:#a85800;border:1px solid #bfdbfe}.rule-level-badge.level-warning{background:#fef3c7;color:#92400e;border:1px solid #fde68a}.rule-level-badge.level-critical{background:#fee2e2;color:#991b1b;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}.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{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-y:auto;background:#fff;border:1px solid #e2e8f0;border-radius:12px;box-shadow:0 1px 2px #0f172a0a}.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{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:60px 32px;text-align:center;gap:8px}.rules-v3-empty-icon{font-size:56px!important;color:#cbd5e1}.rules-v3-empty h3{margin:0;font-size:18px;color:#334155}.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;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}.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:wrap;flex-shrink:0}.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:24px;right:24px;display:flex;flex-direction:column;gap:10px;z-index:10000;pointer-events:none;max-width:calc(100vw - 48px)}.toast{pointer-events:auto;display:flex;align-items:flex-start;gap:12px;min-width:280px;max-width:420px;padding:12px 14px;background:#fff;border:1px solid #e2e8f0;border-left:4px solid #94a3b8;border-radius:10px;box-shadow:0 10px 30px #0f172a2e,0 2px 6px #0f172a0f;font-size:13px;color:#0f172a;animation:toast-slide-in .22s ease-out}@keyframes toast-slide-in{0%{transform:translateY(8px);opacity:0}to{transform:translateY(0);opacity:1}}.toast-icon{font-size:22px;flex-shrink:0;margin-top:1px}.toast-body{flex:1;display:flex;flex-direction:column;gap:2px;min-width:0}.toast-title{font-size:13px;font-weight:700;color:#0f172a}.toast-message{font-size:13px;color:#334155;line-height:1.4;word-break:break-word}.toast-close{background:transparent;border:none;cursor:pointer;padding:2px;border-radius:6px;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:18px}.toast-success{border-left-color:#10b981}.toast-success .toast-icon{color:#10b981}.toast-error{border-left-color:#ef4444}.toast-error .toast-icon{color:#ef4444}.toast-info{border-left-color:#ff8c00}.toast-info .toast-icon{color:#ff8c00}.toast-warning{border-left-color:#f59e0b}.toast-warning .toast-icon{color:#f59e0b}.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}.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:13px}.alarms-section .alarms-page-table thead th{padding:9px 14px;font-size:11px;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}.alarm-row td:first-child{position:relative;border-left:3px solid transparent}.alarm-row-level-critical td:first-child{border-left-color:#ef4444}.alarm-row-level-warning td:first-child{border-left-color:#f59e0b}.alarm-row-level-info td:first-child{border-left-color:#ff8c00}.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:600;font-size:13px;color:#0f172a}.alarm-device-code{font-size:11px;color:#64748b;font-family:ui-monospace,SFMono-Regular,monospace}.alarm-device-fallback{font-family:ui-monospace,SFMono-Regular,monospace;font-size:12px;color:#94a3b8}.alarm-cell-state{width:1%;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:right;width:1%;white-space:nowrap}.alarm-actions-cell{text-align:right;white-space:nowrap}.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;padding:3px 9px;border-radius:6px;font-size:11px;font-weight:600}.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-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-group{display:inline-flex;align-items:center;gap:8px;flex-wrap:wrap}.live-values-toolbar .live-filter-select{padding:8px 12px;border:1px solid #e2e8f0;border-radius:9px;font-size:13px;background:#fff;color:#334155;cursor:pointer;min-width:140px;max-width:220px;transition:border-color .15s,box-shadow .15s}.live-values-toolbar .live-filter-select:focus{outline:none;border-color:#6366f1;box-shadow:0 0 0 3px #6366f11f}.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}.live-values-toolbar .live-filter-select--searchable{min-width:200px;max-width:260px}.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}.faults-page{display:flex;flex-direction:column;gap:12px;padding:6px 0;background:transparent;width:100%;max-width:none;flex:1 1 auto;min-height:0}.faults-toolbar-row{display:flex;gap:10px;align-items:center;background:#fff;padding:10px 14px;border-radius:12px;box-shadow:0 1px 4px #0f172a0d}.faults-toolbar-row .faults-search{flex:1;width:auto;min-width:0}.faults-toolbar-count{margin-left:auto;font-size:12px;color:#64748b;font-weight:600;white-space:nowrap}.faults-page-header{display:flex;flex-direction:column;gap:12px;background:#fff;border-radius:14px;padding:16px 20px;box-shadow:0 2px 8px #0f172a0f}@media (min-width: 900px){.faults-page-header{flex-direction:row;align-items:center;justify-content:space-between}}.faults-page-title-wrap{display:flex;align-items:center;gap:12px}.faults-page-icon{font-size:28px!important;color:#ef4444;background:#ef44441a;padding:8px;border-radius:10px}.faults-page-title-wrap h2{margin:0;font-size:18px;font-weight:700;color:#0f172a}.faults-page-sub{margin:2px 0 0;font-size:12.5px;color:#64748b}.faults-page-toolbar{display:flex;gap:8px;align-items:center}.faults-search{width:240px;padding:8px 12px;border:1px solid rgba(148,163,184,.4);border-radius:8px;font-size:13px;background:#f9fafb}.faults-filter{padding:8px 12px;border:1px solid rgba(148,163,184,.4);border-radius:8px;font-size:13px;background:#fff}.faults-page-body{display:grid;grid-template-columns:1fr;gap:14px;flex:1 1 auto;min-height:0;align-items:start}@media (min-width: 1100px){.faults-page-body{grid-template-columns:minmax(0,1fr) 400px}}.faults-stats{display:flex;gap:10px;flex-wrap:wrap}.faults-stat-chip{flex:1 1 120px;min-width:110px;background:#fff;border-radius:12px;padding:12px 14px;display:flex;flex-direction:column;gap:2px;box-shadow:0 1px 4px #0f172a0f;border-left:4px solid #cbd5e1}.faults-stat-chip--total{border-left-color:#475569}.faults-stat-chip--open{border-left-color:#ef4444}.faults-stat-chip--assigned{border-left-color:#f59e0b}.faults-stat-chip--progress{border-left-color:#ff8c00}.faults-stat-chip--resolved{border-left-color:#10b981}.faults-stat-chip--closed{border-left-color:#94a3b8}.faults-stat-chip--avg{border-left-color:#6366f1}.faults-stat-chip--avg .faults-stat-num{color:#4338ca;font-size:18px}.faults-stat-num{font-size:22px;font-weight:800;color:#0f172a;line-height:1}.faults-stat-label{font-size:11px;text-transform:uppercase;letter-spacing:.06em;color:#64748b;font-weight:600}.faults-cards{display:flex;flex-direction:column;gap:6px;min-width:0;width:100%}.faults-empty-card{background:#fff;border-radius:14px;padding:80px 24px;text-align:center;box-shadow:0 1px 4px #0f172a0f;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;min-height:360px}.faults-empty-card .material-symbols-outlined{font-size:56px!important;color:#10b981;background:#10b9811a;padding:14px;border-radius:50%}.faults-empty-card h3{margin:0;font-size:16px;color:#0f172a}.faults-empty-card p{margin:0;font-size:13px;color:#64748b;max-width:380px;line-height:1.5}.faults-card{background:#fff;border:1px solid rgba(148,163,184,.18);border-left:4px solid #ef4444;border-radius:10px;padding:14px 16px;display:flex;flex-direction:column;gap:10px;cursor:pointer;text-align:left;font:inherit;color:inherit;width:100%;box-shadow:0 1px 3px #0f172a0d;transition:transform .12s ease,box-shadow .12s ease,border-color .12s ease}.faults-card:hover{transform:translateY(-1px);box-shadow:0 4px 14px #0f172a1a}.faults-card.selected{outline:2px solid rgba(255,140,0,.55);outline-offset:-2px;background:#ff8c000a}.faults-card-row{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.faults-card-row--top{justify-content:space-between}.faults-card-row--mid{border-top:1px dashed rgba(148,163,184,.25);border-bottom:1px dashed rgba(148,163,184,.25);padding:10px 0}.faults-card-line{display:flex;align-items:center;gap:10px}.faults-card-line-icon{font-size:22px!important;color:#6366f1;background:#6366f11a;padding:6px;border-radius:8px}.faults-card-line strong{display:block;font-size:15px;font-weight:700;color:#0f172a}.faults-card-line span{display:block;font-size:11.5px;color:#64748b}.faults-card-range{display:flex;flex-direction:column;gap:2px;min-width:130px}.faults-card-range-label{font-size:10.5px;text-transform:uppercase;letter-spacing:.06em;color:#94a3b8;font-weight:700}.faults-card-range strong{font-size:14px;color:#6366f1;font-weight:700}.faults-card-devices{display:flex;align-items:center;gap:12px;flex:1;flex-wrap:wrap}.faults-card-dev{display:flex;align-items:center;gap:8px}.faults-card-dev>div{display:flex;flex-direction:column;gap:0}.faults-card-dev span{font-size:10.5px;text-transform:uppercase;letter-spacing:.04em;color:#94a3b8;font-weight:700;line-height:1.1}.faults-card-dev strong{font-size:12.5px;color:#0f172a;font-weight:600}.faults-card-dev-dot{width:10px;height:10px;border-radius:50%;flex-shrink:0;display:inline-block}.faults-card-dev--red .faults-card-dev-dot{background:#ef4444;box-shadow:0 0 0 3px #ef44442e}.faults-card-dev--green .faults-card-dev-dot{background:#10b981;box-shadow:0 0 0 3px #10b9812e}.faults-card-arrow{color:#cbd5e1;font-size:16px;font-weight:700}.faults-card-meta{display:inline-flex;align-items:center;gap:5px;font-size:12px;color:#475569}.faults-card-meta .material-symbols-outlined{font-size:16px!important;color:#94a3b8}.faults-card-meta-dim{color:#cbd5e1;font-style:italic}.faults-list{background:#fff;border-radius:14px;box-shadow:0 2px 8px #0f172a0f;overflow:hidden}.faults-empty{padding:40px;text-align:center;color:#94a3b8;font-size:13px}.faults-table{width:100%;border-collapse:collapse;font-size:13px}.faults-table thead th{background:#f8fafc;text-align:left;padding:10px 14px;font-size:11px;text-transform:uppercase;letter-spacing:.06em;color:#64748b;font-weight:600;border-bottom:1px solid rgba(148,163,184,.25)}.faults-table tbody td{padding:10px 14px;border-bottom:1px solid rgba(148,163,184,.15);color:#0f172a;vertical-align:middle}.faults-row{cursor:pointer;transition:background .12s ease}.faults-row:hover{background:#ff8c000f}.faults-row.selected{background:#ff8c001f}.faults-cell-date{font-variant-numeric:tabular-nums;font-size:12px;color:#475569;white-space:nowrap}.faults-cell-line strong{display:block;font-weight:600;font-size:13px}.faults-cell-line span{display:block;font-size:11px;color:#64748b}.faults-cell-range{font-weight:600;color:#6366f1;white-space:nowrap}.faults-cell-dev strong{display:block;font-size:12.5px;font-weight:600}.faults-cell-dev span{display:block;font-size:10.5px;color:#94a3b8;font-family:monospace}.faults-cell-dim{color:#94a3b8;font-style:italic;font-size:12px}.faults-cell-assignee{font-weight:500;color:#0f172a}.faults-status-pill{display:inline-block;padding:3px 10px;border-radius:999px;font-size:11px;font-weight:700;letter-spacing:.04em;white-space:nowrap}.faults-detail{background:#fff;border-radius:14px;box-shadow:0 2px 8px #0f172a0f;padding:16px 18px;display:flex;flex-direction:column;gap:14px;max-height:calc(100vh - 180px);overflow-y:auto}.faults-detail-head{display:flex;justify-content:space-between;align-items:flex-start;gap:10px;padding-bottom:10px;border-bottom:1px dashed rgba(148,163,184,.25)}.faults-detail-head h3{margin:0;font-size:16px;color:#0f172a}.faults-detail-sub{display:block;margin-top:2px;font-size:11.5px;color:#64748b}.faults-detail-close{background:#0f172a0f;border:none;width:28px;height:28px;border-radius:50%;cursor:pointer;color:#475569;display:flex;align-items:center;justify-content:center}.faults-detail-close:hover{background:#0f172a1f}.faults-detail-info{display:grid;grid-template-columns:1fr 1fr;gap:8px 14px;font-size:12px}.faults-detail-info>div{display:flex;flex-direction:column}.faults-detail-label{font-size:10.5px;text-transform:uppercase;letter-spacing:.06em;color:#94a3b8;font-weight:700;margin-bottom:2px}.faults-detail-section{display:flex;flex-direction:column;gap:6px}.faults-detail-section select,.faults-detail-section textarea{padding:8px 10px;border:1px solid rgba(148,163,184,.4);border-radius:8px;font-size:13px;font-family:inherit;background:#f9fafb;resize:vertical}.faults-detail-section select:focus,.faults-detail-section textarea:focus{outline:none;border-color:#ff8c00;background:#fff}.faults-status-buttons{display:flex;flex-wrap:wrap;gap:6px}.faults-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}.faults-status-btn:hover:not(:disabled){border-color:#6366f1;color:#6366f1}.faults-status-btn:disabled{opacity:.6;cursor:not-allowed}.faults-status-btn.active{border-color:transparent}.faults-detail-save{align-self:flex-start;padding:6px 14px;background:#ff8c00;color:#fff;border:none;border-radius:8px;font-size:12.5px;font-weight:600;cursor:pointer}.faults-detail-save:hover:not(:disabled){background:#e67c00}.faults-detail-save:disabled{opacity:.6;cursor:not-allowed}.faults-comments{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px;max-height:240px;overflow-y:auto}.faults-comments-empty{font-size:12px;color:#94a3b8;font-style:italic;padding:8px}.faults-comment-item{background:#f8fafc;border-radius:8px;padding:8px 10px;border-left:3px solid #6366f1}.faults-comment-item header{display:flex;justify-content:space-between;font-size:11px;color:#64748b;margin-bottom:4px}.faults-comment-item header strong{color:#0f172a;font-weight:700}.faults-comment-item p{margin:0;font-size:13px;color:#0f172a;white-space:pre-wrap;line-height:1.4}.faults-comment-add{display:flex;flex-direction:column;gap:6px;margin-top:6px}.faults-comment-add textarea{padding:8px 10px;border:1px solid rgba(148,163,184,.4);border-radius:8px;font-family:inherit;font-size:13px;resize:vertical}.faults-comment-add button{align-self:flex-start;padding:6px 14px;background:#16a34a;color:#fff;border:none;border-radius:8px;font-size:12.5px;font-weight:600;cursor:pointer}.faults-comment-add button:hover:not(:disabled){background:#15803d}.faults-comment-add button:disabled{opacity:.6;cursor:not-allowed}.faults-detail-error{background:#ef44441a;color:#b91c1c;padding:8px 10px;border-radius:8px;font-size:12px}.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-cards--full{width:100%;flex:1 1 auto;min-height:calc(100vh - 320px);display:flex;flex-direction:column}.faults-empty-card{flex:1 1 auto;display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:320px}.faults-card.faults-card--rich{padding:0;display:flex;align-items:stretch;gap:0;position:relative;overflow:hidden}.faults-card-rich-grid{flex:1;display:grid;grid-template-columns:minmax(190px,1fr) minmax(320px,1.9fr) minmax(160px,.85fr);gap:14px;padding:8px 14px;align-items:center}@media (max-width: 1100px){.faults-card-rich-grid{grid-template-columns:1fr;gap:10px;padding:10px 12px}}.faults-card-rich-block{display:flex;flex-direction:column;gap:3px;min-width:0}.faults-card-rich-block--devices{flex-direction:row;align-items:stretch;gap:8px;border-left:1px dashed rgba(148,163,184,.3);border-right:1px dashed rgba(148,163,184,.3);padding:0 12px}@media (max-width: 1100px){.faults-card-rich-block--devices{border-left:none;border-right:none;border-top:1px dashed rgba(148,163,184,.3);border-bottom:1px dashed rgba(148,163,184,.3);padding:8px 0}}.faults-card-rich-block--status{align-items:flex-start;gap:6px}.faults-card-region{display:flex;align-items:center;gap:4px;font-size:10.5px;text-transform:uppercase;letter-spacing:.06em;color:#6366f1;font-weight:700}.faults-card-region .material-symbols-outlined{font-size:14px!important}.faults-card-line-name{display:flex;align-items:center;gap:6px}.faults-card-line-name .material-symbols-outlined{font-size:18px!important;color:#6366f1;background:#6366f11a;padding:3px;border-radius:6px}.faults-card-line-name strong{font-size:15px;font-weight:700;color:#0f172a}.faults-card-range-row{display:inline-flex;align-items:baseline;gap:6px;flex-wrap:wrap}.faults-card-range-tag{font-size:10px;text-transform:uppercase;letter-spacing:.06em;color:#94a3b8;font-weight:700}.faults-card-range-text{font-size:12.5px;color:#ef4444;font-weight:700}.faults-card-dev-card{flex:1;background:#f8fafc;border-radius:8px;padding:6px 10px;display:flex;flex-direction:column;gap:2px;border:1px solid rgba(148,163,184,.2);min-width:0}.faults-card-dev-card--red{border-left:3px solid #ef4444;background:#ef44440a}.faults-card-dev-card--green{border-left:3px solid #10b981;background:#10b9810a}.faults-card-dev-card-label{font-size:10.5px;text-transform:uppercase;letter-spacing:.04em;color:#64748b;font-weight:700;line-height:1.2}.faults-card-dev-card-name{display:flex;align-items:center;gap:6px}.faults-card-dev-card-dot{width:9px;height:9px;border-radius:50%;flex-shrink:0}.faults-card-dev-card--red .faults-card-dev-card-dot{background:#ef4444;box-shadow:0 0 0 3px #ef44442e}.faults-card-dev-card--green .faults-card-dev-card-dot{background:#10b981;box-shadow:0 0 0 3px #10b9812e}.faults-card-dev-card-name strong{font-size:13px;font-weight:700;color:#0f172a;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.faults-card-dev-card-code{font-size:10.5px;color:#94a3b8;font-family:monospace}.faults-card-dev-arrow{display:flex;align-items:center;font-size:18px!important;color:#cbd5e1}.faults-status-pill--lg{padding:3px 10px;font-size:11px}.faults-card-status-row{display:inline-flex;align-items:center;gap:8px;flex-wrap:wrap}.faults-card-time-pill{display:inline-flex;align-items:center;gap:6px;padding:4px 12px;border-radius:999px;background:#f8fafc;border:1px solid rgba(148,163,184,.3);white-space:nowrap;font-variant-numeric:tabular-nums}.faults-card-time-pill strong{font-size:12px;font-weight:700;color:#0f172a;font-variant-numeric:tabular-nums}.faults-card-time-pill.is-live{background:linear-gradient(135deg,#fef2f2,#ffe4e6);border-color:#ef444459}.faults-card-time-pill.is-live strong{color:#b91c1c}.faults-card-time-pill.is-final{background:linear-gradient(135deg,#f0fdf4,#dcfce7);border-color:#10b9814d}.faults-card-time-pill.is-final strong{color:#047857}.faults-card-time-pill.is-final .material-symbols-outlined{font-size:14px!important;color:#10b981}.faults-card-time-pulse{width:8px;height:8px;border-radius:50%;background:#ef4444;display:inline-block;flex-shrink:0;animation:fault-elapsed-pulse 1.4s ease-out infinite}.faults-card-info-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px;margin-top:4px;width:100%}@media (max-width: 1280px){.faults-card-info-grid{grid-template-columns:1fr 1fr}}@media (max-width: 1100px){.faults-card-info-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}@media (max-width: 720px){.faults-card-info-grid{grid-template-columns:1fr}}.faults-card-info-chip{display:inline-flex;align-items:center;gap:8px;padding:6px 10px;background:#f8fafc;border:1px solid rgba(148,163,184,.2);border-radius:10px;min-width:0;transition:background .15s ease,border-color .15s ease}.faults-card.faults-card--rich:hover .faults-card-info-chip{background:#fff;border-color:#6366f140}.faults-card-info-chip .material-symbols-outlined{font-size:16px!important;color:#94a3b8;flex-shrink:0}.faults-card-info-chip>div{display:flex;flex-direction:column;gap:0;min-width:0;line-height:1.2}.faults-card-info-label{font-size:9.5px;text-transform:uppercase;letter-spacing:.06em;color:#94a3b8;font-weight:700}.faults-card-info-chip strong{font-size:12px;color:#0f172a;font-weight:600;font-variant-numeric:tabular-nums;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.faults-card-info-datetime{display:flex;flex-direction:column;align-items:flex-start;line-height:1.15;white-space:nowrap}.faults-card-info-datetime>span:first-child{font-size:12px;font-weight:700;color:#0f172a}.faults-card-info-time{font-size:11px;font-weight:600;color:#64748b;font-variant-numeric:tabular-nums}.faults-card-info-chip--time{align-items:center}.faults-card-meta-stack{display:flex;flex-direction:row;flex-wrap:wrap;gap:3px 10px;width:100%}.faults-card-meta-stack .faults-card-meta{font-size:11.5px}.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:14px;padding:14px 16px!important;min-height:0;flex:1;overflow:hidden!important}.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-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-topbar{display:flex;align-items:stretch;gap:16px;flex-wrap:wrap;justify-content:space-between}.backups-topbar .backups-stats{flex:1 1 460px;min-width:0}.backups-topbar-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap;justify-content:flex-end}.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:flex;gap:10px;flex-wrap:wrap}.backups-stat-chip{flex:1 1 150px;background:#fff;border-radius:12px;padding:12px 14px;display:flex;flex-direction:column;gap:2px;box-shadow:0 1px 4px #0f172a0f;border-left:4px solid #475569}.backups-stat-chip.is-ok{border-left-color:#10b981}.backups-stat-chip.is-fail{border-left-color:#ef4444}.backups-stat-chip.is-size{border-left-color:#6366f1}.backups-stat-num{font-size:22px;font-weight:800;color:#0f172a;line-height:1;font-variant-numeric:tabular-nums}.backups-stat-label{font-size:11px;text-transform:uppercase;letter-spacing:.06em;color:#64748b;font-weight:600}.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-radius:12px;box-shadow:0 1px 4px #0f172a0f;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}.backups-error-banner{display:flex;align-items:flex-start;gap:10px;padding:10px 14px;color:#991b1b;font-size:12px}.backups-error-banner .material-symbols-outlined{font-size:18px;margin-top:1px}.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;padding:12px 14px;border-bottom:1px solid rgba(148,163,184,.18)}.backups-list-head h4{margin:0;font-size:14px;color:#0f172a}.backups-empty{padding:30px;text-align:center;color:#94a3b8;font-size:13px}.backups-table{width:100%;border-collapse:collapse;font-size:13px}.backups-table thead th{background:#f8fafc;text-align:left;padding:8px 12px;font-size:11px;text-transform:uppercase;letter-spacing:.06em;color:#64748b;font-weight:600;border-bottom:1px solid rgba(148,163,184,.2)}.backups-table tbody td{padding:8px 12px;border-bottom:1px solid rgba(148,163,184,.12);vertical-align:middle}.backups-cell-mono{font-family:monospace;font-size:12px;color:#475569}.backups-cell-filename{max-width:280px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.backups-type-pill{padding:2px 8px;border-radius:999px;font-size:11px;font-weight:600;background:#eef2ff;color:#4338ca}.backups-type-pill.is-scheduled{background:#f0fdf4;color:#047857}.backups-status-pill{padding:3px 10px;border-radius:999px;font-size:11px;font-weight:700;white-space:nowrap}.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}.api-access-panel .api-keys-table-wrap{margin-top:16px;background:#fff;border-radius:10px;overflow:hidden;border:1px solid #e5e7eb}.api-key-prefix{background:#f3f4f6;padding:2px 6px;border-radius:4px;font-size:12px}.api-key-name-cell strong{display:block}.scope-chip{display:inline-block;background:#eff6ff;color:#a85800;border:1px solid #bfdbfe;border-radius:4px;padding:2px 6px;margin:2px 3px 2px 0;font-size:11px;font-family:ui-monospace,SF Mono,Menlo,monospace}.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}.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-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}.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-direction:column;gap:10px;padding:14px 16px;max-height:calc(100vh - 138px);overflow:hidden}.bulk-notify-form{min-height:0;overflow-y:auto;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-shrink:0}.bulk-notify-form .bulk-notify-templates-section .bulk-notify-templates-grid{max-height:220px;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{background:#fff;border:1px solid #e2e8f0;border-radius:12px;padding:16px;display:flex;flex-direction:column;gap:12px}.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}}
