.leaflet-pane,.leaflet-tile,.leaflet-marker-icon,.leaflet-marker-shadow,.leaflet-tile-container,.leaflet-pane>svg,.leaflet-pane>canvas,.leaflet-zoom-box,.leaflet-image-layer,.leaflet-layer{position:absolute;left:0;top:0}.leaflet-container{overflow:hidden}.leaflet-tile,.leaflet-marker-icon,.leaflet-marker-shadow{-webkit-user-select:none;-moz-user-select:none;user-select:none;-webkit-user-drag:none}.leaflet-tile::selection{background:transparent}.leaflet-safari .leaflet-tile{image-rendering:-webkit-optimize-contrast}.leaflet-safari .leaflet-tile-container{width:1600px;height:1600px;-webkit-transform-origin:0 0}.leaflet-marker-icon,.leaflet-marker-shadow{display:block}.leaflet-container .leaflet-overlay-pane svg{max-width:none!important;max-height:none!important}.leaflet-container .leaflet-marker-pane img,.leaflet-container .leaflet-shadow-pane img,.leaflet-container .leaflet-tile-pane img,.leaflet-container img.leaflet-image-layer,.leaflet-container .leaflet-tile{max-width:none!important;max-height:none!important;width:auto;padding:0}.leaflet-container img.leaflet-tile{mix-blend-mode:plus-lighter}.leaflet-container.leaflet-touch-zoom{-ms-touch-action:pan-x pan-y;touch-action:pan-x pan-y}.leaflet-container.leaflet-touch-drag{-ms-touch-action:pinch-zoom;touch-action:none;touch-action:pinch-zoom}.leaflet-container.leaflet-touch-drag.leaflet-touch-zoom{-ms-touch-action:none;touch-action:none}.leaflet-container{-webkit-tap-highlight-color:transparent}.leaflet-container a{-webkit-tap-highlight-color:rgba(51,181,229,.4)}.leaflet-tile{filter:inherit;visibility:hidden}.leaflet-tile-loaded{visibility:inherit}.leaflet-zoom-box{width:0;height:0;-moz-box-sizing:border-box;box-sizing:border-box;z-index:800}.leaflet-overlay-pane svg{-moz-user-select:none}.leaflet-pane{z-index:400}.leaflet-tile-pane{z-index:200}.leaflet-overlay-pane{z-index:400}.leaflet-shadow-pane{z-index:500}.leaflet-marker-pane{z-index:600}.leaflet-tooltip-pane{z-index:650}.leaflet-popup-pane{z-index:700}.leaflet-map-pane canvas{z-index:100}.leaflet-map-pane svg{z-index:200}.leaflet-vml-shape{width:1px;height:1px}.lvml{behavior:url(#default#VML);display:inline-block;position:absolute}.leaflet-control{position:relative;z-index:800;pointer-events:visiblePainted;pointer-events:auto}.leaflet-top,.leaflet-bottom{position:absolute;z-index:1000;pointer-events:none}.leaflet-top{top:0}.leaflet-right{right:0}.leaflet-bottom{bottom:0}.leaflet-left{left:0}.leaflet-control{float:left;clear:both}.leaflet-right .leaflet-control{float:right}.leaflet-top .leaflet-control{margin-top:10px}.leaflet-bottom .leaflet-control{margin-bottom:10px}.leaflet-left .leaflet-control{margin-left:10px}.leaflet-right .leaflet-control{margin-right:10px}.leaflet-fade-anim .leaflet-popup{opacity:0;-webkit-transition:opacity .2s linear;-moz-transition:opacity .2s linear;transition:opacity .2s linear}.leaflet-fade-anim .leaflet-map-pane .leaflet-popup{opacity:1}.leaflet-zoom-animated{-webkit-transform-origin:0 0;-ms-transform-origin:0 0;transform-origin:0 0}svg.leaflet-zoom-animated{will-change:transform}.leaflet-zoom-anim .leaflet-zoom-animated{-webkit-transition:-webkit-transform .25s cubic-bezier(0,0,.25,1);-moz-transition:-moz-transform .25s cubic-bezier(0,0,.25,1);transition:transform .25s cubic-bezier(0,0,.25,1)}.leaflet-zoom-anim .leaflet-tile,.leaflet-pan-anim .leaflet-tile{-webkit-transition:none;-moz-transition:none;transition:none}.leaflet-zoom-anim .leaflet-zoom-hide{visibility:hidden}.leaflet-interactive{cursor:pointer}.leaflet-grab{cursor:-webkit-grab;cursor:-moz-grab;cursor:grab}.leaflet-crosshair,.leaflet-crosshair .leaflet-interactive{cursor:crosshair}.leaflet-popup-pane,.leaflet-control{cursor:auto}.leaflet-dragging .leaflet-grab,.leaflet-dragging .leaflet-grab .leaflet-interactive,.leaflet-dragging .leaflet-marker-draggable{cursor:move;cursor:-webkit-grabbing;cursor:-moz-grabbing;cursor:grabbing}.leaflet-marker-icon,.leaflet-marker-shadow,.leaflet-image-layer,.leaflet-pane>svg path,.leaflet-tile-container{pointer-events:none}.leaflet-marker-icon.leaflet-interactive,.leaflet-image-layer.leaflet-interactive,.leaflet-pane>svg path.leaflet-interactive,svg.leaflet-image-layer.leaflet-interactive path{pointer-events:visiblePainted;pointer-events:auto}.leaflet-container{background:#ddd;outline-offset:1px}.leaflet-container a{color:#0078a8}.leaflet-zoom-box{border:2px dotted #38f;background:#ffffff80}.leaflet-container{font-family:Helvetica Neue,Arial,Helvetica,sans-serif;font-size:12px;font-size:.75rem;line-height:1.5}.leaflet-bar{box-shadow:0 1px 5px #000000a6;border-radius:4px}.leaflet-bar a{background-color:#fff;border-bottom:1px solid #ccc;width:26px;height:26px;line-height:26px;display:block;text-align:center;text-decoration:none;color:#000}.leaflet-bar a,.leaflet-control-layers-toggle{background-position:50% 50%;background-repeat:no-repeat;display:block}.leaflet-bar a:hover,.leaflet-bar a:focus{background-color:#f4f4f4}.leaflet-bar a:first-child{border-top-left-radius:4px;border-top-right-radius:4px}.leaflet-bar a:last-child{border-bottom-left-radius:4px;border-bottom-right-radius:4px;border-bottom:none}.leaflet-bar a.leaflet-disabled{cursor:default;background-color:#f4f4f4;color:#bbb}.leaflet-touch .leaflet-bar a{width:30px;height:30px;line-height:30px}.leaflet-touch .leaflet-bar a:first-child{border-top-left-radius:2px;border-top-right-radius:2px}.leaflet-touch .leaflet-bar a:last-child{border-bottom-left-radius:2px;border-bottom-right-radius:2px}.leaflet-control-zoom-in,.leaflet-control-zoom-out{font:700 18px Lucida Console,Monaco,monospace;text-indent:1px}.leaflet-touch .leaflet-control-zoom-in,.leaflet-touch .leaflet-control-zoom-out{font-size:22px}.leaflet-control-layers{box-shadow:0 1px 5px #0006;background:#fff;border-radius:5px}.leaflet-control-layers-toggle{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABoAAAAaCAQAAAADQ4RFAAACf0lEQVR4AY1UM3gkARTePdvdoTxXKc+qTl3aU5U6b2Kbkz3Gtq3Zw6ziLGNPzrYx7946Tr6/ee/XeCQ4D3ykPtL5tHno4n0d/h3+xfuWHGLX81cn7r0iTNzjr7LrlxCqPtkbTQEHeqOrTy4Yyt3VCi/IOB0v7rVC7q45Q3Gr5K6jt+3Gl5nCoDD4MtO+j96Wu8atmhGqcNGHObuf8OM/x3AMx38+4Z2sPqzCxRFK2aF2e5Jol56XTLyggAMTL56XOMoS1W4pOyjUcGGQdZxU6qRh7B9Zp+PfpOFlqt0zyDZckPi1ttmIp03jX8gyJ8a/PG2yutpS/Vol7peZIbZcKBAEEheEIAgFbDkz5H6Zrkm2hVWGiXKiF4Ycw0RWKdtC16Q7qe3X4iOMxruonzegJzWaXFrU9utOSsLUmrc0YjeWYjCW4PDMADElpJSSQ0vQvA1Tm6/JlKnqFs1EGyZiFCqnRZTEJJJiKRYzVYzJck2Rm6P4iH+cmSY0YzimYa8l0EtTODFWhcMIMVqdsI2uiTvKmTisIDHJ3od5GILVhBCarCfVRmo4uTjkhrhzkiBV7SsaqS+TzrzM1qpGGUFt28pIySQHR6h7F6KSwGWm97ay+Z+ZqMcEjEWebE7wxCSQwpkhJqoZA5ivCdZDjJepuJ9IQjGGUmuXJdBFUygxVqVsxFsLMbDe8ZbDYVCGKxs+W080max1hFCarCfV+C1KATwcnvE9gRRuMP2prdbWGowm1KB1y+zwMMENkM755cJ2yPDtqhTI6ED1M/82yIDtC/4j4BijjeObflpO9I9MwXTCsSX8jWAFeHr05WoLTJ5G8IQVS/7vwR6ohirYM7f6HzYpogfS3R2OAAAAAElFTkSuQmCC);width:36px;height:36px}.leaflet-retina .leaflet-control-layers-toggle{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADQAAAA0CAQAAABvcdNgAAAEsklEQVR4AWL4TydIhpZK1kpWOlg0w3ZXP6D2soBtG42jeI6ZmQTHzAxiTbSJsYLjO9HhP+WOmcuhciVnmHVQcJnp7DFvScowZorad/+V/fVzMdMT2g9Cv9guXGv/7pYOrXh2U+RRR3dSd9JRx6bIFc/ekqHI29JC6pJ5ZEh1yWkhkbcFeSjxgx3L2m1cb1C7bceyxA+CNjT/Ifff+/kDk2u/w/33/IeCMOSaWZ4glosqT3DNnNZQ7Cs58/3Ce5HL78iZH/vKVIaYlqzfdLu8Vi7dnvUbEza5Idt36tquZFldl6N5Z/POLof0XLK61mZCmJSWjVF9tEjUluu74IUXvgttuVIHE7YxSkaYhJZam7yiM9Pv82JYfl9nptxZaxMJE4YSPty+vF0+Y2up9d3wwijfjZbabqm/3bZ9ecKHsiGmRflnn1MW4pjHf9oLufyn2z3y1D6n8g8TZhxyzipLNPnAUpsOiuWimg52psrTZYnOWYNDTMuWBWa0tJb4rgq1UvmutpaYEbZlwU3CLJm/ayYjHW5/h7xWLn9Hh1vepDkyf7dE7MtT5LR4e7yYpHrkhOUpEfssBLq2pPhAqoSWKUkk7EDqkmK6RrCEzqDjhNDWNE+XSMvkJRDWlZTmCW0l0PHQGRZY5t1L83kT0Y3l2SItk5JAWHl2dCOBm+fPu3fo5/3v61RMCO9Jx2EEYYhb0rmNQMX/vm7gqOEJLcXTGw3CAuRNeyaPWwjR8PRqKQ1PDA/dpv+on9Shox52WFnx0KY8onHayrJzm87i5h9xGw/tfkev0jGsQizqezUKjk12hBMKJ4kbCqGPVNXudyyrShovGw5CgxsRICxF6aRmSjlBnHRzg7Gx8fKqEubI2rahQYdR1YgDIRQO7JvQyD52hoIQx0mxa0ODtW2Iozn1le2iIRdzwWewedyZzewidueOGqlsn1MvcnQpuVwLGG3/IR1hIKxCjelIDZ8ldqWz25jWAsnldEnK0Zxro19TGVb2ffIZEsIO89EIEDvKMPrzmBOQcKQ+rroye6NgRRxqR4U8EAkz0CL6uSGOm6KQCdWjvjRiSP1BPalCRS5iQYiEIvxuBMJEWgzSoHADcVMuN7IuqqTeyUPq22qFimFtxDyBBJEwNyt6TM88blFHao/6tWWhuuOM4SAK4EI4QmFHA+SEyWlp4EQoJ13cYGzMu7yszEIBOm2rVmHUNqwAIQabISNMRstmdhNWcFLsSm+0tjJH1MdRxO5Nx0WDMhCtgD6OKgZeljJqJKc9po8juskR9XN0Y1lZ3mWjLR9JCO1jRDMd0fpYC2VnvjBSEFg7wBENc0R9HFlb0xvF1+TBEpF68d+DHR6IOWVv2BECtxo46hOFUBd/APU57WIoEwJhIi2CdpyZX0m93BZicktMj1AS9dClteUFAUNUIEygRZCtik5zSxI9MubTBH1GOiHsiLJ3OCoSZkILa9PxiN0EbvhsAo8tdAf9Seepd36lGWHmtNANTv5Jd0z4QYyeo/UEJqxKRpg5LZx6btLPsOaEmdMyxYdlc8LMaJnikDlhclqmPiQnTEpLUIZEwkRagjYkEibQErwhkTAKCLQEbUgkzJQWc/0PstHHcfEdQ+UAAAAASUVORK5CYII=);background-size:26px 26px}.leaflet-touch .leaflet-control-layers-toggle{width:44px;height:44px}.leaflet-control-layers .leaflet-control-layers-list,.leaflet-control-layers-expanded .leaflet-control-layers-toggle{display:none}.leaflet-control-layers-expanded .leaflet-control-layers-list{display:block;position:relative}.leaflet-control-layers-expanded{padding:6px 10px 6px 6px;color:#333;background:#fff}.leaflet-control-layers-scrollbar{overflow-y:scroll;overflow-x:hidden;padding-right:5px}.leaflet-control-layers-selector{margin-top:2px;position:relative;top:1px}.leaflet-control-layers label{display:block;font-size:13px;font-size:1.08333em}.leaflet-control-layers-separator{height:0;border-top:1px solid #ddd;margin:5px -10px 5px -6px}.leaflet-default-icon-path{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABkAAAApCAYAAADAk4LOAAAFgUlEQVR4Aa1XA5BjWRTN2oW17d3YaZtr2962HUzbDNpjszW24mRt28p47v7zq/bXZtrp/lWnXr337j3nPCe85NcypgSFdugCpW5YoDAMRaIMqRi6aKq5E3YqDQO3qAwjVWrD8Ncq/RBpykd8oZUb/kaJutow8r1aP9II0WmLKLIsJyv1w/kqw9Ch2MYdB++12Onxee/QMwvf4/Dk/Lfp/i4nxTXtOoQ4pW5Aj7wpici1A9erdAN2OH64x8OSP9j3Ft3b7aWkTg/Fm91siTra0f9on5sQr9INejH6CUUUpavjFNq1B+Oadhxmnfa8RfEmN8VNAsQhPqF55xHkMzz3jSmChWU6f7/XZKNH+9+hBLOHYozuKQPxyMPUKkrX/K0uWnfFaJGS1QPRtZsOPtr3NsW0uyh6NNCOkU3Yz+bXbT3I8G3xE5EXLXtCXbbqwCO9zPQYPRTZ5vIDXD7U+w7rFDEoUUf7ibHIR4y6bLVPXrz8JVZEql13trxwue/uDivd3fkWRbS6/IA2bID4uk0UpF1N8qLlbBlXs4Ee7HLTfV1j54APvODnSfOWBqtKVvjgLKzF5YdEk5ewRkGlK0i33Eofffc7HT56jD7/6U+qH3Cx7SBLNntH5YIPvODnyfIXZYRVDPqgHtLs5ABHD3YzLuespb7t79FY34DjMwrVrcTuwlT55YMPvOBnRrJ4VXTdNnYug5ucHLBjEpt30701A3Ts+HEa73u6dT3FNWwflY86eMHPk+Yu+i6pzUpRrW7SNDg5JHR4KapmM5Wv2E8Tfcb1HoqqHMHU+uWDD7zg54mz5/2BSnizi9T1Dg4QQXLToGNCkb6tb1NU+QAlGr1++eADrzhn/u8Q2YZhQVlZ5+CAOtqfbhmaUCS1ezNFVm2imDbPmPng5wmz+gwh+oHDce0eUtQ6OGDIyR0uUhUsoO3vfDmmgOezH0mZN59x7MBi++WDL1g/eEiU3avlidO671bkLfwbw5XV2P8Pzo0ydy4t2/0eu33xYSOMOD8hTf4CrBtGMSoXfPLchX+J0ruSePw3LZeK0juPJbYzrhkH0io7B3k164hiGvawhOKMLkrQLyVpZg8rHFW7E2uHOL888IBPlNZ1FPzstSJM694fWr6RwpvcJK60+0HCILTBzZLFNdtAzJaohze60T8qBzyh5ZuOg5e7uwQppofEmf2++DYvmySqGBuKaicF1blQjhuHdvCIMvp8whTTfZzI7RldpwtSzL+F1+wkdZ2TBOW2gIF88PBTzD/gpeREAMEbxnJcaJHNHrpzji0gQCS6hdkEeYt9DF/2qPcEC8RM28Hwmr3sdNyht00byAut2k3gufWNtgtOEOFGUwcXWNDbdNbpgBGxEvKkOQsxivJx33iow0Vw5S6SVTrpVq11ysA2Rp7gTfPfktc6zhtXBBC+adRLshf6sG2RfHPZ5EAc4sVZ83yCN00Fk/4kggu40ZTvIEm5g24qtU4KjBrx/BTTH8ifVASAG7gKrnWxJDcU7x8X6Ecczhm3o6YicvsLXWfh3Ch1W0k8x0nXF+0fFxgt4phz8QvypiwCCFKMqXCnqXExjq10beH+UUA7+nG6mdG/Pu0f3LgFcGrl2s0kNNjpmoJ9o4B29CMO8dMT4Q5ox8uitF6fqsrJOr8qnwNbRzv6hSnG5wP+64C7h9lp30hKNtKdWjtdkbuPA19nJ7Tz3zR/ibgARbhb4AlhavcBebmTHcFl2fvYEnW0ox9xMxKBS8btJ+KiEbq9zA4RthQXDhPa0T9TEe69gWupwc6uBUphquXgf+/FrIjweHQS4/pduMe5ERUMHUd9xv8ZR98CxkS4F2n3EUrUZ10EYNw7BWm9x1GiPssi3GgiGRDKWRYZfXlON+dfNbM+GgIwYdwAAAAASUVORK5CYII=)}.leaflet-container .leaflet-control-attribution{background:#fff;background:#fffc;margin:0}.leaflet-control-attribution,.leaflet-control-scale-line{padding:0 5px;color:#333;line-height:1.4}.leaflet-control-attribution a{text-decoration:none}.leaflet-control-attribution a:hover,.leaflet-control-attribution a:focus{text-decoration:underline}.leaflet-attribution-flag{display:inline!important;vertical-align:baseline!important;width:1em;height:.6669em}.leaflet-left .leaflet-control-scale{margin-left:5px}.leaflet-bottom .leaflet-control-scale{margin-bottom:5px}.leaflet-control-scale-line{border:2px solid #777;border-top:none;line-height:1.1;padding:2px 5px 1px;white-space:nowrap;-moz-box-sizing:border-box;box-sizing:border-box;background:#fffc;text-shadow:1px 1px #fff}.leaflet-control-scale-line:not(:first-child){border-top:2px solid #777;border-bottom:none;margin-top:-2px}.leaflet-control-scale-line:not(:first-child):not(:last-child){border-bottom:2px solid #777}.leaflet-touch .leaflet-control-attribution,.leaflet-touch .leaflet-control-layers,.leaflet-touch .leaflet-bar{box-shadow:none}.leaflet-touch .leaflet-control-layers,.leaflet-touch .leaflet-bar{border:2px solid rgba(0,0,0,.2);background-clip:padding-box}.leaflet-popup{position:absolute;text-align:center;margin-bottom:20px}.leaflet-popup-content-wrapper{padding:1px;text-align:left;border-radius:12px}.leaflet-popup-content{margin:13px 24px 13px 20px;line-height:1.3;font-size:13px;font-size:1.08333em;min-height:1px}.leaflet-popup-content p{margin:1.3em 0}.leaflet-popup-tip-container{width:40px;height:20px;position:absolute;left:50%;margin-top:-1px;margin-left:-20px;overflow:hidden;pointer-events:none}.leaflet-popup-tip{width:17px;height:17px;padding:1px;margin:-10px auto 0;pointer-events:auto;-webkit-transform:rotate(45deg);-moz-transform:rotate(45deg);-ms-transform:rotate(45deg);transform:rotate(45deg)}.leaflet-popup-content-wrapper,.leaflet-popup-tip{background:#fff;color:#333;box-shadow:0 3px 14px #0006}.leaflet-container a.leaflet-popup-close-button{position:absolute;top:0;right:0;border:none;text-align:center;width:24px;height:24px;font:16px/24px Tahoma,Verdana,sans-serif;color:#757575;text-decoration:none;background:transparent}.leaflet-container a.leaflet-popup-close-button:hover,.leaflet-container a.leaflet-popup-close-button:focus{color:#585858}.leaflet-popup-scrolled{overflow:auto}.leaflet-oldie .leaflet-popup-content-wrapper{-ms-zoom:1}.leaflet-oldie .leaflet-popup-tip{width:24px;margin:0 auto;-ms-filter:"progid:DXImageTransform.Microsoft.Matrix(M11=0.70710678, M12=0.70710678, M21=-0.70710678, M22=0.70710678)";filter:progid:DXImageTransform.Microsoft.Matrix(M11=.70710678,M12=.70710678,M21=-.70710678,M22=.70710678)}.leaflet-oldie .leaflet-control-zoom,.leaflet-oldie .leaflet-control-layers,.leaflet-oldie .leaflet-popup-content-wrapper,.leaflet-oldie .leaflet-popup-tip{border:1px solid #999}.leaflet-div-icon{background:#fff;border:1px solid #666}.leaflet-tooltip{position:absolute;padding:6px;background-color:#fff;border:1px solid #fff;border-radius:3px;color:#222;white-space:nowrap;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;pointer-events:none;box-shadow:0 1px 3px #0006}.leaflet-tooltip.leaflet-interactive{cursor:pointer;pointer-events:auto}.leaflet-tooltip-top:before,.leaflet-tooltip-bottom:before,.leaflet-tooltip-left:before,.leaflet-tooltip-right:before{position:absolute;pointer-events:none;border:6px solid transparent;background:transparent;content:""}.leaflet-tooltip-bottom{margin-top:6px}.leaflet-tooltip-top{margin-top:-6px}.leaflet-tooltip-bottom:before,.leaflet-tooltip-top:before{left:50%;margin-left:-6px}.leaflet-tooltip-top:before{bottom:0;margin-bottom:-12px;border-top-color:#fff}.leaflet-tooltip-bottom:before{top:0;margin-top:-12px;margin-left:-6px;border-bottom-color:#fff}.leaflet-tooltip-left{margin-left:-6px}.leaflet-tooltip-right{margin-left:6px}.leaflet-tooltip-left:before,.leaflet-tooltip-right:before{top:50%;margin-top:-6px}.leaflet-tooltip-left:before{right:0;margin-right:-12px;border-left-color:#fff}.leaflet-tooltip-right:before{left:0;margin-left:-12px;border-right-color:#fff}@media print{.leaflet-control{-webkit-print-color-adjust:exact;print-color-adjust:exact}}:root{--bg-primary: #1a1d23;--bg-secondary: #22262e;--bg-card: #2a2e38;--bg-card-hover: #323742;--sidebar-bg: #16191f;--text-primary: #ecf0f1;--text-secondary: #95a5a6;--text-muted: #7f8c8d;--kpi-blue: #2980b9;--kpi-green: #27ae60;--kpi-teal: #16a085;--kpi-red: #c0392b;--kpi-yellow: #d4a017;--accent: #3498db;--accent-hover: #2c80b4;--success: #2ecc71;--warning: #f39c12;--danger: #e74c3c;--sidebar-width: 240px;--radius: 8px;--radius-sm: 4px;--shadow: 0 2px 8px rgba(0, 0, 0, .3);--transition: .2s ease;--border: rgba(255, 255, 255, .08)}[data-theme=light]{--bg-primary: #f0f2f5;--bg-secondary: #e4e7eb;--bg-card: #ffffff;--bg-card-hover: #f8f9fa;--sidebar-bg: #1e2128;--text-primary: #1a1d23;--text-secondary: #5a6068;--text-muted: #7f8690;--shadow: 0 2px 8px rgba(0, 0, 0, .08);--border: rgba(0, 0, 0, .08)}*{margin:0;padding:0;box-sizing:border-box}body{font-family:Inter,-apple-system,BlinkMacSystemFont,sans-serif;background:var(--bg-primary);color:var(--text-primary);line-height:1.5;-webkit-font-smoothing:antialiased}.app-layout{display:flex;min-height:100vh}.main-content{flex:1;margin-left:var(--sidebar-width);padding:28px 32px;overflow-y:auto}.sidebar{position:fixed;top:0;left:0;width:var(--sidebar-width);height:100vh;background:var(--sidebar-bg);display:flex;flex-direction:column;z-index:100;border-right:1px solid rgba(255,255,255,.06)}.sidebar-brand{display:flex;align-items:center;gap:10px;padding:16px 12px;border-bottom:1px solid rgba(255,255,255,.06)}.brand-logo{height:36px;width:auto;object-fit:contain}.brand-omni{font-size:28px;font-weight:700;color:var(--text-primary);letter-spacing:.08em}.sidebar-nav{flex:1;padding:16px 12px;display:flex;flex-direction:column;gap:4px}.nav-item{display:flex;align-items:center;gap:12px;padding:10px 14px;border-radius:var(--radius);color:var(--text-secondary);text-decoration:none;font-size:14px;font-weight:500;transition:all var(--transition)}.nav-item:hover{background:#ffffff0d;color:var(--text-primary)}.nav-item.active{background:var(--accent);color:#fff}.sidebar-footer{padding:16px 20px;border-top:1px solid rgba(255,255,255,.06)}.status-indicator{display:flex;align-items:center;gap:8px;font-size:12px;color:var(--text-muted)}.status-dot{width:8px;height:8px;border-radius:50%;background:var(--text-muted)}.status-dot.online{background:var(--success);box-shadow:0 0 6px #2ecc7180}.page-loading{display:flex;flex-direction:column;align-items:center;justify-content:center;height:50vh;gap:16px;color:var(--text-muted)}.spinner{width:36px;height:36px;border:3px solid rgba(255,255,255,.08);border-top-color:var(--accent);border-radius:50%;animation:spin .8s linear infinite}@keyframes shimmer{0%{background-position:-400px 0}to{background-position:400px 0}}.skeleton{background:linear-gradient(90deg,#ffffff0a 25%,#ffffff14,#ffffff0a 75%);background-size:800px 100%;animation:shimmer 1.5s ease-in-out infinite;border-radius:var(--radius-sm)}[data-theme=light] .skeleton{background:linear-gradient(90deg,#0000000a 25%,#00000014,#0000000a 75%);background-size:800px 100%}.skeleton-card{background:var(--bg-card);border-radius:var(--radius);padding:20px;border:1px solid var(--border)}.skeleton-text{display:block}.no-results{grid-column:1 / -1;text-align:center;padding:48px 16px;color:var(--text-muted);font-size:15px}.page-header{margin-bottom:28px}.page-header h1{font-size:28px;font-weight:700;letter-spacing:-.02em;color:var(--text-primary)}.page-subtitle{font-size:14px;color:var(--text-muted);margin-top:4px}.back-btn{display:inline-flex;align-items:center;gap:6px;background:none;border:none;color:var(--accent);font-size:14px;font-weight:500;cursor:pointer;padding:6px 0;margin-bottom:12px;font-family:inherit}.back-btn:hover{color:var(--accent-hover)}.last-seen{font-size:13px;color:var(--text-muted);margin-left:16px}.kpi-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:20px;margin-bottom:32px}.kpi-card{border-radius:var(--radius);padding:20px 22px;display:flex;justify-content:space-between;align-items:center;color:#fff;transition:transform var(--transition),box-shadow var(--transition)}.kpi-card:hover{transform:translateY(-2px);box-shadow:var(--shadow)}.kpi-clickable{cursor:pointer}.kpi-active{outline:2px solid #fff;outline-offset:-2px;transform:translateY(-2px);box-shadow:0 4px 20px #0000004d}.kpi-blue{background:var(--kpi-blue)}.kpi-green{background:var(--kpi-green)}.kpi-teal{background:var(--kpi-teal)}.kpi-red{background:var(--kpi-red)}.kpi-yellow{background:var(--kpi-yellow)}.kpi-label{font-size:12px;font-weight:500;text-transform:uppercase;letter-spacing:.05em;opacity:.85;margin-bottom:4px}.kpi-value{font-size:28px;font-weight:700;letter-spacing:-.02em}.kpi-unit{font-size:16px;font-weight:400;margin-left:2px;opacity:.8}.kpi-icon{opacity:.6}.fleet-controls{display:flex;align-items:center;gap:16px;margin-bottom:28px;flex-wrap:wrap}.search-box{display:flex;align-items:center;gap:10px;background:var(--bg-card);border-radius:var(--radius);padding:8px 14px;flex:1;min-width:200px;max-width:360px;border:1px solid rgba(255,255,255,.06)}.search-box svg{color:var(--text-muted);flex-shrink:0}.search-box input{background:none;border:none;color:var(--text-primary);font-size:14px;font-family:inherit;width:100%;outline:none}.search-box input::placeholder{color:var(--text-muted)}.control-group{display:flex;align-items:center;gap:8px}.control-group label{font-size:13px;color:var(--text-muted);font-weight:500}.control-group select{background:var(--bg-card);border:1px solid rgba(255,255,255,.1);color:var(--text-primary);padding:8px 12px;border-radius:var(--radius-sm);font-size:13px;font-family:inherit;cursor:pointer;outline:none}.control-group select:focus{border-color:var(--accent)}.site-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:20px}.site-card{background:var(--bg-card);border-radius:var(--radius);padding:18px;cursor:pointer;transition:all var(--transition);border:1px solid rgba(255,255,255,.04);position:relative;overflow:hidden}.site-card:before{content:"";position:absolute;top:0;left:0;right:0;height:3px;transition:background var(--transition)}.site-card-ok:before{background:var(--success)}.site-card-warning:before{background:var(--warning)}.site-card-alarm:before{background:var(--danger)}.site-card-offline:before{background:var(--text-muted)}.site-card:hover{background:var(--bg-card-hover);transform:translateY(-2px);box-shadow:var(--shadow)}.site-card-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:14px}.site-card-name{font-size:15px;font-weight:600;color:var(--text-primary)}.site-card-body{display:flex;align-items:center;gap:16px}.site-card-gauge{flex-shrink:0}.site-card-stats{flex:1;display:flex;flex-direction:column;gap:8px}.stat-row{display:flex;justify-content:space-between;align-items:center}.stat-label{font-size:12px;color:var(--text-muted);font-weight:500}.stat-value{font-size:14px;font-weight:600;color:var(--text-primary);font-variant-numeric:tabular-nums}.site-card-footer{display:flex;justify-content:space-between;align-items:center;margin-top:14px;padding-top:12px;border-top:1px solid rgba(255,255,255,.06)}.last-update{font-size:11px;color:var(--text-muted)}.site-card-icon{font-size:16px}.site-card-badges{display:flex;align-items:center;gap:8px}.signal-badge{display:flex;align-items:center;gap:5px;padding:2px 6px;border-radius:10px;font-size:10px}.signal-badge-online{background:#2ecc711f}.signal-badge-offline{background:#7f8c8d1f}.signal-badge-carrier{color:var(--text-secondary);font-weight:500;max-width:60px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.site-card-netrow{display:flex;align-items:center;gap:8px;margin-top:10px;padding:6px 8px;background:#ffffff08;border-radius:var(--radius-sm);font-size:11px}.netrow-dot{width:6px;height:6px;border-radius:50%;flex-shrink:0}.netrow-dot-on{background:var(--success);box-shadow:0 0 4px #2ecc7180}.netrow-dot-off{background:var(--text-muted)}.netrow-carrier{color:var(--text-secondary);font-weight:500}.netrow-tech{color:var(--text-muted)}.netrow-rsrp{margin-left:auto;font-weight:600;font-variant-numeric:tabular-nums}.netrow-good{color:var(--success)}.netrow-fair{color:var(--warning)}.netrow-poor{color:var(--danger)}.netrow-clients{color:var(--text-muted);font-size:10px}.detail-network-card{flex-direction:column;align-items:stretch}.detail-net-hero{display:flex;align-items:center;gap:14px;padding-bottom:14px;border-bottom:1px solid rgba(255,255,255,.06);margin-bottom:4px}.detail-net-hero-info{display:flex;flex-direction:column}.detail-net-carrier{font-size:16px;font-weight:700;color:var(--text-primary)}.detail-net-tech{font-size:12px;color:var(--text-muted);text-transform:uppercase}.detail-net-status-badge{margin-left:auto;padding:3px 10px;border-radius:10px;font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.04em}.detail-net-online{background:#2ecc7126;color:var(--success)}.detail-net-offline{background:#7f8c8d26;color:var(--text-muted)}.detail-net-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:16px;margin-top:12px}.detail-net-block h4{font-size:13px;color:var(--text-muted);text-transform:uppercase;letter-spacing:.05em;margin-bottom:10px}.sim-card{background:#ffffff08;border-radius:var(--radius-sm);padding:10px 12px;margin-bottom:8px;border-left:3px solid var(--text-muted)}.sim-active{border-left-color:var(--success)}.sim-label{font-weight:600;font-size:13px;color:var(--text-primary)}.sim-status{font-size:11px;color:var(--text-muted)}.sim-details{display:flex;flex-direction:column;gap:2px;font-size:12px;color:var(--text-secondary)}.sim-iccid{font-family:SF Mono,Consolas,monospace;font-size:10px;color:var(--text-muted)}.wan-iface{display:flex;align-items:center;gap:10px;padding:8px 12px;background:#ffffff08;border-radius:var(--radius-sm);margin-bottom:6px;border-left:3px solid var(--text-muted);font-size:13px}.wan-iface-red{border-left-color:var(--danger)}.wan-name{font-weight:600;color:var(--text-primary);min-width:60px}.wan-type{color:var(--text-muted);font-size:11px;text-transform:uppercase}.wan-status{color:var(--text-secondary);flex:1}.wan-ip{font-family:SF Mono,Consolas,monospace;font-size:12px;color:var(--text-muted)}.alarm-badge{display:inline-block;padding:2px 8px;border-radius:10px;font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.05em}.alarm-ok{background:#2ecc7126;color:var(--success)}.alarm-warning{background:#f39c1226;color:var(--warning)}.alarm-critical{background:#e74c3c26;color:var(--danger)}.alarm-offline{background:#7f8c8d26;color:var(--text-muted)}.detail-gauges{display:grid;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:20px;margin-bottom:28px}.detail-gauge-card{background:var(--bg-card);border-radius:var(--radius);padding:24px;display:flex;align-items:center;gap:24px;border:1px solid rgba(255,255,255,.04)}.gauge-details{flex:1;display:flex;flex-direction:column;gap:10px}.gauge-detail-row{display:flex;justify-content:space-between;font-size:13px}.gauge-detail-row span:first-child{color:var(--text-muted)}.gauge-detail-row span:last-child{color:var(--text-primary);font-weight:600;font-variant-numeric:tabular-nums}.solar-status{display:flex;flex-direction:column;align-items:center;gap:4px;min-width:120px}.solar-icon-large{font-size:40px}.solar-power-value{font-size:28px;font-weight:700;color:#f1c40f}.solar-state{font-size:12px;color:var(--text-muted);text-transform:uppercase;letter-spacing:.05em}.range-selector{display:flex;align-items:center;gap:8px;margin-bottom:20px}.range-label{font-size:13px;color:var(--text-muted);font-weight:500;margin-right:4px}.range-btn{background:var(--bg-card);border:1px solid rgba(255,255,255,.1);color:var(--text-secondary);padding:6px 16px;border-radius:var(--radius-sm);font-size:13px;font-family:inherit;cursor:pointer;transition:all var(--transition)}.range-btn:hover{background:var(--bg-card-hover);color:var(--text-primary)}.range-btn.active{background:var(--accent);border-color:var(--accent);color:#fff}.charts-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:20px;margin-bottom:28px}.chart-card{background:var(--bg-card);border-radius:var(--radius);padding:20px;border:1px solid rgba(255,255,255,.04)}.chart-card-full{grid-column:1 / -1}.chart-card h3{font-size:15px;font-weight:600;color:var(--text-primary);margin-bottom:16px}.chart-card-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:0}.chart-card-header h3{margin-bottom:12px}.reset-zoom-btn{background:#ffffff0f;border:1px solid rgba(255,255,255,.1);color:var(--text-muted);font-size:11px;padding:4px 10px;border-radius:4px;cursor:pointer;font-family:inherit;transition:all .15s}.reset-zoom-btn:hover{background:#ffffff1a;color:var(--text-primary)}.chart-container{height:240px;position:relative}.chart-empty{display:flex;align-items:center;justify-content:center;height:100%;color:var(--text-muted);font-size:14px}.detail-section{background:var(--bg-card);border-radius:var(--radius);padding:24px;margin-bottom:20px;border:1px solid rgba(255,255,255,.04)}.detail-section h2{font-size:17px;font-weight:600;margin-bottom:16px;color:var(--text-primary)}.empty-state{color:var(--text-muted);font-size:14px;text-align:center;padding:24px 0}.alarm-list{display:flex;flex-direction:column;gap:8px}.alarm-row{display:flex;align-items:center;gap:12px;padding:10px 14px;background:var(--bg-secondary);border-radius:var(--radius-sm)}.alarm-name{flex:1;font-size:14px;color:var(--text-primary)}.alarm-device{font-size:13px;color:var(--text-muted)}.alarm-time{font-size:12px;color:var(--text-muted);font-variant-numeric:tabular-nums}.devices-table-wrapper{overflow-x:auto}.devices-table{width:100%;border-collapse:collapse}.devices-table th{text-align:left;padding:10px 14px;font-size:12px;font-weight:600;color:var(--text-muted);text-transform:uppercase;letter-spacing:.05em;border-bottom:1px solid rgba(255,255,255,.08)}.devices-table td{padding:10px 14px;font-size:14px;color:var(--text-primary);border-bottom:1px solid rgba(255,255,255,.04)}.devices-table .mono{font-family:JetBrains Mono,Fira Code,monospace;font-size:12px}.devices-table tr:hover td{background:#ffffff05}.settings-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:20px}.settings-card{background:var(--bg-card);border-radius:var(--radius);padding:24px;border:1px solid rgba(255,255,255,.04)}.settings-card h2{font-size:17px;font-weight:600;margin-bottom:12px;color:var(--text-primary)}.settings-card-danger{border-color:#e74c3c33}.settings-desc{font-size:13px;color:var(--text-muted);margin-bottom:16px;line-height:1.6}.settings-stats{display:flex;flex-direction:column;gap:16px}.settings-stat{display:flex;justify-content:space-between;align-items:center}.settings-stat .stat-label{font-size:13px;color:var(--text-muted)}.stat-value-large{font-size:18px;font-weight:700;color:var(--text-primary);font-variant-numeric:tabular-nums}.retention-options{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:20px}.retention-btn{background:var(--bg-secondary);border:1px solid rgba(255,255,255,.1);color:var(--text-secondary);padding:8px 18px;border-radius:var(--radius-sm);font-size:13px;font-family:inherit;cursor:pointer;transition:all var(--transition)}.retention-btn:hover{background:var(--bg-card-hover);color:var(--text-primary)}.retention-btn.active{background:var(--accent);border-color:var(--accent);color:#fff}.settings-actions{display:flex;gap:12px}.profile-section{display:flex;flex-direction:column;gap:12px}.profile-field{display:flex;align-items:center;gap:12px}.profile-field label{font-size:13px;color:var(--text-muted);min-width:100px;font-weight:500}.profile-field span{font-size:14px;color:var(--text-primary)}.settings-card-wide{grid-column:1 / -1}.settings-card-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}.settings-card-header h2{margin-bottom:0}.btn-secondary{background:var(--bg-secondary);border:1px solid rgba(255,255,255,.1);color:var(--text-secondary);padding:8px 16px;border-radius:var(--radius-sm);font-size:13px;font-weight:600;font-family:inherit;cursor:pointer;transition:all var(--transition)}.btn-secondary:hover{background:var(--bg-card-hover);color:var(--text-primary)}.btn-secondary:disabled{opacity:.6;cursor:not-allowed}.jobsite-mgmt-table-wrapper{overflow-x:auto;margin-top:12px}.jobsite-mgmt-table{width:100%;border-collapse:collapse;font-size:13px}.jobsite-mgmt-table th{text-align:left;padding:10px 14px;color:var(--text-muted);font-weight:600;font-size:11px;text-transform:uppercase;letter-spacing:.05em;border-bottom:1px solid var(--border)}.jobsite-mgmt-table td{padding:10px 14px;border-bottom:1px solid rgba(255,255,255,.03);vertical-align:middle}.jobsite-mgmt-row:hover{background:#ffffff05}.jobsite-mgmt-completed{opacity:.55}.jobsite-mgmt-name .clickable-name{cursor:pointer;color:var(--text-primary);font-weight:500;border-bottom:1px dashed rgba(255,255,255,.2);transition:color .15s}.jobsite-mgmt-name .clickable-name:hover{color:var(--accent)}.inline-edit-compact{display:flex;align-items:center;gap:6px}.inline-edit-compact input{background:var(--bg-secondary);border:1px solid var(--accent);color:var(--text-primary);padding:4px 8px;border-radius:4px;font-size:13px;font-family:inherit;width:180px}.btn-sm{padding:4px 10px;font-size:12px;border-radius:4px;font-weight:600;font-family:inherit;cursor:pointer;border:none}.btn-sm:not(.btn-ghost){background:var(--accent);color:#fff}.btn-ghost{background:transparent;color:var(--text-muted);border:1px solid rgba(255,255,255,.1)}.btn-ghost:hover{color:var(--text-primary)}.jobsite-mgmt-address{color:var(--text-muted);max-width:200px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.trailer-count-badge.clickable{cursor:pointer;-webkit-user-select:none;user-select:none}.trailer-count-badge.clickable:hover{background:#3498db4d}.trailer-assign-row{background:#0003}.trailer-assign-row td{padding:6px 12px;border-top:1px solid rgba(255,255,255,.03)}.trailer-assign-name{padding-left:28px!important;color:var(--text-secondary);font-size:.9rem}.reassign-select{background:var(--bg-secondary);border:1px solid rgba(255,255,255,.08);color:var(--text-secondary);padding:4px 8px;border-radius:4px;font-size:.85rem;cursor:pointer;min-width:160px}.reassign-select:hover{border-color:var(--accent)}.trailer-assign-row.dragging{opacity:.4}.trailer-assign-row td:first-child{cursor:grab}.jobsite-mgmt-row.drop-target{outline:2px dashed var(--accent);outline-offset:-2px;background:#3498db14}.drag-overlay-trailer{background:var(--bg-secondary);border:2px solid var(--accent);border-radius:6px;padding:8px 16px;font-size:13px;color:var(--text-primary);box-shadow:0 4px 12px #0000004d;white-space:nowrap}.status-select{background:var(--bg-secondary);border:1px solid rgba(255,255,255,.08);color:var(--text-secondary);padding:4px 8px;border-radius:4px;font-size:12px;font-family:inherit;cursor:pointer}.status-select-active{color:#2ecc71;border-color:#2ecc714d}.status-select-standby{color:#f1c40f;border-color:#f1c40f4d}.status-select-completed{color:#7f8c8d;border-color:#7f8c8d4d}.btn{padding:10px 24px;border-radius:var(--radius-sm);font-size:14px;font-weight:600;font-family:inherit;border:none;cursor:pointer;transition:all var(--transition)}.btn:disabled{opacity:.6;cursor:not-allowed}.btn-primary{background:var(--accent);color:#fff}.btn-primary:hover:not(:disabled){background:var(--accent-hover)}.btn-danger{background:var(--danger);color:#fff}.btn-danger:hover:not(:disabled){background:#c0392b}.settings-message{margin-top:20px;padding:12px 16px;border-radius:var(--radius-sm);font-size:14px;font-weight:500}.settings-message.success{background:#2ecc711a;color:var(--success);border:1px solid rgba(46,204,113,.2)}.settings-message.error{background:#e74c3c1a;color:var(--danger);border:1px solid rgba(231,76,60,.2)}.page-loading{display:flex;flex-direction:column;align-items:center;justify-content:center;height:60vh;gap:16px;color:var(--text-muted)}.spinner{width:36px;height:36px;border:3px solid rgba(255,255,255,.1);border-top-color:var(--accent);border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.no-results{grid-column:1 / -1;text-align:center;padding:40px 0;color:var(--text-muted);font-size:14px}@media(max-width:1024px){.main-content{padding:20px 16px}.charts-grid{grid-template-columns:1fr}.kpi-row{grid-template-columns:repeat(auto-fit,minmax(150px,1fr))}}@media(max-width:768px){.sidebar{width:60px}.brand-logo{height:24px}.brand-omni,.nav-item span,.sidebar-footer span{display:none}.sidebar-brand{justify-content:center;padding:16px 8px}.nav-item{justify-content:center;padding:12px}.main-content{margin-left:60px}.site-grid{grid-template-columns:1fr}.fleet-controls{flex-direction:column;align-items:stretch}.search-box{max-width:none}.detail-gauges{grid-template-columns:1fr}}.energy-page .page-header h1{font-size:28px;font-weight:700;color:var(--text-primary);margin-bottom:4px}.page-subtitle{font-size:14px;color:var(--text-muted);margin-bottom:24px}.energy-alerts-banner{background:linear-gradient(135deg,#e74c3c1f,#f1c40f14);border:1px solid rgba(231,76,60,.25);border-radius:var(--radius);padding:20px;margin-bottom:24px}.alert-banner-header{display:flex;align-items:center;gap:10px;font-size:15px;font-weight:600;color:#e74c3c;margin-bottom:14px}.alert-banner-items{display:flex;flex-wrap:wrap;gap:10px}.alert-item{display:flex;align-items:center;gap:10px;padding:10px 16px;background:#0003;border-radius:var(--radius-sm);border-left:3px solid}.alert-item.alert-caution{border-left-color:#f39c12}.alert-item.alert-warning{border-left-color:#e67e22}.alert-item.alert-critical{border-left-color:#e74c3c}.alert-site-name{font-size:14px;font-weight:600;color:var(--text-primary)}.alert-streak{font-size:12px;color:var(--text-muted)}.alert-badge{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.05em;padding:2px 8px;border-radius:4px;background:#e74c3c33;color:#e74c3c}.energy-chart-section{background:var(--bg-card);border-radius:var(--radius);padding:24px;margin-bottom:24px;border:1px solid rgba(255,255,255,.04)}.energy-chart-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px}.energy-chart-header h2{font-size:17px;font-weight:600;color:var(--text-primary)}.site-selector{background:var(--bg-secondary);border:1px solid rgba(255,255,255,.12);color:var(--text-primary);padding:8px 14px;border-radius:var(--radius-sm);font-size:14px;font-family:inherit;cursor:pointer;min-width:200px}.site-selector:focus{outline:none;border-color:var(--accent)}.energy-chart-container{height:320px;position:relative}.energy-table-section{background:var(--bg-card);border-radius:var(--radius);padding:24px;border:1px solid rgba(255,255,255,.04)}.energy-table-section h2{font-size:17px;font-weight:600;color:var(--text-primary);margin-bottom:16px}.energy-table-wrapper{overflow-x:auto}.energy-table{width:100%;border-collapse:collapse}.energy-table th{text-align:left;padding:12px 16px;font-size:12px;font-weight:600;color:var(--text-muted);text-transform:uppercase;letter-spacing:.05em;border-bottom:1px solid rgba(255,255,255,.08)}.energy-table td{padding:12px 16px;font-size:14px;color:var(--text-primary);border-bottom:1px solid rgba(255,255,255,.04);font-variant-numeric:tabular-nums}.energy-row{cursor:pointer;transition:background var(--transition)}.energy-row:hover{background:#ffffff08}.energy-row.has-alert{background:#e74c3c0a}.energy-row.has-alert:hover{background:#e74c3c14}.site-name-cell{display:flex;align-items:center;gap:8px;font-weight:500}.inline-alert-dot{width:8px;height:8px;border-radius:50%;background:#e74c3c;flex-shrink:0;animation:pulse-dot 2s infinite}@keyframes pulse-dot{0%,to{opacity:1}50%{opacity:.4}}.yield-cell{color:var(--success)}.consumed-cell{color:#e74c3c}.balance-cell.positive{color:var(--success);font-weight:600}.balance-cell.negative{color:#e74c3c;font-weight:600}.energy-status-badge{display:inline-block;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.05em;padding:3px 10px;border-radius:4px}.energy-status-badge.ok{background:#2ecc7126;color:var(--success)}.energy-status-badge.caution{background:#f39c1226;color:#f39c12}.energy-status-badge.warning{background:#e67e2226;color:#e67e22}.energy-status-badge.critical{background:#e74c3c26;color:#e74c3c}.network-grouped{display:flex;flex-direction:column;gap:24px}.network-site-group{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);overflow:hidden}.network-site-header{display:flex;align-items:center;justify-content:space-between;padding:14px 20px;cursor:pointer;border-bottom:1px solid var(--border);transition:background .15s ease}.network-site-header:hover{background:#ffffff08}.network-site-header-left{display:flex;align-items:center;gap:10px}.network-site-header-left h3{font-size:1rem;font-weight:600;margin:0;color:#ecf0f1}.network-site-header .expand-icon{color:#7f8c8d;font-size:.85rem;width:16px}.network-site-count{font-size:.8rem;color:#7f8c8d;background:#ffffff0f;padding:2px 8px;border-radius:10px}.network-site-header-right{display:flex;align-items:center;gap:12px}.network-site-status{font-size:.85rem;font-weight:500;padding:3px 10px;border-radius:12px}.network-site-status.all-online{color:#2ecc71;background:#2ecc711f}.network-site-status.has-offline{color:#e74c3c;background:#e74c3c1f}.site-all-online{border-left:3px solid #2ecc71}.site-has-offline{border-left:3px solid #e74c3c}.site-unassigned{border-left:3px solid #7f8c8d}.network-site-group>.network-grid{padding:16px;border-top:none}.detail-site-tag{padding:6px 16px 12px;font-size:.85rem;color:#3498db;font-weight:500}.network-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:16px}.network-card{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);padding:16px;cursor:pointer;transition:all .2s ease}.network-card:hover{border-color:#3498db66;transform:translateY(-2px);box-shadow:0 4px 20px #0000004d}.network-card-selected{border-color:var(--accent)!important;box-shadow:0 0 0 1px var(--accent),0 4px 20px #3498db33}.network-card-offline{opacity:.6}.network-card-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px}.network-card-name{font-size:14px;font-weight:600;color:var(--text-primary);margin:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.network-status-badge{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.05em;padding:3px 10px;border-radius:4px;white-space:nowrap}.network-status-online{background:#2ecc7126;color:var(--success)}.network-status-offline{background:#e74c3c26;color:#e74c3c}.network-card-signal{display:flex;align-items:center;gap:10px;margin-bottom:14px;padding:10px 12px;background:#ffffff08;border-radius:8px}.signal-info{display:flex;flex-direction:column;flex:1;min-width:0}.signal-carrier{font-size:13px;font-weight:600;color:var(--text-primary)}.signal-tech{font-size:11px;color:var(--text-muted);font-weight:500}.signal-quality{font-size:13px;font-weight:700;font-family:SF Mono,Consolas,monospace;white-space:nowrap}.network-card-stats{display:flex;justify-content:space-between;margin-bottom:12px}.net-stat{display:flex;flex-direction:column;align-items:center;gap:2px}.net-stat-label{font-size:11px;color:var(--text-muted);text-transform:uppercase;letter-spacing:.04em}.net-stat-value{font-size:13px;font-weight:600;color:var(--text-primary)}.network-card-footer{display:flex;justify-content:space-between;align-items:center;padding-top:10px;border-top:1px solid var(--border)}.net-model{font-size:11px;color:var(--text-muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:55%}.net-fw{font-size:11px;color:var(--text-muted);font-family:SF Mono,Consolas,monospace}.network-detail-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#0009;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;z-index:1000;padding:20px}.network-detail-panel{background:var(--sidebar-bg);border:1px solid var(--border);border-radius:12px;max-width:580px;width:100%;max-height:85vh;overflow-y:auto;padding:28px}.detail-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:24px}.detail-header h2{font-size:22px;font-weight:700;color:var(--text-primary);margin:0}.detail-close{background:none;border:1px solid var(--border);color:var(--text-muted);width:32px;height:32px;border-radius:8px;cursor:pointer;font-size:16px;display:flex;align-items:center;justify-content:center;transition:all .2s}.detail-close:hover{background:#ffffff0d;color:var(--text-primary)}.detail-section{margin-bottom:24px}.detail-section h4{font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.1em;color:var(--text-muted);margin:0 0 14px;padding-bottom:8px;border-bottom:1px solid var(--border)}.subsection-title{margin-top:16px!important}.detail-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-bottom:12px}.detail-item{display:flex;flex-direction:column;gap:3px}.detail-label{font-size:11px;color:var(--text-muted);text-transform:uppercase;letter-spacing:.04em}.detail-value{font-size:13px;font-weight:600;color:var(--text-primary);word-break:break-all}.detail-signal-hero{display:flex;align-items:center;gap:14px;padding:14px 16px;background:#ffffff08;border-radius:10px;margin-bottom:16px}.signal-hero-info{display:flex;flex-direction:column}.signal-hero-carrier{font-size:16px;font-weight:700;color:var(--text-primary)}.signal-hero-tech{font-size:12px;color:var(--accent);font-weight:600}.signal-metrics .detail-value{font-family:SF Mono,Consolas,monospace;font-weight:700}.sim-card{padding:10px 14px;border-radius:8px;margin-bottom:8px}.sim-active{background:#2ecc7114;border:1px solid rgba(46,204,113,.2)}.sim-inactive{background:#ffffff05;border:1px solid var(--border)}.sim-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:4px}.sim-label{font-size:12px;font-weight:700;color:var(--text-primary)}.sim-status{font-size:11px;font-weight:600;color:var(--text-muted)}.sim-status-active{color:var(--success)}.sim-details{display:flex;flex-direction:column;gap:2px;font-size:11px;color:var(--text-muted)}.sim-iccid{font-family:SF Mono,Consolas,monospace;font-size:10px}.wan-iface{display:flex;align-items:center;gap:10px;padding:8px 12px;border-radius:8px;margin-bottom:6px;background:#ffffff05;border-left:3px solid transparent}.wan-iface-green{border-left-color:var(--success)}.wan-iface-red{border-left-color:#e74c3c}.wan-iface-gray{border-left-color:#ffffff26}.wan-name{font-size:12px;font-weight:600;color:var(--text-primary);min-width:80px}.wan-type{font-size:11px;color:var(--accent);background:#3498db1a;padding:2px 6px;border-radius:4px}.wan-status{font-size:11px;color:var(--text-muted);flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.wan-ip{font-size:11px;font-family:SF Mono,Consolas,monospace;color:var(--text-muted)}@media(max-width:768px){.network-grid{grid-template-columns:1fr}.detail-grid{grid-template-columns:repeat(2,1fr)}.network-detail-panel{max-width:100%;padding:20px}}::-webkit-scrollbar{width:6px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:#ffffff1a;border-radius:3px}::-webkit-scrollbar-thumb:hover{background:#fff3}.query-bar-container{margin:0 0 28px;width:100%}.query-form{position:relative}.query-input-wrapper{display:flex;align-items:center;background:var(--bg-card);border:1px solid var(--border);border-radius:14px;padding:6px 6px 6px 16px;gap:12px;transition:all .3s cubic-bezier(.4,0,.2,1);box-shadow:0 4px 6px -1px #0000001a,0 2px 4px -1px #0000000f}.query-input-wrapper:focus-within{border-color:#3498db80;box-shadow:0 0 0 3px #3498db1a,var(--shadow-lg);transform:translateY(-1px)}.query-icon{font-size:18px;opacity:.8}.query-input{flex:1;background:transparent;border:none;font-size:15px;color:var(--text-primary);outline:none;padding:8px 0}.query-input::placeholder{color:var(--text-muted);opacity:.6}.query-submit{background:linear-gradient(135deg,#3498db,#2980b9);color:#fff;border:none;border-radius:10px;padding:8px 18px;font-size:13px;font-weight:600;cursor:pointer;transition:all .2s;box-shadow:0 4px 12px #3498db33}.query-submit:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 6px 16px #3498db4d;filter:brightness(1.1)}.query-submit:disabled{opacity:.5;cursor:not-allowed;filter:grayscale(1)}.query-result-card{margin-top:16px;background:var(--bg-card);border:1px solid var(--border);border-radius:16px;padding:24px;border-left:4px solid #3498db;box-shadow:var(--shadow-lg)}.animate-in{animation:slideIn .3s ease-out}@keyframes slideIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.query-answer{font-size:15px;line-height:1.6;color:var(--text-primary);white-space:pre-line}.query-data-table-wrapper{margin-top:20px;background:#0003;border-radius:10px;overflow:hidden;border:1px solid var(--border)}.query-data-table{width:100%;border-collapse:collapse;font-size:13px}.query-data-table th{text-align:left;padding:12px 16px;background:#ffffff0d;color:var(--text-muted);font-weight:700;text-transform:uppercase;letter-spacing:.05em;font-size:11px}.query-data-table td{padding:12px 16px;border-top:1px solid var(--border);color:var(--text-secondary)}.query-data-table tr:hover td{background:#ffffff05;color:var(--text-primary)}.query-data-more{padding:10px 16px;font-size:12px;color:var(--text-muted);font-style:italic;background:#0000001a;border-top:1px solid var(--border)}.query-footer{margin-top:20px;display:flex;justify-content:flex-end}.query-clear{background:transparent;border:1px solid var(--border);color:var(--text-muted);padding:6px 14px;font-size:12px;border-radius:8px;cursor:pointer;transition:all .2s}.query-clear:hover{background:#ffffff0d;border-color:var(--text-muted);color:var(--text-primary)}.query-error{color:#e74c3c;font-weight:600;font-size:14px}.view-toggle{display:flex;background:#ffffff0a;border-radius:8px;padding:2px;gap:2px}.view-toggle-btn{padding:6px 14px;border:none;background:transparent;color:var(--text-muted);font-size:13px;font-weight:500;font-family:Inter,sans-serif;border-radius:6px;cursor:pointer;transition:all .2s}.view-toggle-btn.active{background:#3498db33;color:#3498db}.view-toggle-btn:hover:not(.active){background:#ffffff0f;color:var(--text-primary)}.site-card-subtitle{display:block;font-size:11px;color:var(--text-muted);margin-top:2px;font-weight:400}.jobsite-status-badge{display:inline-block;padding:2px 8px;border-radius:10px;font-size:11px;font-weight:600;text-transform:capitalize}.jobsite-status-badge.jobsite-status-healthy{background:#2ecc7126;color:#2ecc71}.jobsite-status-badge.jobsite-status-warning{background:#f1c40f26;color:#f1c40f}.jobsite-status-badge.jobsite-status-critical{background:#e74c3c26;color:#e74c3c}.jobsite-status-badge.jobsite-status-unknown{background:#7f8c8d26;color:#7f8c8d}.jobsite-status-badge.jobsite-status-active{background:#2ecc7126;color:#2ecc71}.jobsite-status-badge.jobsite-status-standby{background:#f1c40f26;color:#f1c40f}.jobsite-status-badge.jobsite-status-completed{background:#7f8c8d26;color:#7f8c8d}.detail-meta{display:flex;align-items:center;gap:10px;margin-top:4px}.detail-address{font-size:13px;color:var(--text-muted)}.detail-trailer-count{font-size:13px;color:var(--text-secondary)}.clickable{cursor:pointer}.clickable:hover{opacity:.8}.inline-edit{display:flex;align-items:center;gap:8px}.inline-edit input{background:#ffffff14;border:1px solid rgba(255,255,255,.15);border-radius:6px;padding:6px 12px;color:var(--text-primary);font-size:20px;font-weight:700;font-family:Inter,sans-serif}.btn-sm{padding:4px 12px;font-size:12px}.btn-ghost{background:transparent;border:1px solid rgba(255,255,255,.12);color:var(--text-muted)}.btn-ghost:hover{background:#ffffff0f}.jobsite-section{margin-top:24px}.jobsite-section h2{font-size:18px;font-weight:600;color:var(--text-primary);margin-bottom:16px}.empty-section{background:var(--bg-card);border-radius:var(--radius);padding:32px;text-align:center;color:var(--text-muted);border:1px dashed rgba(255,255,255,.08)}.trailer-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:14px}.trailer-mini-card{background:var(--bg-card);border-radius:var(--radius);padding:14px;cursor:pointer;transition:all .2s;border:1px solid rgba(255,255,255,.04);border-left:3px solid #2ecc71}.trailer-mini-card:hover{transform:translateY(-2px);box-shadow:0 4px 12px #0000004d}.trailer-mini-alarm{border-left-color:#e74c3c}.trailer-mini-warning{border-left-color:#f1c40f}.trailer-mini-offline{border-left-color:#7f8c8d}.trailer-mini-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:10px}.trailer-mini-name{font-size:14px;font-weight:600;color:var(--text-primary)}.trailer-mini-status{font-size:11px;font-weight:600;padding:1px 6px;border-radius:8px}.trailer-mini-status-ok{background:#2ecc7126;color:#2ecc71}.trailer-mini-status-alarm{background:#e74c3c26;color:#e74c3c}.trailer-mini-status-warning{background:#f1c40f26;color:#f1c40f}.trailer-mini-status-offline{background:#7f8c8d26;color:#7f8c8d}.trailer-mini-body{display:flex;align-items:center;gap:12px}.trailer-mini-stats{display:flex;flex-direction:column;gap:4px;font-size:13px;color:var(--text-secondary)}.trailer-mini-net{display:flex;align-items:center;gap:6px;margin-top:8px;font-size:12px;color:var(--text-muted)}.map-page{padding:0}.map-page .page-header{padding:20px 24px 0}.map-controls{display:flex;align-items:center;gap:12px;padding:12px 24px;flex-wrap:wrap}.map-status-filters{display:flex;gap:6px}.map-filter-btn{padding:6px 12px;border:1px solid rgba(255,255,255,.1);background:transparent;color:var(--text-muted);border-radius:20px;font-size:12px;font-weight:500;font-family:Inter,sans-serif;cursor:pointer;transition:all .2s;display:flex;align-items:center;gap:6px}.map-filter-btn:hover{border-color:#fff3;color:var(--text-primary)}.map-filter-btn.map-filter-active{background:#3498db26;border-color:#3498db4d;color:#3498db}.map-filter-count{background:#ffffff1a;padding:1px 6px;border-radius:10px;font-size:11px}.map-container{height:500px;margin:0 24px;border-radius:12px;overflow:hidden;border:1px solid rgba(255,255,255,.06)}.leaflet-popup-content-wrapper{background:var(--bg-card)!important;border-radius:10px!important;box-shadow:0 4px 20px #00000080!important;border:1px solid rgba(255,255,255,.08)!important}.leaflet-popup-content{color:var(--text-primary)!important;margin:12px 14px!important}.leaflet-popup-tip{background:var(--bg-card)!important}.map-popup-content h3{font-size:15px;font-weight:600;margin-bottom:10px;color:var(--text-primary)}.map-popup-stats{display:flex;flex-direction:column;gap:6px}.map-popup-stat{display:flex;justify-content:space-between;gap:16px}.map-popup-label{font-size:12px;color:var(--text-muted)}.map-popup-value{font-size:12px;font-weight:600;color:var(--text-primary)}.map-popup-status{font-size:12px;font-weight:600;text-transform:capitalize}.map-popup-status-healthy{color:#2ecc71}.map-popup-status-warning{color:#f1c40f}.map-popup-status-critical{color:#e74c3c}.map-popup-status-unknown{color:#7f8c8d}.map-popup-link{display:block;width:100%;margin-top:10px;padding:6px;background:#3498db26;border:1px solid rgba(52,152,219,.3);border-radius:6px;color:#3498db;font-size:12px;font-weight:600;font-family:Inter,sans-serif;cursor:pointer;text-align:center;transition:background .2s}.map-popup-link:hover{background:#3498db40}.map-site-list{padding:24px}.map-site-list h2{font-size:18px;font-weight:600;color:var(--text-primary);margin-bottom:12px}.map-site-table{background:var(--bg-card);border-radius:var(--radius);overflow:hidden;border:1px solid rgba(255,255,255,.04)}.map-site-table table{width:100%;border-collapse:collapse}.map-site-table th{text-align:left;padding:10px 14px;font-size:12px;font-weight:600;color:var(--text-muted);text-transform:uppercase;letter-spacing:.5px;border-bottom:1px solid rgba(255,255,255,.06)}.map-site-table td{padding:10px 14px;font-size:13px;color:var(--text-secondary);border-bottom:1px solid rgba(255,255,255,.03)}.map-site-row{cursor:pointer;transition:background .15s}.map-site-row:hover{background:#ffffff08}.map-site-name{font-weight:600;color:var(--text-primary)}.map-site-indent{padding-left:38px!important}.map-state-row{cursor:pointer;transition:background .15s;background:#ffffff05}.map-state-row:hover{background:#ffffff0d}.map-state-row td{border-bottom:1px solid rgba(255,255,255,.06)}.map-state-name{font-weight:700;color:var(--text-primary);font-size:13px;display:flex;align-items:center;gap:8px}.map-state-chevron{transition:transform .2s;flex-shrink:0;color:var(--text-secondary)}.map-state-chevron.expanded{transform:rotate(90deg)}.map-state-site-count{font-weight:400;font-size:11px;color:var(--text-secondary);margin-left:4px}.map-state-total{font-weight:600;color:var(--text-primary)}.deployment-kpi-section{margin-bottom:24px}.deployment-kpi-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}.deployment-kpi-label{font-size:12px;font-weight:600;text-transform:uppercase;letter-spacing:.5px;color:var(--text-secondary);margin:0}.hq-badge{display:inline-block;background:#9b59b633;color:#9b59b6;font-size:10px;font-weight:700;padding:1px 6px;border-radius:4px;margin-left:6px;text-transform:uppercase;letter-spacing:.5px;vertical-align:middle}.btn-hq-toggle{background:none;border:none;color:var(--text-muted);font-size:10px;cursor:pointer;padding:1px 4px;margin-left:4px;opacity:0;transition:opacity .15s}.jobsite-mgmt-row:hover .btn-hq-toggle,tr:hover .btn-hq-toggle{opacity:.6}.btn-hq-toggle:hover{opacity:1!important;color:#9b59b6}.deployment-status-badge{padding:2px 8px;border-radius:4px;font-size:11px;font-weight:600;text-transform:capitalize}.deployment-active{background:#2ecc7126;color:#2ecc71}.deployment-standby{background:#f1c40f26;color:#f1c40f}.deployment-completed{background:#7f8c8d26;color:#7f8c8d}.map-state-hq{background:#9b59b60a}.map-state-hq:hover{background:#9b59b614}.map-site-hq{opacity:.7}.jobsite-mgmt-date{min-width:110px}.date-input{background:var(--bg-tertiary);border:1px solid rgba(255,255,255,.08);color:var(--text-primary);font-size:11px;font-family:inherit;padding:3px 6px;border-radius:4px;width:110px;cursor:pointer}.date-input:hover{border-color:#ffffff26}.date-input:focus{outline:none;border-color:var(--accent)}.maint-tabs{display:flex;gap:4px;background:var(--bg-secondary);padding:3px;border-radius:var(--radius-sm)}.maint-tab{background:transparent;border:none;color:var(--text-muted);padding:6px 14px;font-size:13px;font-family:inherit;font-weight:500;cursor:pointer;border-radius:4px;transition:all .15s}.maint-tab:hover{color:var(--text-primary)}.maint-tab.active{background:var(--accent);color:#fff}.maint-groups{display:flex;flex-direction:column;gap:20px}.maint-group{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);overflow:hidden}.maint-group-header{display:flex;align-items:center;gap:10px;padding:12px 20px;border-bottom:1px solid var(--border)}.maint-group-header h3{font-size:.95rem;font-weight:600;margin:0;color:#ecf0f1}.maint-group-count{font-size:.8rem;color:var(--text-muted);background:#ffffff0f;padding:2px 8px;border-radius:10px}.maint-table{width:100%;border-collapse:collapse;font-size:13px}.maint-table th{text-align:left;padding:8px 14px;color:var(--text-muted);font-weight:600;font-size:11px;text-transform:uppercase;letter-spacing:.05em;border-bottom:1px solid rgba(255,255,255,.04)}.maint-table td{padding:10px 14px;border-bottom:1px solid rgba(255,255,255,.03)}.maint-row{cursor:pointer;transition:background .15s}.maint-row:hover{background:#ffffff08}.maint-title{font-weight:500;color:var(--text-primary)}.maint-date,.maint-trailer,.maint-tech{color:var(--text-muted)}.maint-cost{font-variant-numeric:tabular-nums;color:var(--text-secondary)}.maint-type-badge{display:inline-block;padding:2px 8px;border-radius:10px;font-size:11px;font-weight:500;background:#ffffff0f;color:var(--text-secondary)}.maint-status-badge{display:inline-block;padding:2px 10px;border-radius:12px;font-size:11px;font-weight:600}.maint-status-blue{background:#3498db26;color:#3498db}.maint-status-yellow{background:#f1c40f26;color:#f1c40f}.maint-status-green{background:#2ecc7126;color:#2ecc71}.maint-status-gray{background:#7f8c8d26;color:#95a5a6}.maint-actions{text-align:right}.maint-delete-btn{background:none;border:none;color:var(--text-muted);cursor:pointer;font-size:14px;padding:4px 8px;border-radius:4px;transition:all .15s}.maint-delete-btn:hover{background:#e74c3c26;color:#e74c3c}.maint-form-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0009;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:1000;display:flex;justify-content:center;align-items:flex-start;padding:40px 20px;overflow-y:auto}.maint-form-panel{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);width:100%;max-width:680px;padding:28px}.maint-form-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px}.maint-form-header h2{font-size:1.15rem;font-weight:600;margin:0;color:var(--text-primary)}.maint-form-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}.form-group{display:flex;flex-direction:column;gap:6px}.form-group-wide{grid-column:1 / -1}.form-group label{font-size:12px;font-weight:600;color:var(--text-muted);text-transform:uppercase;letter-spacing:.04em}.form-group input,.form-group select,.form-group textarea{background:var(--bg-secondary);border:1px solid rgba(255,255,255,.08);color:var(--text-primary);padding:8px 12px;border-radius:6px;font-size:13px;font-family:inherit;transition:border-color .15s}.form-group input:focus,.form-group select:focus,.form-group textarea:focus{outline:none;border-color:var(--accent)}.form-group textarea{resize:vertical;min-height:60px}.maint-parts-section{margin-top:20px;padding-top:16px;border-top:1px solid var(--border)}.maint-parts-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px}.maint-parts-header h4{margin:0;font-size:13px;color:var(--text-secondary)}.maint-part-row{display:flex;gap:8px;margin-bottom:8px;align-items:center}.maint-part-row input{background:var(--bg-secondary);border:1px solid rgba(255,255,255,.08);color:var(--text-primary);padding:6px 10px;border-radius:4px;font-size:13px;font-family:inherit;flex:1}.maint-part-row .part-qty{width:70px;flex:none}.maint-part-remove{background:none;border:none;color:var(--text-muted);cursor:pointer;font-size:14px;padding:4px}.maint-part-remove:hover{color:#e74c3c}.maint-form-total{display:flex;justify-content:flex-end;align-items:center;gap:12px;margin-top:16px;padding-top:12px;border-top:1px solid var(--border);font-size:14px;color:var(--text-secondary)}.maint-form-total strong{font-size:18px;color:var(--text-primary)}.maint-form-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:20px;padding-top:16px;border-top:1px solid var(--border)}@media(max-width:700px){.maint-form-grid{grid-template-columns:1fr}.maint-table{font-size:12px}.maint-table th:nth-child(4),.maint-table td:nth-child(4),.maint-table th:nth-child(5),.maint-table td:nth-child(5){display:none}}.analytics-controls{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:20px}.analytics-range-selector{display:flex;gap:4px;background:var(--bg-secondary);padding:3px;border-radius:var(--radius-sm)}.range-btn{background:transparent;border:none;color:var(--text-muted);padding:6px 16px;font-size:13px;font-family:inherit;font-weight:600;cursor:pointer;border-radius:4px;transition:all .15s}.range-btn:hover{color:var(--text-primary)}.range-btn.active{background:var(--accent);color:#fff}.analytics-actions{display:flex;align-items:center;gap:12px}.analytics-msg{font-size:12px;color:var(--text-muted)}.analytics-charts{display:grid;grid-template-columns:1fr 1fr;gap:20px;margin-bottom:28px}.analytics-chart-card{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);padding:20px}.analytics-chart-card h3{font-size:.95rem;font-weight:600;margin:0 0 16px;color:var(--text-primary)}.analytics-chart-container{height:280px;position:relative}.analytics-empty{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);padding:48px;text-align:center;margin-bottom:28px}.analytics-empty p{color:var(--text-muted);font-size:14px;margin:8px 0}.analytics-empty .text-muted{font-size:12px;opacity:.7}.analytics-rankings{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);padding:20px}.analytics-rankings h2{font-size:1rem;font-weight:600;margin:0 0 16px;color:var(--text-primary)}.rankings-table-wrapper{overflow-x:auto}.rankings-table{width:100%;border-collapse:collapse;font-size:13px}.rankings-table th{text-align:left;padding:8px 12px;color:var(--text-muted);font-weight:600;font-size:11px;text-transform:uppercase;letter-spacing:.05em;border-bottom:1px solid var(--border)}.rankings-table td{padding:10px 12px;border-bottom:1px solid rgba(255,255,255,.03);color:var(--text-secondary)}.rankings-row:hover{background:#ffffff05}.rank-num{font-weight:700;color:var(--text-muted);width:40px}.rank-name{font-weight:600;color:var(--text-primary)}.rank-good{color:#2ecc71}.rank-warn{color:#f1c40f}.rank-bad{color:#e74c3c}@media(max-width:900px){.analytics-charts{grid-template-columns:1fr}}@media(max-width:700px){.analytics-controls{flex-direction:column;align-items:flex-start}.rankings-table th:nth-child(n+6),.rankings-table td:nth-child(n+6){display:none}}.detail-section{margin-top:28px}.detail-section-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px}.detail-section-header h2{font-size:18px;font-weight:600;color:var(--text-primary)}.components-table{width:100%;border-collapse:collapse;font-size:14px}.components-table th{padding:10px 14px;text-align:left;font-weight:600;color:var(--text-muted);font-size:12px;text-transform:uppercase;letter-spacing:.05em;border-bottom:2px solid rgba(255,255,255,.08)}.components-table td{padding:12px 14px;color:var(--text-primary);border-bottom:1px solid rgba(255,255,255,.04)}.component-row:hover{background:#ffffff05}.component-type-badge{display:inline-block;padding:3px 10px;border-radius:4px;font-size:12px;font-weight:600;background:#3498db26;color:#3498db}.warranty-expired{color:#e74c3c;font-weight:600}.comp-status{display:inline-block;padding:3px 10px;border-radius:4px;font-size:12px;font-weight:600}.comp-status-active{background:#2ecc7126;color:#2ecc71}.comp-status-replaced{background:#f39c1226;color:#f39c12}.comp-status-failed{background:#e74c3c26;color:#e74c3c}.comparison-section{background:var(--bg-card);border-radius:var(--radius);padding:24px;margin-bottom:28px;border:1px solid rgba(255,255,255,.04)}.comparison-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px}.comparison-header h2{font-size:18px;font-weight:600;color:var(--text-primary)}.comparison-hint{font-size:13px;color:var(--text-muted)}.comparison-site-selector{display:flex;flex-wrap:wrap;gap:10px;margin-bottom:20px}.comparison-chip{display:flex;align-items:center;gap:8px;padding:7px 14px;background:var(--bg-secondary);border:1px solid rgba(255,255,255,.08);border-radius:6px;cursor:pointer;transition:all .15s;font-size:13px;color:var(--text-secondary)}.comparison-chip:hover{border-color:var(--accent)}.comparison-chip.selected{border-color:var(--accent);background:#3498db1f;color:var(--text-primary);font-weight:600}.comparison-chip.disabled{opacity:.4;cursor:not-allowed}.comparison-charts{display:grid;grid-template-columns:repeat(2,1fr);gap:20px;margin-top:20px}@media(max-width:900px){.comparison-charts{grid-template-columns:1fr}}.maint-cost-section{margin:28px 0}.maint-cost-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px}.maint-cost-header h2{font-size:18px;font-weight:600;color:var(--text-primary)}.toast-container{position:fixed;bottom:24px;right:24px;z-index:9999;display:flex;flex-direction:column-reverse;gap:8px;pointer-events:none}.toast{display:flex;align-items:center;gap:10px;padding:12px 20px;border-radius:10px;color:#fff;font-size:14px;font-weight:500;cursor:pointer;pointer-events:auto;animation:toast-slide-in .3s ease-out;box-shadow:0 4px 20px #0000004d;min-width:260px;max-width:420px}.toast-success{background:linear-gradient(135deg,#27ae60,#2ecc71)}.toast-error{background:linear-gradient(135deg,#c0392b,#e74c3c)}.toast-info{background:linear-gradient(135deg,#2980b9,#3498db)}.toast-icon{font-size:18px;flex-shrink:0}.toast-message{flex:1}@keyframes toast-slide-in{0%{transform:translate(100%);opacity:0}to{transform:translate(0);opacity:1}}.data-freshness{display:flex;align-items:center;gap:6px;font-size:12px;color:var(--text-secondary, #7f8c8d);white-space:nowrap}.freshness-dot{width:8px;height:8px;border-radius:50%;background:#2ecc71;flex-shrink:0}.freshness-pulse .freshness-dot{animation:freshness-pulse-anim 1s ease-out}.freshness-text{font-family:Inter,sans-serif}@keyframes freshness-pulse-anim{0%{box-shadow:0 0 #2ecc7199}70%{box-shadow:0 0 0 8px #2ecc7100}to{box-shadow:0 0 #2ecc7100}}.page-header-row{display:flex;align-items:center;gap:16px}.page-header-row h1{margin:0}.nav-badge{background:#e74c3c;color:#fff;font-size:11px;font-weight:700;padding:2px 7px;border-radius:10px;margin-left:auto;line-height:1.3;min-width:18px;text-align:center}.breadcrumbs{display:flex;align-items:center;gap:0;font-size:13px;margin-bottom:4px}.breadcrumb-item{display:flex;align-items:center}.breadcrumb-sep{margin:0 8px;color:var(--text-secondary, #7f8c8d);font-size:16px}.breadcrumb-link{color:var(--accent, #3498db);text-decoration:none;font-weight:500}.breadcrumb-link:hover{text-decoration:underline}.breadcrumb-current{color:var(--text-secondary, #7f8c8d);font-weight:400}.yield-comparison{margin-top:10px;padding-top:10px;border-top:1px solid rgba(255,255,255,.06);position:relative}.yield-bar-row{display:flex;align-items:center;gap:8px;margin-bottom:5px}.yield-bar-label{font-size:11px;color:var(--text-secondary, #7f8c8d);width:36px;flex-shrink:0;text-align:right}.yield-bar-track{flex:1;height:10px;background:#ffffff0f;border-radius:5px;overflow:hidden}.yield-bar{height:100%;border-radius:5px;transition:width .5s ease}.yield-bar-today{background:linear-gradient(90deg,#2ecc71,#27ae60)}.yield-bar-yesterday{background:linear-gradient(90deg,#7f8c8d,#95a5a6)}.yield-diff-badge{position:absolute;top:8px;right:0;font-size:12px;font-weight:700;padding:2px 8px;border-radius:8px}.yield-up{color:#2ecc71;background:#2ecc711f}.yield-down{color:#e74c3c;background:#e74c3c1f}.alert-card{border-radius:10px;overflow:hidden;border:1px solid rgba(255,255,255,.08);margin-bottom:6px}.alert-card-warning{border-left:3px solid #f39c12}.alert-card-critical{border-left:3px solid #e74c3c}.alert-card-header{display:flex;align-items:center;gap:10px;padding:10px 14px;cursor:pointer;transition:background .15s}.alert-card-header:hover{background:#ffffff0a}.alert-severity-icon{font-weight:800;font-size:14px;width:24px;height:24px;display:flex;align-items:center;justify-content:center;border-radius:50%;flex-shrink:0}.alert-card-critical .alert-severity-icon{background:#e74c3c33;color:#e74c3c}.alert-card-warning .alert-severity-icon{background:#f39c1233;color:#f39c12}.alert-expand-icon{margin-left:auto;color:var(--text-secondary, #7f8c8d);font-size:12px}.alert-deficit-detail{padding:0 14px 12px}.alert-deficit-table{width:100%;border-collapse:collapse;font-size:12px}.alert-deficit-table th{text-align:left;color:var(--text-secondary, #7f8c8d);font-weight:600;padding:4px 8px;border-bottom:1px solid rgba(255,255,255,.08)}.alert-deficit-table td{padding:4px 8px;border-bottom:1px solid rgba(255,255,255,.04)}.alert-deficit-table .positive{color:#2ecc71}.alert-deficit-table .negative{color:#e74c3c}.page-header-actions{display:flex;align-items:center;gap:12px;margin-left:auto}.page-header-actions .btn-ghost{display:flex;align-items:center;gap:6px;font-size:13px;padding:5px 10px;border-radius:6px;background:#ffffff0f;color:var(--text-secondary, #7f8c8d);border:1px solid rgba(255,255,255,.1);cursor:pointer;transition:all .2s}.page-header-actions .btn-ghost:hover{background:#ffffff1f;color:var(--text-primary, #ecf0f1)}.freshness-refresh-btn{background:none;border:none;color:var(--text-secondary, #7f8c8d);cursor:pointer;padding:2px;border-radius:4px;display:flex;align-items:center;transition:all .2s}.freshness-refresh-btn:hover{color:#2ecc71;background:#2ecc711a}.freshness-refresh-btn.spinning svg{animation:spin .8s linear infinite}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.error-boundary{display:flex;align-items:center;justify-content:center;min-height:60vh;padding:2rem}.error-boundary-content{text-align:center;max-width:400px}.error-boundary-content h2{margin:1rem 0 .5rem;color:#e74c3c}.error-boundary-content p{color:var(--text-secondary, #7f8c8d);margin-bottom:1.5rem}.not-found-page{display:flex;align-items:center;justify-content:center;min-height:60vh;padding:2rem}.not-found-content{text-align:center}.not-found-content h1{font-size:4rem;color:var(--text-secondary, #7f8c8d);margin:0;opacity:.5}.not-found-content p{color:var(--text-secondary, #7f8c8d);margin:.5rem 0 1.5rem;font-size:1.1rem}.battery-health-card{display:flex;align-items:center;gap:2rem;padding:1rem;background:#ffffff08;border-radius:8px;border:1px solid rgba(255,255,255,.06)}.battery-health-indicator{display:flex;flex-direction:column;gap:6px}.battery-trend-badge{display:inline-flex;align-items:center;gap:4px;font-size:14px;font-weight:600;padding:4px 10px;border-radius:6px;width:fit-content}.trend-stable{background:#3498db26;color:#3498db}.trend-improving{background:#2ecc7126;color:#2ecc71}.trend-declining{background:#e74c3c26;color:#e74c3c}.battery-health-detail{font-size:13px;color:var(--text-secondary, #7f8c8d)}.battery-critical-warning{font-size:12px;color:#e74c3c;font-weight:500}.battery-health-sparkline{flex:1;min-width:0;display:flex;flex-direction:column;gap:4px}.sparkline-svg{width:100%;height:40px}.sparkline-label{font-size:11px;color:var(--text-secondary, #7f8c8d);text-align:center}.alert-resolved td{opacity:.6}.alert-active td{font-weight:500}.alert-active-badge{display:inline-block;background:#e74c3c26;color:#e74c3c;padding:2px 8px;border-radius:4px;font-size:12px;font-weight:600}.offline-duration{font-size:11px;opacity:.8}.section-header-row{display:flex;align-items:center;justify-content:space-between;margin-bottom:1rem}.section-header-row h2{margin:0}.maintenance-type-badge{display:inline-block;padding:2px 8px;border-radius:4px;font-size:12px;background:#3498db26;color:#3498db;text-transform:capitalize}.maintenance-status-badge{display:inline-block;padding:2px 8px;border-radius:4px;font-size:12px;text-transform:capitalize}.maintenance-status-badge.status-scheduled{background:#f1c40f26;color:#f1c40f}.maintenance-status-badge.status-in_progress{background:#3498db26;color:#3498db}.maintenance-status-badge.status-completed{background:#2ecc7126;color:#2ecc71}.maintenance-status-badge.status-cancelled{background:#95a5a626;color:#95a5a6}.analytics-intelligence{background:var(--card-bg, #1e272e);border-radius:12px;padding:24px;margin-bottom:24px;border:1px solid rgba(255,255,255,.06)}.analytics-intel-header{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:20px;flex-wrap:wrap}.analytics-intel-header h2{margin:0}.intel-table-controls{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:14px;flex-wrap:wrap}.intel-table-count{font-size:13px;color:var(--text-secondary, #7f8c8d)}.intel-sort-btns{display:flex;align-items:center;gap:6px}.intel-sort-label{font-size:12px;color:var(--text-secondary, #7f8c8d);margin-right:2px}.intel-table-wrapper{overflow-x:auto;-webkit-overflow-scrolling:touch}.intel-table{width:100%;border-collapse:collapse;font-size:13px;min-width:900px}.intel-table thead th{text-align:left;padding:10px 12px;font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.5px;color:var(--text-secondary, #7f8c8d);border-bottom:1px solid rgba(255,255,255,.08);white-space:nowrap;-webkit-user-select:none;user-select:none}.intel-th-sortable{cursor:pointer;transition:color .15s}.intel-th-sortable:hover{color:#ecf0f1}.intel-sort-arrow{font-size:10px;color:#3498db}.intel-table-row td{padding:10px 12px;border-bottom:1px solid rgba(255,255,255,.04);white-space:nowrap;vertical-align:middle}.intel-table-row:hover{background:#ffffff08}.intel-table-name a{color:#3498db;text-decoration:none;font-weight:500}.intel-table-name a:hover{text-decoration:underline}.intel-table-sub{display:inline-block;font-size:11px;color:var(--text-muted, #95a5a6);margin-left:6px}.detail-section-header{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:16px;flex-wrap:wrap}.detail-section-header h2{margin-bottom:0}.intel-specs-badge{font-size:12px;color:var(--text-secondary, #7f8c8d);background:#ffffff0d;padding:4px 10px;border-radius:4px;font-weight:500;white-space:nowrap}.intel-metrics-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:14px;margin-bottom:16px}.intel-metric-card{background:#ffffff08;border-radius:8px;padding:16px;border:1px solid rgba(255,255,255,.06)}.intel-metric-header{display:flex;align-items:center;gap:8px;margin-bottom:8px}.intel-metric-title{font-size:13px;color:var(--text-secondary, #7f8c8d);font-weight:500}.intel-metric-value{font-size:28px;font-weight:700;color:var(--text-primary, #ecf0f1);line-height:1.1}.intel-metric-value.intel-critical{color:#e74c3c}.intel-metric-value.intel-warning{color:#f39c12}.intel-metric-value.intel-good{color:#2ecc71}.intel-metric-unit{font-size:14px;font-weight:500;margin-left:4px;color:var(--text-secondary, #7f8c8d)}.intel-metric-detail{font-size:12px;color:var(--text-secondary, #7f8c8d);margin-top:4px}.intel-metric-secondary{font-size:12px;color:var(--text-muted, #95a5a6);margin-top:2px}.intel-score-badge{display:inline-block;padding:2px 8px;border-radius:4px;font-size:11px;font-weight:600}.intel-score-badge.score-excellent{background:#2ecc7126;color:#2ecc71}.intel-score-badge.score-good{background:#3498db26;color:#3498db}.intel-score-badge.score-fair{background:#f39c1226;color:#f39c12}.intel-score-badge.score-poor{background:#e74c3c26;color:#e74c3c}.intel-weather-context{font-size:12px;color:var(--text-secondary, #7f8c8d);padding:8px 12px;background:#ffffff05;border-radius:6px;margin-bottom:16px;display:flex;align-items:center;gap:6px;flex-wrap:wrap}.intel-source-tag{display:inline-block;background:#3498db1f;color:#3498db;padding:1px 6px;border-radius:3px;font-size:11px;margin-left:4px}.intel-energy-balance{background:#ffffff08;border-radius:8px;padding:14px 16px;border:1px solid rgba(255,255,255,.06);margin-bottom:16px}.intel-balance-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:10px;font-size:13px;font-weight:500}.intel-balance-header .positive{color:#2ecc71}.intel-balance-header .negative{color:#e74c3c}.intel-bar-row{display:flex;align-items:center;gap:10px;margin-bottom:6px}.intel-bar-label{width:38px;font-size:12px;color:var(--text-secondary, #7f8c8d)}.intel-bar-track{flex:1;height:10px;background:#ffffff0f;border-radius:5px;overflow:hidden}.intel-bar{height:100%;border-radius:5px;transition:width .5s ease}.intel-bar-yield{background:#2ecc71}.intel-bar-consumed{background:#e74c3c}.intel-bar-value{width:55px;text-align:right;font-size:12px;color:var(--text-secondary, #7f8c8d);font-variant-numeric:tabular-nums}.intel-analysis-section{margin-top:16px}.intel-analyze-btn{display:inline-flex;align-items:center;gap:6px}.intel-analysis-error{margin-top:8px;color:#e74c3c;font-size:13px}.intel-analysis-result{margin-top:16px;background:#3498db14;border:1px solid rgba(52,152,219,.2);border-radius:8px;padding:16px}.intel-analysis-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px;font-weight:600;font-size:14px;color:#3498db}.intel-analysis-time{font-size:12px;font-weight:400;color:var(--text-secondary, #7f8c8d)}.intel-analysis-text{font-size:13px;line-height:1.6;color:var(--text-primary, #ecf0f1);white-space:pre-wrap;font-family:inherit;margin:0;background:none;border:none;padding:0}.login-page{display:flex;align-items:center;justify-content:center;min-height:100vh;background:var(--bg-primary);padding:20px}.login-card{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);padding:40px 36px;width:100%;max-width:400px;display:flex;flex-direction:column;gap:20px}.login-brand{text-align:center;margin-bottom:8px}.login-logo{font-size:32px;font-weight:800;color:var(--accent);letter-spacing:2px;display:flex;align-items:center;justify-content:center}.login-logo-row{display:flex;align-items:center;justify-content:center;gap:12px;margin-bottom:8px}.login-logo-img{height:48px;width:auto;object-fit:contain}.login-omni{font-size:28px;font-weight:700;color:var(--text-primary);letter-spacing:.08em}.login-title{font-size:20px;font-weight:600;color:var(--text-primary);margin:4px 0 0}.login-subtitle{font-size:13px;color:var(--text-muted);margin:4px 0 0}.login-error{background:#e74c3c26;color:#e74c3c;padding:10px 14px;border-radius:var(--radius-sm);font-size:13px;text-align:center}.login-expired{background:#f39c1226;color:#f39c12;padding:10px 14px;border-radius:var(--radius-sm);font-size:13px;text-align:center}.login-btn{width:100%;padding:12px;font-size:15px;margin-top:4px}.google-signin-wrapper{display:flex;justify-content:center;margin:4px 0 0}.login-divider{display:flex;align-items:center;gap:12px;margin:16px 0 8px;color:#6b7280;font-size:12px;text-transform:uppercase;letter-spacing:.5px}.login-divider:before,.login-divider:after{content:"";flex:1;height:1px;background:#374151}.sidebar-user{display:flex;align-items:center;justify-content:space-between;padding:10px 16px;margin-bottom:8px;background:#ffffff08;border-radius:var(--radius-sm)}.sidebar-user-info{display:flex;flex-direction:column;gap:3px;min-width:0}.sidebar-user-name{font-size:13px;font-weight:600;color:var(--text-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.role-badge{display:inline-block;padding:2px 8px;border-radius:10px;font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.04em;width:fit-content}.role-badge-admin{background:#e74c3c33;color:#e74c3c}.role-badge-technician{background:#3498db33;color:#3498db}.role-badge-viewer{background:#7f8c8d33;color:#95a5a6}.sso-badge{display:inline-flex;align-items:center;justify-content:center;width:18px;height:18px;border-radius:50%;background:#4285f433;color:#4285f4;font-size:10px;font-weight:700;margin-left:6px;vertical-align:middle}.sidebar-logout{background:none;border:none;color:var(--text-muted);cursor:pointer;padding:6px;border-radius:var(--radius-sm);transition:all var(--transition);display:flex;align-items:center}.sidebar-logout:hover{color:var(--danger);background:#e74c3c1a}.action-queue{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);padding:20px 24px;margin-bottom:28px}.action-queue-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px}.action-queue-header h3{font-size:14px;font-weight:600;color:var(--text-primary);margin:0}.action-queue-summary{font-size:12px;color:var(--text-muted);display:flex;align-items:center;gap:14px;flex-shrink:0}.action-queue-summary .aq-critical{color:var(--danger)}.action-queue-summary .aq-warning{color:var(--warning)}.action-queue-list{display:flex;flex-direction:column;gap:8px}.action-queue-item{display:flex;align-items:center;gap:12px;padding:10px 12px;background:var(--bg-secondary);border-radius:var(--radius-sm);transition:all var(--transition)}.action-queue-item:hover{background:var(--bg-card-hover)}.action-queue-item-acked{opacity:.45}.priority-badge{width:26px;height:26px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:11px;font-weight:700;color:#fff;flex-shrink:0}.priority-badge-critical{background:var(--danger)}.priority-badge-warning{background:var(--warning);color:#1a1d23}.priority-badge-info{background:var(--kpi-blue)}.action-queue-content{flex:1;min-width:0}.action-queue-title{font-size:13px;font-weight:500;color:var(--text-primary)}.action-queue-subtitle{font-size:11px;color:var(--text-muted)}.action-category-tag{font-size:10px;padding:2px 8px;border-radius:8px;text-transform:uppercase;font-weight:600;flex-shrink:0}.action-category-energy{background:#f1c40f26;color:#f1c40f}.action-category-intelligence{background:#3498db26;color:#3498db}.action-category-maintenance{background:#2ecc7126;color:#2ecc71}.action-ack-btn{background:none;border:1px solid rgba(255,255,255,.1);color:var(--text-muted);width:28px;height:28px;border-radius:50%;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all var(--transition);flex-shrink:0}.action-ack-btn:hover{border-color:var(--success);color:var(--success);background:#2ecc711a}.action-queue-empty{text-align:center;padding:20px;color:var(--text-muted);font-size:13px}.action-queue-toggle{background:none;border:none;color:var(--accent);font-size:12px;cursor:pointer;padding:4px 8px}.health-grade{font-weight:700;font-size:14px}.health-grade-badge{display:inline-flex;align-items:center;justify-content:center;width:24px;height:24px;border-radius:50%;font-size:12px;font-weight:700;border:2px solid}.health-grade-a{color:#27ae60;border-color:#27ae60}.health-grade-b{color:#16a085;border-color:#16a085}.health-grade-c{color:#d4a017;border-color:#d4a017}.health-grade-d{color:#f39c12;border-color:#f39c12}.health-grade-f{color:#c0392b;border-color:#c0392b}.users-section{margin-bottom:24px}.users-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}.users-table{width:100%;border-collapse:collapse;font-size:13px}.users-table th{color:var(--text-muted);padding:10px 8px;text-align:left;font-weight:500;font-size:11px;text-transform:uppercase;letter-spacing:.04em;border-bottom:1px solid rgba(255,255,255,.06)}.users-table td{padding:10px 8px;border-bottom:1px solid rgba(255,255,255,.03);color:var(--text-primary)}.users-table select{background:var(--bg-secondary);border:1px solid rgba(255,255,255,.08);color:var(--text-primary);padding:4px 8px;border-radius:var(--radius-sm);font-size:12px}.user-actions{display:flex;gap:6px}.btn-sm{padding:5px 12px;font-size:12px}.btn-success{background:var(--success);color:#fff;border:none;cursor:pointer;border-radius:var(--radius-sm)}.btn-success:hover:not(:disabled){background:#27ae60}.btn-danger{background:transparent;color:var(--danger);border:1px solid rgba(231,76,60,.3);cursor:pointer;border-radius:var(--radius-sm)}.btn-danger:hover:not(:disabled){background:#e74c3c1a}.checklist-panel{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);width:100%;max-width:560px;padding:24px;max-height:80vh;display:flex;flex-direction:column}.checklist-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px}.checklist-header h3{font-size:16px;font-weight:600;color:var(--text-primary);margin:0}.checklist-items{flex:1;overflow-y:auto;display:flex;flex-direction:column;gap:8px;margin-bottom:16px}.checklist-item{padding:10px 12px;background:var(--bg-secondary);border-radius:var(--radius-sm);border-left:3px solid rgba(255,255,255,.06);transition:all var(--transition)}.checklist-item-done{border-left-color:var(--success);opacity:.7}.checklist-label{display:flex;align-items:center;gap:10px;cursor:pointer;margin-bottom:6px}.checklist-label input[type=checkbox]{width:16px;height:16px;accent-color:var(--success);cursor:pointer}.checklist-text{font-size:13px;color:var(--text-primary)}.checklist-required{color:var(--danger);margin-left:2px}.checklist-note{width:100%;background:var(--bg-primary);border:1px solid rgba(255,255,255,.06);color:var(--text-secondary);padding:6px 10px;border-radius:var(--radius-sm);font-size:12px;font-family:inherit;margin-left:26px;width:calc(100% - 26px)}.checklist-note:focus{outline:none;border-color:var(--accent)}.checklist-footer{display:flex;align-items:center;justify-content:space-between;border-top:1px solid rgba(255,255,255,.06);padding-top:12px}.checklist-progress{font-size:12px;color:var(--text-muted)}.checklist-actions{display:flex;gap:8px}.cal-container{margin-top:16px}.cal-nav{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}.cal-nav-label{font-size:16px;font-weight:600;color:var(--text-primary)}.cal-nav-btns{display:flex;gap:4px}.cal-nav-btn{background:var(--bg-secondary);border:1px solid rgba(255,255,255,.08);color:var(--text-secondary);padding:6px 12px;border-radius:var(--radius-sm);cursor:pointer;font-size:13px;transition:all var(--transition)}.cal-nav-btn:hover{background:var(--bg-card-hover);color:var(--text-primary)}.cal-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:1px;background:#ffffff0a;border-radius:var(--radius);overflow:hidden}.cal-header-cell{background:var(--bg-secondary);padding:8px;text-align:center;font-size:11px;font-weight:600;color:var(--text-muted);text-transform:uppercase}.cal-day{background:var(--bg-card);min-height:70px;padding:6px 8px;cursor:pointer;transition:background var(--transition);position:relative}.cal-day:hover{background:var(--bg-card-hover)}.cal-day-outside{opacity:.3}.cal-day-today{border:1px solid var(--accent)}.cal-day-selected{background:#3498db1a}.cal-day-num{font-size:12px;font-weight:500;color:var(--text-secondary);margin-bottom:4px}.cal-dots{display:flex;flex-wrap:wrap;gap:3px}.cal-dot{width:7px;height:7px;border-radius:50%}.cal-dot-red{background:var(--danger)}.cal-dot-yellow{background:var(--warning)}.cal-dot-green{background:var(--success)}.cal-dot-teal{background:var(--kpi-teal)}.cal-day-items{margin-top:16px;background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);padding:16px}.cal-day-items h4{font-size:14px;font-weight:600;color:var(--text-primary);margin:0 0 12px}.maint-calendar-section{margin-top:16px}.cal-header{background:var(--bg-secondary);padding:8px;text-align:center;font-size:11px;font-weight:600;color:var(--text-muted);text-transform:uppercase}.cal-day-blank{background:var(--bg-card);opacity:.25;cursor:default}.cal-day-dots{display:flex;flex-wrap:wrap;gap:3px}.cal-day-dot{width:7px;height:7px;border-radius:50%}.cal-day-more{font-size:9px;color:var(--text-muted);line-height:7px}.cal-day-detail{margin-top:16px;background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);padding:16px}.cal-day-detail h3{font-size:14px;font-weight:600;color:var(--text-primary);margin:0 0 12px;display:flex;align-items:center;gap:10px}.work-section{margin-bottom:24px}.work-section-title{font-size:14px;font-weight:600;color:var(--text-primary);margin:0 0 12px;padding-left:12px;border-left:3px solid var(--text-muted)}.work-section-red{border-left-color:var(--danger)}.work-section-yellow{border-left-color:var(--warning)}.work-section-blue{border-left-color:var(--accent)}.work-cards-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:12px}.work-card{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);padding:16px;transition:all var(--transition)}.work-card:hover{background:var(--bg-card-hover);transform:translateY(-1px)}.work-card-header{display:flex;align-items:center;gap:8px;margin-bottom:8px}.work-overdue-tag{font-size:10px;font-weight:700;color:var(--danger);background:#e74c3c26;padding:2px 6px;border-radius:4px;text-transform:uppercase}.work-card-title{font-size:14px;font-weight:600;color:var(--text-primary);margin:0 0 6px}.work-card-meta{display:flex;gap:12px;font-size:12px;color:var(--text-muted);margin-bottom:8px}.work-card-desc{font-size:12px;color:var(--text-secondary);line-height:1.4;margin:0 0 12px}.work-card-actions{display:flex;gap:8px}.work-empty{text-align:center;padding:60px 20px;color:var(--text-muted)}.work-empty p{margin:4px 0}.report-overlay{z-index:1100}.report-panel{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);width:100%;max-width:800px;padding:28px;max-height:90vh;overflow-y:auto}.report-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:20px;padding-bottom:12px;border-bottom:1px solid rgba(255,255,255,.06)}.report-header h2{font-size:18px;font-weight:600;color:var(--text-primary);margin:0}.report-actions{display:flex;gap:8px}.report-meta{display:flex;gap:16px;font-size:12px;color:var(--text-muted);margin-bottom:20px}.report-content{display:flex;flex-direction:column;gap:20px}.report-section{border:1px solid rgba(255,255,255,.04);border-radius:var(--radius-sm);padding:16px}.report-section h3{font-size:14px;font-weight:600;color:var(--text-primary);margin:0 0 12px}.report-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:8px;font-size:13px;color:var(--text-secondary)}.report-grid strong{color:var(--text-muted);font-weight:500}.report-table{width:100%;border-collapse:collapse;font-size:12px}.report-table th{color:var(--text-muted);padding:8px 6px;text-align:left;font-weight:500;font-size:11px;text-transform:uppercase;border-bottom:1px solid rgba(255,255,255,.06)}.report-table td{padding:6px;border-bottom:1px solid rgba(255,255,255,.03);color:var(--text-secondary)}.report-alert{display:flex;align-items:center;gap:10px;padding:8px 0}.maint-status-red{background:#e74c3c33;color:#e74c3c}.template-selector{margin-bottom:16px;padding-bottom:16px;border-bottom:1px solid rgba(255,255,255,.06)}.template-selector label{font-size:12px;font-weight:600;color:var(--text-muted);text-transform:uppercase;letter-spacing:.04em;margin-bottom:6px;display:block}.template-selector select{background:var(--bg-secondary);border:1px solid rgba(255,255,255,.08);color:var(--text-primary);padding:10px 12px;border-radius:var(--radius-sm);font-family:inherit;width:100%;font-size:13px}@media print{.sidebar,.nav-item,.report-actions,.no-print,.sidebar-footer,.action-ack-btn{display:none!important}.main-content{margin-left:0!important;padding:0!important}.report-panel{max-width:100%;border:none;box-shadow:none;max-height:none}.maint-form-overlay,.report-overlay{position:static;background:none;-webkit-backdrop-filter:none;backdrop-filter:none;padding:0}body{background:#fff;color:#000}.report-section{border-color:#ddd}.report-table th,.report-table td{color:#333;border-color:#ddd}}.action-queue-header h2{font-size:16px;font-weight:600;color:var(--text-primary);display:flex;align-items:center;margin:0}.action-queue-category{font-size:13px;color:var(--text-muted);white-space:nowrap;min-width:90px}.action-queue-text{flex:1;display:flex;flex-direction:column;gap:2px;min-width:0}.action-queue-title,.action-queue-subtitle{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.fleet-details-page{padding:0}.fleet-details-page .page-header{padding:24px 24px 0}.fleet-details-tabs{display:flex;gap:0;padding:16px 24px 0;border-bottom:2px solid var(--border)}.fleet-tab{display:flex;align-items:center;gap:8px;padding:10px 20px;background:none;border:none;color:var(--text-secondary);font-size:14px;font-weight:500;cursor:pointer;border-bottom:2px solid transparent;margin-bottom:-2px;transition:color .2s,border-color .2s}.fleet-tab:hover{color:var(--text-primary)}.fleet-tab.active{color:var(--accent);border-bottom-color:var(--accent)}.fleet-tab svg{opacity:.7}.fleet-tab.active svg{opacity:1}.fleet-tab-badge{background:var(--danger);color:#fff;font-size:11px;font-weight:700;padding:1px 6px;border-radius:10px;min-width:18px;text-align:center}.fleet-details-content{padding:0}.fleet-details-content .energy-page,.fleet-details-content .network-page,.fleet-details-content .analytics-page{padding:0 24px 24px}.embedded-actions{display:flex;align-items:center;gap:12px;padding:16px 0}.maint-tab-badge{background:var(--danger);color:#fff;font-size:10px;font-weight:700;padding:1px 5px;border-radius:8px;margin-left:6px;min-width:16px;text-align:center}.my-tasks-section{margin-top:16px}.action-queue-summary .priority-badge{width:auto;border-radius:12px;min-width:unset;height:22px;padding:0 10px;font-size:12px;font-weight:600;white-space:nowrap}.action-ack-done{display:flex;align-items:center;justify-content:center;width:28px;height:28px;color:var(--success);flex-shrink:0;opacity:.6}[data-theme=light] input,[data-theme=light] select,[data-theme=light] textarea{background:#f0f2f5;border-color:#00000026;color:var(--text-primary)}[data-theme=light] .settings-card,[data-theme=light] .kpi-card,[data-theme=light] .trailer-card,[data-theme=light] .jobsite-card{border-color:#0000000f;box-shadow:0 1px 3px #0000000f}[data-theme=light] .maint-table th{background:#e8eaed;color:var(--text-primary)}[data-theme=light] .maint-table td{border-bottom-color:#0000000f}[data-theme=light] .btn-ghost{color:var(--text-secondary)}[data-theme=light] .login-page{background:#e8eaed}[data-theme=light] .theme-toggle{color:var(--text-muted)}.theme-toggle{background:none;border:none;color:var(--text-muted);cursor:pointer;padding:6px;border-radius:var(--radius-sm);transition:all var(--transition);display:flex;align-items:center}.theme-toggle:hover{color:var(--text-primary)}.mobile-header{display:none;align-items:center;gap:12px;padding:10px 16px;background:var(--sidebar-bg);border-bottom:1px solid rgba(255,255,255,.06);position:sticky;top:0;z-index:201}.mobile-hamburger{background:none;border:none;color:var(--text-primary);cursor:pointer;padding:6px;border-radius:var(--radius-sm);display:flex;align-items:center;min-width:44px;min-height:44px;justify-content:center}.mobile-hamburger:hover{background:#ffffff0f}.mobile-brand{display:flex;align-items:center;gap:8px}.mobile-logo{height:24px;width:auto}.sidebar-overlay{display:none;position:fixed;top:0;right:0;bottom:0;left:0;background:#00000080;z-index:199}@media(max-width:768px){.mobile-header{display:flex}.sidebar{position:fixed;left:-260px;transition:left .3s ease;z-index:200;width:var(--sidebar-width)}.sidebar.sidebar-open{left:0}.sidebar-overlay.visible{display:block}.main-content{margin-left:0;padding:16px}.page-header{flex-direction:column;align-items:flex-start;gap:8px}.page-header h1{font-size:1.4rem}.kpi-row{grid-template-columns:1fr 1fr!important;gap:8px}.kpi-card{padding:14px 12px}.kpi-value{font-size:1.4rem}.site-grid,.fleet-grid,.settings-grid{grid-template-columns:1fr!important}.settings-card-wide{grid-column:span 1!important}.jobsite-mgmt-table-wrapper,.maint-table-wrapper{overflow-x:auto;-webkit-overflow-scrolling:touch}.btn{min-height:44px;min-width:44px;padding:10px 16px}.btn-sm{min-height:36px;min-width:36px;padding:6px 12px}.nav-item{min-height:44px;padding:12px 16px}.filter-controls{flex-wrap:wrap;gap:6px}.filter-btn,.view-toggle button{min-height:38px;padding:6px 12px;font-size:12px}.action-queue-panel{width:100%;right:0;max-width:100%}.report-panel{width:100%;max-width:100%;margin:0;border-radius:0;height:100vh}.report-grid{grid-template-columns:1fr!important}.map-view.map-fullscreen .map-container{position:fixed;top:0;right:0;bottom:0;left:0;z-index:150;height:100vh!important}.map-view.map-fullscreen .map-controls{position:fixed;top:10px;right:10px;z-index:151}.chart-container{height:200px!important}.maint-form-panel{width:100%;max-width:100%;margin:0;border-radius:0;max-height:100vh}.maint-form-grid{grid-template-columns:1fr!important}.data-freshness{font-size:11px}.breadcrumbs{font-size:12px}.portal-sidebar{width:200px}}@media(max-width:480px){.kpi-row{grid-template-columns:1fr!important}.main-content{padding:12px}.page-header h1{font-size:1.2rem}.site-card{padding:12px}.site-card-stats{grid-template-columns:1fr 1fr;gap:6px}}.map-fullscreen-btn{background:var(--bg-card);border:1px solid var(--border);color:var(--text-primary);padding:8px;border-radius:var(--radius-sm);cursor:pointer;display:flex;align-items:center;justify-content:center;min-width:36px;min-height:36px}.map-fullscreen-btn:hover{background:var(--bg-card-hover)}.role-badge-customer{background:#9b59b626;color:#9b59b6}.intel-predictive-alert{padding:10px 14px;border-radius:var(--radius-sm);font-size:.85rem;margin-bottom:12px}.intel-predictive-warning{background:#f39c121f;border-left:3px solid var(--warning);color:var(--warning)}.intel-predictive-critical{background:#e74c3c1f;border-left:3px solid var(--danger);color:var(--danger)}.intel-forecast-section{margin-top:12px;padding-top:12px;border-top:1px solid var(--border)}
