.leaflet-pane,.leaflet-tile,.leaflet-marker-icon,.leaflet-marker-shadow,.leaflet-tile-container,.leaflet-pane>svg,.leaflet-pane>canvas,.leaflet-zoom-box,.leaflet-image-layer,.leaflet-layer{position:absolute;left:0;top:0}.leaflet-container{overflow:hidden}.leaflet-tile,.leaflet-marker-icon,.leaflet-marker-shadow{-webkit-user-select:none;-moz-user-select:none;user-select:none;-webkit-user-drag:none}.leaflet-tile::selection{background:transparent}.leaflet-safari .leaflet-tile{image-rendering:-webkit-optimize-contrast}.leaflet-safari .leaflet-tile-container{width:1600px;height:1600px;-webkit-transform-origin:0 0}.leaflet-marker-icon,.leaflet-marker-shadow{display:block}.leaflet-container .leaflet-overlay-pane svg{max-width:none!important;max-height:none!important}.leaflet-container .leaflet-marker-pane img,.leaflet-container .leaflet-shadow-pane img,.leaflet-container .leaflet-tile-pane img,.leaflet-container img.leaflet-image-layer,.leaflet-container .leaflet-tile{max-width:none!important;max-height:none!important;width:auto;padding:0}.leaflet-container img.leaflet-tile{mix-blend-mode:plus-lighter}.leaflet-container.leaflet-touch-zoom{-ms-touch-action:pan-x pan-y;touch-action:pan-x pan-y}.leaflet-container.leaflet-touch-drag{-ms-touch-action:pinch-zoom;touch-action:none;touch-action:pinch-zoom}.leaflet-container.leaflet-touch-drag.leaflet-touch-zoom{-ms-touch-action:none;touch-action:none}.leaflet-container{-webkit-tap-highlight-color:transparent}.leaflet-container a{-webkit-tap-highlight-color:rgba(51,181,229,.4)}.leaflet-tile{filter:inherit;visibility:hidden}.leaflet-tile-loaded{visibility:inherit}.leaflet-zoom-box{width:0;height:0;-moz-box-sizing:border-box;box-sizing:border-box;z-index:800}.leaflet-overlay-pane svg{-moz-user-select:none}.leaflet-pane{z-index:400}.leaflet-tile-pane{z-index:200}.leaflet-overlay-pane{z-index:400}.leaflet-shadow-pane{z-index:500}.leaflet-marker-pane{z-index:600}.leaflet-tooltip-pane{z-index:650}.leaflet-popup-pane{z-index:700}.leaflet-map-pane canvas{z-index:100}.leaflet-map-pane svg{z-index:200}.leaflet-vml-shape{width:1px;height:1px}.lvml{behavior:url(#default#VML);display:inline-block;position:absolute}.leaflet-control{position:relative;z-index:800;pointer-events:visiblePainted;pointer-events:auto}.leaflet-top,.leaflet-bottom{position:absolute;z-index:1000;pointer-events:none}.leaflet-top{top:0}.leaflet-right{right:0}.leaflet-bottom{bottom:0}.leaflet-left{left:0}.leaflet-control{float:left;clear:both}.leaflet-right .leaflet-control{float:right}.leaflet-top .leaflet-control{margin-top:10px}.leaflet-bottom .leaflet-control{margin-bottom:10px}.leaflet-left .leaflet-control{margin-left:10px}.leaflet-right .leaflet-control{margin-right:10px}.leaflet-fade-anim .leaflet-popup{opacity:0;-webkit-transition:opacity .2s linear;-moz-transition:opacity .2s linear;transition:opacity .2s linear}.leaflet-fade-anim .leaflet-map-pane .leaflet-popup{opacity:1}.leaflet-zoom-animated{-webkit-transform-origin:0 0;-ms-transform-origin:0 0;transform-origin:0 0}svg.leaflet-zoom-animated{will-change:transform}.leaflet-zoom-anim .leaflet-zoom-animated{-webkit-transition:-webkit-transform .25s cubic-bezier(0,0,.25,1);-moz-transition:-moz-transform .25s cubic-bezier(0,0,.25,1);transition:transform .25s cubic-bezier(0,0,.25,1)}.leaflet-zoom-anim .leaflet-tile,.leaflet-pan-anim .leaflet-tile{-webkit-transition:none;-moz-transition:none;transition:none}.leaflet-zoom-anim .leaflet-zoom-hide{visibility:hidden}.leaflet-interactive{cursor:pointer}.leaflet-grab{cursor:-webkit-grab;cursor:-moz-grab;cursor:grab}.leaflet-crosshair,.leaflet-crosshair .leaflet-interactive{cursor:crosshair}.leaflet-popup-pane,.leaflet-control{cursor:auto}.leaflet-dragging .leaflet-grab,.leaflet-dragging .leaflet-grab .leaflet-interactive,.leaflet-dragging .leaflet-marker-draggable{cursor:move;cursor:-webkit-grabbing;cursor:-moz-grabbing;cursor:grabbing}.leaflet-marker-icon,.leaflet-marker-shadow,.leaflet-image-layer,.leaflet-pane>svg path,.leaflet-tile-container{pointer-events:none}.leaflet-marker-icon.leaflet-interactive,.leaflet-image-layer.leaflet-interactive,.leaflet-pane>svg path.leaflet-interactive,svg.leaflet-image-layer.leaflet-interactive path{pointer-events:visiblePainted;pointer-events:auto}.leaflet-container{background:#ddd;outline-offset:1px}.leaflet-container a{color:#0078a8}.leaflet-zoom-box{border:2px dotted #38f;background:#ffffff80}.leaflet-container{font-family:Helvetica Neue,Arial,Helvetica,sans-serif;font-size:12px;font-size:.75rem;line-height:1.5}.leaflet-bar{box-shadow:0 1px 5px #000000a6;border-radius:4px}.leaflet-bar a{background-color:#fff;border-bottom:1px solid #ccc;width:26px;height:26px;line-height:26px;display:block;text-align:center;text-decoration:none;color:#000}.leaflet-bar a,.leaflet-control-layers-toggle{background-position:50% 50%;background-repeat:no-repeat;display:block}.leaflet-bar a:hover,.leaflet-bar a:focus{background-color:#f4f4f4}.leaflet-bar a:first-child{border-top-left-radius:4px;border-top-right-radius:4px}.leaflet-bar a:last-child{border-bottom-left-radius:4px;border-bottom-right-radius:4px;border-bottom:none}.leaflet-bar a.leaflet-disabled{cursor:default;background-color:#f4f4f4;color:#bbb}.leaflet-touch .leaflet-bar a{width:30px;height:30px;line-height:30px}.leaflet-touch .leaflet-bar a:first-child{border-top-left-radius:2px;border-top-right-radius:2px}.leaflet-touch .leaflet-bar a:last-child{border-bottom-left-radius:2px;border-bottom-right-radius:2px}.leaflet-control-zoom-in,.leaflet-control-zoom-out{font:700 18px Lucida Console,Monaco,monospace;text-indent:1px}.leaflet-touch .leaflet-control-zoom-in,.leaflet-touch .leaflet-control-zoom-out{font-size:22px}.leaflet-control-layers{box-shadow:0 1px 5px #0006;background:#fff;border-radius:5px}.leaflet-control-layers-toggle{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABoAAAAaCAQAAAADQ4RFAAACf0lEQVR4AY1UM3gkARTePdvdoTxXKc+qTl3aU5U6b2Kbkz3Gtq3Zw6ziLGNPzrYx7946Tr6/ee/XeCQ4D3ykPtL5tHno4n0d/h3+xfuWHGLX81cn7r0iTNzjr7LrlxCqPtkbTQEHeqOrTy4Yyt3VCi/IOB0v7rVC7q45Q3Gr5K6jt+3Gl5nCoDD4MtO+j96Wu8atmhGqcNGHObuf8OM/x3AMx38+4Z2sPqzCxRFK2aF2e5Jol56XTLyggAMTL56XOMoS1W4pOyjUcGGQdZxU6qRh7B9Zp+PfpOFlqt0zyDZckPi1ttmIp03jX8gyJ8a/PG2yutpS/Vol7peZIbZcKBAEEheEIAgFbDkz5H6Zrkm2hVWGiXKiF4Ycw0RWKdtC16Q7qe3X4iOMxruonzegJzWaXFrU9utOSsLUmrc0YjeWYjCW4PDMADElpJSSQ0vQvA1Tm6/JlKnqFs1EGyZiFCqnRZTEJJJiKRYzVYzJck2Rm6P4iH+cmSY0YzimYa8l0EtTODFWhcMIMVqdsI2uiTvKmTisIDHJ3od5GILVhBCarCfVRmo4uTjkhrhzkiBV7SsaqS+TzrzM1qpGGUFt28pIySQHR6h7F6KSwGWm97ay+Z+ZqMcEjEWebE7wxCSQwpkhJqoZA5ivCdZDjJepuJ9IQjGGUmuXJdBFUygxVqVsxFsLMbDe8ZbDYVCGKxs+W080max1hFCarCfV+C1KATwcnvE9gRRuMP2prdbWGowm1KB1y+zwMMENkM755cJ2yPDtqhTI6ED1M/82yIDtC/4j4BijjeObflpO9I9MwXTCsSX8jWAFeHr05WoLTJ5G8IQVS/7vwR6ohirYM7f6HzYpogfS3R2OAAAAAElFTkSuQmCC);width:36px;height:36px}.leaflet-retina .leaflet-control-layers-toggle{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADQAAAA0CAQAAABvcdNgAAAEsklEQVR4AWL4TydIhpZK1kpWOlg0w3ZXP6D2soBtG42jeI6ZmQTHzAxiTbSJsYLjO9HhP+WOmcuhciVnmHVQcJnp7DFvScowZorad/+V/fVzMdMT2g9Cv9guXGv/7pYOrXh2U+RRR3dSd9JRx6bIFc/ekqHI29JC6pJ5ZEh1yWkhkbcFeSjxgx3L2m1cb1C7bceyxA+CNjT/Ifff+/kDk2u/w/33/IeCMOSaWZ4glosqT3DNnNZQ7Cs58/3Ce5HL78iZH/vKVIaYlqzfdLu8Vi7dnvUbEza5Idt36tquZFldl6N5Z/POLof0XLK61mZCmJSWjVF9tEjUluu74IUXvgttuVIHE7YxSkaYhJZam7yiM9Pv82JYfl9nptxZaxMJE4YSPty+vF0+Y2up9d3wwijfjZbabqm/3bZ9ecKHsiGmRflnn1MW4pjHf9oLufyn2z3y1D6n8g8TZhxyzipLNPnAUpsOiuWimg52psrTZYnOWYNDTMuWBWa0tJb4rgq1UvmutpaYEbZlwU3CLJm/ayYjHW5/h7xWLn9Hh1vepDkyf7dE7MtT5LR4e7yYpHrkhOUpEfssBLq2pPhAqoSWKUkk7EDqkmK6RrCEzqDjhNDWNE+XSMvkJRDWlZTmCW0l0PHQGRZY5t1L83kT0Y3l2SItk5JAWHl2dCOBm+fPu3fo5/3v61RMCO9Jx2EEYYhb0rmNQMX/vm7gqOEJLcXTGw3CAuRNeyaPWwjR8PRqKQ1PDA/dpv+on9Shox52WFnx0KY8onHayrJzm87i5h9xGw/tfkev0jGsQizqezUKjk12hBMKJ4kbCqGPVNXudyyrShovGw5CgxsRICxF6aRmSjlBnHRzg7Gx8fKqEubI2rahQYdR1YgDIRQO7JvQyD52hoIQx0mxa0ODtW2Iozn1le2iIRdzwWewedyZzewidueOGqlsn1MvcnQpuVwLGG3/IR1hIKxCjelIDZ8ldqWz25jWAsnldEnK0Zxro19TGVb2ffIZEsIO89EIEDvKMPrzmBOQcKQ+rroye6NgRRxqR4U8EAkz0CL6uSGOm6KQCdWjvjRiSP1BPalCRS5iQYiEIvxuBMJEWgzSoHADcVMuN7IuqqTeyUPq22qFimFtxDyBBJEwNyt6TM88blFHao/6tWWhuuOM4SAK4EI4QmFHA+SEyWlp4EQoJ13cYGzMu7yszEIBOm2rVmHUNqwAIQabISNMRstmdhNWcFLsSm+0tjJH1MdRxO5Nx0WDMhCtgD6OKgZeljJqJKc9po8juskR9XN0Y1lZ3mWjLR9JCO1jRDMd0fpYC2VnvjBSEFg7wBENc0R9HFlb0xvF1+TBEpF68d+DHR6IOWVv2BECtxo46hOFUBd/APU57WIoEwJhIi2CdpyZX0m93BZicktMj1AS9dClteUFAUNUIEygRZCtik5zSxI9MubTBH1GOiHsiLJ3OCoSZkILa9PxiN0EbvhsAo8tdAf9Seepd36lGWHmtNANTv5Jd0z4QYyeo/UEJqxKRpg5LZx6btLPsOaEmdMyxYdlc8LMaJnikDlhclqmPiQnTEpLUIZEwkRagjYkEibQErwhkTAKCLQEbUgkzJQWc/0PstHHcfEdQ+UAAAAASUVORK5CYII=);background-size:26px 26px}.leaflet-touch .leaflet-control-layers-toggle{width:44px;height:44px}.leaflet-control-layers .leaflet-control-layers-list,.leaflet-control-layers-expanded .leaflet-control-layers-toggle{display:none}.leaflet-control-layers-expanded .leaflet-control-layers-list{display:block;position:relative}.leaflet-control-layers-expanded{padding:6px 10px 6px 6px;color:#333;background:#fff}.leaflet-control-layers-scrollbar{overflow-y:scroll;overflow-x:hidden;padding-right:5px}.leaflet-control-layers-selector{margin-top:2px;position:relative;top:1px}.leaflet-control-layers label{display:block;font-size:13px;font-size:1.08333em}.leaflet-control-layers-separator{height:0;border-top:1px solid #ddd;margin:5px -10px 5px -6px}.leaflet-default-icon-path{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABkAAAApCAYAAADAk4LOAAAFgUlEQVR4Aa1XA5BjWRTN2oW17d3YaZtr2962HUzbDNpjszW24mRt28p47v7zq/bXZtrp/lWnXr337j3nPCe85NcypgSFdugCpW5YoDAMRaIMqRi6aKq5E3YqDQO3qAwjVWrD8Ncq/RBpykd8oZUb/kaJutow8r1aP9II0WmLKLIsJyv1w/kqw9Ch2MYdB++12Onxee/QMwvf4/Dk/Lfp/i4nxTXtOoQ4pW5Aj7wpici1A9erdAN2OH64x8OSP9j3Ft3b7aWkTg/Fm91siTra0f9on5sQr9INejH6CUUUpavjFNq1B+Oadhxmnfa8RfEmN8VNAsQhPqF55xHkMzz3jSmChWU6f7/XZKNH+9+hBLOHYozuKQPxyMPUKkrX/K0uWnfFaJGS1QPRtZsOPtr3NsW0uyh6NNCOkU3Yz+bXbT3I8G3xE5EXLXtCXbbqwCO9zPQYPRTZ5vIDXD7U+w7rFDEoUUf7ibHIR4y6bLVPXrz8JVZEql13trxwue/uDivd3fkWRbS6/IA2bID4uk0UpF1N8qLlbBlXs4Ee7HLTfV1j54APvODnSfOWBqtKVvjgLKzF5YdEk5ewRkGlK0i33Eofffc7HT56jD7/6U+qH3Cx7SBLNntH5YIPvODnyfIXZYRVDPqgHtLs5ABHD3YzLuespb7t79FY34DjMwrVrcTuwlT55YMPvOBnRrJ4VXTdNnYug5ucHLBjEpt30701A3Ts+HEa73u6dT3FNWwflY86eMHPk+Yu+i6pzUpRrW7SNDg5JHR4KapmM5Wv2E8Tfcb1HoqqHMHU+uWDD7zg54mz5/2BSnizi9T1Dg4QQXLToGNCkb6tb1NU+QAlGr1++eADrzhn/u8Q2YZhQVlZ5+CAOtqfbhmaUCS1ezNFVm2imDbPmPng5wmz+gwh+oHDce0eUtQ6OGDIyR0uUhUsoO3vfDmmgOezH0mZN59x7MBi++WDL1g/eEiU3avlidO671bkLfwbw5XV2P8Pzo0ydy4t2/0eu33xYSOMOD8hTf4CrBtGMSoXfPLchX+J0ruSePw3LZeK0juPJbYzrhkH0io7B3k164hiGvawhOKMLkrQLyVpZg8rHFW7E2uHOL888IBPlNZ1FPzstSJM694fWr6RwpvcJK60+0HCILTBzZLFNdtAzJaohze60T8qBzyh5ZuOg5e7uwQppofEmf2++DYvmySqGBuKaicF1blQjhuHdvCIMvp8whTTfZzI7RldpwtSzL+F1+wkdZ2TBOW2gIF88PBTzD/gpeREAMEbxnJcaJHNHrpzji0gQCS6hdkEeYt9DF/2qPcEC8RM28Hwmr3sdNyht00byAut2k3gufWNtgtOEOFGUwcXWNDbdNbpgBGxEvKkOQsxivJx33iow0Vw5S6SVTrpVq11ysA2Rp7gTfPfktc6zhtXBBC+adRLshf6sG2RfHPZ5EAc4sVZ83yCN00Fk/4kggu40ZTvIEm5g24qtU4KjBrx/BTTH8ifVASAG7gKrnWxJDcU7x8X6Ecczhm3o6YicvsLXWfh3Ch1W0k8x0nXF+0fFxgt4phz8QvypiwCCFKMqXCnqXExjq10beH+UUA7+nG6mdG/Pu0f3LgFcGrl2s0kNNjpmoJ9o4B29CMO8dMT4Q5ox8uitF6fqsrJOr8qnwNbRzv6hSnG5wP+64C7h9lp30hKNtKdWjtdkbuPA19nJ7Tz3zR/ibgARbhb4AlhavcBebmTHcFl2fvYEnW0ox9xMxKBS8btJ+KiEbq9zA4RthQXDhPa0T9TEe69gWupwc6uBUphquXgf+/FrIjweHQS4/pduMe5ERUMHUd9xv8ZR98CxkS4F2n3EUrUZ10EYNw7BWm9x1GiPssi3GgiGRDKWRYZfXlON+dfNbM+GgIwYdwAAAAASUVORK5CYII=)}.leaflet-container .leaflet-control-attribution{background:#fff;background:#fffc;margin:0}.leaflet-control-attribution,.leaflet-control-scale-line{padding:0 5px;color:#333;line-height:1.4}.leaflet-control-attribution a{text-decoration:none}.leaflet-control-attribution a:hover,.leaflet-control-attribution a:focus{text-decoration:underline}.leaflet-attribution-flag{display:inline!important;vertical-align:baseline!important;width:1em;height:.6669em}.leaflet-left .leaflet-control-scale{margin-left:5px}.leaflet-bottom .leaflet-control-scale{margin-bottom:5px}.leaflet-control-scale-line{border:2px solid #777;border-top:none;line-height:1.1;padding:2px 5px 1px;white-space:nowrap;-moz-box-sizing:border-box;box-sizing:border-box;background:#fffc;text-shadow:1px 1px #fff}.leaflet-control-scale-line:not(:first-child){border-top:2px solid #777;border-bottom:none;margin-top:-2px}.leaflet-control-scale-line:not(:first-child):not(:last-child){border-bottom:2px solid #777}.leaflet-touch .leaflet-control-attribution,.leaflet-touch .leaflet-control-layers,.leaflet-touch .leaflet-bar{box-shadow:none}.leaflet-touch .leaflet-control-layers,.leaflet-touch .leaflet-bar{border:2px solid rgba(0,0,0,.2);background-clip:padding-box}.leaflet-popup{position:absolute;text-align:center;margin-bottom:20px}.leaflet-popup-content-wrapper{padding:1px;text-align:left;border-radius:12px}.leaflet-popup-content{margin:13px 24px 13px 20px;line-height:1.3;font-size:13px;font-size:1.08333em;min-height:1px}.leaflet-popup-content p{margin:1.3em 0}.leaflet-popup-tip-container{width:40px;height:20px;position:absolute;left:50%;margin-top:-1px;margin-left:-20px;overflow:hidden;pointer-events:none}.leaflet-popup-tip{width:17px;height:17px;padding:1px;margin:-10px auto 0;pointer-events:auto;-webkit-transform:rotate(45deg);-moz-transform:rotate(45deg);-ms-transform:rotate(45deg);transform:rotate(45deg)}.leaflet-popup-content-wrapper,.leaflet-popup-tip{background:#fff;color:#333;box-shadow:0 3px 14px #0006}.leaflet-container a.leaflet-popup-close-button{position:absolute;top:0;right:0;border:none;text-align:center;width:24px;height:24px;font:16px/24px Tahoma,Verdana,sans-serif;color:#757575;text-decoration:none;background:transparent}.leaflet-container a.leaflet-popup-close-button:hover,.leaflet-container a.leaflet-popup-close-button:focus{color:#585858}.leaflet-popup-scrolled{overflow:auto}.leaflet-oldie .leaflet-popup-content-wrapper{-ms-zoom:1}.leaflet-oldie .leaflet-popup-tip{width:24px;margin:0 auto;-ms-filter:"progid:DXImageTransform.Microsoft.Matrix(M11=0.70710678, M12=0.70710678, M21=-0.70710678, M22=0.70710678)";filter:progid:DXImageTransform.Microsoft.Matrix(M11=.70710678,M12=.70710678,M21=-.70710678,M22=.70710678)}.leaflet-oldie .leaflet-control-zoom,.leaflet-oldie .leaflet-control-layers,.leaflet-oldie .leaflet-popup-content-wrapper,.leaflet-oldie .leaflet-popup-tip{border:1px solid #999}.leaflet-div-icon{background:#fff;border:1px solid #666}.leaflet-tooltip{position:absolute;padding:6px;background-color:#fff;border:1px solid #fff;border-radius:3px;color:#222;white-space:nowrap;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;pointer-events:none;box-shadow:0 1px 3px #0006}.leaflet-tooltip.leaflet-interactive{cursor:pointer;pointer-events:auto}.leaflet-tooltip-top:before,.leaflet-tooltip-bottom:before,.leaflet-tooltip-left:before,.leaflet-tooltip-right:before{position:absolute;pointer-events:none;border:6px solid transparent;background:transparent;content:""}.leaflet-tooltip-bottom{margin-top:6px}.leaflet-tooltip-top{margin-top:-6px}.leaflet-tooltip-bottom:before,.leaflet-tooltip-top:before{left:50%;margin-left:-6px}.leaflet-tooltip-top:before{bottom:0;margin-bottom:-12px;border-top-color:#fff}.leaflet-tooltip-bottom:before{top:0;margin-top:-12px;margin-left:-6px;border-bottom-color:#fff}.leaflet-tooltip-left{margin-left:-6px}.leaflet-tooltip-right{margin-left:6px}.leaflet-tooltip-left:before,.leaflet-tooltip-right:before{top:50%;margin-top:-6px}.leaflet-tooltip-left:before{right:0;margin-right:-12px;border-left-color:#fff}.leaflet-tooltip-right:before{left:0;margin-left:-12px;border-right-color:#fff}@media print{.leaflet-control{-webkit-print-color-adjust:exact;print-color-adjust:exact}}:root{color-scheme:dark;font-family:Inter,Segoe UI,system-ui,-apple-system,sans-serif;--bg: #121212;--bg-elevated: #161616;--surface: #1c1c1c;--surface-hover: #242424;--border: #2a2a2a;--border-strong: #383838;--text: #e5e5e5;--text-dim: #a3a3a3;--text-faint: #737373;--hl: #d4d4d4;--success: #22c55e;--info: #3b82f6;--warning: #f59e0b;--danger: #ef4444;--danger-bg: #2a1515;--accent: #3a3a3a;--accent-bright: #4a4a4a;--cyan: var(--hl);--violet: var(--text-dim);--magenta: var(--text-dim);--brand-primary: #d4d4d4;--brand-accent: #a3a3a3;--btn-bg: #2e2e2e;--btn-bg-hover: #3a3a3a;--btn-fg: #f5f5f5;--focus-ring: rgba(255, 255, 255, .06);--video-bg: #111;--radius: 8px;--shadow: none}:root[data-theme=light]{color-scheme:light;--bg: #f3f4f6;--bg-elevated: #ffffff;--surface: #ffffff;--surface-hover: #eceef1;--border: #dcdfe4;--border-strong: #c3c8cf;--text: #15171b;--text-dim: #4a505c;--text-faint: #7b818c;--hl: #1f2937;--success: #15803d;--info: #1d4ed8;--warning: #b45309;--danger: #dc2626;--danger-bg: #fdecec;--accent: #e5e7eb;--accent-bright: #d1d5db;--brand-primary: #1f2937;--brand-accent: #4a505c;--btn-bg: #1f2937;--btn-bg-hover: #374151;--btn-fg: #ffffff;--focus-ring: rgba(31, 41, 55, .15);--shadow: 0 1px 2px rgba(15, 23, 42, .06)}:root[data-theme=light] .card{box-shadow:var(--shadow)}:root[data-theme=light] .btn-secondary{background:#fff;color:var(--text)}:root[data-theme=light] .btn-secondary:hover:not(:disabled){background:var(--surface-hover)}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text);font-size:14.5px;-webkit-font-smoothing:antialiased}h1,h2,h3{font-weight:650;letter-spacing:-.01em}h2{font-size:1.3rem;margin:0 0 1rem;display:flex;align-items:center;gap:.6rem}a{color:var(--text);text-decoration-color:var(--text-faint)}.container{max-width:440px;margin:10vh auto;padding:2.25rem;background:var(--surface);border:1px solid var(--border);border-radius:14px;box-shadow:var(--shadow)}input,select,button,textarea{width:100%;padding:.55rem .7rem;margin-top:.5rem;border-radius:6px;border:1px solid var(--border-strong);background:var(--bg-elevated);color:inherit;box-sizing:border-box;font-size:.92rem;font-family:inherit;transition:border-color .15s ease,box-shadow .15s ease}input:focus,select:focus,textarea:focus{outline:none;border-color:var(--text-dim);box-shadow:0 0 0 3px var(--focus-ring)}input::placeholder{color:var(--text-faint)}button{cursor:pointer;background:var(--btn-bg);border:1px solid var(--border-strong);color:var(--btn-fg);font-weight:550;margin-top:1rem;transition:background .15s ease,transform .05s ease}button:hover:not(:disabled){background:var(--btn-bg-hover)}button:active:not(:disabled){transform:translateY(1px)}button:disabled{opacity:.5;cursor:not-allowed}.error{color:#fca5a5;background:var(--danger-bg);border:1px solid #5c1f1f;border-radius:6px;padding:.5rem .75rem;font-size:.85rem}table{width:100%;border-collapse:collapse;font-size:.9rem}th{text-align:left;padding:.6rem .7rem;border-bottom:1px solid var(--border-strong);color:var(--text-dim);font-size:.72rem;font-weight:650;text-transform:uppercase;letter-spacing:.04em}td{text-align:left;padding:.6rem .7rem;border-bottom:1px solid var(--border)}tbody tr{transition:background .1s ease}tbody tr:hover{background:var(--surface-hover)}tr.alert-row{background:#ef44441a}tr.alert-row:hover{background:#ef444429}.badge{display:inline-flex;align-items:center;gap:.3rem;padding:.2rem .6rem;border-radius:999px;font-size:.72rem;font-weight:650;letter-spacing:.02em;text-transform:uppercase}.badge-alert{background:#ef444429;color:#fca5a5;border:1px solid rgba(239,68,68,.35)}.badge-neutral{background:#22c55e1f;color:#86efac;border:1px solid rgba(34,197,94,.3)}.card{background:var(--surface);border-radius:var(--radius);padding:1.25rem;border:1px solid var(--border);box-shadow:var(--shadow)}.btn-inline{width:auto;display:inline-block;margin:0 .4rem 0 0;padding:.35rem .7rem;font-size:.8rem}.btn-link{width:auto;display:inline;margin:0;padding:0;background:none;border:none;box-shadow:none;color:var(--text);font:inherit;font-weight:600;text-decoration:none;cursor:pointer}.btn-link:hover:not(:disabled){background:none;text-decoration:underline}.btn-secondary{background:var(--surface-hover);border:1px solid var(--border-strong);color:var(--text)}.btn-secondary:hover:not(:disabled){background:var(--border-strong)}.btn-danger{background:#ef444426;border:1px solid rgba(239,68,68,.4);color:#fca5a5}.btn-danger:hover:not(:disabled){background:#ef444447}.field-row{display:flex;gap:.75rem}.field-row>*{flex:1}.live-dot{display:inline-block;width:8px;height:8px;border-radius:50%;background:var(--success);box-shadow:0 0 #22c55e99;animation:live-pulse 2s infinite}@keyframes live-pulse{0%{box-shadow:0 0 #22c55e8c}70%{box-shadow:0 0 0 7px #22c55e00}to{box-shadow:0 0 #22c55e00}}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-track{background:var(--bg)}::-webkit-scrollbar-thumb{background:var(--border-strong);border-radius:5px}::-webkit-scrollbar-thumb:hover{background:#4a4a4a}.login-screen{min-height:100vh;display:flex;align-items:center;justify-content:center;position:relative;overflow:hidden;background:var(--bg)}.login-radar,.login-glow,.login-hud-ring{display:none}.login-card{position:relative;width:100%;max-width:380px;margin:1.5rem;padding:2.25rem 2rem;background:var(--surface);border:1px solid var(--border);border-radius:12px}.login-corner{position:absolute;width:26px;height:26px;border-color:var(--border-strong)}.login-corner.tl{top:22px;left:22px;border-top:2px solid;border-left:2px solid}.login-corner.tr{top:22px;right:22px;border-top:2px solid;border-right:2px solid}.login-corner.bl{bottom:22px;left:22px;border-bottom:2px solid;border-left:2px solid}.login-corner.br{bottom:22px;right:22px;border-bottom:2px solid;border-right:2px solid}@keyframes plate-ticker-in{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.plate-ticker-row{animation:plate-ticker-in .25s ease-out}.plate-chip{font-family:SF Mono,Consolas,Menlo,monospace;font-weight:700;letter-spacing:.05em}.nav-btn{transition:background .15s ease,transform .1s ease,color .15s ease}.nav-btn:active:not(:disabled){transform:scale(.94)}@keyframes ticker-alert-blink{0%,to{background:#ef444438;box-shadow:0 0 0 1px #ef444480}50%{background:#ef44448c;box-shadow:0 0 0 1px #ef4444e6}}.ticker-alert-blink{animation:ticker-alert-blink 1s ease-in-out infinite;border-radius:6px;cursor:pointer}.ops-header{flex-shrink:0;position:relative;border:1px solid var(--border);border-radius:var(--radius);padding:1.1rem 1.5rem;margin-bottom:1.4rem;background:var(--surface)}.ops-header-row{position:relative;display:flex;align-items:center;justify-content:space-between;gap:1.5rem;flex-wrap:wrap}.ops-stats{display:flex;flex-wrap:wrap;margin-top:.75rem}.ops-stat{padding:0 1.15rem;border-left:1px solid var(--border)}.ops-stat:first-child{padding-left:0;border-left:none}.ops-stat strong{display:block;font-family:Courier New,ui-monospace,SFMono-Regular,Menlo,monospace;font-size:1.2rem;letter-spacing:.02em}.ops-stat span{font-size:.6rem;text-transform:uppercase;letter-spacing:.1em;color:var(--text-faint)}.ops-layout{display:flex;gap:1.1rem;align-items:stretch;flex:1;min-height:0}.ops-main{flex:1;min-width:0;min-height:0;display:flex;flex-direction:column}.ops-sidebar{width:300px;flex-shrink:0;display:flex;flex-direction:column;gap:.5rem;overflow-y:auto;padding-right:2px}@media (max-width: 960px){.ops-layout{flex-direction:column}.ops-sidebar{width:100%;flex-direction:row;flex-wrap:wrap;max-height:320px;overflow-y:auto}}.cam-thumb{position:relative;display:flex;gap:.55rem;align-items:center;padding:.4rem;border:1px solid var(--border);border-radius:6px;background:var(--surface);cursor:pointer;transition:border-color .15s ease}.cam-thumb:hover{border-color:var(--border-strong)}.cam-thumb.selected{border-color:var(--hl)}.cam-thumb-video{position:relative;width:104px;height:62px;flex-shrink:0;border-radius:2px;overflow:hidden;background:#000}.cam-thumb-info{min-width:0;flex:1}.cam-main-video-wrap{position:relative;width:100%;flex:1;min-height:0;overflow:hidden}.cam-main-video-wrap>div:not(.cam-main-badge):not(.clip-ctl):not(.cam-overlay):not(.ptz):not(.alert-flash){width:100%;height:100%}.cam-main-video-wrap video{object-fit:cover!important}.cam-main-video-wrap:fullscreen,.cam-main-video-wrap:-webkit-full-screen{width:100vw;height:100vh;display:flex;align-items:center;justify-content:center;background:#000}.mosaic-page{flex:1;min-height:0;display:flex;flex-direction:column}.mosaic-toolbar{margin-bottom:.6rem;padding:.6rem .8rem}.mosaic-page .mosaic-fullscreen-wrap{flex:1;min-height:240px}.mosaic-viewport{height:100%}.mosaic-fullscreen-wrap:fullscreen,.mosaic-fullscreen-wrap:-webkit-full-screen{width:100vw;height:100vh;background:#000}.mosaic-fullscreen-wrap:fullscreen .mosaic-viewport,.mosaic-fullscreen-wrap:-webkit-full-screen .mosaic-viewport{height:100%}.mosaic-cell{position:relative;background:#111;overflow:hidden}.mosaic-cell>div:not(.clip-ctl):not(.mosaic-label):not(.cam-overlay):not(.cell-ticker):not(.ptz):not(.alert-flash){width:100%;height:100%}.cam-thumb-name{font-size:.78rem;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}@keyframes radar-sweep-rotate{to{transform:rotate(360deg)}}@keyframes hero-pulse-ring{0%{opacity:.9;transform:scale(.85)}to{opacity:0;transform:scale(1.5)}}.cam-console{position:relative;border-radius:10px;overflow:hidden;background:var(--surface);border:1px solid var(--border);transition:border-color .15s ease,box-shadow .15s ease,transform .15s ease;cursor:pointer}.cam-console:hover{border-color:var(--border-strong)}.cam-console.selected{border-color:var(--hl)}.cam-console-topbar{height:3px;background:linear-gradient(90deg,var(--success),transparent 90%)}.cam-console-topbar.offline{background:linear-gradient(90deg,var(--danger),transparent 90%)}.cam-hud-corner{position:absolute;width:16px;height:16px;border-color:var(--border-strong);pointer-events:none;z-index:2}.cam-hud-corner.tl{top:6px;left:6px;border-top:2px solid;border-left:2px solid}.cam-hud-corner.tr{top:6px;right:6px;border-top:2px solid;border-right:2px solid}.cam-hud-corner.bl{bottom:6px;left:6px;border-bottom:2px solid;border-left:2px solid}.cam-hud-corner.br{bottom:6px;right:6px;border-bottom:2px solid;border-right:2px solid}.cam-rec-dot{width:7px;height:7px;border-radius:50%;background:var(--danger);box-shadow:0 0 6px 1px #ef4444cc;animation:live-pulse 1.6s infinite;display:inline-block}.module-chip{display:inline-flex;align-items:center;gap:.3rem;font-size:.65rem;font-weight:700;letter-spacing:.03em;padding:.12rem .45rem;border-radius:999px;text-transform:uppercase}.module-chip.lpr,.module-chip.facial{color:var(--text-dim);background:var(--surface-hover);border:1px solid var(--border-strong)}.clip-ctl{position:absolute;right:8px;bottom:8px;z-index:3;display:flex;align-items:center;gap:.35rem;padding:3px 8px;border-radius:6px;background:#121212d9;border:1px solid var(--border-strong);font-size:.75rem;color:var(--text);opacity:0;pointer-events:none;transition:opacity .15s ease}.clip-host:hover .clip-ctl,.clip-ctl.sticky{opacity:1;pointer-events:auto}.clip-ctl button{width:auto;margin:0;padding:0;background:none;border:none;color:var(--text);font-size:.75rem;font-weight:600}.clip-ctl button:hover:not(:disabled){background:none;text-decoration:underline}.clip-ctl a{color:var(--text);font-weight:600;text-decoration:none}.clip-ctl .clip-x{color:var(--text-dim);font-size:.95rem;line-height:1}.mosaic-cell .clip-ctl{bottom:auto;top:6px}.plate-feed{width:280px;flex-shrink:0;display:flex;flex-direction:column;min-height:0;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius)}.plate-feed-head{display:flex;align-items:center;gap:.5rem;padding:.6rem .75rem;border-bottom:1px solid var(--border)}.plate-feed-list{flex:1;min-height:0;overflow-y:auto;padding:.4rem;scroll-behavior:smooth}.plate-feed-item{display:flex;gap:.6rem;align-items:center;padding:.4rem;border-radius:6px;cursor:pointer;animation:plate-ticker-in .25s ease-out}.plate-feed-item:hover{background:var(--surface-hover)}.plate-feed-item.alert{background:#ef44441a}.plate-feed-item img{height:50px;object-fit:cover}.plate-feed-plate{display:inline-block;font-size:.85rem;padding:1px 6px;border-radius:4px;background:#f5f5f5;color:#121212}.plate-feed-plate.alert{background:var(--danger);color:#fff}.plate-feed-item.allowed{background:#22c55e1a}.plate-feed-plate.allowed{background:var(--success);color:#fff}.plate-feed-allowed{font-size:.68rem;font-weight:700;color:#86efac;margin-top:2px}.plate-feed-meta{font-size:.72rem;color:var(--text-dim);margin-top:3px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.plate-feed-alert{font-size:.68rem;font-weight:700;color:#fca5a5;margin-top:2px}.feed-collapsed{width:34px;flex-shrink:0;margin:0;padding:.6rem 0;display:flex;flex-direction:column;align-items:center;gap:.6rem;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);color:var(--text-dim)}.feed-collapsed-label{writing-mode:vertical-rl;font-size:.75rem;letter-spacing:.04em}@media (max-width: 960px){.plate-feed{width:100%;max-height:360px}.feed-collapsed{width:100%;flex-direction:row;justify-content:center}.feed-collapsed-label{writing-mode:horizontal-tb}}.app-menu-toggle{display:none}.app-nav{display:contents}@media (max-width: 820px),(hover: none) and (pointer: coarse) and (max-height: 600px){.app-shell{height:auto!important;min-height:100dvh;overflow:visible!important}.app-header{position:sticky;top:0;z-index:900;padding:0 .75rem!important}.app-header-main{width:100%;flex-wrap:nowrap!important}.app-brand{margin-right:auto!important;min-width:0;padding:.4rem 0!important}.app-brand img,.app-brand svg{width:34px!important;height:34px!important}.app-menu-toggle{display:block;width:auto;margin:0;padding:.35rem .75rem;font-size:1.3rem;line-height:1;background:transparent;border:1px solid var(--border)}.app-nav,.app-user{display:none!important}.app-header.menu-open{max-height:100dvh;overflow-y:auto}.app-header.menu-open .app-header-main{flex-wrap:wrap!important}.app-header.menu-open .app-nav{display:flex!important;flex-direction:column;align-items:stretch;width:100%;padding-bottom:.5rem}.app-header.menu-open .app-user{display:flex!important;width:100%;justify-content:space-between;padding:.5rem 0 .75rem;border-top:1px solid var(--border)}.app-nav .nav-btn{width:100%!important;justify-content:flex-start;padding:.75rem .5rem!important;font-size:1rem}.app-nav .nav-dd-menu{position:static!important;margin:0 0 .25rem 1.5rem!important;box-shadow:none!important}.app-main{overflow:visible!important;padding:.75rem!important}.app-footer{display:none}.app-main table{display:block;max-width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}.app-main>*{min-width:0;max-width:100%}.field-row{flex-wrap:wrap}.field-row>*{flex:1 1 140px;min-width:0}.mosaic-toolbar .mosaic-popout-btn{display:none}.hide-mobile{display:none!important}video.live-video,.cam-main-video-wrap video{object-fit:contain!important}.ops-sidebar{flex-direction:column!important;flex-wrap:nowrap!important;max-height:none!important;overflow:visible!important}.ops-sidebar .cam-thumb{width:100%;box-sizing:border-box}.plate-feed{max-height:70vh}.mosaic-page .mosaic-fullscreen-wrap{flex:none;min-height:0}.mosaic-viewport{height:auto;aspect-ratio:16 / 9}}.zoom-stage{position:relative;overflow:hidden;touch-action:pan-y}.zoom-stage.zoomed{cursor:grab;touch-action:none}.zoom-stage.zoomed:active{cursor:grabbing}.cam-overlay{position:absolute;left:8px;bottom:8px;z-index:3;display:flex;align-items:center;gap:.4rem;flex-wrap:wrap;max-width:calc(100% - 150px);opacity:0;pointer-events:none;transition:opacity .15s}.clip-host:hover .cam-overlay,.cam-overlay.sticky{opacity:1;pointer-events:auto}.mosaic-cell .cam-overlay{top:6px;bottom:auto;left:6px;max-width:45%}.cam-overlay>*{background:#0a0a0ab8;border:1px solid rgba(255,255,255,.16);border-radius:4px;font-size:.72rem;font-weight:600;color:var(--text);line-height:1}.cam-overlay button{width:auto;margin:0;padding:.3rem .5rem;background:transparent;border:none;color:var(--text);font-size:.72rem}.cam-overlay button:disabled{opacity:.4}.cam-overlay-lpr{display:inline-flex;align-items:center;gap:.3rem;padding:.3rem .5rem}.cam-overlay-lpr .dot{width:7px;height:7px;border-radius:50%;background:var(--text-faint)}.cam-overlay-lpr.on .dot{background:var(--success);box-shadow:0 0 4px 1px #22c55eb3}.cam-overlay-group{display:inline-flex;align-items:center}.cam-overlay-group .zoom-level{min-width:4.2rem}button.cam-overlay-gate{background:#0a0a0ab8;border:1px solid rgba(255,255,255,.16);border-radius:4px}button.cam-overlay-gate.confirm{background:var(--warning);color:#111}button.cam-overlay-gate.ok{background:var(--success);color:#fff}button.cam-overlay-gate.error{background:var(--danger);color:#fff}.cam-overlay.compact .cam-overlay-group .zoom-level{min-width:0}@media (hover: none){.cam-overlay{opacity:1;pointer-events:auto}}.gate-fieldset{margin:.75rem 0 .25rem;padding:.6rem .8rem .75rem;border:1px solid var(--border);border-radius:6px;max-width:640px}.gate-fieldset legend{font-size:.85rem;font-weight:600;padding:0 .3rem}.gate-help{font-size:.78rem;color:var(--text-dim);margin:0 0 .5rem}tr.allowed-row td{background:#22c55e12}.badge-allowed{background:var(--success);color:#fff}.passage-video-msg{font-size:.75rem;color:var(--text-faint);white-space:nowrap}.passage-video-link{font-size:.78rem;white-space:nowrap}.cam-marker{position:relative;width:60px;height:60px;display:flex;align-items:center;justify-content:center;pointer-events:auto}.cam-wave,.cam-glow{position:absolute;left:50%;top:50%;border-radius:50%;pointer-events:none}.cam-wave{width:60px;height:60px;margin:-30px 0 0 -30px;border:4px solid var(--c);box-shadow:0 0 6px var(--c),inset 0 0 6px var(--c);opacity:0;animation:cam-wave 2.4s ease-out infinite}.cam-wave.w2{animation-delay:.8s}.cam-wave.w3{animation-delay:1.6s}.cam-glow{width:30px;height:30px;margin:-15px 0 0 -15px;background:radial-gradient(circle,var(--c) 0%,transparent 70%);opacity:.55;animation:cam-glow 2.4s ease-in-out infinite}.cam-marker--offline .cam-wave{animation-duration:1.4s}.cam-marker--offline .cam-wave.w2{animation-delay:.47s}.cam-marker--offline .cam-wave.w3{animation-delay:.93s}.cam-marker--offline .cam-glow{animation-duration:1.4s}.leaflet-container .cam-marker-img,.cam-marker-img{position:relative;width:48px!important;height:auto!important;filter:drop-shadow(0 2px 3px rgba(0,0,0,.75)) drop-shadow(0 0 1px rgba(0,0,0,.9));-webkit-user-select:none;user-select:none}.cam-marker-svg{position:relative;line-height:0;filter:drop-shadow(0 2px 4px rgba(0,0,0,.6))}@keyframes cam-wave{0%{transform:scale(.25);opacity:.9}to{transform:scale(1.35);opacity:0}}@keyframes cam-glow{0%,to{opacity:.35}50%{opacity:.75}}@media (prefers-reduced-motion: reduce){.cam-wave,.cam-glow{animation:none}.cam-wave{opacity:.5}}.badge-online,.badge-offline{display:inline-flex;align-items:center;gap:.35rem;color:#fff;font-weight:700}.badge-online{background:var(--success)}.badge-offline{background:var(--danger)}.badge-warning{background:var(--warning);color:#111}.badge-dot{width:7px;height:7px;border-radius:50%;background:#fff}.badge-offline .badge-dot{animation:cam-glow 1.2s ease-in-out infinite}.status-toolbar{display:flex;align-items:center;gap:.75rem;flex-wrap:wrap;margin:.5rem 0 .75rem;font-size:.82rem;color:var(--text-dim)}.facial-quality{margin:.4rem 0 .2rem 1.6rem;padding:.5rem .7rem;border:1px solid var(--border);border-radius:6px;max-width:640px}.cell-ticker{position:absolute;top:6px;right:6px;bottom:26px;z-index:4;display:flex;flex-direction:column;align-items:flex-end;gap:4px;max-width:62%;pointer-events:none}.cell-ticker-head{pointer-events:auto;width:auto;margin:0;padding:2px 7px;font-size:.66rem;font-weight:600;background:#0a0a0ab8;border:1px solid rgba(255,255,255,.18);border-radius:4px;color:#f5f5f5;display:inline-flex;align-items:center;gap:.35rem}.cell-ticker-head.alert{border-color:var(--danger)}.cell-ticker-badge{background:var(--danger);color:#fff;border-radius:8px;padding:0 5px;font-size:.62rem}.cell-ticker-list{pointer-events:auto;display:flex;flex-direction:column;align-items:flex-end;gap:3px;overflow-y:auto;min-height:0;max-height:100%;padding-right:2px;scrollbar-width:thin;scrollbar-color:rgba(255,255,255,.25) transparent}.cell-tick-time{font-size:.6rem;opacity:.7;font-variant-numeric:tabular-nums;white-space:nowrap}.cell-tick.fresh{box-shadow:0 0 0 2px #ffffff8c;animation:cell-tick-in .25s ease-out}.cell-tick{display:flex;align-items:center;gap:.35rem;padding:3px 6px;border-radius:4px;background:#0a0a0ac7;border:1px solid rgba(255,255,255,.18);color:var(--text);font-size:.7rem;line-height:1.1;max-width:100%;flex-shrink:0;color:#f5f5f5}.cell-tick-plate{font-family:Consolas,Menlo,monospace;font-weight:800;font-size:.95rem;letter-spacing:.06em;background:#fff;color:#111;padding:1px 6px;border-radius:3px}.cell-tick-text{font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.cell-tick-sub{font-size:.65rem;opacity:.85;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.cell-tick.facial,.cell-tick.analytics{font-size:.62rem;padding:2px 5px}.cell-tick.danger{border-color:var(--danger);background:#7f1d1dd9}.cell-tick.allowed .cell-tick-plate{background:var(--success);color:#fff}.cell-tick.allowed{border-color:var(--success)}.cell-tick.restricted{border:2px solid var(--danger);background:#7f1d1deb}.cell-tick.restricted.blink{animation:cell-tick-blink .9s ease-in-out infinite}.cell-tick.restricted .cell-tick-plate{background:var(--danger);color:#fff}.cell-tick.restricted .cell-tick-sub{font-weight:700;text-transform:uppercase}.cell-tick-x{width:auto;margin:0 0 0 .2rem;padding:0 .3rem;background:#00000059;border:1px solid rgba(255,255,255,.4);color:#fff;font-size:.8rem;line-height:1.2}.cell-ticker.compact .cell-tick-plate{font-size:.75rem}.cell-ticker.compact .cell-tick-sub{display:none}.cell-ticker.compact .cell-tick.restricted .cell-tick-sub{display:inline}@keyframes cell-tick-in{0%{opacity:0;transform:translate(10px)}to{opacity:1;transform:none}}@keyframes cell-tick-blink{0%,to{box-shadow:0 0 #ef4444e6;opacity:1}50%{box-shadow:0 0 10px 3px #ef4444e6;opacity:.55}}.popout-page{position:relative;height:100vh;background:#000;display:flex;flex-direction:column}.popout-grid{flex:1;min-height:0}.popout-bar{position:absolute;top:0;left:0;right:0;z-index:20;display:flex;align-items:center;gap:.9rem;padding:.45rem .8rem;background:#121212eb;border-bottom:1px solid var(--border);font-size:.82rem;opacity:0;transform:translateY(-100%);transition:opacity .15s,transform .15s}.popout-hotzone{position:absolute;top:0;left:0;right:0;height:16px;z-index:19}.popout-page:has(.mosaic-cell select:not(.mosaic-swap)) .popout-bar,.popout-hotzone:hover+.popout-bar,.popout-bar:hover,.popout-bar:focus-within{opacity:1;transform:none}.popout-bar label{display:flex;align-items:center;gap:.4rem}.popout-bar select,.popout-bar button{width:auto;margin:0;padding:.25rem .5rem}.popout-hint{color:var(--text-faint);flex:1}.mosaic-swap{width:auto;max-width:70%;margin:0;padding:0 .2rem;background:transparent;border:none;color:#fff;font-size:.7rem;cursor:pointer}.mosaic-swap:hover,.mosaic-swap:focus{background:#ffffff1f}.ports-fieldset{margin:.5rem 0 .6rem;padding:.5rem .75rem .6rem;border:1px solid var(--border);border-radius:6px}.ports-fieldset legend{font-size:.85rem;font-weight:600;padding:0 .3rem}.ports-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.4rem .6rem}.ports-grid label{display:flex;flex-direction:column;font-size:.75rem;color:var(--text-dim)}.ports-grid input{margin:.15rem 0 0}.ports-https{display:flex;align-items:center;gap:.45rem;margin-top:.5rem;font-size:.8rem}.ports-https input{width:auto;margin:0}.ports-help{margin:.35rem 0 0;font-size:.72rem;color:var(--text-faint)}.field-label{display:flex;flex-direction:column;font-size:.8rem;color:var(--text-dim)}@media (max-width: 480px){.ports-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}button.cam-overlay-ptz{display:inline-flex;align-items:center;gap:.35rem;background:#0a0a0ab8;border:1px solid rgba(255,255,255,.16);border-radius:4px}button.cam-overlay-ptz.on{border-color:#ffffff8c;background:#282828e6}.ptz{position:absolute;right:10px;bottom:44px;z-index:6;width:250px;max-height:calc(100% - 60px);overflow-y:auto;background:linear-gradient(180deg,#1a1a1cf0,#0e0e10f0);border:1px solid rgba(255,255,255,.1);border-radius:10px;box-shadow:0 10px 30px #0000008c;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);font-size:.78rem;color:var(--text);-webkit-user-select:none;user-select:none}.ptz-top{display:flex;align-items:center;gap:.5rem;padding:.5rem .55rem .45rem .8rem;border-bottom:1px solid rgba(255,255,255,.07)}.ptz-title{font-weight:700;font-size:.72rem;letter-spacing:.08em;text-transform:uppercase}.ptz-cam{flex:1;min-width:0;color:var(--text-faint);font-size:.72rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ptz button{width:auto;margin:0}.ptz-icon-btn{display:inline-flex;align-items:center;justify-content:center;padding:.3rem!important;background:transparent!important;border:none!important;color:var(--text-dim)!important;border-radius:6px}.ptz-icon-btn:hover{color:var(--text)!important;background:#ffffff14!important}.ptz-icon-btn.danger:hover{color:var(--danger)!important}.ptz-body{display:flex;align-items:center;justify-content:center;gap:1rem;padding:.9rem .8rem .8rem}.joy{position:relative;width:120px;height:120px;flex:none;touch-action:none;cursor:grab}.joy.active{cursor:grabbing}.joy-ring{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%}.joy-ring circle{fill:radial-gradient(circle,#222,#111);fill:#141416;stroke:#ffffff24;stroke-width:1.5}.joy-ring path{stroke:#ffffff38;stroke-width:1.5;fill:none}.joy-ring .joy-arrow{fill:#ffffff59;stroke:none}.joy-knob{position:absolute;left:50%;top:50%;width:44px;height:44px;margin:-22px 0 0 -22px;border-radius:50%;background:radial-gradient(circle at 35% 30%,#5a5a60,#2a2a2e 60%,#1c1c20);border:1px solid rgba(255,255,255,.22);box-shadow:0 4px 10px #0009,inset 0 1px #ffffff26;transition:transform .18s cubic-bezier(.3,1.6,.5,1);pointer-events:none}.joy.active .joy-knob{transition:none;border-color:#ffffff80}.rocker-wrap{display:flex;flex-direction:column;align-items:center;gap:.25rem}.rocker-label{font-size:.66rem;font-weight:700;color:var(--text-faint);letter-spacing:.05em}.rocker{position:relative;width:30px;height:104px;touch-action:none;cursor:ns-resize}.rocker-track{position:absolute;left:50%;top:0;bottom:0;width:8px;margin-left:-4px;border-radius:4px;background:#141416;border:1px solid rgba(255,255,255,.14)}.rocker-knob{position:absolute;left:0;top:50%;width:30px;height:16px;margin-top:-8px;border-radius:5px;background:linear-gradient(180deg,#55555b,#2a2a2e);border:1px solid rgba(255,255,255,.25);box-shadow:0 3px 8px #0000008c;transition:transform .18s cubic-bezier(.3,1.6,.5,1);pointer-events:none}.rocker.active .rocker-knob{transition:none;border-color:#ffffff80}.focus-col{display:flex;flex-direction:column;gap:.3rem}.ptz-sub{font-size:.66rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--text-faint)}.ptz-seg{padding:.3rem .6rem!important;font-size:.72rem!important;background:#1c1c20!important;border:1px solid rgba(255,255,255,.14)!important;border-radius:6px;touch-action:none}.ptz-seg:active{background:#2c2c32!important}.ptz-presets{border-top:1px solid rgba(255,255,255,.07);padding:.55rem .7rem .6rem}.ptz-presets-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:.35rem}.ptz-link{display:inline-flex;align-items:center;gap:.3rem;padding:.15rem .3rem!important;background:transparent!important;border:none!important;color:var(--text-dim)!important;font-size:.72rem!important}.ptz-link:hover{color:var(--text)!important}.ptz-add{display:flex;gap:.3rem;margin-bottom:.35rem}.ptz-add input{flex:1;min-width:0;margin:0;padding:.3rem .45rem;font-size:.75rem}.ptz-preset-list{display:flex;flex-direction:column;gap:2px}.ptz-preset-row{display:flex;align-items:center;border-radius:6px}.ptz-preset-row:hover{background:#ffffff0d}.ptz-preset-go{flex:1;min-width:0;display:flex;align-items:center;gap:.45rem;padding:.35rem .4rem!important;background:transparent!important;border:none!important;color:var(--text)!important;text-align:left;font-size:.76rem!important}.ptz-preset-go span{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ptz-preset-go svg{color:var(--text-faint);flex:none}.ptz-empty{color:var(--text-faint);font-size:.72rem;padding:.2rem 0}.ptz-msg{padding:0 .8rem .55rem;color:var(--text-dim);font-size:.72rem}.conn-test{margin:.4rem 0 .6rem}.conn-test-btn{width:100%;margin:0}.conn-test-hint{display:block;margin-top:.3rem;font-size:.72rem;color:var(--text-faint)}.conn-test-box{margin-top:.5rem;padding:.55rem .7rem;border:1px solid var(--border);border-left:3px solid var(--danger);border-radius:6px;font-size:.78rem}.conn-test-box.good{border-left-color:var(--success)}.conn-test-summary{display:flex;align-items:center;gap:.6rem;flex-wrap:wrap;font-weight:600}.conn-test-summary.bad{color:var(--danger);margin-top:.4rem}.conn-test-steps{list-style:none;margin:.45rem 0 0;padding:0;display:flex;flex-direction:column;gap:.2rem}.conn-test-steps li{display:grid;grid-template-columns:1rem minmax(0,9.5rem) minmax(0,1fr);gap:.4rem;align-items:baseline}.conn-test-steps .mark{font-weight:700}.conn-test-steps li.ok .mark{color:var(--success)}.conn-test-steps li.fail .mark{color:var(--danger)}.conn-test-steps .lbl{color:var(--text-dim);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.conn-test-steps .det{overflow-wrap:anywhere}.conn-test-note{margin:.45rem 0 0;color:var(--text-dim);font-size:.74rem}.analytics-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.3rem .8rem}.analytics-grid label{display:flex;align-items:center;gap:.4rem;font-size:.78rem}.analytics-grid input{width:auto;margin:0}@media (max-width: 480px){.analytics-grid{grid-template-columns:1fr}}.plate-feed-plate.clickable{cursor:pointer}.plate-feed-plate.clickable:hover{outline:2px solid rgba(255,255,255,.5);outline-offset:1px}.ai-settings .card{margin-bottom:1rem;max-width:820px}.ai-lead{color:var(--text-dim);max-width:820px}.ai-status{display:flex;align-items:center;gap:.9rem;flex-wrap:wrap;font-size:.85rem}.ai-providers{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:.5rem}.ai-provider{display:flex;flex-direction:column;align-items:flex-start;gap:.2rem;margin:0;padding:.6rem .7rem;background:var(--surface);border:1px solid var(--border);border-radius:8px;text-align:left}.ai-provider span{font-size:.72rem;color:var(--text-faint)}.ai-provider.on{border-color:var(--text);background:var(--surface-hover, #242424)}.ai-actions{display:flex;gap:.6rem;flex-wrap:wrap;margin-bottom:.6rem}.ai-actions button{width:auto;margin:0}.ai-ok{color:var(--success)}.ai-err,.ai-last-error{color:var(--danger)}.ai-test ul{margin:.3rem 0;padding-left:1rem;font-size:.85rem}.ai-test li span{color:var(--text-dim)}.ss-form{display:flex;flex-direction:column;gap:.6rem;margin-bottom:1rem}.ss-main{display:flex;gap:.5rem}.ss-main input{flex:1;margin:0;font-size:1rem}.ss-main button{width:auto}.ss-examples{display:flex;gap:.35rem;flex-wrap:wrap}.ss-chip{width:auto;margin:0;padding:.2rem .6rem;font-size:.75rem;border-radius:999px;background:var(--surface);border:1px solid var(--border)}.ss-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:.8rem}.ss-card{background:var(--surface);border:1px solid var(--border);border-radius:8px;overflow:hidden}.ss-thumb{aspect-ratio:16 / 10;background:#000;cursor:zoom-in}.ss-thumb img{width:100%;height:100%;object-fit:cover;display:block}.ss-body{padding:.55rem .65rem .65rem;font-size:.8rem}.ss-meta{display:flex;justify-content:space-between;align-items:center;color:var(--text-dim);font-size:.72rem}.ss-cam{font-weight:600;margin:.25rem 0}.ss-desc{color:var(--text)}.ss-tags{display:flex;flex-wrap:wrap;gap:.25rem;margin-top:.4rem}.ss-tag{font-size:.68rem;padding:.05rem .4rem;border-radius:4px;background:#ffffff14}@media (max-width: 820px){.ai-providers{grid-template-columns:repeat(2,minmax(0,1fr))}}.login-2fa-title{margin:0 0 .25rem;font-weight:700;text-align:center}.login-2fa-help{margin:0 0 .6rem;font-size:.82rem;color:var(--text-dim);text-align:center}.login-otp{text-align:center;font-size:1.5rem!important;letter-spacing:.4em;font-family:Consolas,Menlo,monospace}.login-2fa-links{display:flex;justify-content:space-between;margin-top:.6rem}.login-2fa-links .btn-link{width:auto;margin:0;font-size:.78rem}.twofa-box{display:flex;gap:1rem;align-items:flex-start;flex-wrap:wrap}.twofa-qr{background:#fff;padding:6px;border-radius:6px;line-height:0}.twofa-qr svg{width:180px;height:180px}.twofa-secret{font-family:Consolas,Menlo,monospace;font-size:.8rem;word-break:break-all;background:var(--surface);padding:.3rem .45rem;border-radius:4px}.twofa-codes{display:grid;grid-template-columns:repeat(2,max-content);gap:.3rem 1.2rem;font-family:Consolas,Menlo,monospace;font-size:1rem;padding:.6rem .8rem;background:var(--surface);border-radius:6px;margin:.5rem 0}.rules-page .card{max-width:900px}.rule-sub{font-size:.72rem;font-weight:700;letter-spacing:.05em;text-transform:uppercase;color:var(--text-faint);margin:.55rem 0 .25rem}.rule-checks{display:flex;flex-wrap:wrap;gap:.25rem .9rem}.rule-checks label{display:flex;align-items:center;gap:.35rem;font-size:.82rem}.rule-checks input{width:auto;margin:0}.rule-action{border:1px solid var(--border);border-radius:6px;padding:.5rem .6rem;margin-bottom:.5rem}.rule-action textarea,.rule-action input,.rule-action select{margin:.2rem 0 0}.rule-action-head{display:flex;justify-content:space-between;align-items:center;font-size:.85rem}.rule-action-head .btn-link{width:auto;margin:0;font-size:.75rem}.rule-add{display:flex;flex-wrap:wrap;gap:.35rem}.rule-list{display:flex;flex-direction:column;gap:.7rem}.rule-card.off{opacity:.6}.rule-card-head{display:flex;align-items:center;gap:.6rem;flex-wrap:wrap}.rule-count{margin-left:auto;font-size:.75rem;color:var(--text-faint)}.rule-desc{font-size:.82rem;color:var(--text-dim);margin-top:.25rem}.rule-last{font-size:.75rem;color:var(--text-faint);margin-top:.3rem}.rule-buttons{display:flex;gap:.35rem;flex-wrap:wrap;margin-top:.5rem}.rule-buttons button{margin:0}.rule-runs{margin-top:.6rem;font-size:.75rem}.rec-trigger-box{margin:.4rem 0 .2rem;padding:.5rem .7rem;border:1px solid var(--border);border-radius:6px;max-width:560px}.storage-page .card{max-width:860px;margin-top:1rem}.disk-head{display:flex;align-items:baseline;gap:.8rem;flex-wrap:wrap}.disk-pct{font-weight:800;font-size:1.1rem}.disk-pct.ok{color:var(--success)}.disk-pct.warn{color:var(--warning)}.disk-pct.crit{color:var(--danger)}.disk-bar{position:relative;height:14px;margin:.6rem 0;background:var(--surface);border:1px solid var(--border);border-radius:7px;overflow:hidden}.disk-fill{height:100%}.disk-fill.ok{background:var(--success)}.disk-fill.warn{background:var(--warning)}.disk-fill.crit{background:var(--danger)}.disk-mark{position:absolute;top:0;bottom:0;width:2px;background:var(--warning)}.disk-mark.crit{background:var(--danger)}.disk-parts{display:flex;flex-wrap:wrap;gap:.4rem 1.2rem;font-size:.82rem}.disk-parts i{display:inline-block;width:10px;height:10px;border-radius:2px;margin-right:.35rem}.plate-fix{display:inline-flex;align-items:center;gap:.35rem;flex-wrap:wrap}.plate-fix input{width:7.5rem;margin:0;padding:.2rem .4rem;font-family:Consolas,Menlo,monospace;font-weight:700;letter-spacing:.05em}.plate-fix .btn-inline{margin:0;padding:.2rem .5rem;font-size:.72rem}.plate-fix-orig{font-size:.68rem;padding:.05rem .35rem;border-radius:4px;background:#f59e0b26;color:#fcd34d}.plate-fix-btn{width:auto;margin:0;padding:0 .3rem;background:transparent;border:1px solid transparent;color:var(--text-faint);font-size:.85rem;line-height:1.4}.plate-fix-btn:hover{color:var(--text);border-color:var(--border)}.plate-fix-btn.on{color:var(--success)}.disk-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:.5rem;margin-bottom:.4rem}.disk-item{display:flex;flex-direction:column;gap:.15rem;padding:.5rem .6rem;border:1px solid var(--border);border-radius:6px;font-size:.8rem}.disk-item code{font-size:.7rem;color:var(--text-faint)}.sync-setup{display:flex;flex-direction:column;gap:.6rem;margin-bottom:.8rem}.sync-grid{display:grid;gap:4px;background:#000;border-radius:6px;overflow:hidden}.sync-pane{position:relative;aspect-ratio:16 / 9;background:#000}.sync-pane video{width:100%;height:100%;object-fit:contain;display:block}.sync-empty{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;color:var(--text-faint);font-size:.85rem}.sync-label{position:absolute;left:6px;bottom:6px;padding:2px 6px;border-radius:4px;background:#000000a6;font-size:.72rem}.sync-controls{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap;margin-top:.6rem}.sync-controls button{margin:0}.sync-play{min-width:8rem}.sync-clock{margin-left:auto;font-family:Consolas,Menlo,monospace;font-size:1rem}.sync-ruler{margin-top:.6rem;position:relative;padding-bottom:1.6rem}.sync-row{display:flex;align-items:center;gap:.6rem;margin:.25rem 0}.sync-row-name{width:150px;flex:none;font-size:.75rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sync-track{position:relative;flex:1;height:18px;background:var(--surface);border:1px solid var(--border);border-radius:4px;cursor:pointer}.sync-seg{position:absolute;top:3px;bottom:3px;background:#3b82f6;border-radius:2px}.sync-ev{position:absolute;top:-2px;bottom:-2px;width:2px;background:#f59e0b}.sync-ev.alert{background:var(--danger)}.sync-cursor{position:absolute;top:-4px;bottom:-4px;width:2px;background:#fff;box-shadow:0 0 4px #fff}.sync-hours{position:absolute;left:calc(150px + 1.6rem);right:1rem;bottom:.3rem;height:1rem}.sync-hours span{position:absolute;transform:translate(-50%);font-size:.65rem;color:var(--text-faint)}@media (max-width: 820px){.sync-row-name{width:80px}.sync-hours{left:calc(80px + 1.6rem)}}.counts-dashboard{margin:1.5rem 0 2rem}.counts-filters{gap:.5rem;margin-bottom:1rem;flex-wrap:wrap}.counts-filters>select,.counts-filters>input{flex:0 1 auto;width:auto;min-width:160px;max-width:280px}.counts-tiles{display:grid;grid-template-columns:repeat(auto-fill,minmax(170px,1fr));gap:.75rem;margin-bottom:1rem}.counts-tile{display:flex;flex-direction:column;gap:.15rem}.counts-tile span{font-size:.75rem;color:var(--text-dim)}.counts-tile strong{font-size:1.6rem;font-weight:700;color:var(--text);font-variant-numeric:tabular-nums}.counts-tile small{font-size:.72rem;color:var(--text-faint)}.counts-charts{display:grid;grid-template-columns:repeat(auto-fit,minmax(380px,1fr));gap:.75rem;margin-bottom:1rem}.counts-chart-head{display:flex;justify-content:space-between;align-items:center;gap:.75rem;flex-wrap:wrap;margin-bottom:.5rem}.counts-chart-title{font-size:.85rem;font-weight:650;color:var(--text)}.counts-legend{display:flex;gap:.85rem;font-size:.75rem;color:var(--text-dim)}.counts-legend span,.counts-tip div{display:inline-flex;align-items:center;gap:.35rem}.counts-legend i,.counts-tip i{width:10px;height:10px;border-radius:2px;display:inline-block}.counts-svg-wrap{position:relative}.counts-svg-wrap svg{width:100%;height:auto;display:block}.counts-grid{stroke:var(--border);stroke-width:1}.counts-baseline{stroke:var(--border-strong);stroke-width:1}.counts-axis{fill:var(--text-faint);font-size:10px;font-variant-numeric:tabular-nums}.counts-hover{fill:var(--surface-hover)}.counts-empty{color:var(--text-faint);font-size:.8rem;padding:2.5rem 0;text-align:center}.counts-tip{position:absolute;top:0;transform:translate(-50%);pointer-events:none;z-index:5;background:var(--bg-elevated);border:1px solid var(--border-strong);border-radius:6px;padding:.4rem .55rem;font-size:.75rem;color:var(--text);white-space:nowrap;display:flex;flex-direction:column;gap:.15rem}.counts-tip b{font-variant-numeric:tabular-nums}.counts-note{font-size:.75rem;color:var(--text-faint);margin:.5rem 0 0}.counts-strip{display:grid;grid-template-columns:repeat(24,1fr);gap:2px;min-width:190px}.counts-strip i{height:14px;border-radius:2px;background:var(--surface-hover)}.table-scroll{overflow-x:auto}th.num,td.num{text-align:right;font-variant-numeric:tabular-nums}.heatmap-card{margin-top:1rem}.heatmap-card .field-row>select{flex:0 1 auto}.heatmap-opacity{display:flex;align-items:center;gap:.5rem;font-size:.75rem;color:var(--text-dim)}.heatmap-opacity input{width:110px}.heatmap-stage{position:relative;aspect-ratio:16 / 9;max-width:960px;background:#000;border-radius:6px;overflow:hidden}.heatmap-stage img,.heatmap-stage canvas{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;object-fit:fill}.heatmap-stage img{filter:grayscale(.6) brightness(.8)}.heatmap-nobg{position:absolute;top:0;right:0;bottom:0;left:0;display:grid;place-items:center;color:var(--text-faint);font-size:.8rem}.heatmap-tip{transform:translate(-50%,calc(-100% - 8px))}.heatmap-foot{display:flex;justify-content:space-between;flex-wrap:wrap;gap:.5rem;font-size:.75rem;color:var(--text-dim);margin-top:.5rem;max-width:960px}.heatmap-scale{display:inline-flex;align-items:center;gap:.4rem}.heatmap-scale i{width:90px;height:8px;border-radius:2px;background:linear-gradient(90deg,#d9592614,#d95926eb)}@media (max-width: 820px){.counts-charts{grid-template-columns:1fr}}.backup-stored-pick{display:flex;align-items:center;gap:.5rem;min-height:36px;font-family:monospace;font-size:.8rem;color:var(--text)}.backup-stored-pick .btn-inline{margin:0}.backup-preview{margin-top:1rem;border-top:1px solid var(--border);padding-top:.75rem}.backup-row-empty td{color:var(--text-faint)}.backup-names{max-width:280px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--text-dim);font-size:.8rem}.backup-page td .btn-inline{margin:0 0 0 .35rem}.backup-page .ports-https{margin:.6rem 0}.backup-page .field-label{margin-bottom:.4rem}.uploads-page .ports-https{margin:.35rem 0}.uploads-choose{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:1rem;margin:.75rem 0;max-width:760px}.uploads-choose-title{display:block;font-size:.8rem;color:var(--text-dim);margin-bottom:.25rem}.uploads-cams{max-height:180px;overflow-y:auto}.upload-status{display:inline-block;font-size:.75rem;padding:.1rem .45rem;border-radius:4px;background:var(--surface-hover);color:var(--text-dim)}.upload-done{color:var(--success)}.upload-error{color:var(--danger);background:var(--danger-bg)}.upload-retry{color:var(--warning)}.upload-err{font-size:.72rem;color:var(--text-faint);margin-top:.2rem;max-width:360px}.uploads-page td .btn-inline{margin:0 0 0 .35rem}.remote-state{display:flex;align-items:center;gap:.6rem;flex-wrap:wrap}.remote-state a{color:var(--info)}.remote-dot{width:10px;height:10px;border-radius:50%;background:var(--text-faint)}.remote-ok{background:var(--success)}.remote-warn{background:var(--warning)}.remote-err{background:var(--danger)}.remote-you{font-size:.75rem;color:var(--warning)}.remote-steps{font-size:.85rem;color:var(--text-dim);line-height:1.6;padding-left:1.2rem;max-width:760px}.remote-steps code,.uploads-page code{background:var(--surface-hover);padding:0 .3rem;border-radius:3px;color:var(--text)}.remote-page textarea{width:100%;font-family:monospace;font-size:.78rem;background:var(--bg-elevated);color:var(--text);border:1px solid var(--border-strong);border-radius:6px;padding:.5rem;resize:vertical}.push-topics .ports-https{margin:.3rem 0}.push-devices{list-style:none;padding:0;margin:0}.push-devices li{display:flex;justify-content:space-between;align-items:center;gap:.5rem;padding:.35rem 0;border-top:1px solid var(--border);font-size:.85rem}.push-devices em{color:var(--warning);font-style:normal;font-size:.75rem}button.cam-overlay-listen,button.cam-overlay-talk{display:inline-flex;align-items:center;gap:.35rem;background:#0a0a0ab8;border:1px solid rgba(255,255,255,.16);border-radius:4px}button.cam-overlay-listen.on{border-color:#ffffff8c;background:#282828e6}button.cam-overlay-talk.connecting{border-color:var(--warning)}button.cam-overlay-talk.live{border-color:var(--danger);background:#7f1d1dd9;animation:talk-pulse 1.2s ease-in-out infinite}button.cam-overlay-talk.error{border-color:var(--danger);color:#fca5a5}@keyframes talk-pulse{50%{box-shadow:0 0 0 4px #ef444440}}.audio-fieldset .audio-check{display:flex;align-items:center;gap:.5rem;margin:.5rem 0 .25rem;font-size:.85rem}.audio-fieldset .audio-check input{width:auto;margin:0}.sound-meter{display:flex;align-items:center;gap:.75rem;flex-wrap:wrap;font-size:.75rem;color:var(--text-dim);margin:.4rem 0}.sound-meter-bar{position:relative;width:260px;height:10px;border-radius:3px;background:var(--surface-hover);overflow:hidden}.sound-meter-fill{position:absolute;left:0;top:0;bottom:0;background:var(--info);transition:width .3s}.sound-meter-bg,.sound-meter-thr,.sound-meter-rise{position:absolute;top:-2px;bottom:-2px;width:2px}.sound-meter-bg{background:var(--text-faint)}.sound-meter-thr{background:var(--danger)}.sound-meter-rise{background:var(--warning)}.cam-overlay button,.ptz button,.mosaic-label,.mosaic-label button,.clip-host button{color:#f5f5f5}.timelapse-page td input[type=checkbox]{accent-color:var(--hl)}.mqtt-page td code{font-size:.78rem}.timesync-ref{font-size:.85rem;border-left:3px solid var(--border-strong)}.timesync-ref.good{border-left-color:var(--success)}.timesync-ref.bad{border-left-color:var(--danger)}.timesync-ref.warn{border-left-color:var(--warning)}.timesync-ref code{background:var(--surface-hover);padding:0 .3rem;border-radius:3px}.ts-drift{font-variant-numeric:tabular-nums;font-weight:600}.ts-drift.ok{color:var(--success)}.ts-drift.bad{color:var(--danger)}.ts-before{font-size:.72rem;color:var(--text-faint)}.notify-fieldset .notify-check{display:flex;align-items:center;gap:.5rem;margin:.35rem 0;font-size:.85rem}.notify-fieldset .notify-check input{width:auto;margin:0}.objects-group{margin:.5rem 0}.objects-group-title{display:block;font-size:.75rem;color:var(--text-dim);text-transform:capitalize;margin-bottom:.25rem}.objects-grid{display:flex;flex-wrap:wrap;gap:.35rem}.objects-item{display:flex;align-items:center;gap:.5rem;padding:.25rem .5rem;border:1px solid var(--border);border-radius:6px;font-size:.82rem}.objects-item.on{border-color:var(--border-strong);background:var(--surface-hover)}.objects-item label{display:flex;align-items:center;gap:.3rem;margin:0}.objects-item input{width:auto;margin:0}.objects-alarm{font-size:.72rem;color:var(--danger)}.counts-objects{margin-bottom:1rem}.counts-object-list{display:grid;gap:.35rem;max-width:640px}.counts-object-row{display:grid;grid-template-columns:120px 1fr 70px;align-items:center;gap:.6rem;font-size:.82rem}.counts-object-bar{height:10px;background:var(--surface-hover);border-radius:3px;overflow:hidden}.counts-object-bar i{display:block;height:100%;background:#3987e5;border-radius:0 3px 3px 0}.counts-object-n{text-align:right;font-variant-numeric:tabular-nums}.counts-objects-cell{font-size:.75rem;color:var(--text-dim);max-width:260px}.mask-details summary{cursor:pointer;font-weight:600;font-size:.88rem}.mask-stage{position:relative;max-width:640px;aspect-ratio:16 / 9;background:#000;border-radius:6px;overflow:hidden;-webkit-user-select:none;user-select:none;touch-action:none}.mask-stage.can-draw{cursor:crosshair}.mask-stage img{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;object-fit:fill;pointer-events:none}.mask-nobg{position:absolute;top:0;right:0;bottom:0;left:0;display:grid;place-items:center;color:var(--text-faint);font-size:.8rem}.mask-rect{position:absolute;background:#000000d1;border:1px solid rgba(255,255,255,.5);cursor:pointer}.mask-rect.drawing{background:#00000080;border-style:dashed;cursor:crosshair}.mask-rect:hover:not(.drawing){border-color:var(--danger)}.clip-privacy-busy{font-size:.75rem;color:var(--warning);margin-left:.4rem}.assistant-toggle{width:auto;margin:0;display:inline-flex;align-items:center;gap:.35rem;padding:.3rem .6rem;font-size:.8rem;background:var(--surface);color:var(--text);border:1px solid var(--border-strong)}.assistant-panel{position:fixed;right:16px;bottom:16px;top:76px;width:min(420px,calc(100vw - 32px));z-index:900;display:flex;flex-direction:column;background:var(--bg-elevated);border:1px solid var(--border-strong);border-radius:10px;box-shadow:0 8px 30px #00000059}.assistant-head{display:flex;justify-content:space-between;align-items:center;padding:.6rem .8rem;border-bottom:1px solid var(--border)}.assistant-head .btn-link{margin-left:.6rem;font-size:.8rem;color:var(--text-dim)}.assistant-list{flex:1;overflow-y:auto;padding:.8rem;display:flex;flex-direction:column;gap:.6rem}.assistant-empty p{font-size:.82rem;color:var(--text-dim);margin-top:0}.assistant-empty .btn-inline{display:block;margin:.35rem 0;text-align:left;white-space:normal}.assistant-msg{display:flex;flex-direction:column;max-width:92%}.assistant-msg.user{align-self:flex-end;align-items:flex-end}.assistant-bubble{padding:.5rem .7rem;border-radius:10px;font-size:.85rem;line-height:1.4;white-space:pre-wrap;background:var(--surface);border:1px solid var(--border)}.assistant-msg.user .assistant-bubble{background:var(--btn-bg);color:var(--btn-fg);border-color:transparent}.assistant-bubble.typing{color:var(--text-faint);font-style:italic}.assistant-meta{font-size:.66rem;color:var(--text-faint);margin-top:.15rem}.assistant-input{display:flex;gap:.4rem;padding:.6rem;border-top:1px solid var(--border)}.assistant-input input{margin:0}.assistant-input button{margin:0;width:auto}@media (max-width: 820px){.assistant-panel{top:60px;right:8px;left:8px;width:auto}}@media (max-width: 1800px){.assistant-toggle span{display:none!important}.assistant-toggle{padding:.3rem .45rem}}.phone-preview{position:relative;max-width:480px;aspect-ratio:16 / 9;background:#000;border-radius:8px;overflow:hidden;margin:.75rem 0}.phone-preview video{width:100%;height:100%;object-fit:contain}.phone-live{position:absolute;top:8px;left:8px;background:#7f1d1de6;color:#fff;font-size:.75rem;font-weight:700;padding:2px 8px;border-radius:4px}.ai-perf{margin-top:1.5rem}.ai-perf h4{margin:1rem 0 .4rem;font-size:.9rem}.ai-perf-tiles{display:flex;gap:1rem;flex-wrap:wrap;margin-bottom:.75rem}.ai-perf-tiles>div{display:flex;flex-direction:column;min-width:160px;padding:.5rem .75rem;border:1px solid var(--border);border-radius:6px}.ai-perf-tiles span{font-size:.72rem;color:var(--text-dim)}.ai-perf-tiles strong{font-size:1.4rem;font-variant-numeric:tabular-nums}.ai-perf-tiles strong.warn{color:var(--warning)}.ai-perf-tiles strong.bad{color:var(--danger)}.ai-perf-tiles small{font-size:.7rem;color:var(--text-faint)}.ai-perf-bar{position:relative;display:block;height:8px;background:var(--surface-hover);border-radius:3px}.ai-perf-bar i{position:absolute;left:0;top:0;bottom:0;background:#3987e5;border-radius:3px}.ai-perf-bar b{position:absolute;top:-2px;bottom:-2px;width:2px;background:var(--text-dim)}.train-chart{width:100%;max-width:560px;height:auto;display:block;margin:.5rem 0}.train-job{border-top:1px solid var(--border);padding:.6rem 0}.train-job-head{display:flex;align-items:center;gap:.6rem;flex-wrap:wrap}.train-job-head .btn-inline{margin:0}.train-status{font-size:.72rem;padding:.1rem .45rem;border-radius:4px;background:var(--surface-hover);color:var(--text-dim)}.train-status.running{color:var(--info)}.train-status.done{color:var(--success)}.train-status.failed{color:var(--danger)}.train-progress{height:6px;background:var(--surface-hover);border-radius:3px;overflow:hidden;margin:.4rem 0;max-width:560px}.train-progress i{display:block;height:100%;background:#3987e5}.label-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:.6rem}.label-card{border:1px solid var(--border);border-radius:6px;padding:.35rem}.label-card.reviewed{border-color:var(--success)}.label-stage{position:relative;background:#000;-webkit-user-select:none;user-select:none;touch-action:none;cursor:crosshair}.label-stage img{display:block;width:100%;height:auto;pointer-events:none}.label-box{position:absolute;border:2px solid #22c55e;box-shadow:0 0 0 1px #0009}.label-box.drawing{border-style:dashed;border-color:#f59e0b}.label-actions{display:flex;gap:.35rem;margin-top:.35rem}.label-actions .btn-inline{margin:0}.cam-form-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(340px,1fr));gap:1rem 1.5rem;align-items:start}.cam-form-col{min-width:0;border-top:2px solid var(--border);padding-top:.5rem}.cam-form-col-title{margin:0 0 .5rem;font-size:.8rem;text-transform:uppercase;letter-spacing:.06em;color:var(--text-faint, #9aa0a6)}@media (max-width: 820px){.cam-form-grid{grid-template-columns:1fr}}.mosaic-edit{position:absolute;top:0;right:0;bottom:0;left:0;z-index:6;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.5rem;background:#0000008c;padding:.5rem}.mosaic-edit label{display:flex;flex-direction:column;gap:.25rem;font-size:.78rem;color:#fff;width:min(90%,280px)}.mosaic-edit select{margin:0;width:100%}.mosaic-edit button{margin:0}.sound-types{display:grid;grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:.25rem .75rem;margin:.25rem 0 .6rem 1.6rem;font-size:.85rem}.sound-types>label:not(.field-label){display:flex;align-items:center;gap:.4rem}.sound-types input[type=checkbox]{width:auto;margin:0}.sim-status{color:var(--text-faint, #9aa0a6);font-size:.82rem}.sim-kinds{display:flex;flex-wrap:wrap;gap:.35rem 1rem;align-items:center;margin-top:.4rem;font-size:.85rem}.sim-kinds label{display:flex;align-items:center;gap:.35rem}.sim-kinds input{width:auto;margin:0}.sim-thumb img{object-fit:contain;background:#000}.sim-ref{display:flex;gap:1rem;align-items:flex-start;margin:.75rem 0}.sim-ref .sim-thumb{width:200px;flex:none}.sim-other{display:flex;align-items:center;gap:.4rem;margin:.4rem 0;font-size:.88rem}.sim-other input{width:auto;margin:0}.sim-plate{font-family:ui-monospace,monospace;font-weight:700;letter-spacing:.04em}.sim-alert{outline:2px solid var(--danger)}.sim-score{height:4px;background:var(--border);border-radius:2px;margin-top:.35rem;overflow:hidden}.sim-score i{display:block;height:100%;background:var(--text-dim)}@media (max-width: 820px){.sim-ref{flex-direction:column}.sim-ref .sim-thumb{width:100%}}.speed-form{max-width:980px;margin-bottom:1.5rem}.speed-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:.25rem 1rem}.speed-checks{display:flex;flex-wrap:wrap;gap:.4rem 1.5rem;margin:.5rem 0;font-size:.88rem}.speed-checks label,.speed-over{display:flex;align-items:center;gap:.4rem;white-space:nowrap}.speed-checks input,.speed-over input{width:auto;margin:0}.speed-filter{align-items:center;margin-bottom:.5rem}.speed-limit{color:var(--text-faint, #9aa0a6);font-size:.82rem}.alarm-mode-btn{width:auto;margin:0;display:inline-flex;align-items:center;gap:.35rem;padding:.28rem .6rem;border-radius:6px;font-size:.78rem;font-weight:600;background:transparent;border:1px solid var(--border)}.alarm-mode-btn.is-armed{color:var(--success);border-color:color-mix(in srgb,var(--success) 45%,transparent)}.alarm-mode-btn.is-disarmed{color:var(--warning);border-color:color-mix(in srgb,var(--warning) 55%,transparent);background:color-mix(in srgb,var(--warning) 10%,transparent)}.alarm-mode-btn.is-confirm{outline:2px solid currentColor}.alarm-mode-btn:disabled{cursor:default;opacity:.9}.ok-msg{color:var(--success)}.zones-canvas{position:relative;width:100%;-webkit-user-select:none;user-select:none;border-radius:6px;overflow:hidden;background:#000}.zones-canvas img{display:block;width:100%;height:auto}.zones-canvas svg{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%}.zones-canvas polygon{stroke-width:.5;vector-effect:non-scaling-stroke;stroke-width:2px}.zones-canvas .zone-mask{fill:#0000008c;stroke:#9ca3af;stroke-dasharray:4 3}.zones-canvas .zone-pt{fill:#fff}.zones-canvas.is-drawing{cursor:crosshair;outline:2px solid var(--warning)}.zone-tag{position:absolute;transform:translate(-2px,-110%);font-size:.7rem;color:#000;padding:0 .3rem;border-radius:3px;pointer-events:none}.zones-drawbar{display:flex;align-items:center;gap:.6rem;margin:.4rem 0;font-size:.85rem;color:var(--warning)}.zones-drawbar button{margin:0}.zone-card{border-left:4px solid;padding:.4rem 0 .4rem .6rem;margin:.5rem 0;background:var(--surface-2, rgba(255,255,255,.02))}.zone-card .field-row input{flex:1}.zone-card .field-row button{margin:0;flex:none}.speed-checks input[type=number]{display:inline-block}.rv-bar{display:flex;flex-wrap:wrap;align-items:center;gap:.6rem 1rem}.rv-seg{display:inline-flex;border:1px solid var(--border);border-radius:6px;overflow:hidden}.rv-seg button{width:auto;margin:0;border:0;border-radius:0;background:transparent;color:var(--text-dim);padding:.35rem .7rem;font-size:.82rem}.rv-seg button.is-on{background:var(--btn-bg, #2e2e2e);color:var(--text);font-weight:600}.rv-day{margin:1rem 0 .4rem;font-size:.8rem;text-transform:capitalize;color:var(--text-faint, #9aa0a6)}.rv-item{display:flex;gap:.8rem;padding:.6rem;border:1px solid var(--border);border-left:4px solid var(--border);border-radius:6px;margin-bottom:.5rem;background:var(--surface, transparent)}.rv-item.is-alert{border-left-color:var(--danger)}.rv-item.is-seen{opacity:.55}.rv-photos{display:flex;gap:.3rem;flex:none}.rv-thumb{width:150px;height:96px;background:#000;border-radius:4px;overflow:hidden;cursor:zoom-in;display:flex;align-items:center;justify-content:center}.rv-thumb img{width:100%;height:100%;object-fit:cover}.rv-nophoto{color:var(--text-faint, #9aa0a6);font-size:.75rem;cursor:default}.rv-info{flex:1;min-width:0}.rv-head{display:flex;align-items:center;gap:.6rem;flex-wrap:wrap}.rv-badge{font-size:.68rem;font-weight:700;letter-spacing:.05em;padding:.05rem .4rem;border-radius:3px;background:var(--border);color:var(--text-dim);text-transform:uppercase}.rv-badge.is-alert{background:var(--danger);color:#fff}.rv-time{color:var(--text-dim);font-size:.82rem}.rv-summary{margin-top:.25rem;font-size:.9rem}.rv-labels{font-size:.8rem;color:var(--text-dim);margin-top:.15rem}.rv-actions{display:flex;gap:.4rem;margin-top:.45rem}.rv-actions button{margin:0}@media (max-width: 820px){.rv-item{flex-direction:column}.rv-photos{overflow-x:auto}}.attend-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:5000;background:#000000b8;display:flex;align-items:center;justify-content:center;padding:16px}.attend-box{width:min(620px,100%);max-height:100%;overflow:auto;background:var(--surface, #1b1b1b);border:1px solid var(--danger);border-radius:8px;padding:1rem 1.2rem;box-shadow:0 10px 40px #0009}.attend-head{display:flex;align-items:center;gap:.6rem;flex-wrap:wrap;margin-bottom:.6rem}.attend-body{display:flex;gap:.8rem;margin-bottom:.8rem;align-items:flex-start}.attend-photo{width:220px;border-radius:4px;background:#000;flex:none}.attend-summary{font-size:1rem;font-weight:600;margin-bottom:.2rem}.attend-box textarea{width:100%}@media (max-width: 820px){.attend-body{flex-direction:column}.attend-photo{width:100%}}@media (min-width: 821px) and (max-width: 1680px){.app-nav .nav-btn{padding-left:.5rem!important;padding-right:.5rem!important}.assistant-toggle .hide-mobile{display:none}.app-user{gap:.5rem!important}}.state-form{display:grid;grid-template-columns:minmax(260px,360px) 1fr;gap:20px;align-items:start}.state-form-fields{display:flex;flex-direction:column;gap:12px}.state-region{position:relative;-webkit-user-select:none;user-select:none;touch-action:none;cursor:crosshair;max-width:760px;line-height:0}.state-region img{width:100%;display:block;border-radius:6px}.state-region-box{position:absolute;border:2px solid var(--info);background:#60a5fa26;pointer-events:none}.state-card{margin-bottom:12px}.state-head{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.state-title{background:none;border:0;padding:0;color:var(--text);cursor:pointer;font-size:15px}.state-now{padding:2px 10px;border-radius:999px;border:1px solid var(--border);font-size:13px}.state-now.alert{border-color:var(--danger);color:var(--danger)}.state-trainer{margin-top:14px;display:flex;flex-direction:column;gap:14px}.state-live{display:flex;gap:16px;align-items:flex-start;flex-wrap:wrap}.state-live-img{width:280px;min-height:120px;display:flex;align-items:center;justify-content:center;background:#000;border-radius:6px;color:var(--text-dim);font-size:13px}.state-live-img img{max-width:100%;max-height:280px;display:block;border-radius:6px}.state-capture{display:flex;flex-direction:column;gap:8px}.state-capture button small{color:var(--text-dim)}.state-missing{color:var(--warning);font-weight:400;font-size:13px}.state-samples{display:flex;gap:6px;flex-wrap:wrap;margin-top:6px}.state-sample{position:relative;width:84px;height:64px;background:#000;border-radius:4px;overflow:hidden}.state-sample img{width:100%;height:100%;object-fit:cover}.state-sample button{position:absolute;top:2px;right:2px;padding:0 6px;line-height:18px;font-size:13px;background:#000000b3}@media (max-width: 820px){.state-form{grid-template-columns:1fr}}.states-page button{width:auto;margin-top:0}.states-page .state-title{flex:0 1 auto;text-align:left}.states-page .state-capture button{min-width:140px;text-align:left}.states-page .state-sample button{margin:0}.states-page .state-form-fields input,.states-page .state-form-fields select{width:100%}.states-page .state-form-fields input[type=checkbox]{width:auto;margin:0}.autotrack-fieldset button{width:auto;margin-top:0}.autotrack-home,.autotrack-targets,.autotrack-actions{display:flex;align-items:center;gap:.6rem;flex-wrap:wrap;margin:.5rem 0;font-size:.85rem}.autotrack-targets .audio-check{display:flex;align-items:center;gap:.3rem;margin:0}.autotrack-targets input[type=checkbox]{width:auto;margin:0}.autotrack-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:.5rem .8rem}.autotrack-num{display:flex;flex-direction:column;font-size:.78rem;color:var(--text-dim)}.autotrack-num input,.autotrack-num select{margin-top:.25rem}.autotrack-state{font-size:.82rem;padding:2px 10px;border-radius:999px;border:1px solid var(--border)}.autotrack-state.on{border-color:var(--success);color:var(--success)}.ai-overview table{font-size:.82rem}.ai-overview td:first-child{font-weight:600}.ai-overview td{vertical-align:top}@keyframes alert-flash-blink{0%,49%{background:#ff00006b;box-shadow:inset 0 0 0 6px red,inset 0 0 60px 10px #ff0000e6}50%,to{background:#f000;box-shadow:inset 0 0 0 6px #ff00008c}}.alert-flash{position:absolute;top:0;right:0;bottom:0;left:0;z-index:6;pointer-events:none;animation:alert-flash-blink .8s infinite;display:flex;align-items:flex-end;justify-content:center;padding:10px}.alert-flash-box{pointer-events:auto;display:flex;align-items:center;gap:10px;background:#d10000;color:#fff;padding:6px 10px;border-radius:6px;box-shadow:0 0 18px #ff0000e6;max-width:100%;font-size:.85rem}.alert-flash-box strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.alert-flash-box span{opacity:.85;font-size:.75rem;flex-shrink:0}.alert-flash-box button{width:auto;margin:0;padding:3px 10px;background:#fff;color:#b00000;border:0;font-weight:700;flex-shrink:0}.alert-flash.compact{padding:4px}.alert-flash.compact .alert-flash-box{padding:3px 6px;gap:6px;font-size:.7rem}.alert-flash.compact .alert-flash-box span:not(.alert-flash-attend){display:none}.cam-thumb.alerting{animation:thumb-alert-blink .8s infinite}@keyframes thumb-alert-blink{0%,49%{box-shadow:0 0 0 3px red,0 0 14px 4px #ff0000e6}50%,to{box-shadow:0 0 0 3px #ff000059}}.live-layout-bar{display:flex;align-items:center;gap:6px;margin-bottom:8px;font-size:.8rem;color:var(--text-dim);flex-wrap:wrap}.live-layout-bar button{width:auto;margin:0;padding:2px 12px;font-size:.85rem}.live-layout-bar button.on{background:var(--hl);color:var(--bg, #121212);border-color:var(--hl)}.live-layout-hint{margin-left:6px;font-size:.75rem}.live-grid{flex:1;min-height:0;display:grid;gap:8px}.live-grid-1{grid-template-columns:1fr;grid-template-rows:1fr}.live-grid-2{grid-template-columns:1fr 1fr;grid-template-rows:1fr}.live-grid-4{grid-template-columns:1fr 1fr;grid-template-rows:1fr 1fr}.live-grid>*{min-width:0;min-height:0}.cam-console.active-slot,.live-empty-slot.active-slot{border-color:var(--hl);box-shadow:0 0 0 2px var(--hl)}.live-empty-slot{display:flex;align-items:center;justify-content:center;border:1px dashed var(--border-strong);border-radius:10px;color:var(--text-dim);font-size:.85rem;cursor:pointer}.cam-console.compact .cam-main-video-wrap{flex:1}.cam-thumb-slot{position:absolute;top:3px;right:3px;background:var(--hl);color:#121212;font-size:.65rem;font-weight:700;border-radius:3px;padding:0 5px}@media (max-width: 820px){.live-grid-2,.live-grid-4{grid-template-columns:1fr;grid-template-rows:none;grid-auto-rows:minmax(200px,auto)}}.alert-flash-box.clickable{cursor:pointer}.alert-flash-attend{background:#fff;color:#b00000;font-weight:800;padding:1px 6px;border-radius:3px;opacity:1!important}.feed-pinned{border:2px solid #ff1a1a;border-radius:6px;margin-bottom:8px;animation:thumb-alert-blink .8s infinite}.feed-pinned-head{display:flex;justify-content:space-between;align-items:center;background:#c00000;color:#fff;font-size:.75rem;font-weight:700;padding:3px 6px}.feed-pinned-head .btn-link{color:#fff;font-size:.72rem;margin:0;width:auto}.alarm-popup-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:2000;background:#000000b8;display:flex;align-items:center;justify-content:center;padding:16px}.alarm-popup{width:min(1200px,100%);max-height:calc(100vh - 32px);display:flex;flex-direction:column;background:var(--surface);border:3px solid #ff1a1a;border-radius:10px;overflow:hidden;animation:thumb-alert-blink .8s infinite}.alarm-popup-head{display:flex;align-items:center;gap:16px;background:#c00000;color:#fff;padding:10px 16px}.alarm-popup-kind{font-size:1.3rem;font-weight:800;letter-spacing:.03em;white-space:nowrap}.alarm-popup-title{display:flex;flex-direction:column;min-width:0}.alarm-popup-title strong{font-size:1.15rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.alarm-popup-title span{font-size:.8rem;opacity:.9}.alarm-popup-body{display:grid;grid-template-columns:minmax(280px,400px) 1fr;gap:12px;padding:12px 16px;overflow:auto;min-height:0}.alarm-popup-info{display:flex;flex-direction:column;gap:10px;font-size:.88rem}.alarm-popup-event{background:#ff00001f;border:1px solid rgba(255,0,0,.5);border-radius:6px;padding:10px}.alarm-popup-desc{font-size:1.15rem;font-weight:800;color:#ff5a5a}.alarm-popup-zone{font-size:1.05rem;font-weight:700;margin-top:2px}.alarm-popup-block strong{display:block;font-size:.75rem;text-transform:uppercase;color:var(--text-dim);margin-bottom:3px}.alarm-popup-line{margin:0}.alarm-popup-events{max-height:180px;overflow:auto;font-size:.8rem}.alarm-popup-events .hot{color:#ff5a5a;font-weight:700}.alarm-popup-cams{display:grid;gap:8px;min-height:280px}.alarm-popup-cams.n1{grid-template-columns:1fr}.alarm-popup-cams.n2,.alarm-popup-cams.n3,.alarm-popup-cams.n4{grid-template-columns:1fr 1fr}.alarm-popup-cam{position:relative;background:#000;border-radius:6px;overflow:hidden;min-height:180px}.alarm-popup-cam>div{width:100%;height:100%}.alarm-popup-cam span{position:absolute;left:6px;bottom:6px;background:#000000a6;color:#fff;font-size:.75rem;padding:1px 6px;border-radius:3px}.alarm-popup-nocam{color:var(--text-dim);align-self:center;text-align:center}.alarm-popup-actions{display:flex;gap:10px;padding:10px 16px;border-top:1px solid var(--border);flex-wrap:wrap}.alarm-popup-actions button{width:auto;margin:0}.alarm-popup-attend{background:#d10000!important;border-color:#ff4d4d!important;color:#fff!important;font-weight:800;padding:.6rem 2rem;font-size:1rem}@media (max-width: 820px){.alarm-popup-body{grid-template-columns:1fr}}.alarm-page button{width:auto;margin-top:0}.alarm-card{margin-bottom:14px}.alarm-card.offline{border-color:var(--danger)}.alarm-card-head{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.alarm-sub{color:var(--text-dim);font-size:.8rem}.alarm-badge{font-size:.72rem;font-weight:800;padding:2px 8px;border-radius:999px;border:1px solid}.alarm-badge.ok{color:var(--success);border-color:var(--success)}.alarm-badge.hot{color:#fff;background:#c00000;border-color:#ff4d4d}.alarm-badge.muted{color:var(--text-dim);border-color:var(--border)}.alarm-problems{margin-top:8px;color:var(--warning);font-size:.85rem}.alarm-partitions{display:flex;gap:10px;flex-wrap:wrap;margin-top:10px}.alarm-partition{display:flex;gap:14px;align-items:center;border:1px solid var(--border);border-radius:8px;padding:8px 12px}.alarm-partition.armed{border-color:var(--info)}.alarm-partition.armed div>div{color:var(--info);font-weight:700}.alarm-partition.ok div>div{color:var(--success);font-weight:700}.alarm-partition.hot{border-color:#ff1a1a;animation:thumb-alert-blink .8s infinite}.alarm-partition.hot div>div{color:#ff5a5a;font-weight:800}.alarm-cmds{display:flex;gap:6px}.alarm-zones{display:grid;grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:6px;margin-top:10px}.alarm-zone{display:flex;align-items:center;gap:6px;border:1px solid var(--border);border-radius:6px;padding:4px 8px;font-size:.8rem}.alarm-zone-num{font-weight:800;min-width:22px;text-align:center;background:var(--border);border-radius:4px}.alarm-zone-name{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.alarm-zone.ok .alarm-zone-state{color:var(--success)}.alarm-zone.warn{border-color:var(--warning)}.alarm-zone.warn .alarm-zone-state{color:var(--warning)}.alarm-zone.hot{border-color:#ff1a1a;background:#ff000026}.alarm-zone.hot .alarm-zone-state{color:#ff5a5a;font-weight:800}.alarm-zone.muted{opacity:.6}.alarm-zone .btn-link{margin:0;font-size:.72rem}.alarm-pgms{display:flex;gap:6px;align-items:center;margin-top:10px;flex-wrap:wrap}.alarm-events{margin-top:10px;max-height:320px;overflow:auto;font-size:.8rem;border-top:1px solid var(--border)}.alarm-events>div{display:grid;grid-template-columns:150px 1fr 1fr 60px;gap:8px;padding:3px 0;border-bottom:1px solid var(--border)}.alarm-events>div.hot{color:#ff5a5a;font-weight:700}.alarm-editor{margin-top:12px}.alarm-editor-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}.alarm-editor textarea{width:100%}.alarm-contact-row{display:grid;grid-template-columns:1fr 1fr 1fr auto;gap:6px;margin-bottom:6px}.alarm-contact-row input,.alarm-zone-edit-row input{margin-top:0}.alarm-camchecks{display:flex;flex-wrap:wrap;gap:4px 14px;font-size:.8rem;width:100%}.alarm-camchecks label{display:flex;gap:5px;align-items:center}.alarm-camchecks input{width:auto;margin:0}.alarm-zone-edit{display:flex;flex-direction:column;gap:6px}.alarm-zone-edit-row{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.alarm-zone-edit-row input{max-width:280px}@media (max-width: 820px){.alarm-editor-grid,.alarm-contact-row{grid-template-columns:1fr}.alarm-events>div{grid-template-columns:1fr}}.update-notice{position:fixed;bottom:14px;left:50%;transform:translate(-50%);z-index:1500;background:var(--info);color:#fff;padding:8px 14px;border-radius:8px;display:flex;gap:12px;align-items:center;box-shadow:0 4px 18px #00000080;font-size:.9rem}.update-notice button{width:auto;margin:0;background:#fff;color:#111;border:0;font-weight:700;padding:3px 12px}.alarm-dash{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:8px;margin:10px 0}.alarm-dash-card{display:flex;flex-direction:column;align-items:flex-start;padding:10px 12px!important;border:1px solid var(--border);border-radius:8px;text-align:left}.alarm-dash-card strong{font-size:1.6rem;line-height:1.1}.alarm-dash-card span{font-size:.78rem;color:var(--text-dim)}.alarm-dash-card.on{border-color:var(--hl);box-shadow:0 0 0 2px var(--hl)}.alarm-dash-card.online strong{color:var(--success)}.alarm-dash-card.offline strong,.alarm-dash-card.alarm strong{color:#ff5a5a}.alarm-dash-card.armed strong{color:var(--info)}.alarm-dash-card.problem strong{color:var(--warning)}.alarm-search{max-width:520px;margin-bottom:12px}.alarm-editor-head{display:flex;align-items:baseline;gap:12px;flex-wrap:wrap}.alarm-tabs{display:flex;gap:4px;flex-wrap:wrap;margin:10px 0 14px;border-bottom:1px solid var(--border)}.alarm-tabs button{background:none;border:0;border-bottom:2px solid transparent;border-radius:0;padding:6px 10px;color:var(--text-dim)}.alarm-tabs button.on{color:var(--text);border-bottom-color:var(--hl);font-weight:700}.alarm-contact-card{display:grid;grid-template-columns:28px 1.2fr 1fr 1fr 1fr auto 1.2fr auto;gap:6px;align-items:center;margin-bottom:6px}.alarm-contact-card input{margin-top:0}.alarm-inline-check{display:flex;align-items:center;gap:4px;font-size:.78rem;white-space:nowrap}.alarm-inline-check input{width:auto;margin:0}.alarm-contact-btns{display:flex;gap:4px}.alarm-editor-actions{display:flex;gap:10px;align-items:center;margin-top:14px;flex-wrap:wrap}@media (max-width: 1100px){.alarm-contact-card{grid-template-columns:28px 1fr 1fr}}.groups-page button{margin-top:0}.groups-cams{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:6px}.groups-cams label{display:flex;align-items:center;gap:6px;border:1px solid var(--border);border-radius:6px;padding:5px 8px;font-size:.82rem;cursor:pointer}.groups-cams label.on{border-color:var(--success)}.groups-cams input{width:auto;margin:0}.groups-cams span{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.groups-cams small{color:var(--text-dim);font-size:.7rem}.groups-card{margin-bottom:10px}.groups-users{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin-top:8px}.groups-user{border:1px solid var(--border);border-radius:999px;padding:1px 4px 1px 10px;font-size:.82rem;display:inline-flex;align-items:center;gap:2px}.groups-user .btn-link{width:auto;margin:0;padding:0 4px}.alarm-badge.warn{color:var(--warning);border-color:var(--warning)}.alarm-dash-card.blocked strong{color:var(--warning)}.alarm-dash-card.cancelled strong{color:var(--text-dim)}.alarm-import{margin-bottom:12px}.alarm-import-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:6px;margin-top:8px}.alarm-import-list>div{display:flex;align-items:center;gap:8px;border:1px solid var(--border);border-radius:6px;padding:5px 8px}.alarm-import-list span{flex:1;font-weight:600;font-size:.85rem}.alarm-import-list small{color:var(--text-dim);font-size:.72rem}.alarm-import-list button{width:auto;margin:0}.roles-legend{margin-bottom:14px;font-size:.85rem}.roles-legend table{margin-top:6px}.roles-legend td:not(:first-child),.roles-legend th:not(:first-child){text-align:center;width:110px}.grp-top{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:14px;flex-wrap:wrap}.grp-top button{width:auto}.grp-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:10px}.grp-item{display:flex;flex-direction:column;align-items:flex-start;gap:4px;text-align:left;padding:14px 16px!important;border:1px solid var(--border);border-radius:10px;position:relative}.grp-item span{color:var(--text-dim);font-size:.82rem;font-weight:400}.grp-item .grp-item-go{position:absolute;right:14px;top:14px;color:var(--hl);font-weight:700}.grp-bar{position:sticky;top:0;z-index:5;display:flex;align-items:center;gap:10px;flex-wrap:wrap;background:var(--surface);border:1px solid var(--border);border-radius:10px;padding:10px 14px;margin-bottom:12px;box-shadow:0 4px 14px #00000059}.grp-bar button{width:auto;margin:0}.grp-dirty{color:var(--warning);font-size:.82rem;font-weight:700}.grp-step{border:1px solid var(--border);border-radius:10px;padding:12px 16px;margin-bottom:10px;background:var(--surface)}.grp-step-head{display:flex;gap:10px;align-items:flex-start;margin-bottom:10px}.grp-step-n{flex:0 0 26px;height:26px;border-radius:50%;background:var(--hl);color:#121212;font-weight:800;display:flex;align-items:center;justify-content:center}.grp-mods{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:8px}.grp-mods label{display:flex;gap:8px;align-items:flex-start;border:1px solid var(--border);border-radius:8px;padding:8px 10px;cursor:pointer}.grp-mods label.on{border-color:var(--success)}.grp-mods input{width:auto;margin:2px 0 0}.grp-mods span{display:flex;flex-direction:column}.grp-mods small{color:var(--text-dim);font-size:.75rem}.grp-cam-tools{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin-bottom:8px}.grp-howto{margin:0 0 8px;padding-left:20px;font-size:.85rem;color:var(--text-dim)}.forensic-check{display:flex;gap:8px;align-items:flex-start;border:1px solid var(--border);border-radius:8px;padding:8px 10px;margin:10px 0;font-size:.85rem}.forensic-check input{width:auto;margin:3px 0 0}.alarm-layout.with-side{display:grid;grid-template-columns:minmax(0,1fr) 360px;gap:12px;align-items:start}.alarm-card.selected{border-color:var(--hl);box-shadow:0 0 0 2px var(--hl)}.alarm-card-title{cursor:pointer}.alarm-side{position:sticky;top:8px;max-height:calc(100vh - 120px);overflow:auto;border:1px solid var(--border);border-radius:10px;background:var(--surface);padding:10px 12px}.alarm-side-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px}.alarm-side-head .btn-link{width:auto;margin:0}.alarm-side-ev{display:flex;flex-direction:column;border-bottom:1px solid var(--border);padding:5px 0;font-size:.8rem}.alarm-side-ev span{color:var(--text-dim);font-size:.75rem}.alarm-side-ev.hot strong{color:#ff5a5a}.alarm-client-cams{border:1px solid var(--border);border-radius:8px;padding:8px 10px;margin-bottom:12px}.alarm-client-cams summary{cursor:pointer;font-weight:700}@media (max-width: 1100px){.alarm-layout.with-side{grid-template-columns:1fr}}.alarm-popup-cam span{display:flex;align-items:center;gap:6px}.alarm-replay{margin:0;width:auto;padding:1px 7px;font-size:.72rem;background:#2e2e2e;color:#fff;border:1px solid #555;border-radius:3px;cursor:pointer}.alarm-replay:hover{background:#3c3c3c}.alarm-snaps{display:flex;flex-wrap:wrap;gap:6px;margin-top:4px}.alarm-snap img{width:120px;height:68px;object-fit:cover;border-radius:3px;border:1px solid var(--border);display:block}.alarm-snap-wrap{position:relative;display:inline-block}.alarm-snap-wrap .alarm-replay{position:absolute;right:3px;bottom:3px}.alarm-dash-card.disarmed strong{color:var(--text-dim)}.alarm-dash-card.idle strong,.alarm-dash-card.low_battery strong{color:var(--warning)}.alarm-dash-card.no_power strong{color:#ff5a5a}.alarm-inline-check{display:inline-flex;align-items:center;font-size:.8rem;color:var(--text-dim)}.alarm-sched-row{display:flex;flex-wrap:wrap;align-items:center;gap:8px;padding:6px 0;border-bottom:1px solid var(--border)}.alarm-sched-row .btn-inline{margin:0}.alarm-days{display:flex;gap:3px}.alarm-days label{display:inline-flex;align-items:center;padding:3px 8px;border:1px solid var(--border);border-radius:3px;font-size:.78rem;cursor:pointer;-webkit-user-select:none;user-select:none}.alarm-days label.on{background:var(--hl);color:var(--bg);border-color:var(--hl)}.alarm-days input{display:none}.alarm-upload{display:inline-block;cursor:pointer;padding:6px 12px;border-radius:4px;margin:0}.alarm-photos{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:10px}.alarm-photo{margin:0;border:1px solid var(--border);border-radius:4px;overflow:hidden;background:var(--surface)}.alarm-photo img,.alarm-photo-empty{width:100%;height:120px;object-fit:cover;display:block;background:#1b1b1b}.alarm-photo figcaption{display:flex;justify-content:space-between;align-items:center;padding:4px 8px;font-size:.78rem}.alarm-photo figcaption .btn-link{margin:0;width:auto}.alarm-tickets{display:flex;flex-direction:column;gap:8px;margin-top:10px}.alarm-ticket{border:1px solid var(--border);border-left:3px solid var(--info);border-radius:4px;padding:8px 10px;display:flex;flex-direction:column;gap:4px;font-size:.85rem}.alarm-ticket span{color:var(--text-dim);font-size:.78rem}.alarm-ticket p{margin:0;white-space:pre-wrap}.alarm-ticket .btn-inline{margin:0}.alarm-ticket.st-agendado{border-left-color:var(--warning)}.alarm-ticket.st-concluido{border-left-color:var(--success);opacity:.8}.alarm-ticket.st-cancelado{border-left-color:var(--text-dim);opacity:.6}.alarm-card{margin-bottom:8px;padding:8px 12px}.alarm-toolbar{display:flex;flex-wrap:wrap;gap:5px;padding-bottom:6px;border-bottom:1px solid var(--border)}.alarm-toolbar .btn-inline{margin:0;font-size:.78rem;padding:3px 9px}.alarm-row{display:grid;grid-template-columns:18px 130px minmax(160px,1.2fr) minmax(160px,1.5fr) minmax(170px,1.3fr);gap:10px;align-items:center;padding:7px 0 2px;cursor:pointer;font-size:.88rem}.alarm-row-head{cursor:default;font-size:.72rem;text-transform:uppercase;letter-spacing:.04em;color:var(--text-dim);padding:0 12px 4px}.alarm-row-caret{color:var(--text-dim)}.alarm-row-account{font-family:ui-monospace,monospace;font-weight:600}.alarm-row-name{display:flex;flex-direction:column;min-width:0}.alarm-row-name small{color:var(--text-dim);font-size:.75rem}.alarm-row-addr{color:var(--text-dim);font-size:.82rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.alarm-row-badges{display:flex;flex-wrap:wrap;gap:4px}.alarm-badge.armed{background:#3b82f62e;color:var(--info);border-color:var(--info)}.alarm-subpanel{border-top:1px dashed var(--border);margin-top:8px;padding-top:8px}.alarm-filters{display:flex;flex-wrap:wrap;gap:6px;align-items:center;margin-bottom:8px}.alarm-filters input,.alarm-filters select{width:auto;margin:0}.alarm-filters input:first-child{min-width:240px}.alarm-filters .btn-inline{margin:0}.alarm-occ{display:flex;gap:10px;align-items:flex-start;justify-content:space-between;border-left:3px solid var(--danger);padding:6px 8px;margin-bottom:6px;background:var(--surface);border-radius:3px}.alarm-occ>div:first-child{display:flex;flex-direction:column;gap:2px;flex:1;min-width:0}.alarm-occ.st-resolved{border-left-color:var(--success)}.alarm-occ.st-in_progress{border-left-color:var(--warning)}.alarm-occ-notes{font-size:.8rem;white-space:pre-wrap}.alarm-occ .btn-inline{margin:0}.alarm-client-cams{display:grid;gap:6px;margin-top:8px;grid-template-columns:repeat(2,1fr)}.alarm-client-cams.n1{grid-template-columns:1fr;max-width:900px}.alarm-client-cams .alarm-popup-cam{aspect-ratio:16 / 9;position:relative;background:#000}@media (max-width: 820px){.alarm-row{grid-template-columns:18px 1fr}.alarm-row-addr,.alarm-row-badges{grid-column:2}.alarm-row-head{display:none}.alarm-client-cams{grid-template-columns:1fr}}.alarm-dash-card.suspended strong{color:var(--warning)}.alarm-icon{vertical-align:-3px;flex-shrink:0}.alarm-toolbar .btn-inline,.alarm-tabs button,.alarm-rec-cam-head .btn-inline,.alarm-filters .btn-inline{display:inline-flex;align-items:center;gap:5px}.alarm-mini-link{margin:0!important;width:auto!important;padding:0 2px;color:var(--text-dim)}.alarm-jfl-setup{flex-basis:100%;border:1px solid var(--border);border-radius:4px;padding:10px 12px;margin-top:4px;background:var(--surface);font-size:.85rem}.alarm-jfl-setup ol{margin:6px 0;padding-left:18px;color:var(--text-dim)}.alarm-jfl-setup input{margin:0}.alarm-drawer{position:fixed;top:0;right:0;bottom:0;width:50vw;min-width:520px;z-index:900;background:var(--bg-elevated);border-left:1px solid var(--border);box-shadow:-8px 0 24px #00000080;display:flex;flex-direction:column}.alarm-drawer-head{display:flex;align-items:center;gap:12px;padding:10px 14px;border-bottom:1px solid var(--border)}.alarm-drawer-head>div:first-child{display:flex;flex-direction:column;flex:1;min-width:0}.alarm-drawer-head>div:first-child .alarm-sub{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.alarm-drawer-tabs{display:flex;gap:4px}.alarm-drawer-tabs button{margin:0;width:auto;display:inline-flex;align-items:center;gap:5px;padding:5px 12px;background:transparent;border:1px solid var(--border);color:var(--text-dim)}.alarm-drawer-tabs button.on{background:var(--hl);color:var(--bg);border-color:var(--hl)}.alarm-drawer-close{margin:0!important;width:auto!important;color:var(--text)}.alarm-drawer-body{flex:1;min-height:0;overflow-y:auto;padding:10px 14px}.alarm-drawer-grid{display:grid;gap:6px;grid-template-columns:1fr}.alarm-drawer-grid.n2,.alarm-drawer-grid.n3,.alarm-drawer-grid.n4{grid-template-columns:repeat(2,1fr)}.alarm-drawer-grid .alarm-popup-cam{aspect-ratio:16 / 9;min-height:0}.alarm-cam-chip{display:inline-flex;align-items:center;gap:4px;padding:3px 9px;border:1px solid var(--border);border-radius:999px;font-size:.8rem;cursor:pointer}.alarm-cam-chip.on{border-color:var(--hl)}.alarm-cam-chip input{margin:0;width:auto}.alarm-drawer-player{background:#000;border-radius:4px;overflow:hidden;margin-bottom:10px}.alarm-drawer-player-head{display:flex;align-items:center;gap:10px;padding:6px 10px;background:#111;color:#fff}.alarm-drawer-player-head .alarm-sub{flex:1}.alarm-drawer-player-head .btn-link{margin:0;width:auto;color:#fff}.alarm-drawer-player video{width:100%;max-height:52vh;display:block;background:#000}.alarm-rec-cam{border-top:1px solid var(--border);padding:8px 0;display:flex;flex-direction:column;gap:6px}.alarm-rec-cam-head{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.alarm-rec-cam-head .btn-inline{margin:0}.alarm-rec-list{display:flex;flex-wrap:wrap;gap:4px}.alarm-rec-seg{margin:0;width:auto;display:inline-flex;align-items:center;gap:4px;padding:3px 8px;font-size:.78rem;font-family:ui-monospace,monospace;background:#2a2a2a;border:1px solid var(--border)}.alarm-rec-seg.on{border-color:var(--success);color:var(--success)}@media (max-width: 820px){.alarm-drawer{width:100vw;min-width:0}.alarm-drawer-grid.n2,.alarm-drawer-grid.n3,.alarm-drawer-grid.n4{grid-template-columns:1fr}}.pb-main{display:grid;grid-template-columns:minmax(0,1fr) 280px;gap:1rem;margin-bottom:.8rem;align-items:start}.pb-video{display:block;width:100%;height:auto;max-height:calc(100vh - 360px);min-height:240px;object-fit:contain;background:#000;border-radius:var(--radius)}.pb-main>div:last-child{max-height:calc(100vh - 360px);overflow-y:auto}.pb-zoom{display:flex;flex-wrap:wrap;align-items:center;gap:4px;margin-bottom:6px;font-size:.78rem}.pb-zoom .btn-inline{margin:0;padding:2px 9px;font-size:.76rem}.pb-zoom-range{font-family:ui-monospace,monospace;font-weight:600;margin-right:10px}.pb-zoom-label{color:var(--text-dim);margin-right:2px}.pb-zoom-hint{color:var(--text-faint, var(--text-dim));margin-left:auto;font-size:.72rem}.pb-tick{position:absolute;top:0;bottom:0;width:1px;background:var(--border);pointer-events:none}.pb-tick span{position:absolute;top:1px;left:3px;font-size:.64rem;color:var(--text-dim);white-space:nowrap}.pb-playhead{position:absolute;top:0;bottom:0;width:2px;background:#fff;box-shadow:0 0 4px #fffc;pointer-events:none}.pb-playhead span{position:absolute;bottom:1px;left:4px;font-size:.64rem;background:#fff;color:#000;padding:0 3px;border-radius:2px;white-space:nowrap}@media (max-width: 820px){.pb-main{grid-template-columns:1fr}.pb-video{max-height:60vh}.pb-zoom-hint{display:none}}.fx-filters{display:flex;flex-direction:column;gap:8px;margin-bottom:12px}.fx-search{display:flex;gap:8px}.fx-search input{flex:1;margin:0;font-size:1rem}.fx-search button{margin:0;width:auto}.fx-row{display:flex;flex-wrap:wrap;align-items:center;gap:5px}.fx-row input[type=datetime-local]{width:auto;margin:0}.fx-row-split{gap:24px;align-items:flex-start}.fx-row-split>div{display:flex;flex-wrap:wrap;align-items:center;gap:5px}.fx-label{font-size:.75rem;text-transform:uppercase;letter-spacing:.04em;color:var(--text-dim);min-width:150px}.fx-row-split .fx-label{min-width:0;margin-right:4px}.fx-chip,.fx-color{margin:0;width:auto;padding:3px 10px;font-size:.8rem;background:transparent;border:1px solid var(--border);border-radius:999px;color:var(--text);display:inline-flex;align-items:center;gap:5px}.fx-chip small{color:var(--text-dim)}.fx-chip.on,.fx-color.on{border-color:var(--hl);background:var(--hl);color:var(--bg)}.fx-chip.on small{color:var(--bg)}.fx-color i,.fx-swatch i{width:11px;height:11px;border-radius:50%;border:1px solid rgba(255,255,255,.35);display:inline-block}.fx-dirs-wrap{align-items:flex-start!important}.fx-dirs{display:grid;grid-template-columns:repeat(3,26px);gap:2px}.fx-dirs button{margin:0;width:26px;height:24px;padding:0;font-size:.9rem;background:transparent;border:1px solid var(--border);color:var(--text)}.fx-dirs button.on{background:var(--hl);color:var(--bg)}.fx-note{margin:0;font-size:.74rem}.fx-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:10px}.fx-card{border:1px solid var(--border);border-radius:6px;overflow:hidden;background:var(--surface);display:flex;flex-direction:column}.fx-card.on{border-color:var(--info)}.fx-img{height:180px;background:#0b0b0b;display:flex;align-items:center;justify-content:center}.fx-img img{max-width:100%;max-height:100%;object-fit:contain}.fx-img.sm{width:56px;height:64px;flex-shrink:0}.fx-img-empty{width:100%;height:100%}.fx-card-body{padding:7px 9px 9px;display:flex;flex-direction:column;gap:2px;font-size:.82rem}.fx-card-top{display:flex;justify-content:space-between;align-items:center;text-transform:capitalize}.fx-score{font-family:ui-monospace,monospace;font-size:.75rem;color:var(--success)}.fx-attrs{display:flex;flex-wrap:wrap;gap:4px 8px;font-size:.76rem;color:var(--text-dim);margin-top:3px}.fx-swatch{display:inline-flex;align-items:center;gap:3px;color:var(--text);margin-left:3px}.fx-swatch.uncertain{opacity:.7;font-style:italic}.fx-card-actions{display:flex;gap:5px;margin-top:6px}.fx-card-actions .btn-inline{margin:0}.fx-follow{margin-bottom:12px;border-color:var(--info)}.fx-follow-head{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.fx-follow-head .btn-link{margin:0;width:auto}.fx-trail{display:flex;flex-direction:column;gap:0;border-left:2px solid var(--info);margin-left:70px}.fx-step{display:grid;grid-template-columns:80px 110px 1fr;gap:10px;align-items:start;padding:8px 0;margin-left:-80px;position:relative}.fx-step:before{content:"";position:absolute;left:76px;top:18px;width:10px;height:10px;border-radius:50%;background:var(--info)}.fx-step.ref:before{background:var(--success)}.fx-step.off{opacity:.4}.fx-step-time{display:flex;flex-direction:column;align-items:flex-end;font-size:.78rem;padding-right:12px}.fx-step .fx-img{height:120px;width:110px;border-radius:4px;margin-left:12px}.fx-step-info{display:flex;flex-direction:column;gap:2px;font-size:.84rem;padding-left:12px}.fx-step-actions{display:flex;gap:6px;align-items:center;margin-top:4px;flex-wrap:wrap}.fx-step-actions .btn-inline{margin:0}.fx-tag{font-size:.7rem;color:var(--success);text-transform:uppercase}.fx-check{display:inline-flex;align-items:center;gap:4px;font-size:.8rem}.fx-check input{margin:0;width:auto}.fx-follow-foot{display:flex;align-items:center;gap:10px;margin-top:10px;flex-wrap:wrap}.fx-follow-foot button{margin:0;width:auto}.fx-player-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1200;background:#000c;display:flex;align-items:center;justify-content:center;padding:16px}.fx-player{width:min(1400px,96vw);max-height:94vh;background:var(--bg-elevated);border:1px solid var(--border);border-radius:8px;display:flex;flex-direction:column;overflow:hidden}.fx-player-head,.fx-player-foot{display:flex;align-items:center;gap:8px;padding:8px 12px;flex-wrap:wrap}.fx-player-head .btn-inline,.fx-player-foot .btn-inline{margin:0}.fx-player-head .btn-link{margin:0;width:auto;font-size:1.1rem}.fx-player-body{display:flex;min-height:0;flex:1}.fx-player-video{flex:1;min-width:0;background:#000;position:relative;display:flex;align-items:center;justify-content:center}.fx-player-video video{width:100%;max-height:calc(94vh - 110px);object-fit:contain;display:block}.fx-player-still{width:100%;height:calc(94vh - 130px);display:flex;align-items:center;justify-content:center}.fx-player-still img{max-width:100%;max-height:100%;object-fit:contain}.fx-player-msg{position:absolute;left:12px;bottom:8px;margin:0;background:#000000b3;color:#fff;padding:4px 8px;border-radius:3px;font-size:.8rem}.fx-trail-mini{list-style:none;margin:0;padding:6px;width:250px;overflow-y:auto;border-left:1px solid var(--border)}.fx-trail-mini li{display:flex;gap:8px;padding:5px;border-radius:4px;cursor:pointer;font-size:.78rem}.fx-trail-mini li div{display:flex;flex-direction:column}.fx-trail-mini li.on{background:var(--hl);color:var(--bg)}.fx-trail-mini li.on .alarm-sub{color:var(--bg)}@media (max-width: 820px){.fx-label{min-width:0;flex-basis:100%}.fx-player-body{flex-direction:column}.fx-trail-mini{width:auto;max-height:30vh;border-left:0;border-top:1px solid var(--border)}.fx-search{flex-wrap:wrap}}.fx-plate{font-family:ui-monospace,monospace;font-weight:700;background:#f2f2f2;color:#111;padding:0 5px;border-radius:2px;border:1px solid #999;letter-spacing:.04em}.fx-by-plate{margin:2px 0 8px;font-size:.85rem;color:var(--success)}.amp{width:97vw;height:95vh;background:var(--bg-elevated);border:2px solid #c00000;border-radius:8px;display:flex;flex-direction:column;overflow:hidden;box-shadow:0 0 40px #ff000059}.amp.trouble{border-color:var(--warning);box-shadow:0 0 30px #ffaa0040}.amp-head{display:flex;align-items:center;gap:16px;padding:10px 14px;background:#2a0000;flex-wrap:wrap}.amp.trouble .amp-head{background:#2a1d00}.amp-kind{font-size:1.25rem;font-weight:900;color:#fff;background:#c00000;padding:6px 14px;border-radius:4px;animation:alarm-blink .8s steps(2) infinite}.amp.trouble .amp-kind{background:#b36b00;animation:none}@keyframes alarm-blink{50%{background:#ff1a1a}}.amp-title{display:flex;flex-direction:column;min-width:200px}.amp-title strong{font-size:1.2rem;color:#fff}.amp-title span{font-size:.85rem;color:#ddd}.amp-event{display:flex;flex-direction:column;flex:1;min-width:200px;color:#fff}.amp-event span{font-size:.9rem;color:#ffd0d0}.amp-actions{display:flex;gap:8px}.amp-actions button{margin:0;width:auto}.amp-body{flex:1;min-height:0;display:grid;grid-template-columns:minmax(0,1.7fr) minmax(320px,1fr);gap:10px;padding:10px}.amp-left,.amp-right{min-height:0;overflow-y:auto;display:flex;flex-direction:column;gap:8px}.amp-cams{display:grid;gap:6px;grid-template-columns:1fr}.amp-cams.n2,.amp-cams.n3,.amp-cams.n4{grid-template-columns:1fr 1fr}.amp-cams .alarm-popup-cam{aspect-ratio:16 / 9;min-height:0}.amp-cams.n1 .alarm-popup-cam{max-height:58vh}.amp-cam-pick{display:flex;flex-wrap:wrap;gap:4px;align-items:center}.amp-block{border:1px solid var(--border);border-radius:6px;padding:8px 10px;font-size:.88rem;display:flex;flex-direction:column;gap:3px}.amp-block>strong:first-child{font-size:.72rem;text-transform:uppercase;letter-spacing:.05em;color:var(--text-dim)}.amp-proc{border-color:var(--warning)}.amp-secrets{display:grid;grid-template-columns:1fr 1fr;gap:8px}.amp-secrets>div{border:1px solid var(--info);border-radius:6px;padding:8px 10px;display:flex;flex-direction:column}.amp-secrets>div.duress{border-color:#c00000}.amp-secrets span{font-size:.72rem;text-transform:uppercase;color:var(--text-dim)}.amp-secrets strong{font-size:1.3rem;letter-spacing:.04em}.amp-zones{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:4px}.amp-zone{display:grid;grid-template-columns:26px 1fr;gap:0 6px;padding:4px 6px;border-radius:4px;border:1px solid var(--border);font-size:.8rem}.amp-zone b{grid-row:span 2;font-size:1rem}.amp-zone em{font-style:normal;font-size:.72rem;color:var(--text-dim)}.amp-zone.hot{border-color:#ff4d4d;background:#c8000040}.amp-zone.warn{border-color:var(--warning)}.amp-zone.ok em{color:var(--success)}.amp-zone.event{outline:2px solid #ff4d4d;animation:alarm-blink-zone .8s steps(2) infinite}@keyframes alarm-blink-zone{50%{background:#ff000073}}.amp-contact a,.amp-block a{font-weight:700}.amp-ok{color:var(--success);font-weight:700}.amp-bad{color:#ff5a5a;font-weight:700}.amp-armed{color:var(--info)}@media (max-width: 900px){.amp-body{grid-template-columns:1fr;overflow-y:auto}.amp-left,.amp-right{overflow:visible}.amp-cams.n2,.amp-cams.n3,.amp-cams.n4{grid-template-columns:1fr}}.alarm-card{padding:4px 10px;margin-bottom:4px}.alarm-row{grid-template-columns:16px 110px minmax(150px,1.1fr) minmax(140px,1.3fr) minmax(150px,1fr) auto;padding:4px 0}.alarm-row-head{padding:0 10px 4px}.alarm-row-tools{display:flex;gap:2px;justify-content:flex-end;align-items:center;cursor:default}.alarm-row-head .alarm-row-tools{justify-content:flex-end}.alarm-tool{margin:0;width:64px;height:44px;padding:3px 2px;display:inline-flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;background:transparent;border:1px solid transparent;border-radius:5px;color:var(--text);font-size:.66rem;line-height:1.1}.alarm-tool:hover{background:#2a2a2a;border-color:var(--border)}.alarm-tool.on{background:var(--hl);color:var(--bg)}.alarm-tool span{white-space:nowrap}.alarm-more{position:relative}.alarm-menu{position:absolute;right:0;top:46px;z-index:50;min-width:250px;background:var(--bg-elevated);border:1px solid var(--border-strong, var(--border));border-radius:6px;box-shadow:0 8px 24px #00000080;padding:4px;display:flex;flex-direction:column}.alarm-menu hr{border:0;border-top:1px solid var(--border);margin:4px 0;width:100%}.alarm-menu-item{margin:0;width:100%;text-align:left;display:flex;align-items:center;gap:8px;padding:7px 10px;background:transparent;border:0;color:var(--text);font-size:.85rem;border-radius:4px}.alarm-menu-item:hover{background:#2a2a2a}.alarm-menu-item.danger{color:#ff6b6b}.alarm-menu-item.confirm{background:#7a0000;color:#fff}.alarm-menu-link{display:flex;gap:4px;padding:4px 8px}.alarm-menu-link input,.alarm-menu-link .btn-inline{margin:0}.alarm-toast{position:fixed;bottom:20px;left:50%;transform:translate(-50%);background:var(--info);color:#fff;padding:8px 14px;border-radius:6px;z-index:1600;font-size:.85rem}.alarm-modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1000;background:#000000b3;display:flex;align-items:flex-start;justify-content:center;padding:3vh 16px;overflow-y:auto}.alarm-modal{width:min(1250px,100%);background:var(--bg-elevated);border:1px solid var(--border);border-radius:8px;box-shadow:0 12px 40px #0009;padding:4px}.alarm-modal>.card,.alarm-modal>div{margin:0}.alarm-modal.small{width:min(560px,100%);padding:16px 20px;margin-top:12vh}.alarm-modal.small h3{margin-top:0;display:flex;align-items:center;gap:8px}.alarm-modal.small button{width:auto;margin:0}.integ-card{margin-bottom:14px}.integ-card h3{margin-top:0}.integ-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:8px 14px;margin-top:8px}.integ-actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-top:8px}.integ-actions button{width:auto;margin:0}.integ-tag{font-size:.7rem;text-transform:uppercase;background:var(--warning);color:#111;padding:1px 6px;border-radius:3px;vertical-align:middle}.integ-set{color:var(--success)}@media (max-width: 1300px){.alarm-row{grid-template-columns:16px 90px minmax(140px,1fr) minmax(120px,1fr) auto}.alarm-row-badges{grid-column:3 / 5}.alarm-row-tools{grid-row:1;grid-column:5}.alarm-row-head .alarm-row-badges{display:none}}@media (max-width: 820px){.alarm-row{grid-template-columns:16px 1fr}.alarm-row-tools,.alarm-row-badges{grid-column:2!important;grid-row:auto!important;justify-content:flex-start;flex-wrap:wrap}}.amp-cams{flex:1 1 auto;min-height:55vh;grid-auto-rows:minmax(0,1fr)}.amp-cams.n2{grid-template-columns:1fr}.amp-cams .alarm-popup-cam{aspect-ratio:auto;height:100%;min-height:0;max-height:none}.amp-cams.n1 .alarm-popup-cam{max-height:none}.amp-cams .alarm-popup-cam video,.amp-cams .alarm-popup-cam img{object-fit:contain}@media (max-width: 900px){.amp-cams{min-height:0;grid-auto-rows:auto}.amp-cams .alarm-popup-cam{aspect-ratio:16 / 9;height:auto}}.nvr-chans{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:4px;max-height:55vh;overflow-y:auto}.nvr-chan{display:grid;grid-template-columns:auto 28px 1fr;grid-template-rows:auto auto;column-gap:6px;align-items:center;padding:5px 8px;border:1px solid var(--border);border-radius:4px;font-size:.85rem;cursor:pointer}.nvr-chan input{margin:0;width:auto;grid-row:span 2}.nvr-chan b{grid-row:span 2}.nvr-chan small{grid-column:3;color:var(--success);font-size:.72rem}.nvr-chan.off small{color:#ff6b6b}.nvr-chan.done{opacity:.55}.nvr-chan.done small{color:var(--text-dim)}.alarm-row{grid-template-columns:14px 64px 70px minmax(150px,auto) minmax(150px,1fr) auto minmax(140px,1.2fr);gap:8px}.alarm-row-edit{display:flex;justify-content:center}.alarm-row-tools,.alarm-row-head .alarm-row-tools{justify-content:flex-start}.alarm-row-addr{text-align:left}@media (max-width: 1400px){.alarm-row{grid-template-columns:14px 64px 70px minmax(140px,auto) minmax(140px,1fr) auto}.alarm-row-addr{grid-column:3 / -1;grid-row:2}.alarm-row-badges,.alarm-row-tools{grid-column:auto;grid-row:auto}.alarm-row-head .alarm-row-addr{display:none}}@media (max-width: 820px){.alarm-row{grid-template-columns:14px 1fr}.alarm-row>*{grid-column:2!important;grid-row:auto!important}.alarm-row-caret{grid-column:1!important}}.alarm-row{grid-template-columns:14px 64px 70px 190px 250px 470px minmax(120px,1fr)}.alarm-row-name{overflow:hidden}.alarm-row-name strong,.alarm-row-name small{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.alarm-row-tools{gap:0}@media (max-width: 1250px){.alarm-row{grid-template-columns:14px 64px 70px 190px minmax(160px,1fr) 470px}.alarm-row-addr{grid-column:3 / -1;grid-row:2}.alarm-row-head .alarm-row-addr{display:none}}.alarm-row{grid-template-columns:14px 190px 64px 240px 640px minmax(100px,1fr)}.alarm-tool{width:78px;height:52px;font-size:.74rem;gap:3px}.alarm-tool .alarm-icon{width:20px;height:20px}.alarm-row-addr{font-size:.78rem}.alarm-tab-menu{position:relative;display:inline-block}.alarm-tabs button{display:inline-flex;align-items:center;gap:6px}.alarm-soon{display:flex;gap:14px;align-items:flex-start;max-width:820px}.alarm-soon p{margin:4px 0 0}.alarm-dash-card.pend strong{color:#ff5a5a}.alarm-dash-card.done strong{color:var(--success)}.alarm-occ-list{display:flex;flex-direction:column;gap:6px;margin-bottom:10px;max-height:380px;overflow-y:auto}@media (max-width: 1400px){.alarm-row{grid-template-columns:14px 190px 64px minmax(160px,1fr) 640px}.alarm-row-addr{grid-column:3 / -1;grid-row:2}.alarm-row-head .alarm-row-addr{display:none}}@media (max-width: 1100px){.alarm-row{grid-template-columns:14px 170px 64px minmax(140px,1fr)}.alarm-row-tools{grid-column:2 / -1;grid-row:2}.alarm-row-addr{grid-row:3}.alarm-row-head .alarm-row-tools{display:none}}@media (max-width: 820px){.alarm-row{grid-template-columns:14px 1fr}}.fx-photo-btn{display:inline-flex;align-items:center;gap:6px;margin:0;padding:0 14px;border-radius:6px;cursor:pointer;white-space:nowrap}.fx-photo-ref{display:flex;gap:14px;align-items:center;margin-bottom:10px}.fx-photo-ref img{width:110px;height:110px;object-fit:contain;background:#000;border-radius:4px}.fx-photo-ref>div{display:flex;flex-direction:column;gap:4px}.fx-score.weak{color:var(--text-dim)}.wanted-panel{margin-bottom:12px;border-color:#7a1f1f}.wanted-head{display:flex;align-items:center;gap:10px;cursor:pointer}.wanted-form{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:8px;align-items:end;margin:8px 0}.wanted-form input,.wanted-form select{margin:0}.wanted-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(340px,1fr));gap:8px;margin-top:8px}.wanted-item{display:flex;gap:10px;border:1px solid var(--border);border-radius:6px;padding:6px}.wanted-item.off{opacity:.5}.wanted-photo{width:70px;height:110px;flex-shrink:0;background:#0b0b0b;display:flex;align-items:center;justify-content:center;border-radius:4px;overflow:hidden}.wanted-photo img{max-width:100%;max-height:100%;object-fit:contain}.wanted-info{display:flex;flex-direction:column;gap:2px;font-size:.85rem;min-width:0}.wanted-actions{display:flex;gap:5px;margin-top:4px;flex-wrap:wrap}.wanted-actions .btn-inline{margin:0}.trail-map{margin-top:10px;border-radius:6px;overflow:hidden}.alarm-toast.err{background:#b00020}.fx-train{display:flex;flex-direction:column;gap:3px;font-size:.82rem;border:1px solid var(--border);border-radius:6px;padding:8px 10px;margin-bottom:10px}.fx-train .btn-inline{align-self:flex-start;margin:4px 0 0}.fx-train-on{color:var(--success)}.dvr-import{margin:8px 0 12px;display:flex;flex-direction:column;gap:8px}.dvr-conn{display:flex;flex-wrap:wrap;gap:8px;align-items:flex-end}.dvr-conn .field-label{min-width:130px}.dvr-conn input,.dvr-conn select,.dvr-conn .btn-inline{margin:0}.dvr-table{width:100%;font-size:.85rem}.dvr-table input[type=text],.dvr-table td>input:not([type]){margin:0;min-width:160px}.dvr-table input[type=checkbox]{width:auto;margin:0}.dvr-table tr.off{opacity:.6}.dvr-import>.btn-inline{align-self:flex-start;margin:0}.addr-map{border:1px solid var(--border);border-radius:6px;padding:8px}.addr-pin div{width:22px;height:22px;background:#e53935;border:3px solid #fff;border-radius:50% 50% 50% 0;transform:rotate(-45deg);box-shadow:0 2px 6px #00000080}.unv-page{max-width:1100px}.unv-kv{display:grid;grid-template-columns:max-content 1fr;gap:4px 14px;margin:8px 0}.unv-kv dt{color:var(--text-dim)}.unv-kv dd{margin:0;font-weight:600}.unv-devices{display:flex;flex-direction:column;gap:6px}.unv-dev{border:1px solid var(--border);border-radius:8px}.unv-dev.open{border-color:var(--hl)}.unv-dev-row{display:flex;flex-wrap:wrap;align-items:center;gap:6px 14px;padding:8px 12px;cursor:pointer}.unv-dev-body{padding:4px 12px 12px;border-top:1px dashed var(--border)}.unv-dot{width:10px;height:10px;border-radius:50%;background:var(--danger);flex:none}.unv-dot.on{background:var(--success)}.unv-status{font-size:.78rem;padding:2px 8px;border-radius:10px;border:1px solid var(--border)}.unv-status.pending{color:var(--warning);border-color:var(--warning)}.unv-status.accepted{color:var(--success);border-color:var(--success)}.unv-status.blocked{color:var(--danger);border-color:var(--danger)}.unv-ch{width:100%;margin:8px 0;border-collapse:collapse}.unv-ch th,.unv-ch td{text-align:left;padding:4px 8px;border-bottom:1px solid var(--border)}.unv-ch input:not([type=checkbox]){width:100%}.unv-events{margin:0;padding-left:18px;font-size:.85rem}.unv-events span{color:var(--text-dim)}.cmap-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:4000;background:#0000008c;display:flex;align-items:center;justify-content:center;padding:16px}.cmap{width:min(1000px,100%);height:min(680px,92vh);background:var(--surface, #1a1a1a);border:1px solid var(--border);border-radius:10px;display:flex;flex-direction:column;overflow:hidden}.cmap-head{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:10px 14px;border-bottom:1px solid var(--border);flex-wrap:wrap}.cmap-actions{display:flex;gap:6px;align-items:center;flex-wrap:wrap}.cmap-actions .btn-inline{margin:0}.cmap-link{text-decoration:none;display:inline-flex;align-items:center}.cmap .leaflet-container{flex:1}.cmap-empty{flex:1;display:flex;align-items:center;justify-content:center;padding:24px;text-align:center;color:var(--text-dim)}.cmap-foot{padding:6px 14px;border-top:1px solid var(--border)}.cam-map-btn{position:absolute;top:6px;right:44px;z-index:2;width:auto;margin:0;padding:.25rem .45rem;background:#0a0d13a6;border:1px solid rgba(255,255,255,.2);display:inline-flex;align-items:center}.amod h3{display:flex;align-items:center;gap:8px;margin:0}.amod h4{margin:18px 0 8px}.amod-head{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap;margin-bottom:6px}.amod-head .alarm-search{max-width:320px}.amod-form{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin:10px 0;padding:10px;border:1px dashed var(--border);border-radius:8px}.amod-form>input,.amod-form>select{width:auto;flex:1 1 150px;margin:0}.amod-form>button{width:auto;margin:0}.amod-table{width:100%;border-collapse:collapse;font-size:.9rem}.amod-table th,.amod-table td{text-align:left;padding:6px 8px;border-bottom:1px solid var(--border)}.amod-table th{color:var(--text-dim);font-weight:600;font-size:.8rem}.amod-table .num{text-align:right;font-variant-numeric:tabular-nums}.amod-table td.hot{color:var(--danger);font-weight:700}.amod-actions{white-space:nowrap;text-align:right}.alarm-tool.danger{color:var(--danger);border-color:var(--danger)}.alarm-zone-model{max-width:220px}.veh-counts{display:flex;gap:6px;flex-wrap:wrap}.veh-status{font-size:.75rem;padding:2px 8px;border-radius:10px;border:1px solid var(--border);white-space:nowrap}.veh-status.disponivel{color:var(--success);border-color:var(--success)}.veh-status.deslocamento{color:var(--warning);border-color:var(--warning)}.veh-status.no_local{color:var(--info);border-color:var(--info)}.veh-status.manutencao,.veh-status.fora{color:var(--text-dim)}.veh-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:10px}.veh-card{border:1px solid var(--border);border-radius:10px;padding:10px 12px;display:flex;flex-direction:column;gap:4px}.veh-card.deslocamento{border-color:var(--warning)}.veh-card.no_local{border-color:var(--info)}.veh-card.inactive{opacity:.55}.veh-top{display:flex;justify-content:space-between;align-items:center;gap:8px}.veh-plate{font-family:ui-monospace,monospace;font-size:1.15rem;font-weight:800;letter-spacing:.06em;background:#f5f5f5;color:#111;border-radius:4px;padding:1px 8px;border:2px solid #111}.veh-line{font-size:.88rem}.veh-dispatch{margin-top:4px;padding:6px 8px;border-radius:8px;background:#f59e0b14;font-size:.88rem;display:flex;flex-direction:column;gap:2px}.veh-actions{display:flex;gap:6px;flex-wrap:wrap;margin-top:6px;align-items:center}.veh-actions .alarm-tool{margin:0}.veh-status-sel{width:auto;margin:0;padding:4px 6px;font-size:.82rem}.veh-send,.veh-finish{display:flex;flex-direction:column;gap:6px;margin-top:6px}.veh-send select,.veh-send input,.veh-send button,.veh-finish input,.veh-finish button{margin:0}.arep-filters{display:flex;gap:6px;flex-wrap:wrap;align-items:center}.arep-filters input,.arep-filters select,.arep-filters button{width:auto;margin:0}.arep-cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(170px,1fr));gap:8px;margin:12px 0}.arep-cards>div{border:1px solid var(--border);border-radius:10px;padding:10px 12px;display:flex;flex-direction:column;gap:2px}.arep-cards span{font-size:.78rem;color:var(--text-dim)}.arep-cards b{font-size:1.45rem}.arep-cards small{font-size:.75rem;color:var(--text-dim)}.arep-cards .hot b{color:var(--danger)}.arep-cards .warn b{color:var(--warning)}.arep-cols{display:grid;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:16px}.arep-hours{display:grid;grid-template-columns:repeat(24,1fr);gap:3px;height:150px;align-items:end}.arep-hours>div{display:flex;flex-direction:column;justify-content:flex-end;align-items:center;height:100%;gap:3px}.arep-hours i{display:block;width:100%;min-height:1px;background:var(--danger);border-radius:3px 3px 0 0}.arep-hours span{font-size:.62rem;color:var(--text-dim)}.print-only{display:none}@media print{.no-print,.app-header,.app-footer,.alarm-tabs,.alarm-page>h2,.alarm-page>.ports-help{display:none!important}.print-only{display:block}.arep,.arep *{color:#000!important;background:#fff!important;border-color:#999!important}}.abk-cols{display:grid;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:20px}.abk-cols section{display:flex;flex-direction:column;gap:8px}.abk-cols input,.abk-cols button{margin:0}.veh-map{height:340px;border-radius:10px;overflow:hidden;border:1px solid var(--border);margin:8px 0 12px}.dpick{margin:6px 16px;padding:10px 12px;border:1px solid var(--warning);border-radius:10px;background:#f59e0b0f}.dpick-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:6px}.dpick-head .btn-inline{margin:0}.dpick-list{display:flex;flex-direction:column;gap:6px}.dpick-item{display:grid;grid-template-columns:auto 1fr auto;gap:12px;align-items:center;width:100%;margin:0;text-align:left}.veh-head-actions{display:flex;gap:8px}.veh-head-actions button{margin:0;width:auto}.trk-field{display:inline-flex;gap:4px;align-items:center;flex:1 1 260px}.trk-field input{margin:0}.trk-import{width:min(1000px,96vw)}.trk-list{max-height:55vh;overflow:auto;border:1px solid var(--border);border-radius:8px}.trk-list tr.done{opacity:.55}.trk-plate{width:110px;margin:0;text-transform:uppercase}.fl{border:1px solid var(--border);border-radius:10px;padding:10px 12px;margin:10px 0}.fl-head{display:flex;flex-wrap:wrap;gap:10px;align-items:center}.fl-head .btn-inline{margin:0}.fl-cards{display:grid;grid-template-columns:1fr auto 1fr;gap:14px;align-items:start;margin-top:10px}.fl-card{display:flex;flex-direction:column;gap:6px}.fl-img{height:360px;background:#000;border-radius:8px;display:flex;align-items:center;justify-content:center;overflow:hidden;cursor:zoom-in}.fl-img img{max-width:100%;max-height:100%;object-fit:contain}.fl-meta{display:flex;flex-direction:column;gap:2px;font-size:.88rem}.fl-q{display:flex;flex-direction:column;gap:8px;align-items:stretch;justify-content:center;min-width:190px;padding-top:90px;text-align:center}.fl-q button{margin:0}.fl-yes{background:var(--success)!important;color:#fff!important}.fl-no{background:var(--danger)!important;color:#fff!important}.fl-q kbd{font-size:.72rem;opacity:.8;border:1px solid currentColor;border-radius:3px;padding:0 4px;margin-left:4px}.fl-color-wrap{display:grid;grid-template-columns:minmax(220px,320px) 1fr;gap:16px;margin-top:10px}.fl-color-form{display:flex;flex-direction:column;gap:12px}.fl-colors>div{display:flex;flex-wrap:wrap;gap:6px;margin-top:4px}.fl-color{width:auto;margin:0;padding:4px 10px;display:inline-flex;gap:6px;align-items:center;font-size:.85rem}.fl-color i{width:14px;height:14px;border-radius:3px;border:1px solid #555;display:inline-block}.fl-color.on{outline:2px solid var(--hl)}@media (max-width: 820px){.fl-cards,.fl-color-wrap{grid-template-columns:1fr}.fl-q{padding-top:0}}.amp-tabs{display:flex;gap:4px;margin:4px 0 8px}.amp-tabs button{flex:1;margin:0;padding:6px 8px;background:transparent;border:1px solid var(--border)}.amp-tabs button.on{background:var(--hl);color:var(--bg, #111);font-weight:700}.dpick{margin:0}.dpick-map{height:220px;border-radius:8px;overflow:hidden;margin:6px 0;border:1px solid var(--border)}.dpick-going,.dpick-list{display:flex;flex-direction:column;gap:6px;margin:6px 0}.dpick-row{display:grid;grid-template-columns:auto 1fr auto;gap:10px;align-items:center;padding:6px 8px;border:1px solid var(--border);border-radius:8px;font-size:.88rem}.dpick-row.deslocamento{border-color:var(--warning)}.dpick-row.no_local{border-color:var(--info)}.dpick-row .btn-inline{margin:0}.dpick-actions{display:flex;gap:4px}.aat-box{width:min(1180px,100%);max-height:100%;overflow:auto;background:var(--surface, #1b1b1b);border:2px solid var(--danger);border-radius:8px;box-shadow:0 10px 40px #0009}.aat-head{display:flex;align-items:center;gap:14px;padding:12px 16px;border-bottom:1px solid var(--border);flex-wrap:wrap}.aat-title{display:flex;flex-direction:column;flex:1;min-width:200px}.aat-title strong{font-size:1.25rem}.aat-title span{color:var(--text-dim);font-size:.85rem}.aat-clock{display:flex;flex-direction:column;align-items:flex-end}.aat-clock span{font-size:.7rem;text-transform:uppercase;color:var(--text-dim)}.aat-clock strong{font-size:1.4rem;font-variant-numeric:tabular-nums;color:var(--danger)}.aat-event{display:flex;gap:14px;align-items:baseline;flex-wrap:wrap;padding:10px 16px;background:#e539351f}.aat-event strong{font-size:1.1rem}.aat-event small{color:var(--text-dim)}.aat-body{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);gap:16px;padding:14px 16px}.aat-info{display:flex;flex-direction:column;gap:10px;min-width:0}.aat-info h4{margin:0 0 4px;font-size:.8rem;text-transform:uppercase;color:var(--text-dim)}.aat-cams{display:grid;gap:6px;grid-template-columns:1fr}.aat-cams.n2{grid-template-columns:1fr 1fr}.aat-cams>*{aspect-ratio:16 / 9;background:#000;border-radius:4px;overflow:hidden}.aat-addr{margin:0}.aat-contacts>div{display:flex;gap:10px;flex-wrap:wrap;align-items:baseline;padding:3px 0;border-bottom:1px solid var(--border)}.aat-contacts a{color:var(--info)}.aat-proc pre{white-space:pre-wrap;font-family:inherit;margin:0;padding:8px;border:1px solid var(--border);border-radius:4px;max-height:140px;overflow:auto}.aat-events>div{font-size:.82rem;padding:2px 0}.aat-events span{color:var(--text-dim);font-variant-numeric:tabular-nums;margin-right:6px}.aat-form{display:flex;flex-direction:column;gap:8px}.aat-form select,.aat-form input,.aat-form textarea{width:100%;margin:4px 0 0}.aat-buttons{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end}.aat-buttons button{margin:0}.aat-bar{position:fixed;right:16px;bottom:16px;z-index:4900;display:flex;flex-direction:column;gap:6px;max-width:min(520px,calc(100vw - 32px))}.aat-bar button{background:#7a1010;color:#fff;border:1px solid var(--danger);text-align:left;animation:aat-pulse 1.6s infinite;margin:0}@keyframes aat-pulse{50%{background:#b71c1c}}@media (max-width: 820px){.aat-body{grid-template-columns:1fr}}.areason-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(380px,1fr));gap:12px}.areason-off{opacity:.5}.acomm{display:flex;flex-direction:column;gap:12px}.acomm-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:12px 18px;margin:10px 0 14px}.acomm-field{display:flex;flex-direction:column;gap:4px}.acomm-input{display:flex;align-items:center;gap:6px}.acomm-input input{width:110px;margin:0}.acomm-check span{display:flex;align-items:center;gap:6px}.acomm-check input{width:auto;margin:0}.acomm-small{width:80px;margin:0}.acomm-table td{vertical-align:top}.arep-reasons>div{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(60px,1fr) auto;gap:8px;align-items:center;padding:3px 0;font-size:.85rem}.arep-reasons span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.arep-reasons i{height:10px;background:var(--border);border-radius:3px;overflow:hidden;display:block}.arep-reasons i b{display:block;height:100%;background:var(--info)}.arep-reasons em{font-style:normal;font-variant-numeric:tabular-nums}.amp-prov{display:flex;flex-wrap:wrap;gap:8px;align-items:center;padding:8px 16px;background:#2196f31a;border-bottom:1px solid var(--border)}.amp-prov select,.amp-prov input,.amp-prov button{margin:0;width:auto}.amp-prov input{flex:1;min-width:220px}.amp-reopened{margin:0;padding:4px 16px;background:#ff98002e;font-weight:600}.acomm-sub{display:flex;gap:6px}.acomm-sub button{margin:0;width:auto;background:transparent;border:1px solid var(--border);color:var(--text-dim)}.acomm-sub button.on{color:var(--text);border-color:var(--text-dim);background:var(--surface-2, #232323)}.aocc-filters{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin-bottom:10px}.aocc-filters select,.aocc-filters input{margin:0;width:auto}.aocc-check{display:inline-flex;align-items:center;gap:6px;font-size:.85rem}.aocc-check input{width:auto;margin:0}.aocc-check.big{font-size:1rem;margin-bottom:8px}.aocc-list{max-height:calc(100vh - 290px);overflow:auto}.aocc-row{display:grid;grid-template-columns:150px 70px minmax(140px,1fr) minmax(200px,2fr) minmax(140px,1.2fr);gap:8px;align-items:baseline;padding:5px 6px;border-bottom:1px solid var(--border);font-size:.86rem}.aocc-row.hot{background:#e539351a}.aocc-time{color:var(--text-dim);font-variant-numeric:tabular-nums}.aocc-src{font-size:.72rem;text-transform:uppercase;border:1px solid var(--border);border-radius:4px;padding:0 4px;text-align:center}.aocc-src.camera{border-color:var(--info);color:var(--info)}.aocc-occ.pending{color:var(--danger)}.aocc-occ.in_progress{color:var(--warning)}.aocc-occ.resolved{color:var(--success)}.aocc-hold{color:var(--info);font-weight:600}.aocc-manual{color:var(--warning)}.amanual-form,.aauto-form{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin:8px 0}.amanual-form select,.amanual-form input,.amanual-form button,.aauto-form select,.aauto-form input,.aauto-form button{margin:0;width:auto}.amanual-form label input,.aauto-form label input[type=number]{width:70px}.aauto-form{border-top:1px solid var(--border);padding-top:10px}.aauto-days{display:inline-flex;gap:4px;flex-wrap:wrap}.aauto-days label{border:1px solid var(--border);border-radius:4px;padding:2px 6px;font-size:.8rem;cursor:pointer}.aauto-days label.on{border-color:var(--info);color:var(--info)}.aauto-days input{display:none}.anotify section{margin:10px 0}.anotify h4{margin:0 0 4px}.anotify input:not([type=checkbox]){width:100%}.anotify-kinds{display:flex;flex-wrap:wrap;gap:4px;margin:4px 0}.anotify-kinds label{border:1px solid var(--border);border-radius:4px;padding:2px 8px;font-size:.8rem;cursor:pointer;display:inline-flex;gap:4px;align-items:center}.anotify-kinds label.on{border-color:var(--info);color:var(--info)}.anotify-kinds input{width:auto;margin:0}.anotify-chat{display:flex;gap:10px;align-items:center}.anotify-link{margin-top:6px;padding:8px;border:1px dashed var(--info);border-radius:4px;font-size:.86rem}.asmtp-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:10px;margin:10px 0}.alarm-dash-names{display:flex;flex-wrap:wrap;gap:6px;margin:-4px 0 10px}.alarm-dash-names button{margin:0;width:auto;font-size:.82rem;padding:3px 8px}@media (max-width: 820px){.aocc-row{grid-template-columns:1fr}}.msg-cols{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:12px;margin-bottom:12px;align-items:start}.msg-cols>.card{margin:0}.msg-steps ol{padding-left:1.2rem;margin:6px 0}.msg-steps li{margin:6px 0;line-height:1.45}.msg-steps a{color:var(--info)}@media (max-width: 1100px){.msg-cols{grid-template-columns:1fr}}.nav-badge{background:var(--danger);color:#fff;border-radius:999px;font-size:.65rem;font-weight:700;padding:.05rem .4rem;line-height:1.4}.cam-evt-backdrop{z-index:2001}.cam-evt{width:min(900px,100%)}.cam-evt-body{padding:12px 16px}.cam-evt-body>*{aspect-ratio:16 / 9;background:#000;border-radius:6px;overflow:hidden}.alarm-popup-cam.with-replay{display:grid;grid-template-columns:1fr 1fr;gap:4px}.alarm-popup-cam.with-replay>span{grid-column:1 / -1}.amp-live,.amp-replay{position:relative;min-height:0;background:#000}.amp-replay video{width:100%;height:100%;object-fit:contain;display:block;background:#000}.amp-replay .alarm-sub{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center}.amp-tag{position:absolute;top:4px;left:4px;font-style:normal;font-size:.7rem;font-weight:700;padding:1px 6px;border-radius:3px;background:#000000a6;z-index:2;pointer-events:none}.amp-tag.live{color:#ff5252}.amp-tag.replay{color:#ffd54f}.gallery-lb{position:fixed;top:0;right:0;bottom:0;left:0;z-index:2100;background:#000000e6;display:flex;align-items:center;justify-content:center;gap:12px;padding:16px;cursor:zoom-out}.gallery-lb figure{margin:0;display:flex;flex-direction:column;align-items:center;max-width:calc(100vw - 160px);cursor:default}.gallery-lb img{max-width:100%;max-height:calc(100vh - 110px);border-radius:6px}.gallery-wait{width:min(70vw,900px);height:50vh;display:flex;align-items:center;justify-content:center;color:#aaa}.gallery-lb figcaption{margin-top:8px;color:#eee;display:flex;gap:16px;font-size:.95rem}.gallery-lb figcaption.alert span{color:#ff5252;font-weight:700}.gallery-nav{width:56px!important;height:96px;margin:0;font-size:3rem;line-height:1;border-radius:8px;background:#ffffff14;color:#fff;border:1px solid rgba(255,255,255,.2);cursor:pointer;flex-shrink:0}.gallery-nav:hover:not(:disabled){background:#ffffff2e}.gallery-nav:disabled{opacity:.2;cursor:default}.gallery-close{position:fixed;top:1.2rem;right:1.2rem;width:auto!important}@media (max-width: 820px){.gallery-lb figure{max-width:calc(100vw - 100px)}.gallery-nav{width:40px!important;height:70px;font-size:2.2rem}}.live-cam-search{margin-left:auto;display:inline-flex;align-items:center;gap:6px}.live-cam-search input{margin:0;width:260px;padding:4px 8px}.live-cam-search small{color:var(--text-dim);white-space:nowrap}@media (max-width: 820px){.live-cam-search{margin-left:0;width:100%}.live-cam-search input{width:100%}}.gallery-zoom{overflow:hidden;max-width:100%;max-height:calc(100vh - 150px);display:flex;align-items:center;justify-content:center;cursor:zoom-in;touch-action:none;border-radius:6px}.gallery-zoom.zoomed{cursor:grab}.gallery-zoom.zoomed:active{cursor:grabbing}.gallery-zoom img{max-height:calc(100vh - 150px);transform-origin:center center;transition:transform .05s linear;-webkit-user-select:none;user-select:none}.gallery-zoom-bar{display:flex;gap:6px;align-items:center;margin-top:6px;color:#ddd}.gallery-zoom-bar button{margin:0;width:auto;min-width:36px;padding:2px 10px;background:#ffffff1a;color:#fff;border:1px solid rgba(255,255,255,.25)}.gallery-zoom-bar span{min-width:48px;text-align:center;font-variant-numeric:tabular-nums}.aat-box.aat-full{width:98vw;height:96vh;max-height:96vh;display:flex;flex-direction:column;overflow:hidden}.aat-full .aat-head{flex-shrink:0;padding:8px 14px}.aat-event-inline{display:flex;flex-direction:column;flex:1;min-width:200px}.aat-event-inline strong{font-size:1.1rem;color:#ff6b6b}.aat-event-inline span{font-size:.9rem}.aat-body2{flex:1;min-height:0;display:grid;grid-template-columns:minmax(0,2.1fr) minmax(360px,1fr);gap:10px;padding:10px}.aat-left{min-height:0;display:flex;flex-direction:column;gap:6px}.aat-grid{flex:1;min-height:0;display:grid;grid-template-rows:1fr 1fr;gap:6px}.aat-grid.n1{grid-template-columns:1fr}.aat-grid.n2{grid-template-columns:1fr 1fr}.aat-tile{position:relative;background:#000;border-radius:6px;overflow:hidden;min-height:0}.aat-tile>div{width:100%;height:100%}.aat-tile .amp-replay{height:100%}.aat-noreplay{width:100%;height:100%;display:flex;align-items:center;justify-content:center;color:#aaa;text-align:center;padding:20px;font-size:.9rem}.aat-nocam{flex:1;display:flex;align-items:center;justify-content:center;border:1px dashed var(--border);border-radius:6px;color:var(--text-dim);padding:20px;text-align:center}.aat-campick{display:flex;flex-wrap:wrap;gap:6px;align-items:center;flex-shrink:0}.aat-right{min-height:0;overflow-y:auto;display:flex;flex-direction:column;gap:10px;padding-right:4px}.aat-right .aat-form{border:1px solid var(--border);border-radius:6px;padding:10px}.aat-events>div.this{color:#ff6b6b;font-weight:600}@media (max-width: 1100px){.aat-body2{grid-template-columns:1fr;overflow-y:auto}.aat-grid{min-height:60vh}}.aat-later{display:inline-flex;gap:4px;align-items:center}.aat-later select{margin:0;width:auto}.aat-countdown b{font-variant-numeric:tabular-nums;font-size:1.05rem}.aat-body2{grid-template-columns:minmax(0,3fr) minmax(300px,.95fr)}.aat-grid{grid-template-rows:minmax(0,1fr) minmax(0,1.7fr)}.aat-right{font-size:.9rem}.aat-right .amp-secrets strong{font-size:1.1rem}.aat-grid{position:relative;grid-template-rows:minmax(0,1fr) minmax(0,1fr)!important}.aat-grid.n3{grid-template-columns:repeat(3,1fr)}.aat-grid.n4{grid-template-columns:repeat(4,1fr)}.aat-tile{cursor:zoom-in}.aat-tile.big{position:absolute;top:0;right:0;bottom:0;left:0;z-index:6;cursor:zoom-out;box-shadow:0 0 0 2px var(--danger)}.aat-tile video{pointer-events:none}.amp-tag.replay-name{top:auto;bottom:4px;left:4px;color:#fff}.aat-body2{grid-template-columns:minmax(0,3.2fr) minmax(300px,.9fr)}.amp-left .aat-grid.amp-grid{flex:1 0 auto;min-height:58vh}.aat-rec-btn{position:absolute;top:4px;right:4px;z-index:3;margin:0;width:auto;padding:2px 8px;font-size:.72rem;background:#000000b3;color:#ffd54f;border:1px solid rgba(255,213,79,.6)}.aat-rec-btn:hover{background:#000000e6}.login-remember{display:flex;align-items:center;gap:8px;font-size:.85rem;color:var(--text-dim);margin:2px 0 8px;cursor:pointer}.login-remember input{width:auto;margin:0}.siren-pill{display:inline-flex;align-items:center;gap:2px;margin:0 4px}.siren-pill button{margin:0;width:auto;padding:4px 10px;font-size:.8rem;background:#b71c1c;color:#fff;border:none;border-radius:999px;animation:aat-pulse 1.6s infinite}.siren-pill .siren-mute{background:#333;animation:none;padding:4px 8px}.desk-download{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;padding:10px 12px;margin:0 0 12px;border:1px solid var(--border);border-radius:8px;background:var(--surface-2, #1c1c1c)}.desk-download small{display:block;color:var(--text-dim);margin-top:2px}.desk-download .btn{display:inline-block;padding:7px 14px;border-radius:6px;background:#2e7d32;color:#fff;text-decoration:none;white-space:nowrap}.twofa-note{font-size:.8rem;color:var(--text-dim);margin:0 0 .5rem;line-height:1.45}.twofa-secret{font-family:ui-monospace,Consolas,monospace;letter-spacing:.08em;-webkit-user-select:all;user-select:all}.grp-all-cams{display:flex;gap:10px;align-items:flex-start;padding:10px 12px;margin-bottom:10px;border:1px solid var(--border);border-radius:8px;cursor:pointer}.grp-all-cams.on{border-color:var(--success, #2e7d32);background:#2e7d3214}.grp-all-cams input{margin-top:3px}.grp-all-cams small{display:block;color:var(--text-dim)}.cp{min-height:100vh;background:var(--bg);color:var(--text)}.cp-top{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 18px;border-bottom:1px solid var(--border);background:var(--surface);position:sticky;top:0;z-index:5}.cp-brand{display:flex;align-items:center;gap:10px;font-weight:600}.cp-user{display:flex;align-items:center;gap:8px}.cp-user button{margin:0;width:auto;padding:6px 12px}.cp-empty{text-align:center;color:var(--text-dim);padding:40px 16px}.cp-dim{color:var(--text-dim);font-size:.85rem}.cp-places{display:flex;gap:8px;flex-wrap:wrap;padding:12px 18px 0}.cp-places button{width:auto;margin:0;padding:7px 14px;border-radius:999px;background:var(--surface);border:1px solid var(--border);color:var(--text)}.cp-places button.on{border-color:var(--text);font-weight:600}.cp-dot{display:inline-block;width:9px;height:9px;border-radius:50%;margin-right:7px;background:#777;vertical-align:middle}.cp-dot.ok{background:#43a047}.cp-dot.armed{background:#1e88e5}.cp-dot.hot{background:#e53935}.cp-dot.off{background:#777}.cp-main{max-width:1100px;margin:0 auto;padding:14px 18px 40px;display:grid;gap:14px}.cp-state{display:grid;grid-template-columns:1fr auto;gap:6px 16px;align-items:center;padding:16px 18px;border-radius:10px;border:1px solid var(--border);background:var(--surface);border-left:6px solid #777}.cp-state h2{margin:0;font-size:1.25rem}.cp-state small{color:var(--text-dim)}.cp-state-big{font-size:1.5rem;font-weight:800;letter-spacing:.03em;text-align:right}.cp-state-info,.cp-problems{grid-column:1 / -1;font-size:.85rem;color:var(--text-dim)}.cp-problems{color:#ffb300}.cp-state.ok{border-left-color:#43a047}.cp-state.ok .cp-state-big{color:#43a047}.cp-state.armed{border-left-color:#1e88e5}.cp-state.armed .cp-state-big{color:#42a5f5}.cp-state.hot{border-left-color:#e53935;background:#e539351f}.cp-state.hot .cp-state-big{color:#ef5350;animation:aat-pulse 1.2s infinite}.cp-state.off .cp-state-big{color:#9e9e9e}.cp-card{padding:14px 16px;border-radius:10px;border:1px solid var(--border);background:var(--surface)}.cp-card h3{margin:0 0 10px;font-size:1rem}.cp-parts{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:10px}.cp-part{padding:12px;border-radius:8px;border:1px solid var(--border)}.cp-part-head{display:flex;justify-content:space-between;gap:8px}.cp-part.ok b{color:#43a047}.cp-part.armed b{color:#42a5f5}.cp-part.hot b{color:#ef5350}.cp-part-actions{display:flex;gap:8px;margin-top:10px;flex-wrap:wrap}.cp-part-actions button{margin:0;flex:1;min-width:110px;padding:10px;font-weight:600;border:none;border-radius:6px;color:#fff}.cp-btn-arm{background:#1565c0}.cp-btn-disarm{background:#2e7d32}.cp-part-actions button.confirm{background:#e65100}.cp-zones{display:grid;grid-template-columns:repeat(auto-fill,minmax(170px,1fr));gap:8px}.cp-zone{display:flex;justify-content:space-between;gap:8px;padding:8px 10px;border-radius:6px;border:1px solid var(--border);font-size:.88rem}.cp-zone.ok b{color:#43a047}.cp-zone.warn b{color:#ffb300}.cp-zone.hot{border-color:#e53935}.cp-zone.hot b{color:#ef5350}.cp-zone.muted b{color:var(--text-dim)}.cp-cams{display:grid;gap:8px;grid-template-columns:repeat(2,1fr)}.cp-cams.n1{grid-template-columns:1fr}.cp-cam{position:relative;aspect-ratio:16 / 9;background:#000;border-radius:6px;overflow:hidden;cursor:zoom-in}.cp-cam>div:not(.cp-cam-name){width:100%;height:100%}.cp-cam video{width:100%;height:100%;object-fit:contain}.cp-cam-name{position:absolute;left:6px;bottom:6px;padding:2px 8px;border-radius:4px;background:#000000a6;color:#fff;font-size:.8rem;pointer-events:none}.cp-events{list-style:none;margin:0;padding:0;max-height:520px;overflow:auto}.cp-events li{display:grid;grid-template-columns:28px 1fr auto auto;gap:10px;align-items:center;padding:8px 4px;border-bottom:1px solid var(--border)}.cp-events li.hot{background:#e5393514}.cp-events li.hot b{color:#ef5350}.cp-ev-icon{font-size:1.1rem;text-align:center}.cp-ev-text small{display:block;color:var(--text-dim);font-size:.78rem}.cp-events time{color:var(--text-dim);font-size:.8rem;white-space:nowrap}.cp-events .btn-inline{margin:0}.cp-modal{position:fixed;top:0;right:0;bottom:0;left:0;z-index:50;background:#000000bf;display:grid;place-items:center;padding:16px}.cp-modal-box{width:min(560px,100%);max-height:92vh;overflow:auto;background:var(--surface);border-radius:10px;padding:16px}.cp-modal-video{width:min(1100px,100%);max-height:94vh;overflow:auto;background:var(--surface);border-radius:10px;padding:12px}.cp-modal-video>div:last-child:not(.cp-replays){aspect-ratio:16 / 9;background:#000}.cp-modal-video video{width:100%;max-height:75vh;background:#000}.cp-modal-head{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-bottom:8px}.cp-modal-head h3{margin:0}.cp-modal-head button{width:auto;margin:0}.cp-replays{display:grid;gap:8px;grid-template-columns:repeat(auto-fit,minmax(300px,1fr))}.cp-replays figure{margin:0}.cp-replays figcaption{font-size:.8rem;color:var(--text-dim)}@media (max-width: 820px){.cp-top{padding:8px 12px}.cp-brand span{display:none}.cp-main{padding:10px 10px 30px}.cp-state{grid-template-columns:1fr}.cp-state-big{text-align:left;font-size:1.3rem}.cp-cams{grid-template-columns:1fr}.cp-events li{grid-template-columns:24px 1fr auto}.cp-events li time{grid-column:2}}.pa h4{margin:14px 0 6px}.pa-table{width:100%;border-collapse:collapse;font-size:.88rem}.pa-table th,.pa-table td{text-align:left;padding:6px;border-bottom:1px solid var(--border);vertical-align:top}.pa-table tr.off td{opacity:.55}.pa-actions{display:flex;flex-wrap:wrap;gap:4px}.pa-actions .btn-inline{margin:0}.pa-pw{display:flex;gap:4px;flex-wrap:wrap;width:100%;margin-top:4px}.pa-pw input{margin:0;max-width:170px}.pa-box{margin-top:14px;padding:12px;border:1px solid var(--border);border-radius:8px}.pa-box h4{margin-top:0}.pa-row{display:flex;gap:6px;align-items:center}.pa-row select,.pa-row input{margin:0}.pa-row button{width:auto;margin:0}.pa-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:8px 12px}.pa-grid label{font-size:.8rem;color:var(--text-dim)}.pa-grid input{margin-top:3px}.pa-switch{display:inline-flex;align-items:center;gap:6px;font-size:.88rem}.pa-switch input{width:auto;margin:0}.pa-created{margin-top:10px;padding:10px;border-radius:6px;background:#2e7d321f;border:1px solid #2e7d32;line-height:1.7}.mod-title{font-size:.85rem;font-weight:600;margin:.9rem 0 .4rem}.mod-group{display:block;font-size:.8rem;color:var(--text-dim);margin-top:.6rem}.mod-group select{margin-top:3px}.mod-picker{display:grid;gap:6px}.mod-picker-tools{display:flex;align-items:center;gap:6px;font-size:.8rem;color:var(--text-dim)}.mod-picker-tools span{flex:1}.mod-picker-tools .btn-inline{margin:0}.mod-item{display:flex;gap:10px;align-items:flex-start;padding:7px 10px;border:1px solid var(--border);border-radius:6px;cursor:pointer}.mod-item.on{border-color:var(--success, #2e7d32);background:#2e7d3214}.mod-item input{width:auto;margin:3px 0 0}.mod-item b{font-size:.88rem}.mod-item small{display:block;color:var(--text-dim);font-size:.76rem}.mod-sensitive{margin-left:6px;font-style:normal;font-size:.68rem;padding:1px 6px;border-radius:999px;background:#ffb3002e;color:#ffb300}.user-pw{display:flex;gap:4px;flex-wrap:wrap;margin-top:6px}.user-pw input{margin:0;max-width:180px}.user-pw .btn-inline{margin:0}.pa-info input{max-width:190px}.thumb-tile{width:100%;height:100%;background:#000}.thumb-tile>div{width:100%;height:100%}.thumb-tile img{width:100%;height:100%;object-fit:cover;display:block}.cpa{height:100vh;height:100dvh;display:grid;grid-template-rows:auto auto 1fr;background:var(--bg);color:var(--text);overflow:hidden}.cpa-top{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:8px 16px;padding-top:max(8px,env(safe-area-inset-top));background:var(--surface);border-bottom:1px solid var(--border);min-width:0}.cpa-place{width:auto;max-width:55vw;margin:0;padding:7px 10px;font-weight:600;border-radius:8px}.cpa-place-one{font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:55vw}.cpa-tabs{display:flex;justify-content:center;gap:4px;padding:6px 12px;background:var(--surface);border-bottom:1px solid var(--border)}.cpa-tabs button{position:relative;display:flex;align-items:center;gap:8px;width:auto;margin:0;padding:8px 18px;border:none;border-radius:8px;background:transparent;color:var(--text-dim);font-weight:600}.cpa-tabs button.on{background:var(--surface-2, #262626);color:var(--text)}.cpa-badge{position:absolute;top:6px;right:10px;width:9px;height:9px;border-radius:50%;background:#e53935;box-shadow:0 0 6px #e53935}.cpa-body{overflow:auto;-webkit-overflow-scrolling:touch;padding:14px}.cp-stack{display:grid;gap:12px;max-width:900px;margin:0 auto}.cp-hero{display:grid;justify-items:center;gap:4px;padding:22px 16px;border-radius:14px;background:var(--surface);border:1px solid var(--border);text-align:center}.cp-hero-icon svg{width:54px;height:54px}.cp-hero-state{font-size:1.9rem;font-weight:800;letter-spacing:.03em}.cp-hero-info{color:var(--text-dim);font-size:.9rem}.cp-hero-addr{color:var(--text-dim);font-size:.8rem}.cp-hero-warn{color:#ffb300;font-size:.9rem}.cp-hero.ok{border-color:#43a04799}.cp-hero.ok .cp-hero-icon,.cp-hero.ok .cp-hero-state{color:#43a047}.cp-hero.armed{border-color:#1e88e599}.cp-hero.armed .cp-hero-icon,.cp-hero.armed .cp-hero-state{color:#42a5f5}.cp-hero.hot{border-color:#e53935;background:#e5393524}.cp-hero.hot .cp-hero-icon,.cp-hero.hot .cp-hero-state{color:#ef5350;animation:aat-pulse 1.2s infinite}.cp-hero.off .cp-hero-icon,.cp-hero.off .cp-hero-state{color:#9e9e9e}.cp-last{cursor:pointer}.cp-last span{color:var(--text-dim)}.cp-part-actions button{min-height:48px;font-size:1rem}.cpa-cams{display:grid;gap:6px;height:100%;min-height:240px;grid-template-columns:repeat(2,1fr);grid-auto-rows:1fr}.cpa-cams.n1{grid-template-columns:1fr}.cpa-cams.n2{grid-template-columns:repeat(2,1fr)}.cpa-cams .cp-cam{aspect-ratio:auto;height:100%;min-height:140px}.cpa-cam-full{display:grid;grid-template-rows:auto 1fr;height:100%;gap:8px}.cpa-cam-full-video{background:#000;border-radius:8px;overflow:hidden;min-height:200px}.cpa-cam-full-video>div{width:100%;height:100%}.cpa-cam-full-video video{width:100%;height:100%;object-fit:contain}.cpa-back{display:inline-flex;align-items:center;gap:6px;width:auto;margin:0;padding:8px 12px;background:var(--surface);border:1px solid var(--border);color:var(--text);border-radius:8px;justify-self:start}.cpa-filters{display:flex;gap:6px;overflow-x:auto;padding-bottom:2px}.cpa-filters button{width:auto;margin:0;flex:0 0 auto;padding:7px 14px;border-radius:999px;background:var(--surface);border:1px solid var(--border);color:var(--text-dim)}.cpa-filters button.on{color:var(--text);border-color:var(--text);font-weight:600}.cpa-body .cp-events{max-height:none}.cp-events li{grid-template-columns:28px 1fr auto}.cp-ev-video{width:auto;margin:0;padding:6px 10px;font-size:.8rem}.cp-me{display:flex;align-items:center;gap:12px}.cp-me small{display:block;color:var(--text-dim)}.cp-me>div:nth-child(2){flex:1}.cp-avatar{width:46px;height:46px;border-radius:50%;display:grid;place-items:center;background:var(--surface-2, #262626)}.cp-logout{width:auto;margin:0;padding:8px 14px;background:#b71c1c;color:#fff;border:none;border-radius:8px}.cp-form input{margin:0 0 8px}.cp-form h3{margin-top:0}@media (max-width: 820px){.cpa{grid-template-rows:auto 1fr auto}.cpa-tabs{grid-row:3;justify-content:space-around;gap:0;padding:4px 0;padding-bottom:max(4px,env(safe-area-inset-bottom));border-bottom:none;border-top:1px solid var(--border)}.cpa-tabs button{flex-direction:column;gap:2px;padding:6px 4px;flex:1;font-size:.72rem;border-radius:0}.cpa-tabs button.on{background:transparent;color:var(--text)}.cpa-tabs button.on svg{color:#42a5f5}.cpa-badge{top:4px;right:calc(50% - 18px)}.cpa-body{grid-row:2;padding:10px}.cpa-top .cp-brand span{display:none}.cp-hero-state{font-size:1.6rem}.cpa-cams,.cpa-cams.n2{grid-template-columns:1fr}.cpa-cams .cp-cam{min-height:180px}}.enroll{display:grid;gap:8px}.enroll-steps{margin:0;padding-left:1.2rem;font-size:.85rem;color:var(--text-dim);line-height:1.5}.enroll-qr{justify-self:center}.enroll-qr svg{width:200px;height:200px}.enroll-codes{display:grid;grid-template-columns:repeat(2,1fr);gap:6px}.enroll-codes code{text-align:center;padding:6px;background:var(--surface-2, #262626);border-radius:6px;-webkit-user-select:all;user-select:all}.mdn{position:fixed;top:0;right:0;bottom:0;left:0;z-index:9999;background:#000000d9;display:grid;place-items:center;padding:16px}.mdn-box{width:min(460px,100%);background:var(--surface, #1c1c1c);color:var(--text, #eee);border-radius:14px;padding:22px;text-align:center;font-size:1.05rem;line-height:1.5}.mdn-box h2{margin:6px 0 8px;font-size:1.3rem}.mdn-box ol{text-align:left;margin:10px 0}.mdn-icon{font-size:2.6rem}.mdn-tip{font-size:.9rem;color:var(--text-dim, #aaa)}.mdn-box button{width:100%;margin:8px 0 0;padding:12px;font-size:1rem}.phone-desktop-mode .mdn-box{width:92vw;padding:5vw;font-size:4.4vw;border-radius:3vw}.phone-desktop-mode .mdn-box h2{font-size:5.6vw}.phone-desktop-mode .mdn-icon{font-size:11vw}.phone-desktop-mode .mdn-tip{font-size:3.8vw}.phone-desktop-mode .mdn-box button{font-size:4.4vw;padding:3.2vw;margin-top:2.4vw}.speed-video video{width:100%;background:#000;border-radius:8px;max-height:70vh}.speed-bar{display:flex;flex-wrap:wrap;gap:4px;justify-content:center}.speed-bar button{width:auto;margin:0;padding:5px 10px;font-size:.82rem;border-radius:6px;background:var(--surface-2, #262626);border:1px solid var(--border);color:var(--text)}.speed-bar button.on{background:#1565c0;border-color:#1565c0;color:#fff;font-weight:700}.cpr-filters{display:flex;gap:8px;flex-wrap:wrap}.cpr-filters select,.cpr-filters input{margin:0;flex:1 1 160px;width:auto}.cpr-bar{position:relative;height:44px;background:var(--surface-2, #262626);border-radius:8px;cursor:pointer;overflow:hidden;touch-action:manipulation}.cpr-bar i{position:absolute;top:8px;bottom:8px;background:#1e88e5;border-radius:3px}.cpr-bar b{position:absolute;top:0;bottom:0;width:2px;background:#ffb300}.cpr-hours{display:flex;justify-content:space-between;font-size:.72rem;color:var(--text-dim);margin-top:4px}.cpr-quick{display:grid;gap:8px;margin-top:10px}.cpr-quick button{margin:0}.cpr-now{font-weight:600;margin-bottom:6px;font-variant-numeric:tabular-nums}@media (max-width: 820px){.cpa-tabs button{font-size:.66rem}}.speed-video{display:grid;gap:6px}.sv-stage{position:relative;overflow:hidden;background:#000;border-radius:8px;touch-action:none;cursor:pointer}.sv-stage.zoomed{cursor:grab}.sv-stage.zoomed:active{cursor:grabbing}.sv-stage video{display:block;width:100%;max-height:70vh;object-fit:contain;background:#000;border-radius:0;transform-origin:center center;will-change:transform}:fullscreen .sv-stage,:fullscreen .sv-stage video{max-height:none;height:calc(100vh - 90px)}.sv-bigplay{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:72px!important;height:72px;margin:0!important;border-radius:50%!important;border:2px solid rgba(255,255,255,.8)!important;background:#0000008c!important;color:#fff!important;font-size:28px;padding:0 0 0 5px!important}.sv-zoom-tag{position:absolute;left:8px;top:8px;padding:2px 8px;border-radius:4px;background:#0009;color:#fff;font-size:.75rem;pointer-events:none}.sv-controls{display:flex;align-items:center;gap:6px}.sv-controls button{width:auto;margin:0;padding:6px 10px;border-radius:6px;background:var(--surface-2, #262626);border:1px solid var(--border);color:var(--text)}.sv-controls .sv-play{min-width:46px;font-weight:700;background:#1565c0;border-color:#1565c0;color:#fff}.sv-seek{flex:1;margin:0;min-width:60px;accent-color:#1e88e5}.sv-time{font-size:.78rem;color:var(--text-dim);font-variant-numeric:tabular-nums}.sv-sep{width:10px}.speed-bar button:disabled{opacity:.4}:fullscreen{background:#000;padding:8px}@keyframes nav-alert-blink{0%,to{background:#e53935d9;color:#fff}50%{background:#e5393526;color:#ffcdd2}}.nav-btn.nav-alert{animation:nav-alert-blink 1s infinite;border-radius:6px;font-weight:700}.aat-bar.aat-bar-cam{right:auto;left:16px}.aat-grid.cam-attend{grid-template-columns:1fr;grid-template-rows:1.5fr 1fr}.aat-grid.cam-attend.has-big{grid-template-rows:1fr}.aat-photo{width:100%;height:100%;object-fit:contain;background:#000;display:block}.pb-page{flex:1;min-height:0;display:flex;flex-direction:column;gap:8px}.pb-top{display:flex;align-items:center;gap:14px;flex-wrap:wrap}.pb-top h2{margin:0;cursor:help}.pb-page .pb-main{flex:1;min-height:0;margin:0;align-items:stretch}.pb-page .pb-main>div:last-child{max-height:none;min-height:0;overflow-y:auto}.pb-player{min-height:0;display:flex;flex-direction:column}.pb-player .speed-video{flex:1;min-height:0;grid-template-rows:minmax(0,1fr) auto auto}.pb-player .sv-stage{min-height:0;display:flex;align-items:center;justify-content:center}.pb-player .sv-stage video,.pb-player .pb-video{height:100%;max-height:none;min-height:0;width:100%}.pb-ruler-card{flex:0 0 auto;margin:0}@media (max-width: 820px){.pb-page{flex:none}.pb-player .sv-stage video{height:auto;max-height:55vh}}.r30-icon{position:absolute;top:6px;right:48px;z-index:2;width:auto!important;margin:0!important;padding:.25rem .5rem!important;font-size:.78rem!important;background:#0a0d13a6!important;border:1px solid rgba(255,255,255,.2)!important;color:#fff!important}.r30-icon:hover{background:#1565c0d9!important}.r30-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:6000;background:#000000c7;display:grid;place-items:center;padding:16px}.r30-box{width:min(1100px,100%);max-height:96vh;overflow:auto;background:var(--surface);border:1px solid var(--border);border-radius:10px;padding:12px;display:grid;gap:8px}.r30-head{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.r30-when{color:var(--text-dim);font-size:.85rem;font-variant-numeric:tabular-nums}.r30-actions{margin-left:auto;display:flex;gap:6px}.r30-actions button{width:auto;margin:0;padding:6px 10px}.r30-msg{color:var(--text-dim);text-align:center;padding:30px 10px}.r30-box .sv-stage video{max-height:72vh}.cpr-last30{flex:1 1 100%;margin:0;background:#1565c0;color:#fff;border:none}.pb-page .pb-main.pb-main-left{grid-template-columns:290px minmax(0,1fr)}.pb-page .pb-main.pb-main-left>div:last-child{overflow:visible}.pb-side{min-height:0;overflow-y:auto;display:flex;flex-direction:column;gap:10px;padding-right:4px}.pb-plates h3{margin:0 0 6px}.pb-plates table{font-size:.82rem}.pb-export{border:1px solid var(--border);border-radius:8px;padding:10px;background:var(--surface)}.pb-export-form{display:grid;gap:6px;margin-top:6px}.pb-export-form label{display:grid;gap:2px}.pb-export-form input{width:100%!important;margin:0}.pb-export-form .btn-link{justify-self:start;font-size:.78rem}.pb-export-form button:not(.btn-link){width:100%!important}.pb-export table{font-size:.75rem}.pb-cam-search{width:220px!important;margin:0!important}.pb-playbtn{width:auto!important;margin:0 8px 0 0!important;padding:5px 14px!important;font-weight:700;background:#1565c0!important;color:#fff!important;border:none!important;border-radius:6px}@media (max-width: 1100px){.pb-page .pb-main.pb-main-left{grid-template-columns:1fr}.pb-side{order:2}}.sv-step-tag{position:absolute;right:8px;top:8px;padding:2px 8px;border-radius:4px;background:#1565c0d9;color:#fff;font-size:.75rem;pointer-events:none}.pb-stream{display:inline-flex;align-items:center;gap:6px;font-size:.85rem;color:var(--text-dim)}.pb-stream select{width:auto;margin:0}.pb-stream b{color:var(--text);font-weight:600}.tp-order{display:grid;gap:3px;width:100%;margin:0;text-align:left;padding:12px 14px;border-radius:10px;background:var(--surface);border:1px solid var(--border);color:var(--text)}.tp-head{display:flex;justify-content:space-between;align-items:center;gap:8px}.tp-status{font-size:.72rem;font-weight:700;padding:2px 8px;border-radius:999px;white-space:nowrap;background:#333;color:#ddd}.tp-status.warn{background:#ffb3002e;color:#ffb300}.tp-status.armed{background:#1e88e52e;color:#42a5f5}.tp-status.ok{background:#43a0472e;color:#66bb6a}.tp-status.hot{background:#e5393533;color:#ef5350}.tp-desc{margin:8px 0;white-space:pre-wrap}.tp-client{margin-top:8px;padding:10px;border-radius:8px;background:var(--surface-2, #262626);display:grid;gap:4px}.tp-row{display:flex;gap:8px;flex-wrap:wrap}.tp-row .btn,.tp-row button{width:auto;margin:0;padding:8px 14px;text-decoration:none}.tp-big{display:block;width:100%;margin:10px 0 0;padding:14px;font-size:1rem;font-weight:700;text-align:center;border-radius:10px;background:#1565c0;color:#fff;border:none;cursor:pointer}.tp-finish{background:#2e7d32}.tp-file{position:relative}.tp-photos{display:grid;grid-template-columns:repeat(auto-fill,minmax(96px,1fr));gap:8px}.tp-photos figure{position:relative;margin:0}.tp-photos figcaption{font-size:.7rem;color:var(--text-dim)}.tp-photo-btn{width:100%;margin:0;padding:0;border:none;background:none}.tp-photo{width:100%;aspect-ratio:1;object-fit:cover;border-radius:6px;display:block}.tp-img-wait{background:var(--surface-2, #262626);aspect-ratio:1;border-radius:6px}.tp-photo-big{max-width:96vw;max-height:90vh;border-radius:8px}.tp-x{position:absolute;top:4px;right:4px;width:26px!important;height:26px;margin:0!important;padding:0!important;border-radius:50%;background:#000000b3!important;color:#fff!important;border:none!important;font-size:.8rem}.tp-mats{list-style:none;margin:0 0 8px;padding:0}.tp-mats li{position:relative;display:flex;justify-content:space-between;gap:8px;padding:8px 36px 8px 0;border-bottom:1px solid var(--border)}.tp-mats .tp-x{top:6px}.tp-mat-add{display:grid;grid-template-columns:1fr 90px auto;gap:6px}.tp-mat-add select,.tp-mat-add input{margin:0}.tp-mat-add select:first-child{grid-column:1 / -1}.tp-mat-add button{margin:0;width:auto}.tp-sign{display:grid;gap:8px}.tp-sign-canvas{width:100%;height:180px;background:#fff;border-radius:8px;touch-action:none;border:1px solid var(--border)}.tp-sign-img{max-width:100%;background:#fff;border-radius:8px}.tp-sign input,.tp-search{margin:0}.tp-pgms{display:grid;gap:6px;margin-top:10px}.tp-pgm{display:flex;align-items:center;gap:6px;flex-wrap:wrap}.tp-pgm b{flex:1}.tp-pgm button{width:auto;margin:0;padding:8px 12px}.tp-pgm button.confirm,.cp-card button.confirm{background:#e65100;color:#fff}@media (max-width: 820px){.tp-mat-add{grid-template-columns:1fr 80px}.tp-mat-add button{grid-column:1 / -1;width:100%}}.os-ev{margin-top:6px;padding:8px;border:1px solid var(--border);border-radius:8px;background:var(--surface-2, #1f1f1f);font-size:.82rem;display:grid;gap:5px;min-width:260px}.os-ev-photos{display:flex;flex-wrap:wrap;gap:6px}.os-ev-photos button{width:72px;height:72px;margin:0;padding:0;border:none;background:none}.os-ev-photos img{width:72px;height:72px;object-fit:cover;border-radius:6px}.os-ev-wait{width:72px;height:72px;border-radius:6px;background:var(--surface)}.os-ev-sig{max-width:260px;background:#fff;border-radius:6px}.amp-group{grid-column:1 / -1;list-style:none;margin:6px 0 0;padding:6px 8px;max-height:140px;overflow:auto;border-radius:8px;background:#00000040;display:grid;gap:3px}.amp-group li{display:grid;grid-template-columns:70px 150px 1fr;gap:8px;font-size:.82rem;align-items:baseline}.amp-group li.hot b{color:#ff8a80}.amp-group time{font-variant-numeric:tabular-nums;opacity:.8}@media (max-width: 820px){.amp-group li{grid-template-columns:60px 1fr}.amp-group li span{grid-column:1 / -1}}.aat-group{margin-top:4px}.aat-group-note{display:block!important;font-size:.75rem;opacity:.75}.pa-kinds,.pa-kinds-new{display:grid;grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:4px 12px;margin:6px 0;padding:8px;border:1px solid var(--border);border-radius:8px;width:100%}.pa-kinds small{grid-column:1 / -1;color:var(--text-dim)}.pa-kinds-new summary{grid-column:1 / -1;cursor:pointer;font-size:.88rem}.live-video.anamorphic{object-fit:fill!important}.ez-bar{display:flex;gap:.6rem;align-items:center;flex-wrap:wrap;margin:.6rem 0}.ez-search{flex:1 1 260px;min-width:200px}.ez-count{font-size:.82rem;color:var(--text-muted)}.ez-list{display:flex;flex-direction:column;gap:.35rem;max-height:60vh;overflow-y:auto}.ez-head{display:flex;align-items:center;gap:.6rem;width:100%;text-align:left;background:transparent;border:0;padding:.55rem .7rem;color:inherit;cursor:pointer}.ez-head:hover{background:#ffffff0a}.ez-dot{width:9px;height:9px;border-radius:50%;flex:none}.ez-dot.on{background:var(--success)}.ez-dot.off{background:var(--danger)}.ez-meta{font-size:.8rem;color:var(--text-muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ez-tag{font-size:.72rem;padding:.1rem .45rem;border-radius:999px;background:#22c55e26;color:var(--success)}.ez-caret{margin-left:auto;color:var(--text-muted)}.ez-body{padding:.3rem .8rem .8rem}.ez-table{width:100%;border-collapse:collapse;margin:.3rem 0 .6rem}.ez-table td{padding:.25rem .4rem;border-bottom:1px solid var(--border);font-size:.86rem}.ez-table td:first-child{width:28px}.ez-table td:nth-child(2){width:90px;white-space:nowrap}.ez-name{width:100%}.ez-done{color:var(--success);font-weight:700}.ez-actions{display:flex;gap:.7rem;align-items:flex-end;flex-wrap:wrap}.ez-opt{display:flex;flex-direction:column;font-size:.78rem;color:var(--text-muted);gap:.2rem}.ez-check{flex-direction:row;align-items:center;gap:.35rem}.ez-bar .ez-search{width:auto;margin:0}.ez-bar>button{width:auto;flex:none;margin:0}.ez-actions>button,.ez-actions select{width:auto}.unv-dev .ez-head{width:100%;margin:0}.cam-test-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#000000b3;z-index:3000;display:flex;align-items:center;justify-content:center;padding:16px}.cam-test-box{background:var(--surface, #1b1b1b);border:1px solid var(--border);border-radius:var(--radius, 8px);padding:14px;width:min(900px,96vw);max-height:94vh;overflow:auto}.cam-test-head{display:flex;justify-content:space-between;align-items:center;gap:8px;margin-bottom:10px}.cam-test-head button{width:auto}.cam-test-box img{display:block;width:100%;max-height:70vh;object-fit:contain;background:#000;border-radius:4px}.cam-test-ok{color:var(--success);margin:8px 0 0;font-size:.9rem}.cam-test-actions{display:flex;justify-content:flex-end;margin-top:8px}.cam-test-actions button{width:auto}.cam-saved-bar{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:1rem;padding:8px 12px;border:1px solid var(--success);border-radius:var(--radius, 8px);background:#22c55e14}.cam-saved-bar button{width:auto}.pretexts{display:flex;flex-wrap:wrap;gap:4px;margin:4px 0 8px;max-height:150px;overflow-y:auto}.pretext{width:auto;font-size:.74rem;padding:3px 8px;border-radius:999px;background:#262626;border:1px solid var(--border);color:var(--text);text-align:left;line-height:1.25}.pretext:hover{background:#333}.areason-scope{display:inline-flex;gap:4px;margin-bottom:10px}.areason-scope button{width:auto}.areason-scope button.active{background:#3a3a3a;border-color:#777}.areason-grid3{grid-template-columns:repeat(auto-fit,minmax(520px,1fr))!important}.anotify-presets{display:inline-flex;gap:10px;width:100%;margin-bottom:2px;font-size:.8rem}.anotify-login{padding:6px 0;border-bottom:1px solid var(--border)}.jprog-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:3000;background:#000000b3;display:flex;align-items:center;justify-content:center;padding:12px}.jprog{background:var(--surface, #1b1b1b);border:1px solid var(--border);border-radius:10px;width:min(820px,100%);max-height:94vh;max-height:94dvh;overflow-y:auto;padding:12px 14px}.jprog-head{display:flex;justify-content:space-between;align-items:center;gap:8px;margin-bottom:8px}.jprog-head button{width:auto}.jprog-tabs{display:flex;flex-wrap:wrap;gap:4px;margin-bottom:10px}.jprog-tabs button{width:auto;flex:1 1 auto;font-size:.85rem;padding:8px 10px}.jprog-tabs button.active{background:#3a3a3a;border-color:#777}.jprog-read{text-align:center;padding:18px 6px}.jprog-read button,.jprog-body>button{width:auto;min-height:44px}.jprog-list{display:flex;flex-direction:column;gap:2px}.jprog-row{display:flex;align-items:center;gap:10px;width:100%;text-align:left;background:#222;border:1px solid var(--border);padding:10px;min-height:44px}.jprog-name{flex:1;overflow:hidden;text-overflow:ellipsis}.jprog-tag{font-size:.72rem;padding:2px 8px;border-radius:999px;background:#2a2a2a;color:var(--text-muted)}.jprog-tag.on{background:#22c55e26;color:var(--success)}.jprog-edit{padding:10px;border:1px solid var(--border);border-top:0;display:flex;flex-direction:column;gap:8px}.jprog-edit input{font-size:1.05rem}.jprog-perms>div{display:flex;flex-wrap:wrap;gap:6px;align-items:center;margin-bottom:6px}.jprog-chip{display:inline-flex;align-items:center;gap:4px;padding:6px 10px;border:1px solid var(--border);border-radius:999px;font-size:.82rem}.jprog-actions button{width:100%;min-height:46px}.jprog-line{display:flex;flex-wrap:wrap;gap:8px;align-items:baseline;padding:6px 4px;border-bottom:1px solid var(--border)}.jprog-foot{text-align:right;margin:6px 0}.jprog-desktop{margin-top:14px;padding-top:10px;border-top:1px dashed var(--border)}.jprog-desktop button{width:auto}.jprog-userbar{display:flex;flex-wrap:wrap;gap:10px;align-items:center;margin-bottom:6px}.jprog-userbar button{width:auto;min-height:44px}.jprog-inline{display:flex;gap:6px}.jprog-inline input{flex:1}.jprog-inline button{width:auto}.tamper-bulk{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin:0 0 12px;font-size:.88rem}.tamper-bulk button{width:auto}.ptz-pad{font-size:.72rem;color:var(--text-muted);margin-left:8px;white-space:nowrap}.ptz-pad.on{color:var(--success)}.ostat{border:1px solid var(--border);border-radius:8px;padding:.8rem;margin-bottom:1rem;background:var(--surface)}.ostat-head{display:flex;gap:.4rem;align-items:center;flex-wrap:wrap;margin-bottom:.7rem}.ostat-head strong{margin-right:.5rem}.ostat-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:.6rem;margin-bottom:.7rem}.ostat-num{border:1px solid var(--border);border-radius:6px;padding:.6rem;display:flex;flex-direction:column}.ostat-num b{font-size:1.35rem}.ostat-num span{font-size:.75rem;color:var(--text-dim)}.ostat-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:.6rem;margin-bottom:.6rem}.ostat-card{border:1px solid var(--border);border-radius:6px;padding:.6rem}.ostat-card h4{margin:0 0 .45rem;font-size:.85rem}.ostat-empty{font-size:.8rem;color:var(--text-faint);margin:0}.ostat-row{display:grid;grid-template-columns:minmax(0,1.3fr) 1fr 2.5rem;gap:.4rem;align-items:center;font-size:.78rem;margin:.2rem 0}.ostat-k{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ostat-bar{height:8px;background:var(--border);border-radius:4px;overflow:hidden}.ostat-bar span{display:block;height:100%;background:var(--info)}.ostat-n{text-align:right;font-variant-numeric:tabular-nums}.ostat-hours{display:grid;grid-template-columns:repeat(24,1fr);gap:3px;height:110px;align-items:end}.ostat-hour{display:flex;flex-direction:column;justify-content:flex-end;height:100%}.ostat-hour span{display:block;background:var(--info);border-radius:2px 2px 0 0;min-height:1px}.ostat-hour small{font-size:.62rem;color:var(--text-dim);text-align:center;height:.9rem}.alarm-layout .alarm-card{margin:0;border-radius:0;border:1px solid var(--border);border-top-width:0;border-left:4px solid var(--border);padding:6px 12px;background:var(--surface);transition:background .12s}.alarm-layout .alarm-row-head+.alarm-card{border-top-width:1px;border-top-left-radius:8px;border-top-right-radius:8px}.alarm-layout .alarm-card:last-child{border-bottom-left-radius:8px;border-bottom-right-radius:8px}.alarm-layout .alarm-card:nth-of-type(odd){background:var(--bg-elevated)}.alarm-layout .alarm-card:hover{background:var(--surface-hover)}.alarm-layout .alarm-card.open{background:var(--bg-elevated);box-shadow:inset 0 0 0 1px var(--border-strong)}.alarm-layout .alarm-card.selected{box-shadow:inset 0 0 0 2px var(--hl)}.alarm-card.tone-ok{border-left-color:var(--success)}.alarm-card.tone-warn{border-left-color:var(--warning)}.alarm-card.tone-off{border-left-color:var(--danger)}.alarm-card.tone-alarm{border-left-color:var(--danger);animation:alarm-tone-blink 1s steps(2,start) infinite}.alarm-card.tone-muted{border-left-color:var(--text-faint);opacity:.85}@keyframes alarm-tone-blink{50%{border-left-color:transparent}}.alarm-layout .alarm-row-head{padding:0 12px 6px 16px}.alarm-row-account{display:inline-block;justify-self:start;padding:1px 8px;border:1px solid var(--border);border-radius:5px;background:var(--bg)}.alarm-row-head .alarm-row-account{border:0;background:none;padding:0}body.no-scroll{overflow:hidden}.alarm-modal-backdrop.edit{z-index:2500;background:#000000c7;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);align-items:center;padding:2vh 16px;overflow:hidden}.alarm-modal.edit{width:min(1250px,100%);max-height:96vh;display:flex;flex-direction:column;padding:0;overflow:hidden}.alarm-modal.edit>.alarm-editor{margin:0;border:0;border-radius:8px;flex:1;min-height:0;overflow-y:auto;padding-top:0;padding-bottom:0}.alarm-modal.edit .alarm-editor-head{position:sticky;top:0;z-index:3;background:var(--bg-elevated);padding:14px 0 8px;margin:0}.alarm-modal.edit .alarm-tabs{position:sticky;top:48px;z-index:3;background:var(--bg-elevated);margin-top:0}.alarm-modal.edit .alarm-editor-actions{position:sticky;bottom:0;z-index:3;background:var(--bg-elevated);border-top:1px solid var(--border);padding:10px 0 12px;margin-top:14px}.alarm-editor-close{margin-left:auto;width:auto;padding:4px 11px;background:transparent;border:1px solid var(--border);color:var(--text-dim);font-size:1rem;line-height:1}.alarm-editor-close:hover{color:var(--text);border-color:var(--text-dim)}@media (max-width: 820px){.alarm-modal-backdrop.edit{padding:0}.alarm-modal.edit{max-height:100dvh;height:100dvh;border-radius:0}.alarm-modal.edit .alarm-tabs{top:44px}}.alarm-modal.edit>.card{margin:0;border:0;border-radius:8px;flex:1;min-height:0;overflow-y:auto;padding-top:0}.alarm-modal.edit>.alarm-detail{padding-bottom:16px}.alarm-detail-title{margin:12px 0 8px}.alarm-modal.edit .alarm-detail .alarm-editor-head{margin-bottom:6px;border-bottom:1px solid var(--border)}.panic-box{display:flex;flex-direction:column;align-items:center;gap:8px;padding:14px 12px;margin:0 0 14px;border:1px solid color-mix(in srgb,var(--danger) 45%,var(--border));border-radius:12px;background:color-mix(in srgb,var(--danger) 7%,var(--surface))}.panic-btn{--p: 0deg;width:132px;height:132px;border-radius:50%;padding:8px;border:0;cursor:pointer;margin:0;background:conic-gradient(#fff var(--p),rgba(255,255,255,.18) var(--p));touch-action:none;user-select:none;-webkit-user-select:none;-webkit-touch-callout:none;box-shadow:0 0 0 6px color-mix(in srgb,var(--danger) 25%,transparent)}.panic-btn-in{display:flex;flex-direction:column;align-items:center;justify-content:center;width:100%;height:100%;border-radius:50%;background:#d71f1f;color:#fff}.panic-btn-in b{font-size:2rem;letter-spacing:.08em;line-height:1}.panic-btn-in small{font-size:.78rem;font-weight:700;letter-spacing:.1em;margin-top:4px}.panic-btn:active .panic-btn-in{background:#b01515}.panic-box.compact .panic-btn{width:104px;height:104px}.panic-box.compact .panic-btn-in b{font-size:1.6rem}.panic-help{margin:0;max-width:420px;text-align:center;font-size:.82rem;color:var(--text-dim)}.panic-warn{margin:0;font-size:.8rem;color:var(--warning);text-align:center}.panic-active{display:flex;flex-direction:column;gap:10px;padding:14px;margin:0 0 14px;border-radius:12px;border:2px solid var(--danger);background:color-mix(in srgb,var(--danger) 12%,var(--surface))}.panic-active-title{color:var(--danger);font-size:1.1rem;text-align:center}.panic-video{position:relative;background:#000;border-radius:8px;overflow:hidden;aspect-ratio:16 / 9;max-height:45vh}.panic-video video{width:100%;height:100%;object-fit:contain;display:block}.panic-video-state{position:absolute;left:8px;top:8px;font-size:.75rem;padding:2px 8px;border-radius:10px;background:#000000a6;color:#fff}.panic-video-state.live{color:#ff6b6b;font-weight:700}.panic-gps{margin:0;font-size:.88rem;text-align:center}.panic-actions{display:flex;gap:8px;justify-content:center;flex-wrap:wrap}.panic-actions button{width:auto;margin:0}.panic-loc{margin-top:4px;font-size:.85rem;font-weight:400}.panic-loc a{color:var(--info);font-weight:700}.aauto-mode{display:flex;gap:6px;flex-basis:100%;flex-wrap:wrap}.aauto-mode label{display:inline-flex;align-items:center;gap:6px;padding:5px 12px;border:1px solid var(--border);border-radius:6px;cursor:pointer}.aauto-mode label.on{border-color:var(--hl);background:var(--surface-hover);font-weight:600}.aauto-mode input{width:auto!important;margin:0}.aauto-sources{flex-basis:100%;display:grid;grid-template-columns:1fr 1fr;gap:12px;padding:10px;border:1px solid var(--border);border-radius:6px}.aauto-sources p{grid-column:1 / -1;margin:0}.aauto-pick{display:flex;flex-wrap:wrap;gap:4px;margin-top:6px;align-items:center}.aauto-pick label{display:inline-flex;align-items:center;gap:4px;padding:2px 8px;border:1px solid var(--border);border-radius:12px;font-size:.8rem;cursor:pointer}.aauto-pick label.on{border-color:var(--info);color:var(--info)}.aauto-pick input{width:auto!important;margin:0}.aidle-st{font-size:.8rem;margin-bottom:3px;color:var(--text-dim)}.aidle-st.ok{color:var(--success)}.aidle-st.warn{color:var(--warning)}@media (max-width: 820px){.aauto-sources{grid-template-columns:1fr}}.fp-page{flex:1;min-height:0;display:grid;grid-template-columns:290px minmax(0,1fr);gap:14px}.fp-side{display:flex;flex-direction:column;gap:10px;min-height:0;overflow-y:auto;padding-right:4px}.fp-side-head{display:flex;align-items:center;justify-content:space-between}.fp-side-head .btn-inline{margin:0}.fp-list{display:flex;flex-direction:column;gap:4px}.fp-list-item{text-align:left;width:100%;margin:0;padding:8px 10px;background:var(--surface);border:1px solid var(--border);border-left:3px solid transparent;display:flex;flex-direction:column;gap:2px}.fp-list-item span{font-size:.75rem;color:var(--text-dim);font-weight:400}.fp-list-item.on{border-left-color:var(--hl);background:var(--surface-hover)}.fp-editor{display:flex;flex-direction:column;gap:8px;border-top:1px solid var(--border);padding-top:10px}.fp-editor label{display:flex;flex-direction:column;gap:3px;font-size:.8rem;color:var(--text-dim)}.fp-editor input,.fp-editor select{margin:0}.fp-editor-actions{display:flex;gap:6px;flex-wrap:wrap}.fp-editor-actions button{width:auto;margin:0}.fp-picked{border:1px solid var(--hl);border-radius:6px;padding:8px;display:flex;flex-direction:column;gap:6px}.fp-picked button{width:auto;margin:0;align-self:flex-start}.fp-palette{display:flex;flex-direction:column;gap:4px}.fp-pal-title{font-size:.78rem;margin-top:6px}.fp-pal{display:flex;align-items:center;gap:6px;padding:5px 8px;border:1px dashed var(--border-strong);border-radius:5px;cursor:grab;font-size:.82rem;background:var(--bg-elevated);-webkit-user-select:none;user-select:none}.fp-pal:active{cursor:grabbing}.fp-main{display:flex;flex-direction:column;min-height:0;min-width:0}.fp-bar{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-bottom:8px}.fp-bar h2{margin:0;font-size:1.15rem}.fp-bar .btn-inline{margin:0 0 0 auto}.fp-legend{display:inline-flex;gap:6px;align-items:center;font-size:.75rem;color:var(--text-dim)}.fp-edit-tag{margin-left:auto;font-size:.75rem;font-weight:700;color:var(--warning);letter-spacing:.04em}.fp-part{margin-left:6px;padding:1px 7px;border-radius:4px;border:1px solid var(--border);font-size:.72rem;font-weight:700}.fp-part.armed{color:var(--info);border-color:var(--info)}.fp-part.ok{color:var(--success);border-color:var(--success)}.fp-part.hot{color:#fff;background:var(--danger);border-color:var(--danger)}.fp-dot{display:inline-block;width:9px;height:9px;border-radius:50%;background:var(--text-faint);flex:none}.fp-dot.on{background:var(--success)}.fp-dot.off{background:var(--danger)}.fp-dot.alert{background:var(--danger);animation:fp-blink .8s steps(2,start) infinite}.fp-stage{flex:1;min-height:360px;display:flex;align-items:center;justify-content:center;background:#0b0b0b;border:1px solid var(--border);border-radius:8px;overflow:hidden}.fp-canvas{position:relative;flex:none}.fp-canvas>img{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;object-fit:fill;-webkit-user-select:none;user-select:none;pointer-events:none}.fp-canvas.editing{outline:2px dashed var(--warning);outline-offset:-2px}.fp-item{position:absolute;transform:translate(-50%,-50%);display:flex;flex-direction:column;align-items:center;cursor:pointer;touch-action:none;z-index:2}.fp-canvas.editing .fp-item{cursor:move}.fp-label{margin-top:2px;padding:1px 6px;border-radius:4px;background:#000000b8;color:#eee;font-size:.68rem;white-space:nowrap;max-width:150px;overflow:hidden;text-overflow:ellipsis;pointer-events:none}.fp-item.cam .fp-cam-ic{position:relative;z-index:1;width:28px;height:28px;border-radius:50%;display:grid;place-items:center;color:#fff;background:#3a3a3a;border:2px solid #111;box-shadow:0 0 0 2px #00000059}.fp-item.cam .fp-fov{position:absolute;top:14px;left:50%;width:110px;height:110px;margin:-55px 0 0 -55px;pointer-events:none;z-index:0}.fp-item.cam .fp-fov path{fill:#c8c8c829;stroke:#dcdcdc59;stroke-width:1}.fp-item.cam.on .fp-cam-ic{background:#1f7a45}.fp-item.cam.on .fp-fov path{fill:#22c55e29;stroke:#22c55e73}.fp-item.cam.off .fp-cam-ic{background:#7a1f1f}.fp-item.cam.alert .fp-cam-ic{background:var(--danger);animation:fp-pulse .8s ease-in-out infinite}.fp-item.cam.alert .fp-fov path{fill:#ef444447;stroke:#ef4444b3}.fp-item.zone .fp-zone-num{min-width:26px;height:26px;padding:0 5px;border-radius:6px;display:grid;place-items:center;font-weight:800;font-size:.8rem;color:#fff;background:#3a3a3a;border:2px solid #111}.fp-item.zone.ok .fp-zone-num{background:#1f7a45}.fp-item.zone.warn .fp-zone-num{background:#b7791f}.fp-item.zone.hot .fp-zone-num{background:var(--danger);animation:fp-pulse .8s ease-in-out infinite}.fp-item.zone.muted .fp-zone-num{background:#555;color:#ccc}.fp-item.picked .fp-cam-ic,.fp-item.picked .fp-zone-num{box-shadow:0 0 0 3px var(--warning)}.fp-pal .fp-zone-num{min-width:20px;height:20px;border-radius:4px;display:grid;place-items:center;font-size:.72rem;font-weight:800;background:#3a3a3a;color:#fff}.fp-pop{position:absolute;transform:translate(-50%,calc(-100% - 22px));z-index:5;background:var(--bg-elevated);border:1px solid var(--border-strong);border-radius:6px;padding:8px 10px;display:flex;flex-direction:column;gap:3px;font-size:.82rem;white-space:nowrap;cursor:pointer}.fp-zstate.ok{color:var(--success)}.fp-zstate.warn{color:var(--warning)}.fp-zstate.hot{color:var(--danger);font-weight:700}.fp-zstate.muted{color:var(--text-dim)}@keyframes fp-blink{50%{opacity:.2}}@keyframes fp-pulse{0%,to{box-shadow:0 0 0 2px #ef4444e6}50%{box-shadow:0 0 0 10px #ef444400}}.fp-live{width:min(1100px,100%);background:var(--bg-elevated);border:1px solid var(--border);border-radius:8px;padding:10px}.fp-live-head{display:flex;align-items:center;gap:10px;margin-bottom:8px}.fp-live-head button{width:auto;margin:0}.fp-live-head .alarm-editor-close{margin-left:auto}.fp-live-video{aspect-ratio:16 / 9;background:#000}.fp-live-video>div{width:100%;height:100%}.fp-new{display:flex;flex-direction:column;gap:10px}.fp-new label{display:flex;flex-direction:column;gap:4px;font-size:.82rem;color:var(--text-dim)}.fp-new input,.fp-new select{margin:0}@media (max-width: 820px){.fp-page{grid-template-columns:1fr}.fp-side{max-height:40vh}.fp-stage{min-height:60vh}}.mi{display:inline-grid;place-items:center;flex-shrink:0;width:26px;height:26px;border-radius:7px;color:var(--mi-c, var(--text-dim));background:color-mix(in srgb,var(--mi-c, var(--text-dim)) 14%,transparent);box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--mi-c, var(--text-dim)) 28%,transparent)}.mi svg .f{fill:currentColor;stroke:none;opacity:.18}.mi svg .dot{fill:currentColor}.mi-plain{display:inline-grid;color:var(--mi-c, currentColor)}.mi-plain svg .f{fill:currentColor;stroke:none;opacity:.18}.mi-monitor{--mi-c: var(--mi-monitor)}.mi-map{--mi-c: var(--mi-map)}.mi-cameras{--mi-c: var(--mi-cameras)}.mi-search{--mi-c: var(--mi-search)}.mi-alarm{--mi-c: var(--mi-alarm)}.mi-modules{--mi-c: var(--mi-modules)}.mi-account{--mi-c: var(--mi-account)}.mi-admin{--mi-c: var(--mi-admin)}.nav-dd-menu .mi{width:24px;height:24px;border-radius:6px}.nav-dd-menu .nav-btn{padding:.45rem .8rem}.nav-btn:hover .mi,.nav-dd-menu .nav-btn:hover .mi{background:color-mix(in srgb,var(--mi-c, var(--text-dim)) 26%,transparent)}:root[data-icon-mode=mono] .mi{background:var(--surface-hover);box-shadow:inset 0 0 0 1px var(--border)}.colors-card{max-width:760px;margin-top:1.5rem}.colors-card h4{margin:1rem 0 .4rem;font-size:.85rem;color:var(--text-dim);text-transform:uppercase;letter-spacing:.04em}.colors-head{display:flex;align-items:center;justify-content:space-between;gap:10px}.colors-head h3{margin:0}.colors-head button{width:auto;margin:0}.colors-presets{display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:6px}.colors-preset{width:100%;margin:0;display:flex;align-items:center;gap:10px;text-align:left;background:var(--surface);border:1px solid var(--border);font-weight:500}.colors-preset:hover{border-color:var(--hl)}.colors-preset-sw{display:inline-flex}.colors-preset-sw i{width:14px;height:22px;display:block}.colors-preset-sw i:first-child{border-radius:4px 0 0 4px}.colors-preset-sw i:last-child{border-radius:0 4px 4px 0}.cpick{display:flex;flex-direction:column;gap:5px}.cpick-label{font-size:.8rem;color:var(--text-dim)}.cpick-sw{display:flex;flex-wrap:wrap;gap:5px;align-items:center}.cpick-dot{width:24px;height:24px;min-width:0;padding:0;margin:0;border-radius:50%;border:2px solid transparent;box-shadow:inset 0 0 0 1px #0000004d}.cpick-dot.on{border-color:var(--text)}.cpick-custom{display:inline-flex;align-items:center;gap:4px;font-size:.78rem;color:var(--text-dim);cursor:pointer;margin-left:4px}.cpick-custom input{width:30px;height:26px;padding:0;margin:0;border:1px solid var(--border);border-radius:6px;background:none;cursor:pointer}.colors-seg{display:flex;flex-wrap:wrap;gap:6px}.colors-seg label{display:inline-flex;align-items:center;gap:6px;padding:5px 12px;border:1px solid var(--border);border-radius:6px;cursor:pointer;font-size:.88rem}.colors-seg label.on{border-color:var(--hl);background:var(--surface-hover);font-weight:600}.colors-seg input{width:auto!important;margin:0}.colors-groups{display:grid;grid-template-columns:repeat(auto-fill,minmax(170px,1fr));gap:6px}.colors-group.open{grid-column:1 / -1;border:1px solid var(--border);border-radius:8px;padding:8px}.colors-group-btn{width:100%;margin:0;display:flex;align-items:center;gap:8px;background:var(--surface);border:1px solid var(--border);font-weight:500;text-align:left}.colors-group-btn span{flex:1}.colors-group-btn i{width:16px;height:16px;border-radius:50%}.colors-group.open .colors-group-btn{margin-bottom:8px}.colors-status-demo{display:flex;gap:8px;flex-wrap:wrap;margin-top:8px}.colors-status-demo .badge{background:transparent;border:1px solid}.nav-dd-menu .nav-btn{white-space:nowrap;font-weight:500}@media (max-width: 820px){.nav-dd-menu .nav-btn{white-space:normal}}.face-store-check{display:flex;align-items:flex-start;gap:.5rem;margin:.4rem 0 0 1.4rem;font-size:.85rem}.face-store-check input{width:auto;margin:3px 0 0}.face-store-check small{display:block;color:var(--warning);margin-top:2px}.face-filters{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin:8px 0 12px}.face-filters select,.face-filters input{width:auto;margin:0}.face-filters label{display:inline-flex;align-items:center;gap:6px;font-size:.85rem}.face-upload{padding:7px 14px;border:1px solid var(--border-strong);border-radius:6px;cursor:pointer;background:var(--btn-bg);font-weight:600}.face-upload input{display:none}.face-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(128px,1fr));gap:8px}.face-card{border:1px solid var(--border);border-radius:8px;overflow:hidden;background:var(--surface);display:flex;flex-direction:column}.face-thumb{width:100%;aspect-ratio:1;padding:0;margin:0;border:0;border-radius:0;background:var(--video-bg);cursor:pointer;display:block}.face-thumb img{width:100%;height:100%;object-fit:cover;display:block}.face-thumb.big{width:140px;height:140px;border-radius:8px;object-fit:cover;flex-shrink:0}.face-meta{display:flex;flex-direction:column;padding:4px 7px;font-size:.74rem;color:var(--text-dim);gap:1px}.face-meta b{color:var(--text);font-size:.9rem}.face-meta b.face-hi{color:var(--success)}.face-known{color:var(--info)}.face-actions{display:flex;justify-content:space-between;padding:0 7px 5px;font-size:.76rem}.face-actions .btn-link{width:auto;margin:0;padding:0}.face-results{margin-bottom:12px}.face-query{display:flex;gap:14px;align-items:center;margin-bottom:10px}.face-query .btn-link{width:auto;padding:0;margin-top:4px}.face-enroll-box{display:flex;gap:14px;align-items:flex-start;flex-wrap:wrap;margin-bottom:12px}.face-enroll-box>button{width:auto;margin:0}.face-enroll{display:flex;flex-direction:column;gap:6px;min-width:260px}.face-enroll input,.face-enroll select,.face-enroll button{margin:0}.face-pages{display:flex;gap:10px;align-items:center;justify-content:center;margin:12px 0}.face-pages button{width:auto;margin:0}
