.leaflet-pane,.leaflet-tile,.leaflet-marker-icon,.leaflet-marker-shadow,.leaflet-tile-container,.leaflet-pane>svg,.leaflet-pane>canvas,.leaflet-zoom-box,.leaflet-image-layer,.leaflet-layer{position:absolute;left:0;top:0}.leaflet-container{overflow:hidden}.leaflet-tile,.leaflet-marker-icon,.leaflet-marker-shadow{-webkit-user-select:none;-moz-user-select:none;user-select:none;-webkit-user-drag:none}.leaflet-tile::selection{background:transparent}.leaflet-safari .leaflet-tile{image-rendering:-webkit-optimize-contrast}.leaflet-safari .leaflet-tile-container{width:1600px;height:1600px;-webkit-transform-origin:0 0}.leaflet-marker-icon,.leaflet-marker-shadow{display:block}.leaflet-container .leaflet-overlay-pane svg{max-width:none!important;max-height:none!important}.leaflet-container .leaflet-marker-pane img,.leaflet-container .leaflet-shadow-pane img,.leaflet-container .leaflet-tile-pane img,.leaflet-container img.leaflet-image-layer,.leaflet-container .leaflet-tile{max-width:none!important;max-height:none!important;width:auto;padding:0}.leaflet-container img.leaflet-tile{mix-blend-mode:plus-lighter}.leaflet-container.leaflet-touch-zoom{-ms-touch-action:pan-x pan-y;touch-action:pan-x pan-y}.leaflet-container.leaflet-touch-drag{-ms-touch-action:pinch-zoom;touch-action:none;touch-action:pinch-zoom}.leaflet-container.leaflet-touch-drag.leaflet-touch-zoom{-ms-touch-action:none;touch-action:none}.leaflet-container{-webkit-tap-highlight-color:transparent}.leaflet-container a{-webkit-tap-highlight-color:rgba(51,181,229,.4)}.leaflet-tile{filter:inherit;visibility:hidden}.leaflet-tile-loaded{visibility:inherit}.leaflet-zoom-box{width:0;height:0;-moz-box-sizing:border-box;box-sizing:border-box;z-index:800}.leaflet-overlay-pane svg{-moz-user-select:none}.leaflet-pane{z-index:400}.leaflet-tile-pane{z-index:200}.leaflet-overlay-pane{z-index:400}.leaflet-shadow-pane{z-index:500}.leaflet-marker-pane{z-index:600}.leaflet-tooltip-pane{z-index:650}.leaflet-popup-pane{z-index:700}.leaflet-map-pane canvas{z-index:100}.leaflet-map-pane svg{z-index:200}.leaflet-vml-shape{width:1px;height:1px}.lvml{behavior:url(#default#VML);display:inline-block;position:absolute}.leaflet-control{position:relative;z-index:800;pointer-events:visiblePainted;pointer-events:auto}.leaflet-top,.leaflet-bottom{position:absolute;z-index:1000;pointer-events:none}.leaflet-top{top:0}.leaflet-right{right:0}.leaflet-bottom{bottom:0}.leaflet-left{left:0}.leaflet-control{float:left;clear:both}.leaflet-right .leaflet-control{float:right}.leaflet-top .leaflet-control{margin-top:10px}.leaflet-bottom .leaflet-control{margin-bottom:10px}.leaflet-left .leaflet-control{margin-left:10px}.leaflet-right .leaflet-control{margin-right:10px}.leaflet-fade-anim .leaflet-popup{opacity:0;-webkit-transition:opacity .2s linear;-moz-transition:opacity .2s linear;transition:opacity .2s linear}.leaflet-fade-anim .leaflet-map-pane .leaflet-popup{opacity:1}.leaflet-zoom-animated{-webkit-transform-origin:0 0;-ms-transform-origin:0 0;transform-origin:0 0}svg.leaflet-zoom-animated{will-change:transform}.leaflet-zoom-anim .leaflet-zoom-animated{-webkit-transition:-webkit-transform .25s cubic-bezier(0,0,.25,1);-moz-transition:-moz-transform .25s cubic-bezier(0,0,.25,1);transition:transform .25s cubic-bezier(0,0,.25,1)}.leaflet-zoom-anim .leaflet-tile,.leaflet-pan-anim .leaflet-tile{-webkit-transition:none;-moz-transition:none;transition:none}.leaflet-zoom-anim .leaflet-zoom-hide{visibility:hidden}.leaflet-interactive{cursor:pointer}.leaflet-grab{cursor:-webkit-grab;cursor:-moz-grab;cursor:grab}.leaflet-crosshair,.leaflet-crosshair .leaflet-interactive{cursor:crosshair}.leaflet-popup-pane,.leaflet-control{cursor:auto}.leaflet-dragging .leaflet-grab,.leaflet-dragging .leaflet-grab .leaflet-interactive,.leaflet-dragging .leaflet-marker-draggable{cursor:move;cursor:-webkit-grabbing;cursor:-moz-grabbing;cursor:grabbing}.leaflet-marker-icon,.leaflet-marker-shadow,.leaflet-image-layer,.leaflet-pane>svg path,.leaflet-tile-container{pointer-events:none}.leaflet-marker-icon.leaflet-interactive,.leaflet-image-layer.leaflet-interactive,.leaflet-pane>svg path.leaflet-interactive,svg.leaflet-image-layer.leaflet-interactive path{pointer-events:visiblePainted;pointer-events:auto}.leaflet-container{background:#ddd;outline-offset:1px}.leaflet-container a{color:#0078a8}.leaflet-zoom-box{border:2px dotted #38f;background:#ffffff80}.leaflet-container{font-family:Helvetica Neue,Arial,Helvetica,sans-serif;font-size:12px;font-size:.75rem;line-height:1.5}.leaflet-bar{box-shadow:0 1px 5px #000000a6;border-radius:4px}.leaflet-bar a{background-color:#fff;border-bottom:1px solid #ccc;width:26px;height:26px;line-height:26px;display:block;text-align:center;text-decoration:none;color:#000}.leaflet-bar a,.leaflet-control-layers-toggle{background-position:50% 50%;background-repeat:no-repeat;display:block}.leaflet-bar a:hover,.leaflet-bar a:focus{background-color:#f4f4f4}.leaflet-bar a:first-child{border-top-left-radius:4px;border-top-right-radius:4px}.leaflet-bar a:last-child{border-bottom-left-radius:4px;border-bottom-right-radius:4px;border-bottom:none}.leaflet-bar a.leaflet-disabled{cursor:default;background-color:#f4f4f4;color:#bbb}.leaflet-touch .leaflet-bar a{width:30px;height:30px;line-height:30px}.leaflet-touch .leaflet-bar a:first-child{border-top-left-radius:2px;border-top-right-radius:2px}.leaflet-touch .leaflet-bar a:last-child{border-bottom-left-radius:2px;border-bottom-right-radius:2px}.leaflet-control-zoom-in,.leaflet-control-zoom-out{font:700 18px Lucida Console,Monaco,monospace;text-indent:1px}.leaflet-touch .leaflet-control-zoom-in,.leaflet-touch .leaflet-control-zoom-out{font-size:22px}.leaflet-control-layers{box-shadow:0 1px 5px #0006;background:#fff;border-radius:5px}.leaflet-control-layers-toggle{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABoAAAAaCAQAAAADQ4RFAAACf0lEQVR4AY1UM3gkARTePdvdoTxXKc+qTl3aU5U6b2Kbkz3Gtq3Zw6ziLGNPzrYx7946Tr6/ee/XeCQ4D3ykPtL5tHno4n0d/h3+xfuWHGLX81cn7r0iTNzjr7LrlxCqPtkbTQEHeqOrTy4Yyt3VCi/IOB0v7rVC7q45Q3Gr5K6jt+3Gl5nCoDD4MtO+j96Wu8atmhGqcNGHObuf8OM/x3AMx38+4Z2sPqzCxRFK2aF2e5Jol56XTLyggAMTL56XOMoS1W4pOyjUcGGQdZxU6qRh7B9Zp+PfpOFlqt0zyDZckPi1ttmIp03jX8gyJ8a/PG2yutpS/Vol7peZIbZcKBAEEheEIAgFbDkz5H6Zrkm2hVWGiXKiF4Ycw0RWKdtC16Q7qe3X4iOMxruonzegJzWaXFrU9utOSsLUmrc0YjeWYjCW4PDMADElpJSSQ0vQvA1Tm6/JlKnqFs1EGyZiFCqnRZTEJJJiKRYzVYzJck2Rm6P4iH+cmSY0YzimYa8l0EtTODFWhcMIMVqdsI2uiTvKmTisIDHJ3od5GILVhBCarCfVRmo4uTjkhrhzkiBV7SsaqS+TzrzM1qpGGUFt28pIySQHR6h7F6KSwGWm97ay+Z+ZqMcEjEWebE7wxCSQwpkhJqoZA5ivCdZDjJepuJ9IQjGGUmuXJdBFUygxVqVsxFsLMbDe8ZbDYVCGKxs+W080max1hFCarCfV+C1KATwcnvE9gRRuMP2prdbWGowm1KB1y+zwMMENkM755cJ2yPDtqhTI6ED1M/82yIDtC/4j4BijjeObflpO9I9MwXTCsSX8jWAFeHr05WoLTJ5G8IQVS/7vwR6ohirYM7f6HzYpogfS3R2OAAAAAElFTkSuQmCC);width:36px;height:36px}.leaflet-retina .leaflet-control-layers-toggle{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADQAAAA0CAQAAABvcdNgAAAEsklEQVR4AWL4TydIhpZK1kpWOlg0w3ZXP6D2soBtG42jeI6ZmQTHzAxiTbSJsYLjO9HhP+WOmcuhciVnmHVQcJnp7DFvScowZorad/+V/fVzMdMT2g9Cv9guXGv/7pYOrXh2U+RRR3dSd9JRx6bIFc/ekqHI29JC6pJ5ZEh1yWkhkbcFeSjxgx3L2m1cb1C7bceyxA+CNjT/Ifff+/kDk2u/w/33/IeCMOSaWZ4glosqT3DNnNZQ7Cs58/3Ce5HL78iZH/vKVIaYlqzfdLu8Vi7dnvUbEza5Idt36tquZFldl6N5Z/POLof0XLK61mZCmJSWjVF9tEjUluu74IUXvgttuVIHE7YxSkaYhJZam7yiM9Pv82JYfl9nptxZaxMJE4YSPty+vF0+Y2up9d3wwijfjZbabqm/3bZ9ecKHsiGmRflnn1MW4pjHf9oLufyn2z3y1D6n8g8TZhxyzipLNPnAUpsOiuWimg52psrTZYnOWYNDTMuWBWa0tJb4rgq1UvmutpaYEbZlwU3CLJm/ayYjHW5/h7xWLn9Hh1vepDkyf7dE7MtT5LR4e7yYpHrkhOUpEfssBLq2pPhAqoSWKUkk7EDqkmK6RrCEzqDjhNDWNE+XSMvkJRDWlZTmCW0l0PHQGRZY5t1L83kT0Y3l2SItk5JAWHl2dCOBm+fPu3fo5/3v61RMCO9Jx2EEYYhb0rmNQMX/vm7gqOEJLcXTGw3CAuRNeyaPWwjR8PRqKQ1PDA/dpv+on9Shox52WFnx0KY8onHayrJzm87i5h9xGw/tfkev0jGsQizqezUKjk12hBMKJ4kbCqGPVNXudyyrShovGw5CgxsRICxF6aRmSjlBnHRzg7Gx8fKqEubI2rahQYdR1YgDIRQO7JvQyD52hoIQx0mxa0ODtW2Iozn1le2iIRdzwWewedyZzewidueOGqlsn1MvcnQpuVwLGG3/IR1hIKxCjelIDZ8ldqWz25jWAsnldEnK0Zxro19TGVb2ffIZEsIO89EIEDvKMPrzmBOQcKQ+rroye6NgRRxqR4U8EAkz0CL6uSGOm6KQCdWjvjRiSP1BPalCRS5iQYiEIvxuBMJEWgzSoHADcVMuN7IuqqTeyUPq22qFimFtxDyBBJEwNyt6TM88blFHao/6tWWhuuOM4SAK4EI4QmFHA+SEyWlp4EQoJ13cYGzMu7yszEIBOm2rVmHUNqwAIQabISNMRstmdhNWcFLsSm+0tjJH1MdRxO5Nx0WDMhCtgD6OKgZeljJqJKc9po8juskR9XN0Y1lZ3mWjLR9JCO1jRDMd0fpYC2VnvjBSEFg7wBENc0R9HFlb0xvF1+TBEpF68d+DHR6IOWVv2BECtxo46hOFUBd/APU57WIoEwJhIi2CdpyZX0m93BZicktMj1AS9dClteUFAUNUIEygRZCtik5zSxI9MubTBH1GOiHsiLJ3OCoSZkILa9PxiN0EbvhsAo8tdAf9Seepd36lGWHmtNANTv5Jd0z4QYyeo/UEJqxKRpg5LZx6btLPsOaEmdMyxYdlc8LMaJnikDlhclqmPiQnTEpLUIZEwkRagjYkEibQErwhkTAKCLQEbUgkzJQWc/0PstHHcfEdQ+UAAAAASUVORK5CYII=);background-size:26px 26px}.leaflet-touch .leaflet-control-layers-toggle{width:44px;height:44px}.leaflet-control-layers .leaflet-control-layers-list,.leaflet-control-layers-expanded .leaflet-control-layers-toggle{display:none}.leaflet-control-layers-expanded .leaflet-control-layers-list{display:block;position:relative}.leaflet-control-layers-expanded{padding:6px 10px 6px 6px;color:#333;background:#fff}.leaflet-control-layers-scrollbar{overflow-y:scroll;overflow-x:hidden;padding-right:5px}.leaflet-control-layers-selector{margin-top:2px;position:relative;top:1px}.leaflet-control-layers label{display:block;font-size:13px;font-size:1.08333em}.leaflet-control-layers-separator{height:0;border-top:1px solid #ddd;margin:5px -10px 5px -6px}.leaflet-default-icon-path{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABkAAAApCAYAAADAk4LOAAAFgUlEQVR4Aa1XA5BjWRTN2oW17d3YaZtr2962HUzbDNpjszW24mRt28p47v7zq/bXZtrp/lWnXr337j3nPCe85NcypgSFdugCpW5YoDAMRaIMqRi6aKq5E3YqDQO3qAwjVWrD8Ncq/RBpykd8oZUb/kaJutow8r1aP9II0WmLKLIsJyv1w/kqw9Ch2MYdB++12Onxee/QMwvf4/Dk/Lfp/i4nxTXtOoQ4pW5Aj7wpici1A9erdAN2OH64x8OSP9j3Ft3b7aWkTg/Fm91siTra0f9on5sQr9INejH6CUUUpavjFNq1B+Oadhxmnfa8RfEmN8VNAsQhPqF55xHkMzz3jSmChWU6f7/XZKNH+9+hBLOHYozuKQPxyMPUKkrX/K0uWnfFaJGS1QPRtZsOPtr3NsW0uyh6NNCOkU3Yz+bXbT3I8G3xE5EXLXtCXbbqwCO9zPQYPRTZ5vIDXD7U+w7rFDEoUUf7ibHIR4y6bLVPXrz8JVZEql13trxwue/uDivd3fkWRbS6/IA2bID4uk0UpF1N8qLlbBlXs4Ee7HLTfV1j54APvODnSfOWBqtKVvjgLKzF5YdEk5ewRkGlK0i33Eofffc7HT56jD7/6U+qH3Cx7SBLNntH5YIPvODnyfIXZYRVDPqgHtLs5ABHD3YzLuespb7t79FY34DjMwrVrcTuwlT55YMPvOBnRrJ4VXTdNnYug5ucHLBjEpt30701A3Ts+HEa73u6dT3FNWwflY86eMHPk+Yu+i6pzUpRrW7SNDg5JHR4KapmM5Wv2E8Tfcb1HoqqHMHU+uWDD7zg54mz5/2BSnizi9T1Dg4QQXLToGNCkb6tb1NU+QAlGr1++eADrzhn/u8Q2YZhQVlZ5+CAOtqfbhmaUCS1ezNFVm2imDbPmPng5wmz+gwh+oHDce0eUtQ6OGDIyR0uUhUsoO3vfDmmgOezH0mZN59x7MBi++WDL1g/eEiU3avlidO671bkLfwbw5XV2P8Pzo0ydy4t2/0eu33xYSOMOD8hTf4CrBtGMSoXfPLchX+J0ruSePw3LZeK0juPJbYzrhkH0io7B3k164hiGvawhOKMLkrQLyVpZg8rHFW7E2uHOL888IBPlNZ1FPzstSJM694fWr6RwpvcJK60+0HCILTBzZLFNdtAzJaohze60T8qBzyh5ZuOg5e7uwQppofEmf2++DYvmySqGBuKaicF1blQjhuHdvCIMvp8whTTfZzI7RldpwtSzL+F1+wkdZ2TBOW2gIF88PBTzD/gpeREAMEbxnJcaJHNHrpzji0gQCS6hdkEeYt9DF/2qPcEC8RM28Hwmr3sdNyht00byAut2k3gufWNtgtOEOFGUwcXWNDbdNbpgBGxEvKkOQsxivJx33iow0Vw5S6SVTrpVq11ysA2Rp7gTfPfktc6zhtXBBC+adRLshf6sG2RfHPZ5EAc4sVZ83yCN00Fk/4kggu40ZTvIEm5g24qtU4KjBrx/BTTH8ifVASAG7gKrnWxJDcU7x8X6Ecczhm3o6YicvsLXWfh3Ch1W0k8x0nXF+0fFxgt4phz8QvypiwCCFKMqXCnqXExjq10beH+UUA7+nG6mdG/Pu0f3LgFcGrl2s0kNNjpmoJ9o4B29CMO8dMT4Q5ox8uitF6fqsrJOr8qnwNbRzv6hSnG5wP+64C7h9lp30hKNtKdWjtdkbuPA19nJ7Tz3zR/ibgARbhb4AlhavcBebmTHcFl2fvYEnW0ox9xMxKBS8btJ+KiEbq9zA4RthQXDhPa0T9TEe69gWupwc6uBUphquXgf+/FrIjweHQS4/pduMe5ERUMHUd9xv8ZR98CxkS4F2n3EUrUZ10EYNw7BWm9x1GiPssi3GgiGRDKWRYZfXlON+dfNbM+GgIwYdwAAAAASUVORK5CYII=)}.leaflet-container .leaflet-control-attribution{background:#fff;background:#fffc;margin:0}.leaflet-control-attribution,.leaflet-control-scale-line{padding:0 5px;color:#333;line-height:1.4}.leaflet-control-attribution a{text-decoration:none}.leaflet-control-attribution a:hover,.leaflet-control-attribution a:focus{text-decoration:underline}.leaflet-attribution-flag{display:inline!important;vertical-align:baseline!important;width:1em;height:.6669em}.leaflet-left .leaflet-control-scale{margin-left:5px}.leaflet-bottom .leaflet-control-scale{margin-bottom:5px}.leaflet-control-scale-line{border:2px solid #777;border-top:none;line-height:1.1;padding:2px 5px 1px;white-space:nowrap;-moz-box-sizing:border-box;box-sizing:border-box;background:#fffc;text-shadow:1px 1px #fff}.leaflet-control-scale-line:not(:first-child){border-top:2px solid #777;border-bottom:none;margin-top:-2px}.leaflet-control-scale-line:not(:first-child):not(:last-child){border-bottom:2px solid #777}.leaflet-touch .leaflet-control-attribution,.leaflet-touch .leaflet-control-layers,.leaflet-touch .leaflet-bar{box-shadow:none}.leaflet-touch .leaflet-control-layers,.leaflet-touch .leaflet-bar{border:2px solid rgba(0,0,0,.2);background-clip:padding-box}.leaflet-popup{position:absolute;text-align:center;margin-bottom:20px}.leaflet-popup-content-wrapper{padding:1px;text-align:left;border-radius:12px}.leaflet-popup-content{margin:13px 24px 13px 20px;line-height:1.3;font-size:13px;font-size:1.08333em;min-height:1px}.leaflet-popup-content p{margin:1.3em 0}.leaflet-popup-tip-container{width:40px;height:20px;position:absolute;left:50%;margin-top:-1px;margin-left:-20px;overflow:hidden;pointer-events:none}.leaflet-popup-tip{width:17px;height:17px;padding:1px;margin:-10px auto 0;pointer-events:auto;-webkit-transform:rotate(45deg);-moz-transform:rotate(45deg);-ms-transform:rotate(45deg);transform:rotate(45deg)}.leaflet-popup-content-wrapper,.leaflet-popup-tip{background:#fff;color:#333;box-shadow:0 3px 14px #0006}.leaflet-container a.leaflet-popup-close-button{position:absolute;top:0;right:0;border:none;text-align:center;width:24px;height:24px;font:16px/24px Tahoma,Verdana,sans-serif;color:#757575;text-decoration:none;background:transparent}.leaflet-container a.leaflet-popup-close-button:hover,.leaflet-container a.leaflet-popup-close-button:focus{color:#585858}.leaflet-popup-scrolled{overflow:auto}.leaflet-oldie .leaflet-popup-content-wrapper{-ms-zoom:1}.leaflet-oldie .leaflet-popup-tip{width:24px;margin:0 auto;-ms-filter:"progid:DXImageTransform.Microsoft.Matrix(M11=0.70710678, M12=0.70710678, M21=-0.70710678, M22=0.70710678)";filter:progid:DXImageTransform.Microsoft.Matrix(M11=.70710678,M12=.70710678,M21=-.70710678,M22=.70710678)}.leaflet-oldie .leaflet-control-zoom,.leaflet-oldie .leaflet-control-layers,.leaflet-oldie .leaflet-popup-content-wrapper,.leaflet-oldie .leaflet-popup-tip{border:1px solid #999}.leaflet-div-icon{background:#fff;border:1px solid #666}.leaflet-tooltip{position:absolute;padding:6px;background-color:#fff;border:1px solid #fff;border-radius:3px;color:#222;white-space:nowrap;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;pointer-events:none;box-shadow:0 1px 3px #0006}.leaflet-tooltip.leaflet-interactive{cursor:pointer;pointer-events:auto}.leaflet-tooltip-top:before,.leaflet-tooltip-bottom:before,.leaflet-tooltip-left:before,.leaflet-tooltip-right:before{position:absolute;pointer-events:none;border:6px solid transparent;background:transparent;content:""}.leaflet-tooltip-bottom{margin-top:6px}.leaflet-tooltip-top{margin-top:-6px}.leaflet-tooltip-bottom:before,.leaflet-tooltip-top:before{left:50%;margin-left:-6px}.leaflet-tooltip-top:before{bottom:0;margin-bottom:-12px;border-top-color:#fff}.leaflet-tooltip-bottom:before{top:0;margin-top:-12px;margin-left:-6px;border-bottom-color:#fff}.leaflet-tooltip-left{margin-left:-6px}.leaflet-tooltip-right{margin-left:6px}.leaflet-tooltip-left:before,.leaflet-tooltip-right:before{top:50%;margin-top:-6px}.leaflet-tooltip-left:before{right:0;margin-right:-12px;border-left-color:#fff}.leaflet-tooltip-right:before{left:0;margin-left:-12px;border-right-color:#fff}@media print{.leaflet-control{-webkit-print-color-adjust:exact;print-color-adjust:exact}}@font-face{font-family:Kanit;font-style:normal;font-weight:300;font-display:swap;src:url(/fonts/Kanit-300.ttf) format("truetype")}@font-face{font-family:Kanit;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/Kanit-400.ttf) format("truetype")}@font-face{font-family:Kanit;font-style:normal;font-weight:500;font-display:swap;src:url(/fonts/Kanit-500.ttf) format("truetype")}@font-face{font-family:Kanit;font-style:normal;font-weight:600;font-display:swap;src:url(/fonts/Kanit-600.ttf) format("truetype")}@font-face{font-family:Kanit;font-style:normal;font-weight:700;font-display:swap;src:url(/fonts/Kanit-700.ttf) format("truetype")}:root{color-scheme:light;font-family:Kanit,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;background:#f8fafc;color:#1f2937;--orange: #f97316;--orange-dark: #ea580c;--surface: #ffffff;--muted: #6b7280;--border: #e5e7eb;--green: #16a34a;--amber: #f59e0b;--red: #dc2626;--slate: #64748b}.theme-dark{background:#0f172a;color:#e5e7eb;--surface: #111827;--muted: #94a3b8;--border: #263244}*{box-sizing:border-box}.localization-boundary{display:contents}body{margin:0;min-width:320px}button,input,select{font:inherit}button{cursor:pointer}.live-chip{appearance:none;font:inherit}.live-chip svg{flex:0 0 auto}.live-chip.loading svg{animation:live-spin 1s linear infinite}.live-chip.error span{background:var(--amber)}.live-chip.mock{background:#fff7ed;border-color:#fed7aa;color:#9a3412}.live-chip.mock span{background:var(--orange)}.live-data-badge{background:#dcfce7;border:1px solid #86efac;border-radius:999px;color:#166534;display:inline-flex;font-size:10px;font-weight:600;line-height:1;margin-left:5px;padding:4px 6px;vertical-align:middle}.theme-dark .live-data-badge{background:#16a34a2e;border-color:#166534;color:#86efac}@keyframes live-spin{to{transform:rotate(360deg)}}a{color:inherit;text-decoration:none}.app-shell{display:flex;min-height:100vh}.app-shell.theme-dark,.login-page.theme-dark{background:#0f172a;color:#e5e7eb}.theme-dark .sidebar,.theme-dark .panel,.theme-dark .login-panel,.theme-dark .pulse-card,.theme-dark .summary-card,.theme-dark .maintenance-card,.theme-dark .org-card,.theme-dark .report-card,.theme-dark .api-grid article,.theme-dark .mobile-footer-nav{background:var(--surface);border-color:var(--border)}.theme-dark .nav-item,.theme-dark .ghost-button,.theme-dark .icon-button,.theme-dark .device-row,.theme-dark .alert-row,.theme-dark .nearby-card,.theme-dark .search-box,.theme-dark input,.theme-dark select,.theme-dark code,.theme-dark .metric{background:#0f172a;border-color:var(--border);color:#e5e7eb}.theme-dark .nav-item:hover,.theme-dark .nav-item.active,.theme-dark .device-row:hover,.theme-dark .device-row.selected,.theme-dark .nearby-card.active,.theme-dark .mobile-footer-item.active,.theme-dark .secondary-button,.theme-dark .map-popup a{background:#f9731624;color:#fdba74}.theme-dark .dashboard-intro{background:linear-gradient(120deg,#f97316e6,#7c2d12e0),url(/map-fallback.svg) center / cover}.theme-dark .dashboard-page .panel-header h2:before,.theme-dark .dashboard-page .panel>h2:before{background:#f973162e}.theme-dark .dashboard-alert-panel .alert-row{border-color:#f9731659}.theme-dark .site-footer,.theme-dark .sidebar-footer,.theme-dark .detail-section,.theme-dark .compact-row,.theme-dark .device-row{border-color:var(--border)}.theme-dark .brand strong,.theme-dark .site-footer strong,.theme-dark .pulse-card,.theme-dark .metric strong,.theme-dark .data-table strong{color:#f8fafc}.theme-dark .chart-legend div,.theme-dark .bar-row div{background:#0f172a;border-color:var(--border)}.theme-dark .bar-row span,.theme-dark .filter-grid label,.theme-dark .login-form label,.theme-dark .settings-grid label{color:#cbd5e1}.sidebar{background:var(--surface);border-right:1px solid var(--border);display:flex;flex-direction:column;flex-shrink:0;min-height:100vh;padding:18px;position:sticky;top:0;width:260px;z-index:1200}.brand{align-items:center;display:flex;gap:12px}.brand>div:last-child{display:grid;gap:2px}.brand-mark{align-items:center;background:var(--orange);border-radius:8px;color:#fff;display:grid;flex-shrink:0;height:44px;place-items:center;width:44px}.brand strong,.login-copy h1,.topbar h1,.panel h2,.detail-head h2,.alert-card h3,.maintenance-card h3,.org-card h3,.report-card h3{line-height:1.2;margin:0}.brand span,.muted,.compact-row small,.alert-row small,.device-row small,.login-copy p,.panel p,.alert-card small{color:var(--muted)}.nav-list{display:grid;gap:6px;margin-top:28px}.nav-item,.ghost-button,.secondary-button,.primary-button,.icon-button,.alert-row,.device-row,.scrim{border:0}.nav-item{align-items:center;background:transparent;border-radius:8px;color:#374151;display:flex;gap:10px;min-height:42px;padding:10px 12px;text-align:left}.nav-item:hover,.nav-item.active{background:#fff7ed;color:var(--orange-dark)}.sidebar-footer{border-top:1px solid var(--border);display:grid;gap:12px;margin-top:auto;padding-top:16px}.sidebar-footer span{color:var(--muted);font-size:13px}.main{flex:1;min-width:0;padding:22px}.site-footer{align-items:center;border-top:1px solid var(--border);color:var(--muted);display:flex;gap:18px;justify-content:space-between;margin-top:28px;padding:18px 2px 4px}.site-footer div{display:flex;flex-wrap:wrap;gap:8px 14px}.site-footer strong{color:#1f2937}.footer-meta{justify-content:flex-end}.mobile-footer-nav{display:none}.topbar{align-items:center;display:flex;gap:16px;justify-content:space-between;margin-bottom:22px}.topbar h1{font-size:26px}.eyebrow{color:var(--orange-dark);font-size:13px;font-weight:600;letter-spacing:0;margin:0 0 4px;text-transform:uppercase}.topbar-actions,.button-row,.row-gap{align-items:center;display:flex;gap:10px}.live-chip{align-items:center;background:#ecfdf5;border:1px solid #bbf7d0;border-radius:999px;color:#166534;display:flex;font-size:13px;gap:8px;padding:8px 12px}.live-chip span{background:var(--green);border-radius:50%;height:8px;width:8px}.icon-button{align-items:center;background:var(--surface);border:1px solid var(--border);border-radius:8px;color:#334155;display:grid;height:42px;place-items:center;position:relative;width:42px}.icon-button small{background:var(--red);border-radius:999px;color:#fff;font-size:11px;min-width:18px;padding:1px 5px;position:absolute;right:-5px;top:-5px}.page-stack{display:grid;gap:18px}.summary-grid{display:grid;gap:14px;grid-template-columns:repeat(5,minmax(140px,1fr))}.dashboard-intro{align-items:center;background:linear-gradient(120deg,#f97316f5,#ea580ceb),url(/map-fallback.svg) center / cover;border-radius:8px;color:#fff;display:flex;gap:18px;justify-content:space-between;min-height:116px;overflow:hidden;padding:22px 26px;position:relative}.dashboard-intro:after{background:radial-gradient(circle,rgba(255,255,255,.35),transparent 62%);content:"";height:260px;position:absolute;right:-80px;top:-118px;width:260px}.dashboard-intro .eyebrow,.dashboard-intro h2,.dashboard-intro span{color:#fff;position:relative;z-index:1}.dashboard-intro h2{font-size:28px;line-height:1.2;margin:0}.dashboard-intro-stat{align-items:center;background:#ffffff2e;border:1px solid rgba(255,255,255,.28);border-radius:8px;display:grid;justify-items:center;min-width:150px;padding:14px 18px;position:relative;z-index:1}.dashboard-intro-stat strong{font-size:42px;line-height:1}.summary-card,.panel,.login-panel,.pulse-card,.maintenance-card,.org-card,.report-card,.api-grid article{background:var(--surface);border:1px solid var(--border);border-radius:8px}.summary-card{display:grid;gap:8px;min-height:128px;padding:18px;position:relative;overflow:hidden}.dashboard-page .summary-card:after{background:linear-gradient(90deg,var(--orange),rgba(249,115,22,0));bottom:0;content:"";height:4px;left:0;position:absolute;right:0}.summary-card div{align-items:center;border-radius:8px;color:#fff;display:grid;height:38px;place-items:center;width:38px}.summary-card svg{height:20px;width:20px}.summary-card span{color:var(--muted)}.summary-card strong{font-size:30px;line-height:1}.summary-card.orange div{background:var(--orange)}.summary-card.green div{background:var(--green)}.summary-card.slate div{background:var(--slate)}.summary-card.red div{background:var(--red)}.summary-card.amber div{background:var(--amber)}.dashboard-map-panel,.dashboard-alert-panel,.dashboard-info-panel{position:relative}.dashboard-map-panel:before,.dashboard-alert-panel:before,.dashboard-info-panel:before{background:var(--orange);border-radius:8px 0 0 8px;bottom:18px;content:"";left:0;position:absolute;top:18px;width:4px}.dashboard-page .panel-header h2,.dashboard-page .panel>h2{align-items:center;display:inline-flex;gap:8px}.dashboard-page .panel-header h2:before,.dashboard-page .panel>h2:before{background:#ffedd5;border:4px solid var(--orange);border-radius:50%;content:"";height:12px;width:12px}.dashboard-alert-panel .alert-row{border-color:#fed7aa}.dashboard-grid{display:grid;gap:18px;grid-template-columns:minmax(0,1.35fr) minmax(320px,.65fr)}.three-col{display:grid;gap:18px;grid-template-columns:repeat(3,minmax(0,1fr))}.panel{min-width:0;padding:18px}.panel-header,.toolbar,.detail-head{align-items:flex-start;display:flex;gap:14px;justify-content:space-between;margin-bottom:16px}.panel h2{font-size:20px}.ghost-button,.secondary-button,.primary-button{align-items:center;border-radius:8px;display:inline-flex;gap:8px;min-height:38px;padding:8px 12px;white-space:nowrap}.ghost-button{background:#fff;border:1px solid var(--border);color:#374151}.secondary-button{background:#fff7ed;color:var(--orange-dark)}.primary-button{background:var(--orange);color:#fff;font-weight:600}.primary-button:hover{background:var(--orange-dark)}.primary-button.small{min-height:34px;padding:7px 10px}.direction-link{justify-content:center;margin-bottom:16px;width:100%}.real-map{border:1px solid var(--border);border-radius:8px;height:360px;overflow:hidden;position:relative}.large-map .real-map{height:640px}.real-map .leaflet-container{background:#e8f0e7 url(/map-fallback.svg) center / cover;height:100%;z-index:0;width:100%}.real-map .leaflet-pane,.real-map .leaflet-top,.real-map .leaflet-bottom{z-index:1}.real-map-marker{align-items:center;border:3px solid #fff;border-radius:999px;box-shadow:0 8px 20px #0f172a3d;display:grid;height:28px;place-items:center;width:28px}.real-map-marker span{background:#ffffffeb;border-radius:999px;height:8px;width:8px}.real-map-marker.ready{background:var(--green)}.real-map-marker.warning{background:var(--amber)}.real-map-marker.critical{background:var(--red)}.real-map-marker.offline{background:var(--slate)}.real-map-marker.selected{box-shadow:0 0 0 6px #f9731633}.user-location-marker{align-items:center;background:#2563eb;border:3px solid #fff;border-radius:999px;box-shadow:0 0 0 7px #2563eb2e,0 8px 20px #0f172a3d;display:grid;height:24px;place-items:center;width:24px}.user-location-marker span{background:#fff;border-radius:999px;height:7px;width:7px}.map-popup{display:grid;gap:4px;min-width:180px}.map-popup span{color:var(--muted)}.map-popup button,.map-popup a{background:var(--orange);border:0;border-radius:8px;color:#fff;display:inline-flex;justify-content:center;margin-top:6px;min-height:32px;padding:6px 10px}.map-popup a{background:#fff7ed;color:var(--orange-dark)}.map-legend{align-items:center;background:#fffffff0;border:1px solid var(--border);border-radius:8px;bottom:14px;display:flex;flex-wrap:wrap;gap:10px;left:14px;padding:8px 10px;position:absolute;z-index:500}.map-legend span{align-items:center;display:inline-flex;font-size:12px;gap:6px}.legend-dot{border-radius:999px;display:inline-block;height:10px;width:10px}.legend-dot.ready{background:var(--green)}.legend-dot.warning{background:var(--amber)}.legend-dot.critical{background:var(--red)}.legend-dot.offline{background:var(--slate)}.list-stack{display:grid;gap:10px}.dashboard-alert-panel .list-stack,.dashboard-info-panel .list-stack{max-height:360px;overflow-y:auto;padding-right:4px}.alert-row{align-items:center;background:#fff;border:1px solid var(--border);border-radius:8px;display:flex;gap:10px;padding:12px;text-align:left;width:100%}.alert-row span:last-child,.compact-row{display:grid;gap:3px;min-width:0}.compact-row{border-bottom:1px solid var(--border);padding:8px 0 11px}.compact-row:last-child{border-bottom:0}.split-layout{align-items:start;display:grid;gap:18px;grid-template-columns:minmax(420px,1fr) minmax(360px,.78fr)}.devices-page-layout{min-width:0}.devices-overview{align-items:center;background:linear-gradient(105deg,#fff,#fff7ed);border:1px solid #fed7aa;border-left:4px solid var(--orange);border-radius:8px;display:grid;gap:20px;grid-template-columns:minmax(240px,.8fr) minmax(520px,1.2fr);margin-bottom:14px;padding:18px 20px}.devices-overview h2,.devices-overview p{margin:0}.devices-overview h2{font-size:20px}.devices-overview>div:first-child>p:last-child{color:var(--muted);margin-top:5px}.device-stat-strip{display:grid;grid-template-columns:repeat(4,minmax(0,1fr))}.device-stat-strip>div{align-items:center;border-left:1px solid #fed7aa;color:var(--orange-dark);display:flex;gap:9px;min-width:0;padding:4px 14px}.device-stat-strip span{color:var(--muted);display:grid;font-size:11px}.device-stat-strip strong{color:var(--text);font-size:19px}.devices-page-layout>.panel{width:100%}.device-list-head{background:#f8fafc;border-bottom:1px solid var(--border);color:var(--muted);display:grid;font-size:11px;font-weight:600;gap:14px;grid-template-columns:minmax(220px,1.5fr) minmax(180px,1fr) minmax(130px,.75fr) minmax(150px,.8fr) minmax(125px,.65fr);padding:9px 14px;text-transform:uppercase}.devices-page-layout .device-row{gap:14px;grid-template-columns:minmax(220px,1.5fr) minmax(180px,1fr) minmax(130px,.75fr) minmax(150px,.8fr) minmax(125px,.65fr);min-height:78px}.device-identity,.connection-cell,.device-row-action{align-items:center;display:flex;min-width:0}.device-identity{gap:11px}.device-identity>span,.device-org,.connection-cell>span{display:grid;min-width:0}.device-identity small,.device-org small,.connection-cell small,.battery-cell small{color:var(--muted);margin-top:3px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.device-symbol,.device-hero-symbol{align-items:center;background:#dcfce7;border-radius:8px;color:var(--green);display:flex;flex:0 0 auto;height:40px;justify-content:center;width:40px}.device-symbol.warning,.device-hero-symbol.warning{background:#fef3c7;color:#b45309}.device-symbol.critical,.device-hero-symbol.critical{background:#fee2e2;color:var(--red)}.device-symbol.offline,.device-hero-symbol.offline{background:#e2e8f0;color:var(--slate)}.battery-cell{display:grid;gap:7px}.battery-cell>span{align-items:center;display:flex;justify-content:space-between}.battery-cell>i,.device-health-metric>div{background:#e2e8f0;border-radius:999px;display:block;height:5px;overflow:hidden}.battery-cell>i>b,.device-health-metric>div>b{background:var(--green);display:block;height:100%}.connection-cell{gap:8px}.connection-cell>i,.device-meta-chips span>i{background:var(--slate);border-radius:50%;flex:0 0 auto;height:8px;width:8px}.connection-cell>i.online,.device-meta-chips span.online>i{background:var(--green);box-shadow:0 0 0 4px #16a34a1f}.device-row-action{gap:7px;justify-content:flex-end}.device-detail-modal-backdrop{align-items:center;background:#0f172a9e;display:flex;inset:0;justify-content:center;padding:24px;position:fixed;z-index:2200}.device-detail-modal{background:var(--surface);border:1px solid var(--border);border-radius:8px;box-shadow:0 28px 80px #0f172a52;max-height:calc(100vh - 48px);max-width:1240px;overflow-y:auto;width:min(1240px,96vw)}.device-detail-modal-header{align-items:center;background:var(--surface);border-bottom:1px solid var(--border);display:flex;justify-content:space-between;padding:16px 20px;position:sticky;top:0;z-index:10}.device-detail-modal-actions{align-items:center;display:flex;flex:0 0 auto;gap:8px}.device-delete-error{align-items:center;background:#fef2f2;border-bottom:1px solid #fecaca;color:#b91c1c;display:flex;font-size:13px;gap:8px;padding:10px 22px}.theme-dark .device-delete-error{background:#b91c1c26;border-color:#7f1d1d;color:#fca5a5}.device-delete-confirm-backdrop{align-items:center;background:#0f172ab8;display:flex;inset:0;justify-content:center;padding:20px;position:fixed;z-index:2300}.device-delete-confirm{background:var(--surface);border:1px solid var(--border);border-radius:8px;box-shadow:0 28px 80px #0f172a66;display:grid;gap:16px;max-width:500px;padding:22px;width:100%}.device-delete-confirm header{align-items:center;display:flex;gap:12px}.device-delete-confirm header>span{align-items:center;background:#fee2e2;color:#b91c1c;display:flex;height:42px;justify-content:center;width:42px}.device-delete-confirm h2,.device-delete-confirm p{margin:0}.device-delete-confirm>p{color:var(--muted)}.device-delete-confirm label{display:grid;font-weight:600;gap:7px}.device-delete-confirm input{background:var(--surface);border:1px solid var(--border);color:inherit;font:inherit;padding:10px 12px;width:100%}.device-delete-confirm .button-row{justify-content:flex-end}.device-delete-id{background:var(--surface-soft);border:1px solid var(--border);display:grid;gap:4px;padding:12px}.device-delete-id small,.device-delete-note{color:var(--muted)}.device-delete-id code{color:var(--red);font-size:15px;font-weight:700}.primary-button.danger-action{background:#dc2626}.primary-button.danger-action:hover:not(:disabled){background:#b91c1c}.device-delete-success{align-items:center;background:#f0fdf4;border-color:#16a34a;color:#166534;display:flex;gap:8px;margin:0}.theme-dark .device-delete-confirm header>span{background:#b91c1c33;color:#fca5a5}.theme-dark .device-delete-success{background:#16a34a24;color:#86efac}.device-detail-modal-header h2,.device-detail-modal-header p{margin:0}.device-detail-modal-content{max-height:none;overflow:visible;padding:20px;position:static}.device-detail-hero{align-items:center;background:#f8fafc;border:1px solid var(--border);border-radius:8px;display:grid;gap:16px;grid-template-columns:auto minmax(0,1fr) auto;padding:18px}.device-hero-symbol{height:58px;width:58px}.device-hero-copy h2,.device-hero-copy p{margin:0}.device-hero-copy>p:not(.eyebrow){align-items:center;color:var(--muted);display:flex;gap:4px;margin-top:3px}.device-meta-chips{display:flex;flex-wrap:wrap;gap:7px;margin-top:10px}.device-meta-chips span{align-items:center;background:var(--surface);border:1px solid var(--border);border-radius:6px;color:var(--muted);display:inline-flex;font-size:11px;gap:5px;padding:5px 7px}.device-hero-actions{align-items:flex-end;display:grid;gap:9px;justify-items:end}.daily-export-toolbar{align-items:center;background:#fff7ed;border:1px solid #fed7aa;border-radius:8px;display:grid;gap:12px;grid-template-columns:minmax(220px,1fr) auto auto;margin-top:12px;padding:12px 14px}.daily-export-toolbar>div,.daily-export-toolbar>div>span,.daily-export-toolbar label{display:flex}.daily-export-toolbar>div{align-items:center;color:#c2410c;gap:10px}.daily-export-toolbar>div>span{color:var(--text);flex-direction:column}.daily-export-toolbar small,.daily-export-toolbar label>span{color:var(--muted);font-size:11px}.daily-export-toolbar label{flex-direction:column;gap:3px}.daily-export-toolbar input{background:var(--surface);border:1px solid var(--border);border-radius:6px;color:var(--text);font:inherit;height:38px;padding:5px 9px}.report-export-error{margin:8px 0 0}.theme-dark .daily-export-toolbar{background:#9a341224;border-color:#9a3412}.device-health-grid{display:grid;gap:10px;grid-template-columns:repeat(4,minmax(0,1fr));margin-top:12px}.device-health-metric{align-items:center;background:var(--surface);border:1px solid var(--border);border-radius:8px;display:grid;gap:10px;grid-template-columns:auto 1fr;min-height:84px;padding:12px}.device-health-metric>i{align-items:center;background:#dcfce7;border-radius:7px;color:var(--green);display:flex;height:36px;justify-content:center;width:36px}.device-health-metric.warning>i{background:#fef3c7;color:#b45309}.device-health-metric.critical>i{background:#fee2e2;color:var(--red)}.device-health-metric.offline>i{background:#e2e8f0;color:var(--slate)}.device-health-metric>span{display:grid;min-width:0}.device-health-metric small{color:var(--muted)}.device-health-metric strong{font-size:17px;overflow-wrap:anywhere}.device-health-metric>div{grid-column:1 / -1}.device-health-metric.warning>div>b{background:var(--amber)}.device-health-metric.critical>div>b{background:var(--red)}.device-information-section .info-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.toolbar{margin-bottom:16px}.search-box{align-items:center;background:#fff;border:1px solid var(--border);border-radius:8px;display:flex;flex:1;gap:8px;min-width:220px;padding:0 12px}.search-box input,.toolbar select,.filter-grid input,.filter-grid select,.login-form input,.settings-grid input{background:#fff;border:1px solid var(--border);border-radius:8px;color:#111827;min-height:40px;padding:8px 10px;width:100%}.search-box input{border:0;outline:0}.device-table{border:1px solid var(--border);border-radius:8px;max-height:640px;overflow:auto}.device-row{align-items:center;background:#fff;border-bottom:1px solid var(--border);color:inherit;display:grid;gap:12px;grid-template-columns:minmax(170px,1.4fr) minmax(150px,1fr) 80px 96px;min-height:64px;padding:12px 14px;text-align:left;width:100%}.device-row:last-child{border-bottom:0}.device-row:hover,.device-row.selected{background:#fff7ed}.detail-panel{max-height:calc(100vh - 44px);overflow-y:auto;position:sticky;top:22px}.detail-head p{color:var(--muted);margin:5px 0 0}.metric-grid,.filter-grid,.report-grid,.api-grid,.maintenance-grid,.org-grid{display:grid;gap:14px}.metric-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.metric{background:#f8fafc;border:1px solid var(--border);border-radius:8px;display:grid;gap:4px;padding:12px}.metric span,.info-grid dt{color:var(--muted);font-size:12px}.detail-section{border-top:1px solid var(--border);margin-top:16px;padding-top:16px}.detail-section h3{font-size:16px;margin:0 0 10px}.public-profile-heading{align-items:flex-start;display:flex;gap:16px;justify-content:space-between}.public-profile-heading h3{margin-bottom:3px}.public-profile-heading p{color:var(--muted);font-size:12px;margin:0;max-width:680px}.public-profile-summary{background:var(--surface-soft, #f8fafc);border-left:4px solid var(--orange);display:grid;gap:4px;margin-top:12px;padding:12px 14px}.public-profile-summary>span{align-items:center;color:var(--muted);display:flex;font-size:11px;gap:6px}.public-profile-summary>span i{background:#94a3b8;border-radius:50%;height:7px;width:7px}.public-profile-summary>span.published i{background:var(--green)}.public-profile-summary strong{font-size:15px}.public-profile-summary small{color:var(--muted);overflow-wrap:anywhere}.public-profile-form{display:grid;gap:14px;margin-top:14px}.public-toggle{align-items:center;background:#fff7ed;border:1px solid #fed7aa;display:flex!important;flex-direction:row!important;font-weight:500;gap:9px;padding:10px 12px}.public-toggle input{height:18px;width:18px}.public-profile-language{border-top:1px solid var(--border);display:grid;gap:10px;grid-template-columns:repeat(2,minmax(0,1fr));padding-top:12px}.public-profile-language h4{color:var(--orange-dark);font-size:13px;grid-column:1 / -1;margin:0}.public-profile-form label{color:var(--muted);display:grid;font-size:12px;gap:5px}.public-profile-form label.wide{grid-column:1 / -1}.public-profile-form input,.public-profile-form select{background:var(--surface);border:1px solid var(--border);border-radius:6px;color:inherit;min-height:40px;padding:8px 10px;width:100%}.public-profile-form input:focus,.public-profile-form select:focus{border-color:var(--orange);box-shadow:0 0 0 3px #f973161f;outline:0}.public-profile-options{display:grid;gap:10px;grid-template-columns:repeat(2,minmax(0,1fr))}.public-profile-form .button-row{justify-content:flex-end}.form-success{color:#15803d;font-size:12px;margin:10px 0 0}.info-grid{display:grid;gap:10px;grid-template-columns:repeat(2,minmax(0,1fr));margin:0}.info-grid div{min-width:0}.info-grid dd{margin:2px 0 0;overflow-wrap:anywhere}.info-grid.compact{grid-template-columns:repeat(2,minmax(0,1fr))}.badge{border-radius:999px;display:inline-flex;font-size:12px;font-weight:600;justify-content:center;min-width:78px;padding:5px 9px;text-transform:capitalize}.badge.ready,.badge.severity-info{background:#dcfce7;color:#166534}.badge.warning,.badge.severity-warning{background:#fef3c7;color:#92400e}.badge.critical,.badge.severity-critical{background:#fee2e2;color:#991b1b}.badge.offline{background:#e2e8f0;color:#334155}.map-page-grid{grid-template-columns:minmax(0,1fr) minmax(360px,.45fr)}.map-tools-header{align-items:flex-start;display:flex;gap:14px;justify-content:space-between;margin-bottom:14px}.map-tools-header h2{font-size:20px;margin:0 0 4px}.map-action-row{align-items:center;display:flex;flex-wrap:wrap;gap:10px;justify-content:flex-end}.emergency-call-button{align-items:center;background:#dc2626;border:1px solid #b91c1c;border-radius:8px;box-shadow:0 10px 24px #dc26262e;color:#fff;display:inline-flex;font-weight:700;gap:8px;justify-content:center;min-height:40px;padding:8px 13px;white-space:nowrap}.emergency-call-button:hover{background:#b91c1c}.locate-button:disabled{cursor:wait;opacity:.72}.location-error{background:#fee2e2;border:1px solid #fecaca;border-radius:8px;color:#991b1b!important;margin:0 0 12px!important;padding:10px 12px}.nearby-strip{display:grid;gap:10px;grid-template-columns:repeat(4,minmax(150px,1fr));margin-bottom:12px}.nearby-card{background:#fff;border:1px solid var(--border);border-radius:8px;color:#1f2937;display:grid;gap:3px;min-height:76px;padding:10px;text-align:left}.nearby-card span{color:var(--orange-dark);font-size:12px;font-weight:700}.nearby-card small{color:var(--muted);line-height:1.3}.nearby-card.active{background:#fff7ed;border-color:var(--orange)}.map-device-summary{align-self:start;display:grid;gap:0;overflow:hidden;padding:0;position:sticky;top:18px}.map-summary-header{align-items:center;background:linear-gradient(135deg,#fff7ed 0%,var(--surface) 72%);border-bottom:1px solid var(--border);display:grid;gap:12px;grid-template-columns:auto minmax(0,1fr) auto;padding:20px}.map-summary-identity{min-width:0}.map-summary-identity h2{font-size:20px;line-height:1.25;margin:2px 0 4px;overflow-wrap:anywhere}.map-summary-kicker{color:var(--orange-dark);display:block;font-size:11px;font-weight:700;text-transform:uppercase}.map-connection-banner{align-items:center;border-bottom:1px solid var(--border);display:flex;justify-content:space-between;padding:12px 20px}.map-connection-banner.online{background:#f0fdf4;color:#166534}.map-connection-banner.offline{background:#f8fafc;color:#475569}.map-connection-banner span{align-items:center;display:flex;gap:9px}.map-connection-banner i{background:currentColor;border-radius:50%;box-shadow:0 0 0 4px color-mix(in srgb,currentColor 12%,transparent);height:8px;width:8px}.map-connection-banner small{color:inherit;opacity:.8}.map-summary-location{align-items:flex-start;display:grid;gap:12px;grid-template-columns:auto minmax(0,1fr);padding:20px 20px 16px}.map-summary-location>svg{color:var(--orange-dark);margin-top:2px}.map-summary-location strong{display:block;font-size:16px;margin-bottom:3px}.map-summary-location p,.map-summary-location small{color:var(--muted);line-height:1.5;margin:0}.map-summary-location small{display:block;margin-top:5px}.map-summary-metrics{border-bottom:1px solid var(--border);border-top:1px solid var(--border);display:grid;grid-template-columns:1fr 1fr;margin:0 20px}.map-summary-metrics>div{min-width:0;padding:16px 14px}.map-summary-metrics>div:first-child{border-right:1px solid var(--border);padding-left:0}.map-summary-metrics>div:last-child{padding-right:0}.map-battery-summary span,.map-last-report{align-items:center;display:flex;gap:7px}.map-battery-summary span,.map-last-report>svg{color:var(--muted)}.map-battery-summary small,.map-last-report small{color:var(--muted);display:block;font-size:11px}.map-battery-summary>strong{display:block;font-size:23px;margin:5px 0 7px}.map-battery-summary>i{background:#e2e8f0;border-radius:999px;display:block;height:6px;overflow:hidden}.map-battery-summary>i>b{background:var(--orange);display:block;height:100%}.map-last-report{align-items:flex-start}.map-last-report strong{display:block;font-size:13px;line-height:1.45;margin-top:5px;overflow-wrap:anywhere}.map-summary-actions{display:grid;gap:9px;padding:20px}.map-summary-actions .primary-button,.map-summary-actions .ghost-button{justify-content:center;width:100%}.theme-dark .map-summary-header{background:linear-gradient(135deg,rgba(234,88,12,.14) 0%,var(--surface) 72%)}.theme-dark .map-connection-banner.online{background:#16a34a1f;color:#86efac}.theme-dark .map-connection-banner.offline{background:#64748b1f;color:#cbd5e1}.alert-list,.maintenance-grid,.org-grid,.report-grid,.api-grid{display:grid;gap:14px}.alert-list{max-height:calc(100vh - 190px);overflow-y:auto;padding-right:4px}.maintenance-grid,.org-grid,.report-grid,.api-grid{max-height:460px;overflow-y:auto;padding-right:4px}.alert-card,.maintenance-card,.org-card,.report-card,.api-grid article{padding:16px}.alert-card{align-items:start;display:flex;gap:16px;justify-content:space-between}.alert-card p,.maintenance-card p,.report-card p,.api-grid p{margin:8px 0}.status-text{color:var(--muted);font-size:13px;text-transform:capitalize}.maintenance-grid,.org-grid,.report-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.data-table-wrap{border:1px solid var(--border);border-radius:8px;max-height:520px;overflow:auto}.data-table{border-collapse:collapse;min-width:860px;width:100%}.data-table th,.data-table td{border-bottom:1px solid var(--border);padding:12px 14px;text-align:left;vertical-align:middle}.data-table th{background:#f8fafc;color:#475569;font-size:13px;font-weight:600;position:sticky;top:0;z-index:1;white-space:nowrap}.data-table td{background:#fff;color:#1f2937}.data-table tr:last-child td{border-bottom:0}.data-table .badge{min-width:96px}.table-action{min-height:32px;padding:6px 10px}.theme-dark .data-table-wrap{border-color:var(--border)}.theme-dark .data-table th{background:#0f172a;color:#cbd5e1}.theme-dark .data-table td{background:var(--surface);border-color:var(--border);color:#e5e7eb}.list-stack,.device-table,.detail-panel,.alert-list,.maintenance-grid,.org-grid,.report-grid,.api-grid,.data-table-wrap{scrollbar-color:#fdba74 transparent;scrollbar-width:thin}.list-stack::-webkit-scrollbar,.device-table::-webkit-scrollbar,.detail-panel::-webkit-scrollbar,.alert-list::-webkit-scrollbar,.maintenance-grid::-webkit-scrollbar,.org-grid::-webkit-scrollbar,.report-grid::-webkit-scrollbar,.api-grid::-webkit-scrollbar,.data-table-wrap::-webkit-scrollbar{height:8px;width:8px}.list-stack::-webkit-scrollbar-thumb,.device-table::-webkit-scrollbar-thumb,.detail-panel::-webkit-scrollbar-thumb,.alert-list::-webkit-scrollbar-thumb,.maintenance-grid::-webkit-scrollbar-thumb,.org-grid::-webkit-scrollbar-thumb,.report-grid::-webkit-scrollbar-thumb,.api-grid::-webkit-scrollbar-thumb,.data-table-wrap::-webkit-scrollbar-thumb{background:#fdba74;border-radius:999px}.report-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.report-metric-grid{display:grid;gap:14px;grid-template-columns:repeat(4,minmax(0,1fr))}.reports-analytics-grid{display:grid;gap:18px;grid-template-columns:minmax(0,1.05fr) minmax(0,.95fr)}.chart-panel{min-height:328px}.pie-chart-row{align-items:center;display:grid;gap:22px;grid-template-columns:minmax(180px,230px) minmax(0,1fr);min-height:240px}.pie-chart{align-items:center;aspect-ratio:1;border-radius:50%;box-shadow:inset 0 0 0 1px #0f172a14,0 18px 42px #0f172a1f;display:grid;justify-items:center;max-width:230px;position:relative;width:100%}.pie-chart:before{background:var(--surface);border-radius:50%;content:"";height:54%;position:absolute;width:54%}.pie-chart div{color:var(--text);display:grid;gap:0;justify-items:center;position:relative;z-index:1}.pie-chart strong{font-size:34px;line-height:1}.pie-chart span{color:var(--muted);font-size:13px;font-weight:700;letter-spacing:0}.chart-legend{display:grid;gap:10px}.chart-legend div{align-items:center;background:#f8fafc;border:1px solid var(--border);border-radius:8px;display:grid;gap:10px;grid-template-columns:auto 1fr auto;min-height:44px;padding:9px 10px}.chart-legend strong{font-size:18px}.bar-chart{display:grid;gap:18px;padding-top:8px}.bar-row{align-items:center;display:grid;gap:12px;grid-template-columns:92px minmax(0,1fr) 40px}.bar-row span{color:#374151;font-weight:600}.bar-row div{background:#f1f5f9;border-radius:999px;height:16px;overflow:hidden}.bar-row i{border-radius:inherit;display:block;height:100%;min-width:8px}.bar-row strong{text-align:right}.severity-critical{background:#dc2626}.severity-warning{background:#f59e0b}.severity-info{background:#0ea5e9}.report-table-wrap{max-height:320px}.report-card{display:grid;gap:8px}.report-card svg{color:var(--orange)}.filter-grid{grid-template-columns:repeat(3,minmax(0,1fr));margin-bottom:16px}.filter-grid label,.login-form label,.settings-grid label{color:#374151;display:grid;gap:6px}.api-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.device-control-page{max-width:1500px}.control-message{background:#fff7ed;border-left:3px solid var(--orange);color:#9a3412;margin-top:14px;padding:10px 12px}.control-form,.artifact-form{align-items:end;display:grid;gap:12px;grid-template-columns:repeat(4,minmax(0,1fr))}.control-form label,.artifact-form label{color:var(--muted);display:grid;font-size:13px;gap:6px}.control-form input,.control-form select,.artifact-form input,.artifact-form select{background:var(--surface);border:1px solid var(--border);border-radius:6px;color:var(--text);font:inherit;min-height:42px;padding:8px 10px;width:100%}.control-form .control-toggle{align-items:center;align-self:center;display:flex;min-height:42px}.control-form .control-toggle input{min-height:auto;width:auto}.device-config-form{display:grid;gap:0}.config-target-row{align-items:end;display:grid;gap:20px;grid-template-columns:minmax(260px,420px) minmax(260px,1fr);padding-bottom:20px}.device-config-form label{color:var(--muted);display:grid;font-size:13px;gap:6px;min-width:0}.device-config-form input,.device-config-form select{background:var(--surface);border:1px solid var(--border);border-radius:6px;color:var(--text);font:inherit;min-height:42px;padding:8px 10px;width:100%}.device-config-form input:focus,.device-config-form select:focus{border-color:var(--orange);box-shadow:0 0 0 3px #f973161f;outline:0}.config-target-note{align-items:center;background:#f0fdf4;border-left:3px solid #16a34a;color:#166534;display:flex;gap:10px;min-height:42px;padding:8px 12px}.config-target-note span{display:grid;gap:1px}.config-target-note small{color:#15803d}.config-section{border-top:1px solid var(--border);display:grid;gap:16px;padding:22px 0}.config-section-heading{align-items:flex-start;display:flex;gap:10px}.config-section-heading>svg{color:var(--orange);flex:0 0 auto;margin-top:2px}.config-section-heading h3{font-size:16px;margin:0}.config-section-heading p{color:var(--muted);font-size:13px;margin:3px 0 0}.config-field-grid{display:grid;gap:14px;grid-template-columns:repeat(4,minmax(0,1fr))}.config-field-grid.three-fields{grid-template-columns:repeat(3,minmax(0,1fr))}.config-field-grid label{align-content:start}.config-field-grid label>small{color:var(--muted);font-size:11px;line-height:1.45;min-height:32px}.config-advanced{border-bottom:1px solid var(--border);border-top:1px solid var(--border);padding:16px 0}.config-advanced summary{align-items:center;color:var(--text);cursor:pointer;display:flex;font-weight:600;gap:8px;list-style:none}.config-advanced summary::-webkit-details-marker{display:none}.config-advanced[open] summary{margin-bottom:14px}.config-risk-note{align-items:flex-start;background:#fff7ed;border-left:3px solid var(--orange);color:#9a3412;display:flex;font-size:13px;gap:8px;margin-bottom:16px;padding:10px 12px}.config-risk-note svg{flex:0 0 auto}.config-submit-row{align-items:end;display:grid;gap:18px;grid-template-columns:minmax(0,1fr) auto;padding-top:20px}.config-preview{display:grid;gap:6px;min-width:0}.config-preview>span{color:var(--muted);font-size:13px}.config-preview code{font-size:12px;max-height:190px;min-height:48px;overflow:auto;white-space:pre-wrap}.config-submit-row .primary-button{justify-content:center;min-height:44px}.artifact-form{grid-template-columns:repeat(3,minmax(0,1fr))}.artifact-form .artifact-signature,.artifact-form .artifact-file{grid-column:span 2}.artifact-list{display:grid;gap:8px;margin-top:18px;max-height:300px;overflow-y:auto}.artifact-list article{align-items:center;border:1px solid var(--border);border-radius:6px;display:flex;gap:14px;justify-content:space-between;padding:12px}.artifact-list article>div{display:grid;gap:3px;min-width:0}.artifact-list span,.artifact-list code,.control-command-table small{color:var(--muted);display:block;font-size:12px}.artifact-list code{background:transparent;border:0;padding:0}.artifact-item.firmware-artifact{align-items:stretch;display:grid;gap:10px}.artifact-summary code{overflow-wrap:anywhere;white-space:normal}.ota-manifest-review{border-top:1px solid var(--border);padding-top:10px}.ota-manifest-review summary{align-items:center;color:var(--primary-dark);cursor:pointer;display:flex;font-size:13px;font-weight:700;gap:7px;list-style:none}.ota-manifest-review[open] summary{margin-bottom:12px}.ota-preflight-grid{display:grid;gap:7px;grid-template-columns:repeat(2,minmax(0,1fr))}.ota-preflight-grid>div{align-items:flex-start;background:var(--surface-soft);border:1px solid var(--border);border-radius:6px;display:flex;gap:8px;padding:9px}.ota-preflight-grid>div.passed>svg{color:#15803d}.ota-preflight-grid>div.blocked>svg{color:#dc2626}.ota-preflight-grid span{display:grid;gap:2px}.ota-preflight-grid strong{font-size:12px}.ota-preflight-grid small{color:var(--muted);font-size:11px}.ota-manifest-preview{display:grid;gap:6px;margin:12px 0}.ota-manifest-preview>span{color:var(--muted);font-size:12px}.ota-manifest-preview code,.ota-manifest-live code{display:block;font-size:11px;max-width:100%;max-height:230px;overflow:auto;overflow-wrap:anywhere;white-space:pre-wrap}.ota-monitor,.ota-monitor-grid>*,.ota-manifest-live,.ota-download-history{min-width:0}.ota-monitor-heading{align-items:flex-start;display:flex;gap:16px;justify-content:space-between}.ota-monitor-heading h2{margin:3px 0}.ota-monitor-heading p{color:var(--muted);margin:0}.section-kicker{color:var(--primary);font-size:11px;font-weight:800}.ota-monitor-metrics{background:var(--surface-soft);border-block:1px solid var(--border);display:grid;grid-template-columns:repeat(4,minmax(0,1fr));margin:18px 0 14px}.ota-monitor-metrics>div{align-items:center;display:flex;gap:9px;min-width:0;padding:13px}.ota-monitor-metrics>div+div{border-left:1px solid var(--border)}.ota-monitor-metrics svg{color:var(--primary);flex:0 0 auto}.ota-monitor-metrics span{display:grid;min-width:0}.ota-monitor-metrics small{color:var(--muted);font-size:11px}.ota-monitor-metrics strong{font-size:14px;overflow-wrap:anywhere}.ota-progress{display:grid;gap:6px}.ota-progress>i{background:#e2e8f0;display:block;height:8px;overflow:hidden}.ota-progress>i b{background:#16a34a;display:block;height:100%;transition:width .3s ease}.ota-progress>span{color:var(--muted);font-size:12px}.ota-timeline{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));margin:20px 0}.ota-timeline>div{align-items:center;color:var(--muted);display:grid;font-size:11px;gap:5px;justify-items:center;position:relative;text-align:center}.ota-timeline>div:before{background:var(--border);content:"";height:2px;left:0;position:absolute;right:0;top:14px}.ota-timeline i{align-items:center;background:var(--surface);border:2px solid var(--border);border-radius:50%;display:flex;height:30px;justify-content:center;position:relative;width:30px;z-index:1}.ota-timeline .complete{color:#15803d}.ota-timeline .complete:before{background:#22c55e}.ota-timeline .complete i{border-color:#22c55e}.ota-timeline .current{color:#c2410c;font-weight:700}.ota-timeline .current i{border-color:#f97316;color:#ea580c}.ota-monitor-grid{display:grid;gap:16px;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr)}.ota-monitor-grid h3{font-size:14px;margin:0 0 9px}.ota-download-history .table-scroll{max-height:230px;max-width:100%;overflow:auto}.ota-download-history table{width:100%}.download-http{font-size:12px;font-weight:700}.download-http.passed{color:#15803d}.download-http.failed{color:#dc2626}.ota-acceptance{align-items:center;border:1px solid;border-radius:6px;display:flex;gap:10px;margin-top:16px;padding:12px}.ota-acceptance.passed{background:#f0fdf4;border-color:#86efac;color:#166534}.ota-acceptance.waiting{background:#fff7ed;border-color:#fdba74;color:#9a3412}.ota-acceptance span{display:grid}.ota-acceptance small{color:inherit;opacity:.8}.theme-dark .ota-preflight-grid>div,.theme-dark .ota-monitor-metrics{background:#111827}.theme-dark .ota-progress>i{background:#334155}.theme-dark .ota-acceptance.passed{background:#16a34a21;color:#86efac}.theme-dark .ota-acceptance.waiting{background:#ea580c21;color:#fdba74}.command-status{background:#f1f5f9;border-radius:999px;color:#475569;display:inline-flex;font-size:12px;font-weight:600;padding:4px 8px}.command-status.queued{background:#ffedd5;color:#9a3412}.command-status.delivered{background:#e0f2fe;color:#075985}.command-status.confirmed{background:#dcfce7;color:#166534}.command-status.failed,.command-status.expired{background:#fee2e2;color:#991b1b}.command-status.cancelled{background:#f1f5f9;color:#64748b}.theme-dark .control-message{background:#ea580c1f;color:#fdba74}.theme-dark .config-target-note{background:#16a34a1f;color:#86efac}.theme-dark .config-target-note small{color:#4ade80}.theme-dark .config-risk-note{background:#ea580c1f;color:#fdba74}.theme-dark .command-status{background:#334155;color:#cbd5e1}.theme-dark .command-status.queued{background:#ea580c33;color:#fdba74}.theme-dark .command-status.delivered{background:#0ea5e92e;color:#7dd3fc}.theme-dark .command-status.confirmed{background:#22c55e2e;color:#86efac}.theme-dark .command-status.failed,.theme-dark .command-status.expired{background:#ef44442e;color:#fca5a5}code{background:#f8fafc;border:1px solid var(--border);border-radius:8px;display:block;overflow-x:auto;padding:10px}.settings-grid{display:grid;gap:14px;max-width:760px}.data-source-setting{border-bottom:1px solid var(--border);display:grid;gap:12px;margin-bottom:4px;padding-bottom:18px}.setting-heading{align-items:flex-start;display:flex;gap:12px;justify-content:space-between}.setting-heading>div{display:grid;gap:3px}.setting-heading span,.source-last-sync{color:var(--muted);font-size:13px}.source-connection{align-items:center;border:1px solid var(--border);border-radius:999px;display:inline-flex;flex:0 0 auto;min-height:30px;padding:5px 9px}.source-connection.connected{background:#ecfdf5;border-color:#bbf7d0;color:#166534}.source-connection.error{background:#fff7ed;border-color:#fed7aa;color:#9a3412}.data-source-options{display:grid;gap:10px;grid-template-columns:repeat(3,minmax(0,1fr))}.data-source-option{align-items:center;background:#fff;border:1px solid var(--border);border-radius:8px;color:#374151;display:grid;gap:3px 8px;grid-template-columns:auto 1fr auto;min-height:78px;padding:12px;text-align:left}.data-source-option svg{color:var(--muted);grid-row:1 / 3}.data-source-option span{font-weight:600}.data-source-option strong{color:#111827;font-size:20px;grid-row:1 / 3}.data-source-option small{color:var(--muted)}.data-source-option.active{background:#fff7ed;border-color:var(--orange);box-shadow:inset 0 0 0 1px var(--orange);color:var(--orange-dark)}.data-source-option.active svg,.data-source-option.active strong{color:var(--orange-dark)}.theme-dark .data-source-option{background:#0f172a;border-color:var(--border);color:#e5e7eb}.theme-dark .data-source-option strong{color:#f8fafc}.theme-dark .data-source-option.active{background:#f9731624;border-color:var(--orange);color:#fdba74}.theme-dark .source-connection.connected{background:#16a34a2e;border-color:#166534;color:#86efac}.device-data-empty{align-content:center;justify-items:center;min-height:420px;text-align:center}.device-data-empty>svg{color:var(--orange)}.device-data-empty h2,.device-data-empty p{margin:6px 0}.device-data-empty p{color:var(--muted)}.toggle-row{align-items:center;display:flex!important;gap:10px}.toggle-row input{min-height:auto;width:auto}.login-page{align-items:stretch;display:grid;grid-template-columns:minmax(360px,460px) minmax(0,1fr);min-height:100vh;position:relative}.login-theme-toggle{position:fixed;right:18px;top:18px;z-index:5}.login-language-toggle{position:fixed;right:70px;top:18px;z-index:5}.language-toggle{gap:2px;width:auto;min-width:48px;padding:0 8px}.language-toggle small,.login-language-toggle small{position:static;min-width:0;padding:0;background:transparent;color:currentColor;font-size:10px}.login-panel{border:0;border-radius:0;display:flex;flex-direction:column;justify-content:center;padding:42px}.login-brand{margin-bottom:56px}.login-copy h1{font-size:34px;margin-bottom:10px}.login-form{display:grid;gap:14px;margin-top:28px}.login-visual{align-items:center;background:linear-gradient(#7c2d128c,#7c2d1259),url(/aed-hero.png) center / cover;display:flex;justify-content:center;padding:34px}.pulse-card{color:#1f2937;display:grid;gap:10px;max-width:360px;padding:22px}.pulse-card svg{color:var(--orange)}.mobile-only,.scrim{display:none}.empty{color:var(--muted);margin:0}.empty-data{align-items:center;color:var(--muted);display:flex;gap:10px;justify-content:center;min-height:110px;padding:18px;text-align:center;width:100%}.empty-data svg{color:var(--slate);flex:0 0 auto}.data-error{align-items:center;background:#fef2f2;border:1px solid #fecaca;border-radius:8px;color:#991b1b;display:flex;gap:10px;margin-bottom:14px;padding:10px 12px}.data-error span{flex:1}.data-error button{background:transparent;border:0;color:inherit;font-weight:600}.modal-backdrop{align-items:center;background:#0f172a94;display:flex;justify-content:center;inset:0;padding:18px;position:fixed;z-index:3000}.crud-dialog{background:var(--surface);border:1px solid var(--border);border-radius:8px;box-shadow:0 24px 70px #0f172a47;max-height:calc(100vh - 36px);max-width:620px;overflow-y:auto;padding:20px;width:100%}.dialog-header,.dialog-actions,.section-title-row{align-items:center;display:flex;gap:12px;justify-content:space-between}.dialog-header h2,.section-title-row h3{margin:0}.dialog-fields,.settings-form{display:grid;gap:12px;margin:18px 0}.dialog-fields label{color:#374151;display:grid;gap:6px}.dialog-fields input,.dialog-fields select,.dialog-fields textarea{background:var(--surface);border:1px solid var(--border);border-radius:8px;color:inherit;font:inherit;min-height:42px;padding:9px 11px;resize:vertical;width:100%}.dialog-actions{justify-content:flex-end}.crud-actions{display:inline-flex;gap:6px}.icon-button.danger{color:var(--red)}.form-error{color:var(--red)!important;margin:0}.save-message{color:var(--green)}.online-history{display:grid;gap:12px;margin-top:12px}.online-history-summary{display:grid;gap:8px;grid-template-columns:repeat(3,minmax(0,1fr))}.online-history-overview{align-items:center;display:grid;gap:18px;grid-template-columns:auto minmax(0,1fr)}.uptime-ring{border-radius:50%;display:grid;height:112px;place-items:center;width:112px}.uptime-ring>span{align-content:center;background:var(--surface);border-radius:50%;display:grid;height:84px;justify-items:center;width:84px}.uptime-ring strong{font-size:20px}.uptime-ring small{color:var(--muted)}.availability-chart{margin:4px 0 8px}.availability-chart>div{background:#e2e8f0;border-radius:5px;display:flex;gap:2px;height:16px;overflow:hidden}.availability-chart i{background:var(--slate);display:block;min-width:2px}.availability-chart i.online{background:var(--green)}.availability-chart>span{color:var(--muted);display:flex;justify-content:space-between;margin-top:5px}.online-history-summary .metric{min-height:74px}.history-segments{display:grid;gap:6px;max-height:280px;overflow-y:auto}.history-segment{align-items:center;border-bottom:1px solid var(--border);display:grid;gap:9px;grid-template-columns:auto 1fr auto;padding:8px 2px}.history-segment>i{background:var(--slate);border-radius:50%;height:9px;width:9px}.history-segment>i.online{background:var(--green)}.history-segment span{display:grid}.history-segment small{color:var(--muted)}.history-segment b{font-size:12px;font-weight:500}.telemetry-section h4{margin:22px 0 10px;font-size:.9rem}.telemetry-summary,.telemetry-charts{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin:12px 0}.telemetry-charts{grid-template-columns:repeat(2,minmax(0,1fr))}.event-summary-heading{align-items:center;display:flex;gap:16px;justify-content:space-between;margin:22px 0 10px}.event-summary-heading h4,.event-summary-heading p{margin:0}.event-summary-heading p{color:var(--muted);font-size:12px;margin-top:3px}.latest-event-callout{align-items:center;background:#fff7ed;border:1px solid #fed7aa;border-radius:7px;color:var(--orange-dark);display:flex;gap:9px;padding:8px 10px}.latest-event-callout>span{display:grid}.latest-event-callout small{color:var(--muted);font-size:10px}.latest-event-callout a{align-items:center;border-left:1px solid #fed7aa;color:var(--orange-dark);display:inline-flex;gap:4px;margin-left:5px;padding-left:10px;text-decoration:none;white-space:nowrap}.incident-summary-grid{display:grid;gap:9px;grid-template-columns:repeat(4,minmax(0,1fr));margin-bottom:4px}.event-summary-card{align-items:center;background:#f8fafc;border:1px solid var(--border);border-radius:7px;display:flex;gap:9px;min-height:76px;min-width:0;padding:10px}.event-summary-card>i{align-items:center;background:#e0f2fe;border-radius:7px;color:#0284c7;display:flex;flex:0 0 auto;height:34px;justify-content:center;width:34px}.event-summary-card>span{display:grid;min-width:0}.event-summary-card small{color:var(--muted);font-size:10px;line-height:1.25}.event-summary-card strong{font-size:20px;line-height:1.15}.event-summary-card strong b{color:var(--muted);font-size:10px;font-weight:500}.event-summary-card.critical>i{background:#fee2e2;color:var(--red)}.event-summary-card.orange>i{background:#ffedd5;color:var(--orange-dark)}.event-summary-card.amber>i{background:#fef3c7;color:#b45309}.log-health-band{align-items:center;background:#fff;border:1px solid var(--border);border-left:4px solid var(--red);border-radius:8px;display:grid;gap:14px;grid-template-columns:auto minmax(0,1fr) auto;padding:18px}.log-health-band:has(.log-health-icon.online){border-left-color:var(--green)}.log-health-band h2,.log-health-band p{margin:0}.log-health-band>div:nth-child(2)>p:last-child{color:var(--muted);margin-top:4px}.log-health-icon{align-items:center;background:#fee2e2;border-radius:8px;color:var(--red);display:flex;height:48px;justify-content:center;width:48px}.log-health-icon.online{background:#dcfce7;color:var(--green)}.log-summary-grid{display:grid;gap:12px;grid-template-columns:repeat(4,minmax(0,1fr))}.log-metric{align-items:center;background:#fff;border:1px solid var(--border);border-radius:8px;display:grid;gap:3px 10px;grid-template-columns:auto 1fr;padding:14px}.log-metric>i{align-items:center;background:#e0f2fe;border-radius:7px;color:#0284c7;display:flex;grid-row:1 / 3;height:38px;justify-content:center;width:38px}.log-metric.green>i{background:#dcfce7;color:var(--green)}.log-metric.red>i{background:#fee2e2;color:var(--red)}.log-metric.orange>i{background:#ffedd5;color:var(--orange-dark)}.log-metric span{color:var(--muted);font-size:11px}.log-metric strong{font-size:22px}.logs-toolbar{align-items:center;display:grid;gap:10px;grid-template-columns:auto minmax(240px,1fr) minmax(140px,auto);margin-bottom:14px}.logs-toolbar .search-box{min-height:40px}.logs-toolbar>select{background:var(--surface);border:1px solid var(--border);border-radius:8px;color:var(--text);min-height:40px;padding:8px}.segmented-control{background:#f1f5f9;border-radius:7px;display:flex;gap:2px;padding:3px}.segmented-control button{background:transparent;border:0;border-radius:5px;color:var(--muted);min-height:34px;padding:6px 10px}.segmented-control button.active{background:#fff;box-shadow:0 1px 4px #0f172a1f;color:var(--orange-dark);font-weight:600}.log-table-wrap{max-height:610px;overflow:auto}.log-table{border-collapse:collapse;min-width:1000px;width:100%}.log-table th{background:#f8fafc;color:var(--muted);font-size:11px;position:sticky;text-align:left;top:0;z-index:1}.log-table th,.log-table td{border-bottom:1px solid var(--border);padding:10px;vertical-align:top}.log-table td>small,.log-table td>strong{display:block}.log-table td>small{color:var(--muted);margin-top:3px;max-width:280px;overflow-wrap:anywhere}.log-status,.audit-action{border-radius:999px;display:inline-flex;font-size:11px;font-weight:600;padding:4px 7px}.log-status.accepted{background:#dcfce7;color:#166534}.log-status.rejected{background:#fee2e2;color:#991b1b}.audit-list{display:grid;gap:7px;max-height:610px;overflow-y:auto}.audit-entry{border:1px solid var(--border);border-radius:7px}.audit-entry summary{align-items:center;cursor:pointer;display:grid;gap:12px;grid-template-columns:80px minmax(180px,1fr) minmax(180px,1fr) auto;list-style:none;padding:11px}.audit-entry summary::-webkit-details-marker{display:none}.audit-entry summary>span{display:grid;min-width:0}.audit-entry summary small{color:var(--muted)}.audit-action{background:#e0f2fe;color:#0369a1;justify-content:center}.audit-action.delete,.audit-action.failed{background:#fee2e2;color:#991b1b}.audit-action.update{background:#fef3c7;color:#92400e}.audit-action.login{background:#dcfce7;color:#166534}.audit-entry[open] summary>svg{transform:rotate(90deg)}.audit-detail{background:#f8fafc;border-top:1px solid var(--border);padding:12px}.audit-detail>div{display:grid;gap:10px;grid-template-columns:repeat(2,minmax(0,1fr))}.audit-detail h4{font-size:12px;margin:0 0 5px}.audit-detail pre{background:#111827;border-radius:6px;color:#e5e7eb;font-size:11px;margin:0;max-height:220px;overflow:auto;padding:10px;white-space:pre-wrap}.audit-detail>small{color:var(--muted);display:block;margin-top:10px;overflow-wrap:anywhere}.theme-dark .log-health-band,.theme-dark .log-metric,.theme-dark .segmented-control button.active{background:var(--surface)}.theme-dark .segmented-control,.theme-dark .log-table th,.theme-dark .audit-detail{background:#111827}.telemetry-chart{min-width:0;padding:12px;border:1px solid var(--border);border-radius:6px;background:var(--surface-soft)}.device-daily-report{color:#172033;font-family:Kanit,Tahoma,sans-serif;left:-100000px;position:fixed;top:0;width:794px;z-index:-1}.daily-report-sheet{background:#fff;color:#172033;height:1123px;overflow:hidden;padding:42px 46px 34px;position:relative;width:794px}.daily-report-content{height:100%}.daily-report-sheet>footer{align-items:center;border-top:1px solid #e2e8f0;bottom:17px;color:#64748b;display:flex;font-size:10px;justify-content:space-between;left:46px;padding-top:7px;position:absolute;right:46px}.pdf-report-header{align-items:center;border-bottom:3px solid #ea580c;display:grid;gap:12px;grid-template-columns:auto 1fr auto;padding-bottom:17px}.pdf-report-header.compact{padding-bottom:12px}.pdf-brand-mark{align-items:center;background:#ea580c;border-radius:7px;color:#fff;display:flex;height:46px;justify-content:center;width:46px}.pdf-report-header p,.pdf-report-header h1{margin:0}.pdf-report-header p{color:#64748b;font-size:11px}.pdf-report-header h1{font-size:22px;letter-spacing:0}.pdf-report-header.compact h1{font-size:18px}.pdf-report-header>span{display:grid;text-align:right}.pdf-report-header>span small{color:#64748b;font-size:10px}.pdf-report-header>span strong{font-size:13px}.pdf-device-band{background:#f8fafc;border:1px solid #e2e8f0;display:grid;gap:12px;grid-template-columns:repeat(4,minmax(0,1fr));margin-top:16px;padding:12px}.pdf-device-band div{display:grid;min-width:0}.pdf-device-band small{color:#64748b;font-size:9px}.pdf-device-band strong{font-size:11px;overflow-wrap:anywhere}.pdf-section-title{color:#334155;font-size:15px;margin:20px 0 10px}.pdf-detail-section{border:1px solid #e2e8f0;margin-top:10px}.pdf-detail-section h3{background:#f8fafc;border-left:4px solid #ea580c;color:#334155;font-size:11px;margin:0;padding:6px 9px}.pdf-detail-section dl{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));margin:0}.pdf-detail-section dl>div{border-right:1px solid #e2e8f0;border-top:1px solid #e2e8f0;display:grid;min-height:43px;padding:6px 8px}.pdf-detail-section dl>div:nth-child(4n){border-right:0}.pdf-detail-section dt{color:#64748b;font-size:8px}.pdf-detail-section dd{font-size:10px;font-weight:600;margin:1px 0 0;overflow-wrap:anywhere}.pdf-metric-grid,.pdf-event-summary{display:grid;gap:8px;grid-template-columns:repeat(3,minmax(0,1fr))}.pdf-metric{border:1px solid #e2e8f0;border-left:4px solid #ea580c;display:grid;padding:9px 11px}.pdf-metric.critical{border-left-color:#dc2626}.pdf-metric small{color:#64748b;font-size:9px}.pdf-metric strong{font-size:18px}.pdf-time-range{align-items:center;background:#f8fafc;display:grid;gap:14px;grid-template-columns:1fr 70px 1fr;margin-top:12px;padding:10px 14px}.pdf-time-range>div{align-items:center;display:flex;gap:9px}.pdf-time-range>div>span{display:grid}.pdf-time-range small{color:#64748b;font-size:9px}.pdf-time-range strong{font-size:11px}.pdf-time-range>i{background:#cbd5e1;height:1px}.pdf-chart-grid{display:grid;gap:10px;grid-template-columns:repeat(2,minmax(0,1fr));margin-top:13px}.device-daily-report .telemetry-chart{background:#fff;border-color:#e2e8f0;padding:9px}.device-daily-report .telemetry-chart svg{height:104px}.device-daily-report .telemetry-chart line{stroke:#e2e8f0}.device-daily-report .telemetry-chart small{color:#64748b}.pdf-hourly-chart{align-items:end;border-bottom:1px solid #cbd5e1;display:grid;gap:4px;grid-template-columns:repeat(24,1fr);height:110px;padding:0 3px}.pdf-hourly-chart>div{align-items:center;display:grid;gap:4px;grid-template-rows:86px auto;height:100%}.pdf-hourly-chart i{align-items:end;display:flex;height:86px}.pdf-hourly-chart b{background:#ea580c;display:block;width:100%}.pdf-hourly-chart span{color:#64748b;font-size:7px;text-align:center}.pdf-legend-row{color:#64748b;display:flex;font-size:9px;justify-content:space-between;margin-top:8px}.pdf-legend-row span{align-items:center;display:flex;gap:5px}.pdf-legend-row i{background:#16a34a;border-radius:50%;height:7px;width:7px}.pdf-status-grid{display:grid;gap:9px;grid-template-columns:repeat(4,minmax(0,1fr))}.pdf-status-grid>div{background:#f8fafc;border-top:3px solid #0284c7;display:grid;padding:12px}.pdf-status-grid span,.pdf-status-grid small{color:#64748b;font-size:9px}.pdf-status-grid strong{font-size:20px}.pdf-uptime-bar{margin:20px 0 4px}.pdf-uptime-bar>i{background:#fee2e2;display:block;height:15px;overflow:hidden}.pdf-uptime-bar>i b{background:#16a34a;display:block;height:100%}.pdf-uptime-bar>span{display:flex;font-size:10px;justify-content:space-between;margin-top:6px}.pdf-uptime-bar small{color:#64748b}.pdf-table{border-collapse:collapse;table-layout:fixed;width:100%}.pdf-table th{background:#172033;color:#fff;font-size:9px;padding:7px 8px;text-align:left}.pdf-table td{border-bottom:1px solid #e2e8f0;font-size:9px;height:35px;overflow-wrap:anywhere;padding:6px 8px;vertical-align:middle}.pdf-table td small{color:#64748b;display:block;font-size:7px;line-height:1.25}.pdf-state{font-weight:600}.pdf-state.online{color:#15803d}.pdf-state.offline{color:#dc2626}.pdf-range-grid{display:grid;gap:10px;grid-template-columns:repeat(3,1fr)}.pdf-range-grid>div{align-items:center;background:#fff7ed;color:#c2410c;display:flex;gap:12px;padding:14px}.pdf-range-grid span{color:#64748b;display:grid;font-size:9px}.pdf-range-grid strong{color:#172033;font-size:14px}.pdf-event-summary{margin-bottom:14px}.pdf-note{background:#f8fafc;color:#64748b;font-size:9px;margin:0 0 12px;padding:8px 10px}.pdf-telemetry-table th:nth-child(1){width:70px}.pdf-telemetry-table th:nth-child(2){width:78px}.pdf-telemetry-table th:nth-child(3),.pdf-telemetry-table th:nth-child(4){width:62px}.pdf-telemetry-table th:nth-child(5){width:78px}.pdf-telemetry-table th:nth-child(6){width:72px}.telemetry-chart>div{display:flex;justify-content:space-between;gap:12px;font-size:.82rem}.telemetry-chart svg{display:block;width:100%;height:120px;margin-top:8px}.telemetry-chart line{stroke:var(--border);stroke-width:1}.telemetry-chart small,.table-note{color:var(--muted)}.telemetry-events{max-height:280px;overflow-y:auto;border:1px solid var(--border);border-radius:6px}.telemetry-event{display:grid;grid-template-columns:auto minmax(0,1fr) auto auto;align-items:center;gap:12px;padding:11px 12px;border-bottom:1px solid var(--border)}.event-analysis-grid{align-items:start;display:grid;gap:14px;grid-template-columns:minmax(0,1.35fr) minmax(260px,.65fr)}.event-marker{align-items:center;background:#e0f2fe;border-radius:6px;color:#0284c7;display:flex;height:30px;justify-content:center;width:30px}.event-marker.critical{background:#fee2e2;color:var(--red)}.event-distribution{border:1px solid var(--border);border-radius:6px;margin-top:22px;min-height:160px;padding:12px}.event-distribution h4{margin-top:0}.event-bar{display:grid;gap:5px;margin-bottom:12px}.event-bar>span{color:var(--muted);display:flex;font-size:12px;justify-content:space-between}.event-bar>span strong{color:var(--text)}.event-bar>i{background:#e2e8f0;border-radius:999px;height:8px;overflow:hidden}.event-bar>i>b{background:var(--orange);border-radius:inherit;display:block;height:100%}.telemetry-event:last-child{border-bottom:0}.telemetry-event div,.telemetry-event small{display:block;min-width:0}.telemetry-event .event-detail{color:var(--text);font-size:11px;margin-top:5px;opacity:.78;overflow-wrap:anywhere}.telemetry-event small{margin-top:3px;color:var(--muted)}.telemetry-event a,.telemetry-table-wrap a{color:var(--accent);text-decoration:none}.telemetry-event a{display:inline-flex;align-items:center;gap:4px;white-space:nowrap}.telemetry-table-wrap{max-height:360px;overflow:auto;border:1px solid var(--border);border-radius:6px}.telemetry-table-wrap table{min-width:920px}.telemetry-table-wrap th{position:sticky;top:0;z-index:1;background:var(--surface)}.theme-dark .crud-dialog,.theme-dark .dialog-fields input,.theme-dark .dialog-fields select,.theme-dark .dialog-fields textarea{background:var(--surface);border-color:var(--border);color:#e5e7eb}.theme-dark .dialog-fields label{color:#cbd5e1}.theme-dark .devices-overview{background:#1f2937;border-color:#9a3412}.theme-dark .device-stat-strip>div{border-color:#475569}.theme-dark .device-list-head,.theme-dark .device-detail-hero,.theme-dark .telemetry-chart{background:#111827}.theme-dark .device-meta-chips span,.theme-dark .device-health-metric,.theme-dark .uptime-ring>span,.theme-dark .device-detail-modal-header{background:var(--surface)}.theme-dark .device-health-metric,.theme-dark .device-detail-hero,.theme-dark .event-distribution,.theme-dark .telemetry-events,.theme-dark .telemetry-table-wrap{border-color:var(--border)}.theme-dark .event-summary-card{background:#111827}.theme-dark .latest-event-callout{background:#9a34122e;border-color:#9a3412}.data-table td>.empty-data{min-height:80px}@media(max-width:1180px){.control-form,.artifact-form,.config-field-grid,.log-summary-grid,.ota-monitor-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}.ota-monitor-metrics>div:nth-child(3){border-left:0;border-top:1px solid var(--border)}.ota-monitor-metrics>div:nth-child(4){border-top:1px solid var(--border)}.ota-monitor-grid,.devices-overview{grid-template-columns:1fr}.device-health-grid,.device-information-section .info-grid,.incident-summary-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.summary-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.dashboard-grid,.split-layout,.map-page-grid,.reports-analytics-grid{grid-template-columns:1fr}.detail-panel{position:static}.three-col,.report-metric-grid,.report-grid,.api-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:760px){.public-profile-heading{display:grid}.public-profile-heading .secondary-button{justify-content:center;width:100%}.public-profile-language,.public-profile-options{grid-template-columns:1fr}.public-profile-form label.wide{grid-column:auto}.public-profile-form .button-row{display:grid;grid-template-columns:1fr 1fr}.public-profile-form .button-row button{justify-content:center}.device-delete-confirm-backdrop{align-items:flex-end;padding:0}.device-delete-confirm{border-radius:8px 8px 0 0;padding:20px 16px calc(20px + env(safe-area-inset-bottom))}.device-delete-confirm .button-row{display:grid;grid-template-columns:1fr 1fr}.control-form,.artifact-form,.config-target-row,.config-field-grid,.config-field-grid.three-fields,.config-submit-row{grid-template-columns:1fr}.config-section{padding:18px 0}.config-submit-row .primary-button{width:100%}.artifact-form .artifact-signature,.artifact-form .artifact-file{grid-column:auto}.artifact-list article{align-items:stretch;flex-direction:column}.artifact-list article button{justify-content:center;width:100%}.ota-preflight-grid{grid-template-columns:1fr}.ota-timeline{grid-template-columns:repeat(3,minmax(0,1fr));row-gap:14px}.ota-monitor-heading{align-items:stretch;flex-direction:column}.ota-monitor-heading .command-status{align-self:flex-start}.ota-manifest-live code{max-height:180px}.map-device-summary{position:static}.map-summary-header{padding:16px}.map-summary-location{padding:16px 16px 14px}.map-connection-banner{padding:11px 16px}.map-summary-metrics{margin:0 16px}.map-summary-actions{padding:16px}.log-health-band{align-items:start;grid-template-columns:auto minmax(0,1fr)}.log-health-band>button{grid-column:1 / -1;justify-content:center;width:100%}.log-summary-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.logs-toolbar{grid-template-columns:1fr}.segmented-control button{flex:1}.audit-entry summary{grid-template-columns:72px minmax(0,1fr) auto}.audit-entry summary>span:nth-child(3){grid-column:2 / -1}.audit-detail>div{grid-template-columns:1fr}.app-shell{display:block}.setting-heading{display:grid}.source-connection{justify-self:start}.data-source-options{grid-template-columns:1fr}.data-source-option{min-height:64px}.device-data-empty{min-height:360px}.modal-backdrop{align-items:flex-end;padding:0}.crud-dialog{border-radius:8px 8px 0 0;max-height:90vh}.device-detail-modal-backdrop{align-items:stretch;padding:0}.device-detail-modal{border:0;border-radius:0;max-height:100dvh;width:100vw}.device-detail-modal-header{padding:12px 14px}.device-detail-modal-header h2{font-size:18px}.device-detail-modal-content{padding:14px}.devices-overview{gap:14px;padding:15px}.device-stat-strip{grid-template-columns:repeat(2,minmax(0,1fr))}.device-stat-strip>div{border-bottom:1px solid #fed7aa;padding:9px}.device-list-head{display:none}.devices-page-layout .device-row{grid-template-columns:minmax(0,1fr) auto;padding:13px}.devices-page-layout .device-identity{grid-column:1 / -1}.devices-page-layout .device-org{grid-column:1}.devices-page-layout .battery-cell,.devices-page-layout .connection-cell{grid-column:1 / -1}.devices-page-layout .device-row-action{grid-column:2;grid-row:2}.device-detail-hero{align-items:start;grid-template-columns:auto minmax(0,1fr);padding:14px}.device-hero-actions{align-items:center;display:flex;grid-column:1 / -1;justify-content:space-between;justify-items:stretch}.daily-export-toolbar{align-items:stretch;grid-template-columns:1fr}.daily-export-toolbar label{width:100%}.device-health-grid,.device-information-section .info-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.device-health-metric{align-content:start;grid-template-columns:1fr}.device-health-metric>div{grid-column:1}.online-history-summary,.online-history-overview,.event-analysis-grid{grid-template-columns:1fr}.uptime-ring{justify-self:center}.telemetry-summary,.telemetry-charts{grid-template-columns:repeat(2,minmax(0,1fr))}.event-summary-heading{align-items:stretch;flex-direction:column}.latest-event-callout{width:100%}.latest-event-callout>span{flex:1}.incident-summary-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.telemetry-chart svg{height:90px}.telemetry-event{grid-template-columns:auto minmax(0,1fr) auto}.telemetry-event a{grid-column:2 / -1}.sidebar{bottom:0;box-shadow:0 20px 50px #0f172a38;left:0;max-width:86vw;position:fixed;top:0;transform:translate(-105%);transition:transform .16s ease}.sidebar.open{transform:translate(0)}.scrim{align-items:center;background:#0f172a6b;color:#fff;display:flex;justify-content:flex-end;inset:0;padding:18px;position:fixed;z-index:1100}.main{padding:14px 14px 96px}.site-footer{display:none}.mobile-footer-nav{align-items:center;background:#fffffff5;border-top:1px solid var(--border);bottom:0;box-shadow:0 -12px 30px #0f172a1f;display:grid;gap:2px;grid-template-columns:repeat(5,minmax(0,1fr));left:0;padding:8px 8px calc(8px + env(safe-area-inset-bottom));position:fixed;right:0;z-index:1000}.mobile-footer-item{align-items:center;background:transparent;border:0;border-radius:8px;color:var(--muted);display:grid;gap:3px;justify-items:center;min-height:54px;padding:6px 4px}.mobile-footer-item span{font-size:11px;line-height:1.15;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.mobile-footer-item.active{background:#fff7ed;color:var(--orange-dark);font-weight:600}.mobile-only{display:grid;position:relative;z-index:1300}.topbar{align-items:center}.topbar h1{font-size:22px}.topbar-actions .live-chip{display:none}.summary-grid,.three-col,.maintenance-grid,.org-grid,.report-grid,.api-grid,.filter-grid,.report-metric-grid,.reports-analytics-grid,.metric-grid{grid-template-columns:1fr}.chart-panel{min-height:0}.pie-chart-row{gap:16px;grid-template-columns:1fr;justify-items:center;min-height:0}.pie-chart{max-width:190px}.chart-legend{width:100%}.bar-row{gap:8px;grid-template-columns:82px minmax(0,1fr) 32px}.dashboard-page{gap:12px}.dashboard-intro{align-items:flex-start;flex-direction:column;gap:12px;min-height:132px;padding:16px}.dashboard-intro h2{font-size:20px}.dashboard-intro-stat{align-items:center;grid-template-columns:auto 1fr;justify-items:start;min-width:0;width:100%}.dashboard-intro-stat strong{font-size:30px;margin-right:10px}.dashboard-page .summary-grid{gap:10px;grid-template-columns:repeat(2,minmax(0,1fr))}.dashboard-page .summary-card{align-content:center;gap:6px;min-height:96px;padding:12px;position:relative}.dashboard-page .summary-card:first-child{align-items:center;display:grid;grid-column:1 / -1;grid-template-columns:42px 1fr auto;min-height:74px}.dashboard-page .summary-card:first-child span{align-self:end}.dashboard-page .summary-card:first-child strong{align-self:center;font-size:34px;grid-column:3;grid-row:1 / span 2}.dashboard-page .summary-card div{height:34px;width:34px}.dashboard-page .summary-card strong{font-size:26px}.dashboard-page .summary-card span{font-size:13px;line-height:1.25}.dashboard-page .dashboard-grid,.dashboard-page .three-col{gap:12px}.dashboard-page .panel{padding:14px}.dashboard-page .panel-header{align-items:center;flex-direction:row;gap:10px;margin-bottom:12px}.dashboard-page .panel-header h2,.dashboard-page .panel h2{font-size:17px}.dashboard-page .panel-header .ghost-button{min-height:32px;padding:6px 9px}.map-tools-header{align-items:stretch;flex-direction:column;gap:10px;margin-bottom:12px}.map-tools-header h2{font-size:18px}.map-action-row{display:grid;gap:8px;grid-template-columns:1fr;justify-content:stretch}.emergency-call-button{min-height:46px;width:100%}.locate-button{justify-content:center;min-height:46px;width:100%}.nearby-strip{display:flex;gap:10px;margin:0 -14px 12px;overflow-x:auto;padding:0 14px 4px;scroll-snap-type:x mandatory}.nearby-card{flex:0 0 76%;min-height:82px;scroll-snap-align:start}.location-error{font-size:13px;margin-bottom:10px!important}.dashboard-page .map-legend{bottom:10px;gap:7px;left:10px;max-width:calc(100% - 20px);padding:7px 8px;z-index:2}.dashboard-page .map-legend span{font-size:11px}.dashboard-page .alert-row{align-items:flex-start;padding:10px}.dashboard-alert-panel .list-stack,.dashboard-info-panel .list-stack{max-height:280px}.dashboard-page .compact-row{padding:7px 0 9px}.dashboard-page .compact-row strong,.dashboard-page .alert-row strong{font-size:14px;line-height:1.3}.dashboard-page .compact-row small,.dashboard-page .alert-row small{font-size:12px;line-height:1.35}.toolbar,.alert-card,.panel-header{align-items:stretch;flex-direction:column}.button-row{flex-wrap:wrap}.data-table-wrap{max-height:420px;margin:0 -2px}.data-table{min-width:760px}.data-table th,.data-table td{padding:10px 12px}.maintenance-page .panel{padding:14px}.device-row{align-items:start;grid-template-columns:1fr}.device-table,.user-table{max-height:520px}.detail-panel{max-height:680px}.alert-list,.maintenance-grid,.org-grid,.report-grid,.api-grid{max-height:520px}.real-map,.large-map .real-map{height:420px}.dashboard-page .real-map{height:300px}.login-page{grid-template-columns:1fr}.login-panel{min-height:100vh;padding:28px 18px}.login-visual{display:none}.login-copy h1{font-size:28px}}
