.leaflet-pane,.leaflet-tile,.leaflet-marker-icon,.leaflet-marker-shadow,.leaflet-tile-container,.leaflet-pane>svg,.leaflet-pane>canvas,.leaflet-zoom-box,.leaflet-image-layer,.leaflet-layer{position:absolute;left:0;top:0}.leaflet-container{overflow:hidden}.leaflet-tile,.leaflet-marker-icon,.leaflet-marker-shadow{-webkit-user-select:none;-moz-user-select:none;user-select:none;-webkit-user-drag:none}.leaflet-tile::selection{background:transparent}.leaflet-safari .leaflet-tile{image-rendering:-webkit-optimize-contrast}.leaflet-safari .leaflet-tile-container{width:1600px;height:1600px;-webkit-transform-origin:0 0}.leaflet-marker-icon,.leaflet-marker-shadow{display:block}.leaflet-container .leaflet-overlay-pane svg{max-width:none!important;max-height:none!important}.leaflet-container .leaflet-marker-pane img,.leaflet-container .leaflet-shadow-pane img,.leaflet-container .leaflet-tile-pane img,.leaflet-container img.leaflet-image-layer,.leaflet-container .leaflet-tile{max-width:none!important;max-height:none!important;width:auto;padding:0}.leaflet-container img.leaflet-tile{mix-blend-mode:plus-lighter}.leaflet-container.leaflet-touch-zoom{-ms-touch-action:pan-x pan-y;touch-action:pan-x pan-y}.leaflet-container.leaflet-touch-drag{-ms-touch-action:pinch-zoom;touch-action:none;touch-action:pinch-zoom}.leaflet-container.leaflet-touch-drag.leaflet-touch-zoom{-ms-touch-action:none;touch-action:none}.leaflet-container{-webkit-tap-highlight-color:transparent}.leaflet-container a{-webkit-tap-highlight-color:rgba(51,181,229,.4)}.leaflet-tile{filter:inherit;visibility:hidden}.leaflet-tile-loaded{visibility:inherit}.leaflet-zoom-box{width:0;height:0;-moz-box-sizing:border-box;box-sizing:border-box;z-index:800}.leaflet-overlay-pane svg{-moz-user-select:none}.leaflet-pane{z-index:400}.leaflet-tile-pane{z-index:200}.leaflet-overlay-pane{z-index:400}.leaflet-shadow-pane{z-index:500}.leaflet-marker-pane{z-index:600}.leaflet-tooltip-pane{z-index:650}.leaflet-popup-pane{z-index:700}.leaflet-map-pane canvas{z-index:100}.leaflet-map-pane svg{z-index:200}.leaflet-vml-shape{width:1px;height:1px}.lvml{behavior:url(#default#VML);display:inline-block;position:absolute}.leaflet-control{position:relative;z-index:800;pointer-events:visiblePainted;pointer-events:auto}.leaflet-top,.leaflet-bottom{position:absolute;z-index:1000;pointer-events:none}.leaflet-top{top:0}.leaflet-right{right:0}.leaflet-bottom{bottom:0}.leaflet-left{left:0}.leaflet-control{float:left;clear:both}.leaflet-right .leaflet-control{float:right}.leaflet-top .leaflet-control{margin-top:10px}.leaflet-bottom .leaflet-control{margin-bottom:10px}.leaflet-left .leaflet-control{margin-left:10px}.leaflet-right .leaflet-control{margin-right:10px}.leaflet-fade-anim .leaflet-popup{opacity:0;-webkit-transition:opacity .2s linear;-moz-transition:opacity .2s linear;transition:opacity .2s linear}.leaflet-fade-anim .leaflet-map-pane .leaflet-popup{opacity:1}.leaflet-zoom-animated{-webkit-transform-origin:0 0;-ms-transform-origin:0 0;transform-origin:0 0}svg.leaflet-zoom-animated{will-change:transform}.leaflet-zoom-anim .leaflet-zoom-animated{-webkit-transition:-webkit-transform .25s cubic-bezier(0,0,.25,1);-moz-transition:-moz-transform .25s cubic-bezier(0,0,.25,1);transition:transform .25s cubic-bezier(0,0,.25,1)}.leaflet-zoom-anim .leaflet-tile,.leaflet-pan-anim .leaflet-tile{-webkit-transition:none;-moz-transition:none;transition:none}.leaflet-zoom-anim .leaflet-zoom-hide{visibility:hidden}.leaflet-interactive{cursor:pointer}.leaflet-grab{cursor:-webkit-grab;cursor:-moz-grab;cursor:grab}.leaflet-crosshair,.leaflet-crosshair .leaflet-interactive{cursor:crosshair}.leaflet-popup-pane,.leaflet-control{cursor:auto}.leaflet-dragging .leaflet-grab,.leaflet-dragging .leaflet-grab .leaflet-interactive,.leaflet-dragging .leaflet-marker-draggable{cursor:move;cursor:-webkit-grabbing;cursor:-moz-grabbing;cursor:grabbing}.leaflet-marker-icon,.leaflet-marker-shadow,.leaflet-image-layer,.leaflet-pane>svg path,.leaflet-tile-container{pointer-events:none}.leaflet-marker-icon.leaflet-interactive,.leaflet-image-layer.leaflet-interactive,.leaflet-pane>svg path.leaflet-interactive,svg.leaflet-image-layer.leaflet-interactive path{pointer-events:visiblePainted;pointer-events:auto}.leaflet-container{background:#ddd;outline-offset:1px}.leaflet-container a{color:#0078a8}.leaflet-zoom-box{border:2px dotted #38f;background:#ffffff80}.leaflet-container{font-family:Helvetica Neue,Arial,Helvetica,sans-serif;font-size:12px;font-size:.75rem;line-height:1.5}.leaflet-bar{box-shadow:0 1px 5px #000000a6;border-radius:4px}.leaflet-bar a{background-color:#fff;border-bottom:1px solid #ccc;width:26px;height:26px;line-height:26px;display:block;text-align:center;text-decoration:none;color:#000}.leaflet-bar a,.leaflet-control-layers-toggle{background-position:50% 50%;background-repeat:no-repeat;display:block}.leaflet-bar a:hover,.leaflet-bar a:focus{background-color:#f4f4f4}.leaflet-bar a:first-child{border-top-left-radius:4px;border-top-right-radius:4px}.leaflet-bar a:last-child{border-bottom-left-radius:4px;border-bottom-right-radius:4px;border-bottom:none}.leaflet-bar a.leaflet-disabled{cursor:default;background-color:#f4f4f4;color:#bbb}.leaflet-touch .leaflet-bar a{width:30px;height:30px;line-height:30px}.leaflet-touch .leaflet-bar a:first-child{border-top-left-radius:2px;border-top-right-radius:2px}.leaflet-touch .leaflet-bar a:last-child{border-bottom-left-radius:2px;border-bottom-right-radius:2px}.leaflet-control-zoom-in,.leaflet-control-zoom-out{font:700 18px Lucida Console,Monaco,monospace;text-indent:1px}.leaflet-touch .leaflet-control-zoom-in,.leaflet-touch .leaflet-control-zoom-out{font-size:22px}.leaflet-control-layers{box-shadow:0 1px 5px #0006;background:#fff;border-radius:5px}.leaflet-control-layers-toggle{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABoAAAAaCAQAAAADQ4RFAAACf0lEQVR4AY1UM3gkARTePdvdoTxXKc+qTl3aU5U6b2Kbkz3Gtq3Zw6ziLGNPzrYx7946Tr6/ee/XeCQ4D3ykPtL5tHno4n0d/h3+xfuWHGLX81cn7r0iTNzjr7LrlxCqPtkbTQEHeqOrTy4Yyt3VCi/IOB0v7rVC7q45Q3Gr5K6jt+3Gl5nCoDD4MtO+j96Wu8atmhGqcNGHObuf8OM/x3AMx38+4Z2sPqzCxRFK2aF2e5Jol56XTLyggAMTL56XOMoS1W4pOyjUcGGQdZxU6qRh7B9Zp+PfpOFlqt0zyDZckPi1ttmIp03jX8gyJ8a/PG2yutpS/Vol7peZIbZcKBAEEheEIAgFbDkz5H6Zrkm2hVWGiXKiF4Ycw0RWKdtC16Q7qe3X4iOMxruonzegJzWaXFrU9utOSsLUmrc0YjeWYjCW4PDMADElpJSSQ0vQvA1Tm6/JlKnqFs1EGyZiFCqnRZTEJJJiKRYzVYzJck2Rm6P4iH+cmSY0YzimYa8l0EtTODFWhcMIMVqdsI2uiTvKmTisIDHJ3od5GILVhBCarCfVRmo4uTjkhrhzkiBV7SsaqS+TzrzM1qpGGUFt28pIySQHR6h7F6KSwGWm97ay+Z+ZqMcEjEWebE7wxCSQwpkhJqoZA5ivCdZDjJepuJ9IQjGGUmuXJdBFUygxVqVsxFsLMbDe8ZbDYVCGKxs+W080max1hFCarCfV+C1KATwcnvE9gRRuMP2prdbWGowm1KB1y+zwMMENkM755cJ2yPDtqhTI6ED1M/82yIDtC/4j4BijjeObflpO9I9MwXTCsSX8jWAFeHr05WoLTJ5G8IQVS/7vwR6ohirYM7f6HzYpogfS3R2OAAAAAElFTkSuQmCC);width:36px;height:36px}.leaflet-retina .leaflet-control-layers-toggle{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADQAAAA0CAQAAABvcdNgAAAEsklEQVR4AWL4TydIhpZK1kpWOlg0w3ZXP6D2soBtG42jeI6ZmQTHzAxiTbSJsYLjO9HhP+WOmcuhciVnmHVQcJnp7DFvScowZorad/+V/fVzMdMT2g9Cv9guXGv/7pYOrXh2U+RRR3dSd9JRx6bIFc/ekqHI29JC6pJ5ZEh1yWkhkbcFeSjxgx3L2m1cb1C7bceyxA+CNjT/Ifff+/kDk2u/w/33/IeCMOSaWZ4glosqT3DNnNZQ7Cs58/3Ce5HL78iZH/vKVIaYlqzfdLu8Vi7dnvUbEza5Idt36tquZFldl6N5Z/POLof0XLK61mZCmJSWjVF9tEjUluu74IUXvgttuVIHE7YxSkaYhJZam7yiM9Pv82JYfl9nptxZaxMJE4YSPty+vF0+Y2up9d3wwijfjZbabqm/3bZ9ecKHsiGmRflnn1MW4pjHf9oLufyn2z3y1D6n8g8TZhxyzipLNPnAUpsOiuWimg52psrTZYnOWYNDTMuWBWa0tJb4rgq1UvmutpaYEbZlwU3CLJm/ayYjHW5/h7xWLn9Hh1vepDkyf7dE7MtT5LR4e7yYpHrkhOUpEfssBLq2pPhAqoSWKUkk7EDqkmK6RrCEzqDjhNDWNE+XSMvkJRDWlZTmCW0l0PHQGRZY5t1L83kT0Y3l2SItk5JAWHl2dCOBm+fPu3fo5/3v61RMCO9Jx2EEYYhb0rmNQMX/vm7gqOEJLcXTGw3CAuRNeyaPWwjR8PRqKQ1PDA/dpv+on9Shox52WFnx0KY8onHayrJzm87i5h9xGw/tfkev0jGsQizqezUKjk12hBMKJ4kbCqGPVNXudyyrShovGw5CgxsRICxF6aRmSjlBnHRzg7Gx8fKqEubI2rahQYdR1YgDIRQO7JvQyD52hoIQx0mxa0ODtW2Iozn1le2iIRdzwWewedyZzewidueOGqlsn1MvcnQpuVwLGG3/IR1hIKxCjelIDZ8ldqWz25jWAsnldEnK0Zxro19TGVb2ffIZEsIO89EIEDvKMPrzmBOQcKQ+rroye6NgRRxqR4U8EAkz0CL6uSGOm6KQCdWjvjRiSP1BPalCRS5iQYiEIvxuBMJEWgzSoHADcVMuN7IuqqTeyUPq22qFimFtxDyBBJEwNyt6TM88blFHao/6tWWhuuOM4SAK4EI4QmFHA+SEyWlp4EQoJ13cYGzMu7yszEIBOm2rVmHUNqwAIQabISNMRstmdhNWcFLsSm+0tjJH1MdRxO5Nx0WDMhCtgD6OKgZeljJqJKc9po8juskR9XN0Y1lZ3mWjLR9JCO1jRDMd0fpYC2VnvjBSEFg7wBENc0R9HFlb0xvF1+TBEpF68d+DHR6IOWVv2BECtxo46hOFUBd/APU57WIoEwJhIi2CdpyZX0m93BZicktMj1AS9dClteUFAUNUIEygRZCtik5zSxI9MubTBH1GOiHsiLJ3OCoSZkILa9PxiN0EbvhsAo8tdAf9Seepd36lGWHmtNANTv5Jd0z4QYyeo/UEJqxKRpg5LZx6btLPsOaEmdMyxYdlc8LMaJnikDlhclqmPiQnTEpLUIZEwkRagjYkEibQErwhkTAKCLQEbUgkzJQWc/0PstHHcfEdQ+UAAAAASUVORK5CYII=);background-size:26px 26px}.leaflet-touch .leaflet-control-layers-toggle{width:44px;height:44px}.leaflet-control-layers .leaflet-control-layers-list,.leaflet-control-layers-expanded .leaflet-control-layers-toggle{display:none}.leaflet-control-layers-expanded .leaflet-control-layers-list{display:block;position:relative}.leaflet-control-layers-expanded{padding:6px 10px 6px 6px;color:#333;background:#fff}.leaflet-control-layers-scrollbar{overflow-y:scroll;overflow-x:hidden;padding-right:5px}.leaflet-control-layers-selector{margin-top:2px;position:relative;top:1px}.leaflet-control-layers label{display:block;font-size:13px;font-size:1.08333em}.leaflet-control-layers-separator{height:0;border-top:1px solid #ddd;margin:5px -10px 5px -6px}.leaflet-default-icon-path{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABkAAAApCAYAAADAk4LOAAAFgUlEQVR4Aa1XA5BjWRTN2oW17d3YaZtr2962HUzbDNpjszW24mRt28p47v7zq/bXZtrp/lWnXr337j3nPCe85NcypgSFdugCpW5YoDAMRaIMqRi6aKq5E3YqDQO3qAwjVWrD8Ncq/RBpykd8oZUb/kaJutow8r1aP9II0WmLKLIsJyv1w/kqw9Ch2MYdB++12Onxee/QMwvf4/Dk/Lfp/i4nxTXtOoQ4pW5Aj7wpici1A9erdAN2OH64x8OSP9j3Ft3b7aWkTg/Fm91siTra0f9on5sQr9INejH6CUUUpavjFNq1B+Oadhxmnfa8RfEmN8VNAsQhPqF55xHkMzz3jSmChWU6f7/XZKNH+9+hBLOHYozuKQPxyMPUKkrX/K0uWnfFaJGS1QPRtZsOPtr3NsW0uyh6NNCOkU3Yz+bXbT3I8G3xE5EXLXtCXbbqwCO9zPQYPRTZ5vIDXD7U+w7rFDEoUUf7ibHIR4y6bLVPXrz8JVZEql13trxwue/uDivd3fkWRbS6/IA2bID4uk0UpF1N8qLlbBlXs4Ee7HLTfV1j54APvODnSfOWBqtKVvjgLKzF5YdEk5ewRkGlK0i33Eofffc7HT56jD7/6U+qH3Cx7SBLNntH5YIPvODnyfIXZYRVDPqgHtLs5ABHD3YzLuespb7t79FY34DjMwrVrcTuwlT55YMPvOBnRrJ4VXTdNnYug5ucHLBjEpt30701A3Ts+HEa73u6dT3FNWwflY86eMHPk+Yu+i6pzUpRrW7SNDg5JHR4KapmM5Wv2E8Tfcb1HoqqHMHU+uWDD7zg54mz5/2BSnizi9T1Dg4QQXLToGNCkb6tb1NU+QAlGr1++eADrzhn/u8Q2YZhQVlZ5+CAOtqfbhmaUCS1ezNFVm2imDbPmPng5wmz+gwh+oHDce0eUtQ6OGDIyR0uUhUsoO3vfDmmgOezH0mZN59x7MBi++WDL1g/eEiU3avlidO671bkLfwbw5XV2P8Pzo0ydy4t2/0eu33xYSOMOD8hTf4CrBtGMSoXfPLchX+J0ruSePw3LZeK0juPJbYzrhkH0io7B3k164hiGvawhOKMLkrQLyVpZg8rHFW7E2uHOL888IBPlNZ1FPzstSJM694fWr6RwpvcJK60+0HCILTBzZLFNdtAzJaohze60T8qBzyh5ZuOg5e7uwQppofEmf2++DYvmySqGBuKaicF1blQjhuHdvCIMvp8whTTfZzI7RldpwtSzL+F1+wkdZ2TBOW2gIF88PBTzD/gpeREAMEbxnJcaJHNHrpzji0gQCS6hdkEeYt9DF/2qPcEC8RM28Hwmr3sdNyht00byAut2k3gufWNtgtOEOFGUwcXWNDbdNbpgBGxEvKkOQsxivJx33iow0Vw5S6SVTrpVq11ysA2Rp7gTfPfktc6zhtXBBC+adRLshf6sG2RfHPZ5EAc4sVZ83yCN00Fk/4kggu40ZTvIEm5g24qtU4KjBrx/BTTH8ifVASAG7gKrnWxJDcU7x8X6Ecczhm3o6YicvsLXWfh3Ch1W0k8x0nXF+0fFxgt4phz8QvypiwCCFKMqXCnqXExjq10beH+UUA7+nG6mdG/Pu0f3LgFcGrl2s0kNNjpmoJ9o4B29CMO8dMT4Q5ox8uitF6fqsrJOr8qnwNbRzv6hSnG5wP+64C7h9lp30hKNtKdWjtdkbuPA19nJ7Tz3zR/ibgARbhb4AlhavcBebmTHcFl2fvYEnW0ox9xMxKBS8btJ+KiEbq9zA4RthQXDhPa0T9TEe69gWupwc6uBUphquXgf+/FrIjweHQS4/pduMe5ERUMHUd9xv8ZR98CxkS4F2n3EUrUZ10EYNw7BWm9x1GiPssi3GgiGRDKWRYZfXlON+dfNbM+GgIwYdwAAAAASUVORK5CYII=)}.leaflet-container .leaflet-control-attribution{background:#fff;background:#fffc;margin:0}.leaflet-control-attribution,.leaflet-control-scale-line{padding:0 5px;color:#333;line-height:1.4}.leaflet-control-attribution a{text-decoration:none}.leaflet-control-attribution a:hover,.leaflet-control-attribution a:focus{text-decoration:underline}.leaflet-attribution-flag{display:inline!important;vertical-align:baseline!important;width:1em;height:.6669em}.leaflet-left .leaflet-control-scale{margin-left:5px}.leaflet-bottom .leaflet-control-scale{margin-bottom:5px}.leaflet-control-scale-line{border:2px solid #777;border-top:none;line-height:1.1;padding:2px 5px 1px;white-space:nowrap;-moz-box-sizing:border-box;box-sizing:border-box;background:#fffc;text-shadow:1px 1px #fff}.leaflet-control-scale-line:not(:first-child){border-top:2px solid #777;border-bottom:none;margin-top:-2px}.leaflet-control-scale-line:not(:first-child):not(:last-child){border-bottom:2px solid #777}.leaflet-touch .leaflet-control-attribution,.leaflet-touch .leaflet-control-layers,.leaflet-touch .leaflet-bar{box-shadow:none}.leaflet-touch .leaflet-control-layers,.leaflet-touch .leaflet-bar{border:2px solid rgba(0,0,0,.2);background-clip:padding-box}.leaflet-popup{position:absolute;text-align:center;margin-bottom:20px}.leaflet-popup-content-wrapper{padding:1px;text-align:left;border-radius:12px}.leaflet-popup-content{margin:13px 24px 13px 20px;line-height:1.3;font-size:13px;font-size:1.08333em;min-height:1px}.leaflet-popup-content p{margin:1.3em 0}.leaflet-popup-tip-container{width:40px;height:20px;position:absolute;left:50%;margin-top:-1px;margin-left:-20px;overflow:hidden;pointer-events:none}.leaflet-popup-tip{width:17px;height:17px;padding:1px;margin:-10px auto 0;pointer-events:auto;-webkit-transform:rotate(45deg);-moz-transform:rotate(45deg);-ms-transform:rotate(45deg);transform:rotate(45deg)}.leaflet-popup-content-wrapper,.leaflet-popup-tip{background:#fff;color:#333;box-shadow:0 3px 14px #0006}.leaflet-container a.leaflet-popup-close-button{position:absolute;top:0;right:0;border:none;text-align:center;width:24px;height:24px;font:16px/24px Tahoma,Verdana,sans-serif;color:#757575;text-decoration:none;background:transparent}.leaflet-container a.leaflet-popup-close-button:hover,.leaflet-container a.leaflet-popup-close-button:focus{color:#585858}.leaflet-popup-scrolled{overflow:auto}.leaflet-oldie .leaflet-popup-content-wrapper{-ms-zoom:1}.leaflet-oldie .leaflet-popup-tip{width:24px;margin:0 auto;-ms-filter:"progid:DXImageTransform.Microsoft.Matrix(M11=0.70710678, M12=0.70710678, M21=-0.70710678, M22=0.70710678)";filter:progid:DXImageTransform.Microsoft.Matrix(M11=.70710678,M12=.70710678,M21=-.70710678,M22=.70710678)}.leaflet-oldie .leaflet-control-zoom,.leaflet-oldie .leaflet-control-layers,.leaflet-oldie .leaflet-popup-content-wrapper,.leaflet-oldie .leaflet-popup-tip{border:1px solid #999}.leaflet-div-icon{background:#fff;border:1px solid #666}.leaflet-tooltip{position:absolute;padding:6px;background-color:#fff;border:1px solid #fff;border-radius:3px;color:#222;white-space:nowrap;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;pointer-events:none;box-shadow:0 1px 3px #0006}.leaflet-tooltip.leaflet-interactive{cursor:pointer;pointer-events:auto}.leaflet-tooltip-top:before,.leaflet-tooltip-bottom:before,.leaflet-tooltip-left:before,.leaflet-tooltip-right:before{position:absolute;pointer-events:none;border:6px solid transparent;background:transparent;content:""}.leaflet-tooltip-bottom{margin-top:6px}.leaflet-tooltip-top{margin-top:-6px}.leaflet-tooltip-bottom:before,.leaflet-tooltip-top:before{left:50%;margin-left:-6px}.leaflet-tooltip-top:before{bottom:0;margin-bottom:-12px;border-top-color:#fff}.leaflet-tooltip-bottom:before{top:0;margin-top:-12px;margin-left:-6px;border-bottom-color:#fff}.leaflet-tooltip-left{margin-left:-6px}.leaflet-tooltip-right{margin-left:6px}.leaflet-tooltip-left:before,.leaflet-tooltip-right:before{top:50%;margin-top:-6px}.leaflet-tooltip-left:before{right:0;margin-right:-12px;border-left-color:#fff}.leaflet-tooltip-right:before{left:0;margin-left:-12px;border-right-color:#fff}@media print{.leaflet-control{-webkit-print-color-adjust:exact;print-color-adjust:exact}}:root{--bg: #0a0814;--bg-soft: #100d20;--panel: #16132a;--panel-2: #1d1838;--surface: #16132a;--surface-2: #1d1838;--elevated: #241d42;--border: #2c2649;--border-soft: rgba(167, 139, 250, .14);--glass: rgba(34, 28, 60, .55);--glass-2: rgba(42, 34, 74, .5);--glass-border: rgba(167, 154, 255, .16);--glass-highlight: rgba(255, 255, 255, .05);--text: #ece9f8;--muted: #9b93bd;--muted-2: #6a6190;--accent: #8b7cf6;--accent-strong: #7c5cff;--accent-2: #6ea8fe;--brand-grad: linear-gradient(135deg, #8b7cf6 0%, #6ea8fe 100%);--ok: #34d399;--warn: #fbbf24;--danger: #f87171;--danger-strong: #ef4444;--r-sm: 8px;--r-md: 12px;--r-lg: 18px;--r-xl: 24px;--shadow-sm: 0 4px 14px rgba(0, 0, 0, .3);--shadow-md: 0 16px 38px rgba(0, 0, 0, .4);--shadow-lg: 0 30px 80px rgba(0, 0, 0, .55);--glow: 0 0 40px rgba(124, 92, 255, .22);--glow-strong: 0 0 60px rgba(124, 92, 255, .35);--sidebar-w: 256px;--sidebar-w-collapsed: 76px;--appbar-h: 64px;color-scheme:dark}*{box-sizing:border-box}html,body,#root{margin:0;height:100%}body{background:radial-gradient(1200px 600px at 100% -10%,rgba(139,124,246,.22),transparent 60%),radial-gradient(1000px 680px at -8% 4%,rgba(110,168,254,.12),transparent 58%),radial-gradient(900px 700px at 50% 120%,rgba(124,92,255,.14),transparent 60%),var(--bg);background-attachment:fixed;color:var(--text);font-family:Inter,system-ui,-apple-system,Segoe UI,Roboto,sans-serif;-webkit-font-smoothing:antialiased;letter-spacing:-.005em}*{scrollbar-width:thin;scrollbar-color:rgba(167,154,255,.3) transparent}*::-webkit-scrollbar{width:10px;height:10px}*::-webkit-scrollbar-thumb{background:#a79aff3d;border-radius:999px;border:2px solid transparent;background-clip:padding-box}*::-webkit-scrollbar-thumb:hover{background:#a79aff73;background-clip:padding-box}.app{display:grid;grid-template-columns:var(--sidebar-w) minmax(0,1fr);min-height:100vh}.main{min-width:0;display:flex;flex-direction:column}.main-scroll{flex:1;min-width:0;padding:24px 28px 96px;max-width:1320px;width:100%;margin:0 auto}.sidebar{position:sticky;top:0;align-self:start;height:100vh;display:flex;flex-direction:column;gap:6px;padding:18px 14px;background:radial-gradient(420px 280px at 30% 0%,rgba(124,92,255,.16),transparent 70%),linear-gradient(180deg,#1c1634eb,#0c0a18f0);border-right:1px solid var(--border);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);z-index:60}.sidebar-brand{display:flex;align-items:center;gap:12px;padding:6px 8px 16px;margin-bottom:6px;border-bottom:1px solid var(--border)}.sidebar-brand h1{margin:0;font-size:16px;letter-spacing:-.02em;white-space:nowrap}.sidebar-brand .sub{font-size:11px}.sidebar-nav{display:flex;flex-direction:column;gap:3px;overflow-y:auto;flex:1;margin:4px -4px;padding:0 4px}.nav-group{display:flex;flex-direction:column;gap:3px;margin-bottom:10px}.nav-group-label{padding:8px 12px 4px;font-size:10.5px;font-weight:800;letter-spacing:.12em;text-transform:uppercase;color:var(--muted-2)}.nav-item{display:flex;align-items:center;gap:12px;width:100%;padding:10px 12px;border:1px solid transparent;border-radius:var(--r-md);background:transparent;color:var(--muted);font-size:14px;font-weight:600;cursor:pointer;text-align:left;transition:background .15s ease,color .15s ease,border-color .15s ease}.nav-item:hover{color:var(--text);background:#a79aff14}.nav-item-active{color:#fff;background:linear-gradient(135deg,color-mix(in srgb,var(--accent) 30%,transparent),color-mix(in srgb,var(--accent-2) 18%,transparent));border-color:color-mix(in srgb,var(--accent) 50%,transparent);box-shadow:0 8px 22px #7c5cff47,inset 0 1px #ffffff14}.nav-item-active .nav-icon{color:#fff}.nav-icon{display:inline-flex;align-items:center;justify-content:center;width:20px;height:20px;flex:none}.nav-label{flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.nav-badge{display:inline-flex;align-items:center;justify-content:center;min-width:20px;height:20px;padding:0 6px;border-radius:999px;background:var(--danger-strong);color:#fff;font-size:11px;font-weight:800;flex:none}.sidebar-foot{display:flex;align-items:center;gap:10px;padding:12px 8px 2px;margin-top:6px;border-top:1px solid var(--border)}.sidebar-foot .user-chip{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.appbar{position:sticky;top:0;z-index:40;display:flex;align-items:center;gap:14px;min-height:var(--appbar-h);padding:12px 28px;background:#100d20a8;backdrop-filter:saturate(150%) blur(16px);-webkit-backdrop-filter:saturate(150%) blur(16px);border-bottom:1px solid var(--border-soft)}.appbar-title{display:flex;flex-direction:column;min-width:0}.appbar-title h2{margin:0;font-size:17px;letter-spacing:-.01em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.appbar-spacer{flex:1}.appbar-right{display:flex;align-items:center;gap:10px;flex-wrap:wrap;justify-content:flex-end}.hamburger{display:none;align-items:center;justify-content:center;width:40px;height:40px;flex:none;border:1px solid var(--border);border-radius:var(--r-md);background:var(--surface);color:var(--text);cursor:pointer}.hamburger:hover{border-color:color-mix(in srgb,var(--accent) 40%,var(--border))}.drawer-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:55;background:#02040c99;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);display:none}@media (min-width: 1025px){.drawer-overlay{display:none!important}}.topbar{display:flex;align-items:center;justify-content:space-between;gap:16px;position:sticky;top:0;z-index:40;margin:-24px -24px 22px;padding:16px 24px;background:#100d20a8;backdrop-filter:saturate(150%) blur(16px);-webkit-backdrop-filter:saturate(150%) blur(16px);border-bottom:1px solid var(--border-soft)}.dashboard-hero{position:relative;display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:stretch;gap:22px;margin:0 0 22px;padding:26px;border:1px solid color-mix(in srgb,var(--accent) 30%,transparent);border-radius:var(--r-xl);background:linear-gradient(135deg,rgba(139,124,246,.22),transparent 38%),radial-gradient(460px 260px at 88% 8%,rgba(110,168,254,.2),transparent 70%),linear-gradient(180deg,#221c3ce6,#100d20db);box-shadow:var(--shadow-md),var(--glow);overflow:hidden}.dashboard-hero:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background-image:linear-gradient(rgba(255,255,255,.04) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.035) 1px,transparent 1px);background-size:34px 34px;-webkit-mask-image:linear-gradient(90deg,black,transparent 78%);mask-image:linear-gradient(90deg,black,transparent 78%);pointer-events:none}.hero-copy,.hero-metrics{position:relative;z-index:1}.hero-eyebrow{display:inline-flex;align-items:center;gap:9px;color:#c7d2fe;font-size:12px;font-weight:800;text-transform:uppercase;letter-spacing:.1em}.hero-live-dot{width:9px;height:9px;border-radius:50%}.hero-live-dot.ok{background:var(--ok);box-shadow:0 0 0 6px #34d39924}.hero-live-dot.warn{background:#f59e0b;box-shadow:0 0 0 6px #f59e0b1f}.hero-copy h2{margin:12px 0 8px;max-width:620px;font-size:clamp(30px,4vw,46px);line-height:.98;letter-spacing:-.055em}.hero-copy p{margin:0;max-width:650px;color:#a9b8d2;font-size:15px;line-height:1.65}.hero-metrics{display:grid;grid-template-columns:repeat(3,minmax(112px,1fr));gap:10px;min-width:420px}.hero-metric{display:flex;flex-direction:column;justify-content:center;min-height:118px;padding:16px;border:1px solid rgba(148,163,184,.18);border-radius:18px;background:#0f172a94;box-shadow:inset 0 1px #ffffff0a}.hero-metric.primary{border-color:color-mix(in srgb,var(--accent) 46%,transparent);background:linear-gradient(180deg,#8b7cf63d,#120e2294);box-shadow:0 0 30px color-mix(in srgb,var(--accent) 18%,transparent)}.hero-metric-label{color:var(--muted);font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:.08em}.hero-metric strong{margin-top:7px;font-size:36px;line-height:1;letter-spacing:-.05em}.brand{display:flex;align-items:center;gap:14px}.brand-mark{width:40px;height:40px;flex:none;border-radius:12px;background:var(--brand-grad);box-shadow:0 8px 24px #7c5cff73}.brand h1{margin:0;font-size:22px;letter-spacing:-.02em}.sub{margin:2px 0 0;color:var(--muted);font-size:13px}.conn{display:inline-flex;align-items:center;gap:8px;padding:7px 14px;border-radius:999px;font-size:13px;font-weight:600;border:1px solid var(--border);background:var(--panel)}.conn-dot{width:9px;height:9px;border-radius:50%}.conn-ok .conn-dot{background:var(--ok);box-shadow:0 0 #34d39999;animation:pulse 1.8s infinite}.conn-bad .conn-dot{background:var(--warn)}.conn-ok{color:var(--ok)}.conn-bad{color:var(--warn)}@keyframes pulse{0%{box-shadow:0 0 #22c55e80}70%{box-shadow:0 0 0 8px #22c55e00}to{box-shadow:0 0 #22c55e00}}.card{background:linear-gradient(180deg,var(--glass) 0%,rgba(20,16,40,.6) 100%);border:1px solid var(--glass-border);border-radius:var(--r-lg);box-shadow:var(--shadow-sm),inset 0 1px 0 var(--glass-highlight);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px)}.cards-grid{display:grid;grid-template-columns:repeat(6,1fr);gap:14px;margin-bottom:18px}.stat-card{padding:16px 18px;position:relative;overflow:hidden}.stat-card:before{content:"";position:absolute;left:0;top:0;bottom:0;width:4px;background:var(--accent)}.stat-label{color:var(--muted);font-size:12px;font-weight:600;text-transform:uppercase;letter-spacing:.05em}.stat-value{font-size:34px;font-weight:800;margin-top:6px;letter-spacing:-.02em}.kpi{--accent: #8b7cf6;position:relative;padding:18px 20px 20px;border-radius:18px;border:1px solid var(--glass-border);background:linear-gradient(135deg,color-mix(in srgb,var(--accent) 14%,transparent),transparent 52%),linear-gradient(180deg,var(--glass) 0%,rgba(20,16,40,.62) 100%);box-shadow:0 16px 36px #00000052,inset 0 1px 0 var(--glass-highlight);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);overflow:hidden;transition:transform .18s ease,border-color .18s ease,box-shadow .18s ease}.kpi:after{content:"";position:absolute;right:-40px;top:-40px;width:130px;height:130px;border-radius:50%;background:radial-gradient(circle at center,var(--accent) 0%,transparent 70%);opacity:.2;pointer-events:none}.kpi:hover{transform:translateY(-3px);border-color:color-mix(in srgb,var(--accent) 55%,var(--glass-border));box-shadow:0 20px 44px #0006,0 0 36px color-mix(in srgb,var(--accent) 26%,transparent),inset 0 1px 0 var(--glass-highlight)}.kpi-accent{border-top:2px solid color-mix(in srgb,var(--accent) 60%,transparent)}.kpi-top{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px}.kpi-icon{display:inline-flex;align-items:center;justify-content:center;width:38px;height:38px;border-radius:11px;color:var(--accent);background:color-mix(in srgb,var(--accent) 20%,transparent);border:1px solid color-mix(in srgb,var(--accent) 30%,transparent);box-shadow:0 4px 14px color-mix(in srgb,var(--accent) 22%,transparent)}.kpi-pct{font-size:12px;font-weight:700;color:var(--ok);background:color-mix(in srgb,var(--ok) 16%,transparent);border:1px solid color-mix(in srgb,var(--ok) 32%,transparent);padding:3px 9px;border-radius:999px}.kpi-value{font-size:34px;font-weight:800;line-height:1;letter-spacing:-.03em}.kpi-label{margin-top:6px;color:var(--muted);font-size:12px;font-weight:600;text-transform:uppercase;letter-spacing:.05em}.section-label{display:flex;align-items:center;gap:10px;margin:30px 0 12px;font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.12em;color:var(--muted)}.section-label:before{content:"";width:28px;height:1px;border-radius:999px;background:linear-gradient(90deg,var(--accent),transparent)}.section-label.no-margin{margin:0}.section-bar{display:flex;align-items:center;justify-content:space-between;margin:26px 0 12px}.section-count{font-size:12px;font-weight:700;letter-spacing:0;color:var(--accent);background:color-mix(in srgb,var(--accent) 14%,transparent);padding:2px 9px;border-radius:999px}.toolbar-card{padding:16px;border:1px solid var(--glass-border);border-radius:18px;background:linear-gradient(180deg,var(--glass) 0%,rgba(20,16,40,.62) 100%);box-shadow:0 14px 34px #0000004d,inset 0 1px 0 var(--glass-highlight);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px)}.toolbar-card .actions-row{margin-top:0}.charts-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,270px),1fr));gap:12px;margin-bottom:18px}.chart-card{position:relative;overflow:hidden;padding:13px 14px 6px;border-radius:16px;border-color:var(--glass-border);background:linear-gradient(180deg,#221b408c,#100d21a8);box-shadow:0 8px 24px #08061459,inset 0 1px #ffffff0a;transition:transform .18s ease,box-shadow .18s ease,border-color .18s ease}.chart-card:before{content:"";position:absolute;inset:0 0 auto 0;height:1px;background:linear-gradient(90deg,transparent,rgba(139,124,246,.55),rgba(110,168,254,.45),transparent);opacity:.5;transition:opacity .18s ease}.chart-card:hover{transform:translateY(-3px);border-color:#8b7cf666;box-shadow:0 16px 38px #08061480,0 0 0 1px #8b7cf62e,inset 0 1px #ffffff0f}.chart-card:hover:before{opacity:1}.chart-title{display:flex;align-items:center;gap:7px;font-size:11px;font-weight:700;letter-spacing:.07em;text-transform:uppercase;color:var(--muted, #b9b1da);margin-bottom:4px}.chart-title:before{content:"";width:6px;height:6px;border-radius:50%;background:linear-gradient(135deg,#8b7cf6,#6ea8fe);box-shadow:0 0 8px #8b7cf6cc;flex:0 0 auto}.chart-empty{height:156px;display:flex;align-items:center;justify-content:center;color:var(--muted);font-size:13px}.pie-wrap{display:flex;flex-wrap:wrap;align-items:center;gap:6px 14px}.pie-donut{position:relative;flex:1 1 130px;min-width:118px}.pie-center{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;flex-direction:column;align-items:center;justify-content:center;pointer-events:none;text-align:center}.pie-center-value{font-size:18px;font-weight:700;color:#f3f1fb;line-height:1.1;letter-spacing:-.01em}.pie-center-label{font-size:10px;text-transform:uppercase;letter-spacing:.08em;color:var(--muted, #b9b1da);margin-top:2px}.chart-legend{list-style:none;margin:0;padding:0;flex:1 1 104px;min-width:92px;max-height:156px;overflow:auto;display:flex;flex-direction:column;justify-content:center;gap:7px}.chart-legend li{display:flex;align-items:center;gap:8px;font-size:12px;line-height:1.25;color:var(--muted, #b9b1da);white-space:nowrap;overflow:hidden;transition:color .15s ease,transform .15s ease}.chart-legend li:hover{color:#e7e3f5;transform:translate(2px)}.chart-legend-dot{width:9px;height:9px;border-radius:50%;flex:0 0 auto;box-shadow:0 0 6px #8b7cf659}.chart-legend-label{overflow:hidden;text-overflow:ellipsis}.controls{margin-bottom:14px}.filter-row{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:12px}.chip{--chip: #8b7cf6;display:inline-flex;align-items:center;gap:8px;padding:7px 14px;border-radius:999px;border:1px solid var(--border);background:var(--surface);color:var(--text);font-size:13px;font-weight:600;cursor:pointer;transition:all .15s ease}.chip:hover{border-color:var(--chip)}.chip-active{border-color:var(--chip);color:#fff;background:color-mix(in srgb,var(--chip) 18%,transparent);box-shadow:inset 0 0 0 1px var(--chip),0 6px 16px color-mix(in srgb,var(--chip) 22%,transparent)}.chip-count{background:#ffffff14;border-radius:999px;padding:1px 8px;font-size:12px}.actions-row{display:flex;flex-wrap:wrap;align-items:center;gap:12px}.search{flex:1;min-width:220px;background:var(--surface);border:1px solid var(--border);border-radius:var(--r-md);padding:10px 14px;color:var(--text);font-size:14px;outline:none;transition:border-color .15s ease,box-shadow .15s ease}.search:focus{border-color:var(--accent);box-shadow:0 0 0 3px color-mix(in srgb,var(--accent) 22%,transparent)}.btn{border:1px solid var(--border);background:var(--surface-2);color:var(--text);padding:9px 16px;border-radius:var(--r-md);font-size:13px;font-weight:600;cursor:pointer;transition:all .15s ease}.btn:hover{transform:translateY(-1px);border-color:color-mix(in srgb,var(--accent) 35%,var(--border))}.btn-danger{background:var(--danger-strong);border-color:var(--danger-strong);color:#fff}.btn-danger:hover{background:#dc2626;border-color:#dc2626}.btn-danger-ghost{background:transparent;border-color:#ef444466;color:#f87171;padding:6px 12px}.btn-danger-ghost:hover{background:#ef44441f}.btn-ghost{background:transparent}.btn-ghost:hover{background:color-mix(in srgb,var(--accent) 10%,transparent);border-color:color-mix(in srgb,var(--accent) 30%,transparent)}.auto-purge{display:inline-flex;align-items:center;gap:10px;padding:6px 12px;border:1px solid var(--border);border-radius:10px;background:var(--panel)}.auto-purge-label{font-size:13px;font-weight:600}.switch{position:relative;display:inline-block;width:42px;height:24px}.switch input{display:none}.slider{position:absolute;top:0;right:0;bottom:0;left:0;background:#334155;border-radius:999px;transition:.2s}.slider:before{content:"";position:absolute;height:18px;width:18px;left:3px;top:3px;background:#fff;border-radius:50%;transition:.2s}.switch input:checked+.slider{background:#22c55e}.switch input:checked+.slider:before{transform:translate(18px)}.select{background:var(--panel-2);border:1px solid var(--border);color:var(--text);border-radius:8px;padding:6px 8px;font-size:13px}.select:disabled{opacity:.5}.net-card{position:relative;overflow:hidden;padding:18px 20px 20px;margin-bottom:16px;border-radius:18px;background:linear-gradient(180deg,#221b4080,#0d0b1cb3);box-shadow:0 14px 38px #08061473,inset 0 1px #ffffff0a}.net-card:before{content:"";position:absolute;inset:0 0 auto 0;height:1px;background:linear-gradient(90deg,transparent,rgba(56,189,248,.6),rgba(167,139,250,.5),transparent)}.net-title{background:linear-gradient(90deg,#e6edf6,#a7c6ff 60%,#c4b5fd);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent}.net-head{display:flex;align-items:flex-start;justify-content:space-between;margin-bottom:14px;gap:12px}.net-title{margin:0;font-size:19px;font-weight:700}.net-desc{margin:3px 0 0;font-size:12.5px;color:var(--muted, #94a3b8)}.net-sub{display:inline-flex;align-items:center;gap:7px;font-size:12.5px;font-weight:600;color:var(--muted, #94a3b8);white-space:nowrap}.net-livedot{width:8px;height:8px;border-radius:50%;background:#34d399;box-shadow:0 0 #34d399b3;animation:net-livepulse 1.8s ease-out infinite}.net-layout{display:flex;gap:16px;align-items:stretch}.net-map-wrap{position:relative;flex:1 1 auto;min-width:0;height:540px;border-radius:14px;overflow:hidden;background:#050b14;border:1px solid rgba(56,120,190,.25);box-shadow:inset 0 0 60px #071020cc}.net-map{display:block;width:100%;height:100%}.net-reset{position:absolute;top:12px;right:12px;display:inline-flex;align-items:center;gap:6px;padding:6px 11px;border-radius:9px;border:1px solid rgba(94,168,235,.4);background:#0b1829d1;color:#d6e6fb;font-size:12px;font-weight:600;cursor:pointer;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);box-shadow:0 8px 22px #050b148c;transition:background .15s ease,transform .15s ease,border-color .15s ease;animation:net-tip-in .25s ease backwards;z-index:3}.net-reset:hover{background:#142842eb;border-color:#5ea8ebb3;transform:translateY(-1px)}.net-countries path{fill:#2e68a852;stroke:#5ea8eb73;stroke-width:.6;vector-effect:non-scaling-stroke;filter:drop-shadow(0 0 3px rgba(56,140,220,.25))}.net-route-line{fill:none;stroke:#78befa8c;stroke-width:1.2;stroke-dasharray:2 7;stroke-linecap:round;vector-effect:non-scaling-stroke;animation:net-flow .9s linear infinite}.net-cluster{pointer-events:auto}.net-cluster-halo{opacity:.35;transform-origin:center;transform-box:fill-box;animation:net-ping 2s cubic-bezier(0,0,.2,1) infinite}.net-cluster-dot{stroke:#07101f;stroke-width:1;filter:drop-shadow(0 0 5px currentColor)}.net-cluster-leader{stroke-width:1;opacity:.5;vector-effect:non-scaling-stroke}.net-cluster-label{fill:#dcebff;font-size:13px;font-weight:600;letter-spacing:.02em;paint-order:stroke;stroke:#050b14e6;stroke-width:3px;dominant-baseline:middle}.net-arc{fill:none;stroke-width:1.3;opacity:.5;stroke-linecap:round;stroke-dasharray:5 9;animation:net-flow .9s linear infinite;filter:drop-shadow(0 0 3px currentColor)}.net-edge.faint .net-arc{opacity:.16;stroke-width:.9;animation:none;filter:none}.net-arcs.has-sel .net-edge:not(.sel){opacity:.12}.net-edge.sel .net-arc{opacity:.95;stroke-width:1.8}.net-comet{filter:drop-shadow(0 0 4px currentColor)}.net-hub-core{fill:#e2f3ff;filter:drop-shadow(0 0 6px rgba(56,189,248,.9))}.net-node{cursor:pointer}.net-node-pulse{transform-origin:center;transform-box:fill-box;opacity:.4;animation:net-ping 1.8s cubic-bezier(0,0,.2,1) infinite}.net-node-core{stroke:#07101f;stroke-width:1}.net-node-ring{fill:none;stroke-width:1.6;opacity:.9}.net-nodes.has-sel .net-node:not(.sel) .net-node-pulse{opacity:.18}.net-nodes.has-sel .net-node:not(.sel) .net-node-core{opacity:.55}.net-node-label{fill:#e6edf6;font-size:12px;font-weight:600;text-anchor:middle;paint-order:stroke;stroke:#07101f;stroke-width:3px}.net-node-core,.net-node-pulse{transition:r .18s cubic-bezier(.2,.7,.2,1)}.net-node.sel .net-node-core{filter:drop-shadow(0 0 7px currentColor)}.net-tip-fo{overflow:visible;pointer-events:none}.net-tip{box-sizing:border-box;width:100%;padding:9px 11px;border-radius:12px;background:linear-gradient(180deg,#141e34f7,#0a101cf7);border:1px solid color-mix(in srgb,var(--c, #38bdf8) 45%,rgba(120,180,255,.25));box-shadow:0 14px 34px #04081299,0 0 18px color-mix(in srgb,var(--c, #38bdf8) 30%,transparent);color:#dbe7f7;transform-origin:bottom left;animation:net-tip-in .18s cubic-bezier(.2,.7,.2,1)}.net-tip.left{transform-origin:bottom right}.net-tip-head{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:6px}.net-tip-name{font-weight:700;font-size:13px;color:#fff;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.net-tip-status{flex:0 0 auto;font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.04em;padding:1px 7px;border-radius:999px;color:var(--c, #38bdf8);background:color-mix(in srgb,var(--c, #38bdf8) 16%,transparent);border:1px solid color-mix(in srgb,var(--c, #38bdf8) 40%,transparent)}.net-tip-loc{display:flex;align-items:center;gap:6px;margin-bottom:7px}.net-tip-pin{color:var(--c, #38bdf8);font-size:11px;animation:net-tip-pin 1.4s ease-in-out infinite}.net-tip-city{font-size:12.5px;font-weight:600;color:#eaf2ff}.net-tip-rows{display:flex;flex-direction:column;gap:3px}.net-tip-row{display:flex;align-items:center;justify-content:space-between;gap:10px;font-size:11px}.net-tip-k{color:#7f9bc0}.net-tip-v{color:#cfe0f5;font-variant-numeric:tabular-nums;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}@keyframes net-tip-in{0%{opacity:0;transform:scale(.9) translateY(4px)}to{opacity:1;transform:scale(1) translateY(0)}}@keyframes net-tip-pin{0%,to{opacity:1}50%{opacity:.4}}@keyframes net-flow{to{stroke-dashoffset:-14}}@keyframes net-ping{0%{transform:scale(.6);opacity:.5}80%,to{transform:scale(2.8);opacity:0}}@keyframes net-livepulse{0%{box-shadow:0 0 #34d399b3}70%{box-shadow:0 0 0 7px #34d39900}to{box-shadow:0 0 #34d39900}}.net-list{flex:0 0 300px;width:300px;display:flex;flex-direction:column;border:1px solid var(--border);border-radius:14px;background:var(--panel);overflow:hidden}.net-list-head{padding:14px 16px;font-size:13px;font-weight:700;letter-spacing:.02em;text-transform:uppercase;color:var(--muted, #94a3b8);border-bottom:1px solid var(--border);display:flex;align-items:center;gap:8px}.net-list-count{font-size:12px;background:#94a3b82e;color:var(--text);padding:1px 8px;border-radius:999px}.net-list-scroll{overflow-y:auto;max-height:512px;padding:6px}.net-row{width:100%;display:flex;align-items:center;gap:11px;padding:9px 10px;border:none;background:transparent;border-radius:10px;cursor:pointer;text-align:left;color:inherit;transition:background .15s ease}.net-row:hover,.net-row.active{background:#94a3b81f}.net-avatar{position:relative;flex:0 0 auto;width:36px;height:36px;border-radius:50%;display:grid;place-items:center;font-size:12.5px;font-weight:700;color:var(--c, #38bdf8);background:color-mix(in srgb,var(--c, #38bdf8) 18%,transparent);border:1px solid color-mix(in srgb,var(--c, #38bdf8) 45%,transparent)}.net-avatar-dot{position:absolute;right:-1px;bottom:-1px;width:10px;height:10px;border-radius:50%;border:2px solid var(--panel)}.net-row-main{min-width:0;flex:1 1 auto;display:flex;flex-direction:column;gap:1px}.net-row-name{font-size:13.5px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.net-row-sub{font-size:11.5px;color:var(--muted, #94a3b8);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.net-row-speed{flex:0 0 auto;font-size:11.5px;font-variant-numeric:tabular-nums;color:var(--muted, #94a3b8)}.net-geo{margin-top:16px;padding-top:14px;border-top:1px solid var(--border)}.net-geo-head{display:flex;align-items:center;gap:8px;font-size:11px;font-weight:700;letter-spacing:.07em;text-transform:uppercase;color:var(--muted, #94a3b8);margin-bottom:11px}.net-geo-chips{display:flex;flex-wrap:wrap;gap:8px}.net-geo-chip{display:inline-flex;align-items:center;gap:8px;padding:6px 10px 6px 11px;border-radius:999px;border:1px solid color-mix(in srgb,var(--gc, #38bdf8) 32%,var(--border));background:color-mix(in srgb,var(--gc, #38bdf8) 10%,transparent);color:var(--text);font-size:12.5px;font-weight:600;cursor:pointer;transition:transform .15s ease,box-shadow .15s ease,background .15s ease}.net-geo-chip:hover,.net-geo-chip.active{transform:translateY(-2px);background:color-mix(in srgb,var(--gc, #38bdf8) 20%,transparent);box-shadow:0 0 0 1px color-mix(in srgb,var(--gc, #38bdf8) 45%,transparent),0 8px 20px #070c1680}.net-geo-dot{width:8px;height:8px;border-radius:50%;background:var(--gc, #38bdf8);box-shadow:0 0 9px var(--gc, #38bdf8);animation:net-geo-blink 1.4s ease-in-out infinite}.net-geo-name{white-space:nowrap}.net-geo-count{font-variant-numeric:tabular-nums;font-size:11.5px;padding:1px 7px;border-radius:999px;background:color-mix(in srgb,var(--gc, #38bdf8) 22%,transparent);color:var(--text)}@keyframes net-geo-blink{0%,to{opacity:1;transform:scale(1)}50%{opacity:.35;transform:scale(.7)}}@media (max-width: 900px){.net-layout{flex-direction:column}.net-map-wrap{height:380px}.net-list{flex-basis:auto;width:100%}.net-list-scroll{max-height:320px}}@media (prefers-reduced-motion: reduce){.net-arc,.net-node-pulse,.net-livedot,.net-geo-dot,.net-tip,.net-tip-pin{animation:none}}.maintenance-banner{margin:0;padding:10px 20px;background:#eab30824;border-bottom:1px solid rgba(234,179,8,.4);color:#eab308;font-size:13px}.settings-card{padding:4px 16px;margin-bottom:8px}.settings-row{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:14px 0;border-bottom:1px solid var(--border)}.settings-row:last-child{border-bottom:none}.settings-meta{min-width:0}.settings-label{font-size:14px;font-weight:600}.settings-help{font-size:12px;margin-top:3px;max-width:56ch}.settings-control{flex:0 0 auto;display:flex;align-items:center}.settings-input{width:220px;max-width:50vw}input.settings-input[type=number]{width:130px}@media (max-width: 640px){.settings-row{flex-direction:column;align-items:flex-start;gap:8px}.settings-input{width:100%;max-width:none}}.table-card{padding:6px;border-color:var(--glass-border);background:linear-gradient(180deg,var(--glass) 0%,rgba(18,14,36,.7) 100%);overflow:hidden}.trip-table{width:100%;border-collapse:collapse;font-size:13.5px}.trip-table thead th{text-align:left;color:var(--muted);font-weight:600;font-size:11.5px;text-transform:uppercase;letter-spacing:.05em;padding:13px 14px;border-bottom:1px solid var(--border);position:sticky;top:0;background:#16112af5;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);z-index:2}.trip-table tbody td{padding:12px 14px;border-bottom:1px solid rgba(30,41,59,.6);transition:background .16s ease,border-color .16s ease}.trip-row{position:relative;animation:trip-row-in .35s ease both}@keyframes trip-row-in{0%{opacity:0}to{opacity:1}}@media (prefers-reduced-motion: reduce){.trip-row{animation:none}}.trip-row td{background:linear-gradient(90deg,color-mix(in srgb,var(--row-accent) 7%,transparent),transparent 28%)}.trip-table tbody tr:hover td{background:linear-gradient(90deg,color-mix(in srgb,var(--row-accent) 13%,transparent),#8b7cf609 42%);border-bottom-color:#8b7cf62e}.table-card{max-height:62vh;overflow:auto}.sev-cell{position:relative;width:46px;min-width:46px;padding:0 12px!important;text-align:center;vertical-align:middle}.sev-cell:before{content:"";position:absolute;left:10px;top:9px;bottom:9px;width:4px;border-radius:999px;background:var(--row-accent, transparent)}.mono{font-family:JetBrains Mono,SF Mono,ui-monospace,Menlo,monospace}.dim{color:var(--muted)}.sev-dot{display:block;width:10px;height:10px;margin:0 auto;border-radius:50%;box-shadow:0 0 0 4px color-mix(in srgb,var(--row-accent) 14%,transparent)}.row-critical td{background:linear-gradient(90deg,rgba(239,68,68,.13),rgba(239,68,68,.035) 34%,transparent)}.row-critical .sev-dot{animation:blink 1.2s infinite}@keyframes blink{50%{opacity:.35}}.badge{--badge: #22c55e;display:inline-block;padding:3px 10px;border-radius:999px;font-size:11.5px;font-weight:700;color:var(--badge);background:color-mix(in srgb,var(--badge) 16%,transparent);border:1px solid color-mix(in srgb,var(--badge) 40%,transparent)}.badge-btn{cursor:pointer;font-family:inherit}.badge-btn:hover:not(:disabled){background:color-mix(in srgb,var(--badge) 28%,transparent)}.badge-btn:disabled{cursor:default;opacity:.7}.user-role{display:block;margin-top:2px;font-size:10.5px;font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:var(--accent)}.row-busy{opacity:.55}.perm-matrix th.perm-col,.perm-matrix td.perm-cell{text-align:center;width:84px}.perm-matrix .perm-col-btn,.perm-matrix .perm-row-label{background:transparent;border:0;color:inherit;font:inherit;font-weight:700;cursor:pointer;padding:2px 4px;border-radius:6px}.perm-matrix .perm-row-label{font-weight:600}.perm-matrix .perm-col-btn:hover:not(:disabled),.perm-matrix .perm-row-label:hover:not(:disabled){background:color-mix(in srgb,var(--accent) 14%,transparent)}.perm-matrix .perm-col-btn:disabled,.perm-matrix .perm-row-label:disabled{cursor:default}.perm-matrix td.perm-na{color:var(--muted, #64748b);opacity:.4}.perm-group td.perm-group,.perm-matrix .perm-group{font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:.06em;color:var(--accent);padding-top:12px}.perm-hint{color:#eab308;font-weight:800;margin-left:2px}.stale-tag{color:#c4b5fd;background:#a78bfa26;border:1px solid rgba(167,139,250,.4);border-radius:999px;padding:2px 8px;font-size:11px;font-weight:700}.empty-state{padding:34px 28px;text-align:center;color:var(--muted);border-radius:14px;background:radial-gradient(300px 120px at 50% 0%,rgba(139,124,246,.08),transparent 70%),#ffffff04}.livemap-layout{display:grid;grid-template-columns:300px 1fr;gap:14px;align-items:start}.livemap-layout.has-detail{grid-template-columns:240px minmax(0,1fr) 340px}@media (max-width: 1100px){.livemap-layout.has-detail{grid-template-columns:1fr}}@media (max-width: 860px){.livemap-layout{grid-template-columns:1fr}}.livemap-list{padding:8px;max-height:68vh;overflow-y:auto;display:flex;flex-direction:column;gap:4px}.livemap-item{display:flex;align-items:center;gap:10px;width:100%;text-align:left;background:transparent;border:1px solid transparent;border-radius:10px;padding:9px 10px;cursor:pointer;color:inherit}.livemap-item:hover{background:#94a3b814}.livemap-item.active{background:#8b7cf61f;border-color:#8b7cf659}.livemap-item .dot{width:10px;height:10px;border-radius:50%;flex:none}.livemap-legend{display:flex;gap:14px;flex-wrap:wrap;font-size:12px;color:#94a3b8}.livemap-legend .legend-item{display:inline-flex;align-items:center;gap:6px}.livemap-legend .dot{width:10px;height:10px;border-radius:50%;display:inline-block}.livemap-legend strong{color:#e2e8f0}.livemap-item-main{display:flex;flex-direction:column;min-width:0}.livemap-item-name{font-size:13px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.livemap-item-sub{font-size:11px;color:#94a3b8}.livemap-map{padding:0;overflow:hidden}.livemap-focus-note{margin:0 0 12px;padding:8px 12px;border-radius:10px;font-size:12px;color:#c7d2fe;background:#8b7cf61a;border:1px solid rgba(139,124,246,.28)}.livemap-focus-note em{font-style:normal;color:#e2e8f0}.livemap-detail{padding:16px;max-height:68vh;overflow-y:auto;overflow-x:hidden;align-self:stretch;animation:alert-in .28s ease both}.livemap-detail .stat-tiles{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-bottom:18px}.livemap-detail-head{display:flex;align-items:flex-start;justify-content:space-between;gap:10px;padding-bottom:14px;margin-bottom:14px;border-bottom:1px solid var(--border-soft)}.ld-head-main{display:flex;align-items:center;gap:10px;min-width:0}.ld-head-main .dot{width:12px;height:12px;border-radius:50%;flex:none;box-shadow:0 0 0 4px color-mix(in srgb,currentColor 0%,transparent)}.ld-name{font-size:15px;font-weight:700;overflow-wrap:anywhere}.ld-id{font-size:11.5px;color:var(--muted)}.ld-head-actions{display:flex;align-items:center;gap:8px;flex-shrink:0}.ld-live-pill{display:inline-flex;align-items:center;gap:5px;font-size:10px;font-weight:700;letter-spacing:.06em;color:#22c55e;background:color-mix(in srgb,#22c55e 14%,transparent);border:1px solid color-mix(in srgb,#22c55e 38%,transparent);border-radius:999px;padding:3px 9px}.ld-live-dot{width:7px;height:7px;border-radius:50%;background:#22c55e;box-shadow:0 0 color-mix(in srgb,#22c55e 60%,transparent);animation:ld-pulse 1.8s ease-out infinite}@keyframes ld-pulse{0%{box-shadow:0 0 color-mix(in srgb,#22c55e 55%,transparent)}70%{box-shadow:0 0 0 7px color-mix(in srgb,#22c55e 0%,transparent)}to{box-shadow:0 0 color-mix(in srgb,#22c55e 0%,transparent)}}.ld-group{margin-bottom:16px}.ld-group-title{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--accent-2);margin-bottom:7px}.ld-table{border:1px solid var(--border);border-radius:12px;overflow:hidden;background:color-mix(in srgb,var(--surface-2) 60%,transparent)}.ld-row{display:grid;grid-template-columns:40% 1fr;gap:10px;padding:8px 12px;border-bottom:1px solid var(--border-soft)}.ld-row:last-child{border-bottom:none}.ld-row:hover{background:color-mix(in srgb,var(--accent) 9%,transparent)}.ld-label{font-size:11.5px;color:var(--muted)}.ld-value{font-size:12.5px;font-weight:600;text-align:right;overflow-wrap:anywhere;word-break:break-word}.row-check{width:17px;height:17px;cursor:pointer;accent-color:var(--accent);vertical-align:middle}.row-check:disabled{cursor:not-allowed;opacity:.4}tr.row-selected td{background:#8b7cf614}.bulk-bar{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:12px;padding:8px 14px;border-radius:12px;border:1px solid rgba(248,113,113,.35);background:linear-gradient(180deg,#f871711f,#f871710a);font-size:13px;color:var(--danger);animation:riseIn .25s ease backwards}.loc-link{display:inline-flex;align-items:flex-start;gap:8px;padding:2px 6px 2px 2px;margin:-2px;border:0;border-radius:8px;background:transparent;color:inherit;font:inherit;text-align:left;cursor:pointer;transition:background .15s ease,transform .15s ease}.loc-link:hover{background:#7c5cff1f;transform:translate(2px)}.loc-link .loc-pin{color:#8b7cf6;font-size:12px;line-height:18px;filter:drop-shadow(0 0 4px rgba(139,124,246,.7))}.loc-link .loc-main{display:block}.loc-link .loc-sub{display:block;font-size:11px}.snap-stat{display:inline-block;margin-right:10px;white-space:nowrap;font-size:12px}.snap-stat:last-child{margin-right:0}.snap-preview{display:flex;flex-direction:column;gap:4px;max-height:180px;overflow:auto;padding:8px 10px;border-radius:10px;border:1px solid var(--glass-border, rgba(167, 139, 250, .18));background:#100d2180}.snap-preview-row{display:flex;justify-content:space-between;gap:12px;font-size:12px}.login-pin{display:block;width:16px;height:16px;border-radius:50%;background:var(--pin, #7c5cff);border:2px solid #0b1120;box-shadow:0 0 0 4px #7c5cff59;animation:loginPinPulse 1.8s ease-out infinite}@keyframes loginPinPulse{0%{box-shadow:0 0 0 2px #7c5cff80}70%{box-shadow:0 0 0 12px #7c5cff00}to{box-shadow:0 0 0 2px #7c5cff00}}.advisor-banner{display:flex;align-items:center;gap:10px;padding:10px 14px;margin-bottom:14px;border-radius:10px;border:1px solid color-mix(in srgb,var(--accent, #6ea8fe) 35%,transparent);background:color-mix(in srgb,var(--accent, #6ea8fe) 12%,transparent);font-size:13px;font-weight:600}.advisor-banner-dot{width:9px;height:9px;border-radius:50%;background:var(--accent, #6ea8fe);box-shadow:0 0 8px var(--accent, #6ea8fe);flex:none}.kpi-sm .kpi-value{font-size:18px}.kpi-sm .kpi-label{font-size:10px}.tag-chips{display:flex;flex-wrap:wrap;gap:4px}.tag-chip{display:inline-block;padding:1px 7px;border-radius:999px;font-size:10px;font-weight:700;letter-spacing:.02em;color:var(--chip, #64748b);border:1px solid color-mix(in srgb,var(--chip, #64748b) 45%,transparent);background:color-mix(in srgb,var(--chip, #64748b) 14%,transparent);white-space:nowrap}.filter-count{display:inline-block;margin-left:6px;padding:0 5px;border-radius:999px;background:#94a3b838;font-size:10px;font-weight:700}.chat-fab{position:fixed;right:22px;bottom:22px;z-index:1000;width:56px;height:56px;border-radius:50%;border:none;cursor:pointer;font-size:18px;font-weight:800;color:#04121f;background:var(--brand-grad);box-shadow:0 8px 24px #7c5cff66;transition:transform .15s ease,box-shadow .15s ease}.chat-fab:hover{transform:translateY(-2px) scale(1.04)}.chat-fab-open{font-size:26px;color:#fff;background:#1e293b;box-shadow:0 8px 24px #0006}.chat-panel{position:fixed;right:22px;bottom:90px;z-index:1000;width:376px;max-width:calc(100vw - 32px);height:560px;max-height:calc(100vh - 130px);display:flex;flex-direction:column;border-radius:16px;overflow:hidden;background:#0b1220;border:1px solid rgba(148,163,184,.22);box-shadow:0 24px 60px #00000080;animation:chat-pop .16s ease-out}@keyframes chat-pop{0%{opacity:0;transform:translateY(10px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}.chat-header{display:flex;align-items:center;gap:10px;padding:12px 14px;background:linear-gradient(135deg,#8b7cf62e,#6ea8fe29);border-bottom:1px solid rgba(148,163,184,.18)}.chat-header-dot{width:10px;height:10px;border-radius:50%;background:#22c55e;box-shadow:0 0 8px #22c55e;flex:none}.chat-title{font-weight:700;font-size:14px}.chat-sub{font-size:11px;color:#94a3b8}.chat-close{margin-left:auto;background:none;border:none;color:#94a3b8;font-size:22px;line-height:1;cursor:pointer}.chat-close:hover{color:#fff}.chat-body{flex:1;overflow-y:auto;padding:14px;display:flex;flex-direction:column;gap:10px}.chat-msg{display:flex}.chat-msg-user{justify-content:flex-end}.chat-bubble{max-width:84%;padding:9px 12px;border-radius:14px;font-size:13px;line-height:1.45;word-break:break-word}.chat-msg-assistant .chat-bubble{background:#131c2e;border:1px solid rgba(148,163,184,.16);border-bottom-left-radius:4px;color:#e2e8f0}.chat-msg-user .chat-bubble{background:var(--brand-grad);color:#06131f;font-weight:600;border-bottom-right-radius:4px}.chat-p{margin:0 0 6px}.chat-p:last-child{margin-bottom:0}.chat-list{margin:4px 0;padding-left:18px}.chat-list li{margin:2px 0}.chat-code{background:#94a3b82e;padding:1px 5px;border-radius:5px;font-size:12px}.chat-typing span{display:inline-block;width:6px;height:6px;margin-right:3px;border-radius:50%;background:#94a3b8;animation:chat-blink 1.2s infinite ease-in-out}.chat-typing span:nth-child(2){animation-delay:.2s}.chat-typing span:nth-child(3){animation-delay:.4s}@keyframes chat-blink{0%,80%,to{opacity:.25}40%{opacity:1}}.chat-suggestions{display:flex;flex-wrap:wrap;gap:6px;padding:8px 12px 0}.chat-chip{background:#8b7cf61f;border:1px solid rgba(139,124,246,.32);color:#c7d2fe;font-size:11px;padding:4px 9px;border-radius:999px;cursor:pointer}.chat-chip:hover{background:#8b7cf638}.chat-input-row{display:flex;gap:8px;padding:10px 12px;border-top:1px solid rgba(148,163,184,.18)}.chat-input{flex:1;resize:none;max-height:96px;background:#0f1726;border:1px solid rgba(148,163,184,.22);border-radius:10px;color:#e2e8f0;padding:9px 11px;font-size:13px;font-family:inherit}.chat-input:focus{outline:none;border-color:var(--accent)}.chat-send{align-self:flex-end;background:var(--brand-grad);color:#06131f;border:none;border-radius:10px;padding:9px 14px;font-weight:700;font-size:13px;cursor:pointer}.chat-send:disabled{opacity:.5;cursor:default}.tab-badge{display:inline-flex;align-items:center;justify-content:center;min-width:18px;height:18px;margin-left:7px;padding:0 5px;border-radius:999px;background:#ef4444;color:#fff;font-size:11px;font-weight:700;vertical-align:middle}.log-terminal{position:relative;border-radius:14px;overflow:hidden;border:1px solid rgba(80,150,220,.28);background:#060912;box-shadow:0 18px 46px #04081299,inset 0 0 0 1px #78b4ff0d,0 0 32px #3882dc14}.log-terminal:before{content:"";position:absolute;inset:0 0 auto 0;height:1px;z-index:2;background:linear-gradient(90deg,transparent,rgba(56,189,248,.7),rgba(167,139,250,.6),transparent)}.log-terminal-bar{display:flex;align-items:center;gap:12px;padding:9px 14px;background:linear-gradient(180deg,#161e32f2,#0c111ef2);border-bottom:1px solid rgba(80,150,220,.2)}.log-tl-dots{display:inline-flex;gap:7px;flex:0 0 auto}.log-tl-dot{width:11px;height:11px;border-radius:50%;display:inline-block}.log-tl-dot.r{background:#ff5f57;box-shadow:0 0 7px #ff5f57b3}.log-tl-dot.y{background:#febc2e;box-shadow:0 0 7px #febc2eb3}.log-tl-dot.g{background:#28c840;box-shadow:0 0 7px #28c840b3}.log-tl-title{flex:1 1 auto;text-align:center;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:12px;letter-spacing:.03em;color:#7fa6cf}.log-tl-status{flex:0 0 auto;display:inline-flex;align-items:center;gap:7px;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:11px;font-weight:600;letter-spacing:.05em;text-transform:uppercase;color:#34d399}.log-tl-status.off{color:#eab308}.log-tl-pulse{width:8px;height:8px;border-radius:50%;background:currentColor;box-shadow:0 0 0 0 currentColor;animation:net-livepulse 1.8s ease-out infinite}.log-console{position:relative;height:58vh;min-height:320px;overflow-y:auto;padding:12px 14px 16px;border-radius:0;border:none;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:12.5px;line-height:1.6;color:#cbd5e1;background:radial-gradient(120% 80% at 50% 0%,rgba(30,58,110,.18) 0%,transparent 55%),repeating-linear-gradient(180deg,rgba(255,255,255,.018) 0 1px,transparent 1px 3px),#060912}.log-line{display:flex;align-items:baseline;gap:10px;padding:1.5px 6px;border-radius:5px;white-space:pre-wrap;word-break:break-word;border-left:2px solid transparent}.log-line:hover{background:#78b4ff0f}.log-line[data-level=warn]{border-left-color:#eab3088c}.log-line[data-level=error]{border-left-color:#ef444499;background:#ef44440d}.log-line[data-level=info]{border-left-color:#6ea8fe66}.log-line[data-level=debug]{border-left-color:#a78bfa66}.log-gutter{flex:0 0 auto;color:#3f6092;-webkit-user-select:none;user-select:none}.log-time{color:#5f7da3;flex:0 0 auto;font-variant-numeric:tabular-nums}.log-level{flex:0 0 52px;text-align:center;font-size:10.5px;font-weight:700;letter-spacing:.04em;padding:0 4px;border-radius:5px;background:color-mix(in srgb,currentColor 14%,transparent);border:1px solid color-mix(in srgb,currentColor 32%,transparent)}.log-msg{color:#d4def0;flex:1 1 auto}.log-caret-line{display:flex;align-items:center;gap:10px;padding:2px 6px}.log-caret{display:inline-block;width:8px;height:15px;background:#34d399;box-shadow:0 0 8px #34d399cc;animation:log-blink 1.1s steps(1) infinite}@keyframes log-blink{0%,50%{opacity:1}50.01%,to{opacity:0}}@media (prefers-reduced-motion: reduce){.log-caret,.log-tl-pulse,.login-pin{animation:none}}.log-level-tabs{display:inline-flex;gap:2px;background:#78b4ff0f;border:1px solid rgba(80,150,220,.18);border-radius:9px;padding:3px}.log-level-btn{border:none;background:transparent;color:var(--muted);font-size:12px;font-weight:600;text-transform:capitalize;padding:4px 11px;border-radius:6px;cursor:pointer;transition:color .15s ease,background .15s ease}.log-level-btn:hover{color:#cbd5e1}.log-level-btn.active{background:linear-gradient(180deg,#38bdf840,#8b7cf638);color:#eaf2ff;box-shadow:inset 0 0 0 1px #78b4ff4d}.score-bar{position:relative;height:18px;border-radius:999px;background:#ffffff12;overflow:hidden}.score-fill{position:absolute;inset:0 auto 0 0;border-radius:999px;opacity:.55;transition:width .3s ease}.score-num{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;font-size:11px;font-weight:700;color:var(--text, #e5e7eb)}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#020617b3;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;z-index:50;animation:fadeIn .18s ease both}.modal{width:min(420px,92vw);padding:24px;animation:popIn .26s cubic-bezier(.2,.8,.2,1) both}.modal-title{margin:0 0 8px;font-size:18px}.modal-message{margin:0 0 20px;color:#cbd5e1;line-height:1.5}.modal-actions{display:flex;justify-content:flex-end;gap:10px}.offline-info{margin:0 0 14px;padding:10px 12px;border-radius:10px;font-size:12px;line-height:1.5;color:#cbd5e1;background:#94a3b812;border:1px solid rgba(148,163,184,.18)}.db-status{display:inline-flex;align-items:center;gap:7px;padding:5px 10px;border-radius:999px;font-size:12px;font-weight:600;border:1px solid transparent;max-width:360px}.db-status .db-dot{width:8px;height:8px;border-radius:50%;flex:none}.db-ok{color:#86efac;background:#22c55e1a;border-color:#22c55e4d}.db-ok .db-dot{background:#22c55e;box-shadow:0 0 7px #22c55e}.db-bad{color:#fca5a5;background:#ef44441a;border-color:#ef444459}.db-bad .db-dot{background:#ef4444}.db-reason{color:#fca5a5;font-weight:400;opacity:.85;max-width:230px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.notifs{position:fixed;top:78px;right:20px;display:flex;flex-direction:column;gap:10px;z-index:300;pointer-events:none}.notif{pointer-events:auto;display:flex;align-items:flex-start;gap:11px;min-width:260px;max-width:360px;padding:12px 13px;border-radius:12px;background:#0f1b2d;border:1px solid rgba(139,124,246,.35);box-shadow:0 12px 30px #00000073;animation:notif-in .25s ease}.notif-driver{border-color:#22c55e66}@keyframes notif-in{0%{opacity:0;transform:translate(20px)}to{opacity:1;transform:translate(0)}}.notif-icon{font-size:20px;line-height:1.2}.notif-body{flex:1;min-width:0}.notif-title{font-size:13px;font-weight:700;color:#e2e8f0}.notif-msg{font-size:12px;color:#94a3b8;margin-top:2px;word-break:break-word}.notif-close{background:transparent;border:none;color:#64748b;font-size:18px;line-height:1;cursor:pointer;padding:0 2px}.notif-close:hover{color:#e2e8f0}.bell-btn{font-size:15px;padding:6px 9px}.bell-muted{opacity:.6}.alerts{position:fixed;right:20px;bottom:20px;display:flex;flex-direction:column;gap:10px;z-index:60}.alert{display:flex;align-items:center;gap:10px;background:#1c1330;border:1px solid rgba(239,68,68,.5);border-left:4px solid #ef4444;padding:12px 14px;border-radius:12px;box-shadow:0 12px 30px #0006;min-width:280px;animation:alert-in .25s ease both}@keyframes alert-in{0%{opacity:0;transform:translate(40px)}to{opacity:1;transform:translate(0)}}.alert-icon{width:22px;height:22px;border-radius:50%;background:#ef4444;color:#fff;display:grid;place-items:center;font-weight:800;font-size:13px}.alert-msg{flex:1;font-size:13px;font-weight:600}.alert-close{background:transparent;border:none;color:var(--muted);cursor:pointer;font-size:14px}.topbar-right{display:flex;align-items:center;gap:12px}.user-chip{font-size:13px;font-weight:700;color:var(--text);background:var(--panel);border:1px solid var(--border);padding:6px 12px;border-radius:999px}.user-chip-btn{display:inline-flex;align-items:center;gap:6px;cursor:pointer;text-align:left;transition:border-color .15s ease,background .15s ease}.user-chip-btn:hover{border-color:color-mix(in srgb,var(--accent) 50%,var(--border));background:color-mix(in srgb,var(--accent) 12%,var(--panel))}.acct-form{display:flex;flex-direction:column;gap:12px}.acct-field{display:flex;flex-direction:column;gap:5px}.acct-label{font-size:12px;font-weight:600;color:var(--muted)}.acct-input{width:100%;background:var(--surface);border:1px solid var(--border);border-radius:var(--r-md);padding:10px 13px;color:var(--text);font-size:14px;font-family:inherit;outline:none;transition:border-color .15s ease,box-shadow .15s ease}.acct-input:focus{border-color:var(--accent);box-shadow:0 0 0 3px color-mix(in srgb,var(--accent) 22%,transparent)}.acct-divider{display:flex;align-items:center;gap:10px;margin:6px 0 2px;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--accent-2)}.acct-divider:after{content:"";flex:1;height:1px;background:var(--border-soft)}.acct-form .modal-actions{margin-top:8px}.btn-primary{background:var(--brand-grad);border:none;color:#0a0c14;font-weight:700}.btn-primary:hover{filter:brightness(1.06)}.btn-primary:disabled{opacity:.6;cursor:default}.boot-screen{height:100vh;display:grid;place-items:center}.boot-spinner{width:40px;height:40px;border-radius:50%;border:3px solid var(--border);border-top-color:var(--accent);animation:spin .8s linear infinite}.login-screen{position:relative;min-height:100vh;display:grid;place-items:center;padding:24px;overflow:hidden}.login-aurora{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;background:radial-gradient(620px 420px at 22% 18%,rgba(124,92,255,.28),transparent 60%),radial-gradient(560px 420px at 80% 82%,rgba(110,168,254,.2),transparent 62%);filter:blur(8px)}.login-card{position:relative;z-index:1;width:min(404px,94vw);padding:32px;border-radius:var(--r-xl);border-color:color-mix(in srgb,var(--accent) 22%,var(--border));background:linear-gradient(180deg,#181c2af5,#0d1019f5);box-shadow:var(--shadow-lg)}.login-brand{display:flex;align-items:center;gap:14px;margin-bottom:22px;padding-bottom:20px;border-bottom:1px solid var(--border)}.login-brand h1{margin:0;font-size:19px}.login-heading{margin-bottom:22px}.login-heading h2{margin:0 0 6px;font-size:24px;letter-spacing:-.02em}.login-heading p{margin:0;color:var(--muted);font-size:13.5px;line-height:1.5}.login-field{display:block;margin-bottom:14px}.login-field span{display:block;font-size:12px;color:var(--muted);font-weight:600;margin-bottom:6px}.login-field .search{width:100%}.login-btn{width:100%;margin-top:6px;padding:11px;font-size:14px}.login-error{background:#ef44441f;border:1px solid rgba(239,68,68,.4);color:#fca5a5;border-radius:8px;padding:9px 12px;font-size:13px;margin-bottom:12px}.login-hint{color:var(--muted);font-size:12px;text-align:center;margin:16px 0 0}.live-pill{display:inline-flex;align-items:center;gap:5px;margin-left:8px;color:#4ade80;font-size:10px;letter-spacing:.06em}.live-dot{width:7px;height:7px;border-radius:50%;background:#22c55e;animation:pulse 1.8s infinite}.tabs{display:flex;gap:6px;margin-bottom:16px;border-bottom:1px solid var(--border)}.tab{background:transparent;border:none;color:var(--muted);font-size:14px;font-weight:700;padding:10px 16px;cursor:pointer;border-bottom:2px solid transparent;transition:all .15s ease}.tab:hover{color:var(--text)}.tab-active{color:var(--accent);border-bottom-color:var(--accent)}.btn-sm{padding:5px 11px;font-size:12px}.row-actions{display:flex;gap:8px;white-space:nowrap}.row-actions .btn{border-radius:999px}.detail-modal{width:min(940px,96vw);max-height:92vh;display:flex;flex-direction:column;overflow:hidden;border-color:#8b7cf638;animation:popIn .26s cubic-bezier(.2,.8,.2,1) both;background:radial-gradient(520px 260px at 20% 0%,rgba(139,124,246,.12),transparent 68%),linear-gradient(180deg,#111c33fa,#0b1120fa)}.detail-head{display:flex;align-items:flex-start;justify-content:space-between;padding:22px 26px;border-bottom:1px solid rgba(148,163,184,.16);background:linear-gradient(180deg,rgba(139,124,246,.06),transparent)}.detail-kicker{color:var(--muted);font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.08em}.detail-title{margin:4px 0 0;font-size:20px;letter-spacing:-.01em}.detail-head-right{display:flex;align-items:center;gap:12px}.icon-btn{background:var(--panel-2);border:1px solid var(--border);color:var(--text);width:32px;height:32px;border-radius:8px;cursor:pointer;font-size:14px}.icon-btn:hover{background:#1f2c4a}.detail-body{padding:22px 26px;overflow-y:auto}.detail-body section{margin-bottom:24px}.section-h{font-size:13px;text-transform:uppercase;letter-spacing:.05em;color:var(--muted);margin:0 0 12px}.section-head{display:flex;align-items:center;justify-content:space-between}.link-btn{background:none;border:none;color:var(--accent);font-size:12px;font-weight:600;cursor:pointer;padding:0 0 10px}.link-btn:hover{text-decoration:underline}.detail-foot{display:flex;justify-content:flex-end;gap:10px;padding:16px 24px;border-top:1px solid rgba(148,163,184,.16);background:#02061733}.detail-status{padding:24px;text-align:center;color:var(--muted)}.detail-status.err,.empty-state.err{color:#f87171}.field-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.field{background:linear-gradient(180deg,#0f172adb,#0f172aa8);border:1px solid rgba(148,163,184,.14);border-radius:12px;padding:11px 13px}.field-label{font-size:11px;color:var(--muted);text-transform:uppercase;letter-spacing:.04em;margin-bottom:4px}.field-value{font-size:13.5px;word-break:break-word}.hero-bar{display:flex;justify-content:flex-end;margin-bottom:12px}.unit-toggle{display:inline-flex;border:1px solid rgba(139,124,246,.24);border-radius:999px;overflow:hidden;background:#0f172acc;box-shadow:inset 0 1px #ffffff0a}.unit-toggle button{border:none;background:transparent;color:var(--muted);font-size:12px;font-weight:700;padding:6px 14px;cursor:pointer;transition:all .15s ease}.unit-toggle button.active{background:var(--accent);color:#0b1120}.unit-toggle button:not(.active):hover{color:var(--text)}.stat-tiles{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:12px;margin-bottom:26px}.stat-tile{background:radial-gradient(120px 70px at 80% 0%,color-mix(in srgb,var(--tile, var(--accent)) 14%,transparent),transparent 72%),linear-gradient(180deg,#8b7cf613,#0f172a59);border:1px solid rgba(148,163,184,.15);border-radius:15px;padding:14px 15px;position:relative;overflow:hidden;min-width:0}.stat-tile:after{content:"";position:absolute;inset:0 auto 0 0;width:3px;background:var(--tile, var(--accent));opacity:.9}.stat-tile-label{font-size:11px;color:var(--muted);text-transform:uppercase;letter-spacing:.05em}.stat-tile-value{font-size:clamp(16px,1.6vw,22px);font-weight:800;margin-top:4px;letter-spacing:-.02em;white-space:normal;overflow-wrap:anywhere;word-break:break-word;line-height:1.2}.stat-tile-sub{font-size:11px;color:var(--muted);margin-top:2px}.field-section{margin-bottom:20px;padding:14px;border:1px solid rgba(148,163,184,.12);border-radius:16px;background:#ffffff04}.field-section-title{font-size:12px;font-weight:700;color:#c4b5fd;text-transform:uppercase;letter-spacing:.06em;margin-bottom:10px;padding-bottom:6px;border-bottom:1px solid var(--border)}.copy-text{display:inline-flex;align-items:center;gap:8px}.copy-btn{background:var(--panel-2);border:1px solid var(--border);color:var(--muted);font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.05em;padding:3px 8px;border-radius:6px;cursor:pointer;transition:all .15s ease}.copy-btn:hover{color:var(--accent);border-color:var(--accent)}.copy-text.truncate{max-width:100%}.copy-text.truncate .mono{display:inline-block;max-width:150px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;vertical-align:bottom}.skeleton-wrap{display:flex;flex-direction:column;gap:14px}.skeleton{border-radius:12px;background:linear-gradient(90deg,#0f1c36 25%,#16244a 37%,#0f1c36 63%);background-size:400% 100%;animation:shimmer 1.4s ease infinite}.skeleton-tiles{height:70px}.skeleton-map{height:240px}.skeleton-line{height:60px}@keyframes shimmer{0%{background-position:100% 50%}to{background-position:0 50%}}.json-section{margin-top:6px;padding:14px;border:1px solid rgba(148,163,184,.12);border-radius:16px;background:#ffffff04}.json-title{font-size:12.5px;font-weight:700;color:#c4b5fd;margin-bottom:10px;font-family:SF Mono,ui-monospace,Menlo,monospace}.json-pre{background:#020617b8;border:1px solid rgba(148,163,184,.12);border-radius:12px;padding:12px 14px;font-size:12px;line-height:1.5;max-height:280px;overflow:auto;margin:0;color:#cbd5e1;white-space:pre-wrap;word-break:break-word}.json-raw{color:#fbbf24}.json-empty{font-size:12px}.map-wrap{border-radius:16px;overflow:hidden;border:1px solid rgba(139,124,246,.18);box-shadow:0 16px 34px #0000003d}.map-empty{display:flex;align-items:center;justify-content:center;background:var(--bg-soft);border:1px dashed var(--border);border-radius:12px;color:var(--muted);font-size:13px;text-align:center;padding:16px}.map-note{font-size:12px;margin-top:8px}.leaflet-container{background:#0a0f1d;font-family:inherit}.driver-arrow{transform-origin:center}.map-dot{width:16px;height:16px;border-radius:50%;border:2px solid #0b1120;box-shadow:0 0 0 2px #ffffff40}.map-popup{font-size:12px;line-height:1.5}.toasts{position:fixed;left:50%;bottom:24px;transform:translate(-50%);display:flex;flex-direction:column;gap:10px;z-index:200;pointer-events:none}.toast{pointer-events:auto;display:flex;align-items:center;gap:12px;min-width:280px;max-width:440px;padding:12px 14px;border-radius:12px;border:1px solid var(--border);background:var(--panel-2);box-shadow:0 16px 40px #00000073;animation:riseIn .25s ease both;font-size:14px}.toast-icon{display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px;border-radius:50%;font-size:12px;font-weight:700;color:#0b1120;flex-shrink:0}.toast-success{border-color:#22c55e73}.toast-success .toast-icon{background:#22c55e}.toast-error{border-color:#ef444473}.toast-error .toast-icon{background:#ef4444;color:#fff}.toast-info .toast-icon{background:#6ea8fe}.toast-msg{flex:1}.toast-close{background:none;border:none;color:var(--muted);cursor:pointer;font-size:13px;padding:2px 4px}.toast-close:hover{color:var(--text)}.th-sort{cursor:pointer;-webkit-user-select:none;user-select:none;white-space:nowrap}.th-sort:hover{color:var(--text)}.th-active{color:var(--accent)}.sort-caret{margin-left:4px;font-size:10px}.pager{display:flex;align-items:center;justify-content:center;gap:14px;padding:14px;border-top:1px solid var(--border);background:#0206172e}.pager-info{font-size:13px;color:var(--muted);padding:5px 10px;border-radius:999px;background:#ffffff09}.ws-logs{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:6px;max-height:240px;overflow-y:auto}.ws-log{display:flex;align-items:baseline;gap:10px;padding:8px 10px;border-radius:10px;border:1px solid rgba(148,163,184,.1);background:#0f172a94;font-size:12px}.ws-log-console{max-height:300px;overflow-y:auto;padding:10px 12px;border-radius:10px;border:1px solid rgba(148,163,184,.12);background:#0a0f1a;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:12.5px;line-height:1.55}.ws-log-time{color:#c4b5fd;flex-shrink:0}.ws-log-method{font-weight:700;color:var(--accent);padding:2px 7px;border-radius:999px;background:#8b7cf61a}.ws-log-fields{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:11px}.chart-skeleton{height:240px;display:flex;align-items:center;justify-content:center;color:var(--muted);margin-bottom:18px}.audit-card{padding:16px 18px;margin-bottom:18px}.audit-head{display:flex;align-items:baseline;justify-content:space-between;margin-bottom:10px}.audit-sub{font-size:12px}.audit-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:6px;max-height:280px;overflow-y:auto}.audit-item{display:flex;align-items:center;gap:12px;padding:8px 10px;border-radius:8px;background:#ffffff05;font-size:13px}.audit-tag{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.04em;padding:3px 8px;border-radius:999px;background:#ffffff14;white-space:nowrap}.audit-tag.tag-delete{color:#fca5a5;background:#ef444424}.audit-tag.tag-purge,.audit-tag.tag-auto-purge{color:#fdba74;background:#f59e0b24}.audit-tag.tag-auto-purge-config{color:#c4b5fd;background:#8b7cf624}.audit-detail{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.audit-meta{font-size:12px;white-space:nowrap}.empty-state.sm{padding:16px;font-size:13px}@media (max-width: 1280px){.cards-grid{grid-template-columns:repeat(3,1fr)}.stat-tiles{grid-template-columns:repeat(3,minmax(0,1fr))}}@media (max-width: 1024px){.app{grid-template-columns:1fr}.sidebar{position:fixed;top:0;left:0;width:min(280px,84vw);height:100vh;transform:translate(-102%);transition:transform .24s ease;box-shadow:var(--shadow-lg)}.sidebar.sidebar-open{transform:translate(0)}.hamburger{display:inline-flex}.main-scroll{padding:22px 22px 88px}.dashboard-hero{grid-template-columns:1fr}.hero-metrics{min-width:0;grid-template-columns:repeat(3,1fr)}.charts-grid{grid-template-columns:repeat(auto-fill,minmax(min(100%,220px),1fr))}.field-grid{grid-template-columns:repeat(2,1fr)}}@media (max-width: 720px){.appbar{padding:10px 16px;gap:10px}.appbar-right{gap:8px}.appbar-right .db-status{display:none}.main-scroll{padding:18px 16px 90px}.dashboard-hero{padding:20px;border-radius:var(--r-lg)}.hero-copy h2{font-size:30px}.hero-metrics{grid-template-columns:repeat(3,1fr)}.hero-metric{min-height:90px;padding:13px}.hero-metric strong{font-size:26px}.cards-grid{grid-template-columns:repeat(2,1fr)}.stat-tiles{grid-template-columns:repeat(2,minmax(0,1fr))}.section-bar{align-items:flex-start;flex-direction:column;gap:10px}.search{min-width:100%}.auto-purge{width:100%;justify-content:space-between}.table-card{overflow-x:auto}.trip-table{min-width:760px;font-size:12.5px}.detail-modal{width:100vw;height:100dvh;max-height:100dvh;border-radius:0}.detail-head,.detail-body,.detail-foot{padding-left:18px;padding-right:18px}.detail-head{gap:14px;flex-direction:column}.detail-head-right{width:100%;justify-content:space-between}.field-grid{grid-template-columns:repeat(2,1fr)}.hero-bar{justify-content:flex-start}.chat-panel{right:12px;left:12px;width:auto;bottom:84px}.notifs{left:12px;right:12px;top:70px}.notif{max-width:none;min-width:0}.alerts{left:12px;right:12px}.alert{min-width:0}.toasts{left:12px;right:12px;transform:none}.toast{min-width:0;max-width:none}}@media (max-width: 480px){.hero-copy h2{font-size:26px}.hero-metrics,.cards-grid,.stat-tiles,.field-grid{grid-template-columns:1fr}.appbar-title h2{font-size:15px}.conn{padding:6px 10px;font-size:12px}.audit-item,.ws-log{align-items:flex-start;flex-direction:column;gap:5px}}.tickets-layout{display:grid;grid-template-columns:minmax(280px,380px) 1fr;gap:16px;align-items:start}.ticket-list-card,.ticket-thread-card{padding:16px}.ticket-field{width:100%;background:var(--surface);border:1px solid var(--border);border-radius:var(--r-md);padding:10px 13px;color:var(--text);font-size:13.5px;font-family:inherit;outline:none;resize:vertical;transition:border-color .15s ease,box-shadow .15s ease}.ticket-field:focus{border-color:var(--accent);box-shadow:0 0 0 3px color-mix(in srgb,var(--accent) 22%,transparent)}.ticket-compose{display:flex;flex-direction:column;gap:8px;overflow:hidden;margin-bottom:12px}.ticket-list{display:flex;flex-direction:column;gap:8px;max-height:62vh;overflow-y:auto}.ticket-row{text-align:left;width:100%;background:var(--surface-2);border:1px solid var(--border);border-radius:var(--r-md);padding:11px 13px;cursor:pointer;transition:border-color .15s ease,background .15s ease,transform .15s ease}.ticket-row:hover{border-color:color-mix(in srgb,var(--accent) 40%,var(--border));transform:translate(2px)}.ticket-row.active{border-color:color-mix(in srgb,var(--accent) 60%,transparent);background:color-mix(in srgb,var(--accent) 14%,var(--surface-2));box-shadow:0 0 22px color-mix(in srgb,var(--accent) 16%,transparent)}.ticket-row-top{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:5px}.ticket-subject{font-weight:600;font-size:13.5px;overflow-wrap:anywhere}.ticket-row-meta{font-size:11.5px}.ticket-thread-card{display:flex;flex-direction:column;min-height:360px}.ticket-thread-empty{align-items:center;justify-content:center}.ticket-thread-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;padding-bottom:12px;border-bottom:1px solid var(--border-soft)}.ticket-thread-title{font-size:16px;font-weight:700;overflow-wrap:anywhere}.ticket-thread-actions{display:flex;align-items:center;gap:8px;flex-shrink:0}.ticket-thread-body{display:flex;flex-direction:column;gap:12px;padding:16px 2px;max-height:52vh;overflow-y:auto}.ticket-msg{max-width:86%;border-radius:14px;padding:10px 13px;border:1px solid var(--border)}.ticket-msg.from-owner{align-self:flex-start;background:var(--surface-2);border-bottom-left-radius:4px}.ticket-msg.from-staff{align-self:flex-end;background:linear-gradient(135deg,color-mix(in srgb,var(--accent) 26%,transparent),color-mix(in srgb,var(--accent-2) 18%,transparent));border-color:color-mix(in srgb,var(--accent) 45%,transparent);border-bottom-right-radius:4px}.ticket-msg-head{display:flex;align-items:baseline;gap:8px;margin-bottom:4px;flex-wrap:wrap}.ticket-msg-author{font-weight:600;font-size:12.5px}.ticket-msg-role{font-size:10px;text-transform:uppercase;letter-spacing:.05em;color:var(--accent-2)}.ticket-msg-time{font-size:11px;margin-left:auto}.ticket-msg-body{font-size:13.5px;line-height:1.45;white-space:pre-wrap;overflow-wrap:anywhere}.ticket-reply{display:flex;align-items:flex-end;gap:8px;padding-top:12px;border-top:1px solid var(--border-soft)}.ticket-reply .ticket-field{flex:1}@media (max-width: 900px){.tickets-layout{grid-template-columns:1fr}}@keyframes riseIn{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes popIn{0%{opacity:0;transform:scale(.94)}60%{transform:scale(1.015)}to{opacity:1;transform:scale(1)}}@keyframes rowIn{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}@keyframes sheen{0%{background-position:200% 0}to{background-position:-200% 0}}.chart-card{animation:riseIn .5s cubic-bezier(.2,.7,.2,1) backwards}.chart-card:before{background-size:200% 100%;animation:sheen 7s linear infinite}.charts-grid .chart-card:nth-child(1){animation-delay:.03s}.charts-grid .chart-card:nth-child(2){animation-delay:.09s}.charts-grid .chart-card:nth-child(3){animation-delay:.15s}.charts-grid .chart-card:nth-child(4){animation-delay:.21s}.charts-grid .chart-card:nth-child(5){animation-delay:.27s}.charts-grid .chart-card:nth-child(6){animation-delay:.33s}.charts-grid .chart-card:nth-child(7){animation-delay:.39s}.charts-grid .chart-card:nth-child(n+8){animation-delay:.45s}.kpi{animation:popIn .45s cubic-bezier(.2,.7,.2,1) backwards}.cards-grid .kpi:nth-child(1){animation-delay:.02s}.cards-grid .kpi:nth-child(2){animation-delay:.08s}.cards-grid .kpi:nth-child(3){animation-delay:.14s}.cards-grid .kpi:nth-child(4){animation-delay:.2s}.cards-grid .kpi:nth-child(5){animation-delay:.26s}.cards-grid .kpi:nth-child(n+6){animation-delay:.32s}.net-card,.log-terminal,.table-card,.settings-card,.audit-card{animation:riseIn .5s cubic-bezier(.2,.7,.2,1) backwards}.net-card:before{background-size:200% 100%;animation:sheen 7s linear infinite}.section-label{animation:fadeIn .5s ease backwards}.trip-table tbody tr{animation:rowIn .32s ease backwards}.trip-table tbody tr:nth-child(1){animation-delay:.02s}.trip-table tbody tr:nth-child(2){animation-delay:.05s}.trip-table tbody tr:nth-child(3){animation-delay:.08s}.trip-table tbody tr:nth-child(4){animation-delay:.11s}.trip-table tbody tr:nth-child(5){animation-delay:.14s}.trip-table tbody tr:nth-child(6){animation-delay:.17s}.trip-table tbody tr:nth-child(7){animation-delay:.2s}.trip-table tbody tr:nth-child(8){animation-delay:.23s}.trip-table tbody tr:nth-child(9){animation-delay:.26s}.trip-table tbody tr:nth-child(10){animation-delay:.29s}.trip-table tbody tr:nth-child(n+11){animation-delay:.32s}.trip-table tbody tr{transition:transform .15s ease}.trip-table tbody tr:hover{transform:translate(3px)}.net-row{animation:rowIn .3s ease backwards}.net-list-scroll .net-row:nth-child(1){animation-delay:.03s}.net-list-scroll .net-row:nth-child(2){animation-delay:.06s}.net-list-scroll .net-row:nth-child(3){animation-delay:.09s}.net-list-scroll .net-row:nth-child(4){animation-delay:.12s}.net-list-scroll .net-row:nth-child(5){animation-delay:.15s}.net-list-scroll .net-row:nth-child(n+6){animation-delay:.18s}.net-geo-chip{animation:popIn .4s ease backwards}.log-line{animation:rowIn .25s ease backwards}.settings-row{animation:rowIn .3s ease backwards}.settings-card .settings-row:nth-child(1){animation-delay:.03s}.settings-card .settings-row:nth-child(2){animation-delay:.07s}.settings-card .settings-row:nth-child(3){animation-delay:.11s}.settings-card .settings-row:nth-child(4){animation-delay:.15s}.settings-card .settings-row:nth-child(n+5){animation-delay:.19s}@media (prefers-reduced-motion: reduce){.chart-card,.kpi,.net-card,.log-terminal,.table-card,.settings-card,.audit-card,.section-label,.trip-table tbody tr,.net-row,.net-geo-chip,.log-line,.settings-row{animation:none}.chart-card:before,.net-card:before{animation:none}.trip-table tbody tr:hover{transform:none}}.small{font-size:11px}.screen-chip{display:inline-block;padding:3px 10px;border-radius:999px;font-size:12px;font-weight:600;color:#c7d2fe;background:#8b7cf629;border:1px solid rgba(139,124,246,.3)}.liveview-modal{width:min(960px,96vw)}.liveview-status{display:flex;flex-wrap:wrap;gap:8px;margin-top:10px}.status-pill{display:inline-flex;align-items:center;gap:7px;padding:4px 11px;border-radius:999px;font-size:11px;font-weight:700;letter-spacing:.02em;border:1px solid transparent}.status-pill .status-dot{width:8px;height:8px;border-radius:50%;background:currentColor}.status-pill.ok{color:#34d399;background:#10b9811f;border-color:#10b98147}.status-pill.ok .status-dot{animation:livePulse 1.4s ease-in-out infinite}.status-pill.pending{color:#fbbf24;background:#fbbf241f;border-color:#fbbf2447}.status-pill.idle{color:#94a3b8;background:#94a3b81a;border-color:#94a3b838}.status-pill.phase{color:#6ea8fe;background:#6ea8fe1f;border-color:#6ea8fe47}.liveview-side{display:flex;flex-direction:column;gap:14px;min-width:0}.info-card{background:#94a3b80d;border:1px solid var(--border);border-radius:12px;padding:14px 16px}.info-card .section-h{margin-bottom:10px}.chip-row{display:flex;flex-wrap:wrap;align-items:center;gap:8px}.info-card .chip,.loc-meta .chip{padding:3px 10px;font-size:12px;font-weight:600;background:#94a3b81a;cursor:default}.info-card .chip:hover{border-color:var(--border)}.info-card .chip.ok{color:#34d399;background:#10b9811f;border-color:#10b98147}.info-card .chip.bad{color:#f87171;background:#ef44441f;border-color:#ef444447}.info-card .chip.pay{color:#fbbf24;background:#fbbf241f;border-color:#fbbf2447}.rider-name{font-size:15px;font-weight:700;color:#e2e8f0}.rider-phone{display:inline-block;margin-top:2px;font-size:13px;color:#6ea8fe;text-decoration:none}.rider-phone:hover{text-decoration:underline}.rider-route{margin-top:10px;display:flex;flex-direction:column;gap:8px}.rr-row{display:flex;align-items:flex-start;gap:8px;font-size:13px;color:#cbd5e1}.rr-dot{margin-top:5px;width:8px;height:8px;border-radius:50%;flex:0 0 auto}.rr-dot.pick{background:#34d399}.rr-dot.drop{background:#f87171}.rider-note{margin-top:10px;font-size:12px;font-style:italic}.fare-breakdown{margin-top:12px;display:flex;flex-direction:column;gap:6px}.fb-row{display:flex;justify-content:space-between;font-size:13px}.fb-label{color:var(--muted)}.fb-value{color:#e2e8f0;font-variant-numeric:tabular-nums}.loc-meta{margin-bottom:10px}.liveview-map{height:170px;border-radius:10px;overflow:hidden;border:1px solid var(--border)}.liveview-map .leaflet-container{height:100%;width:100%;background:#0b1120}.loc-link{display:inline-block;margin-top:8px;color:#6ea8fe;text-decoration:none}.loc-link:hover{text-decoration:underline}.pay-chip{display:inline-block;margin-left:8px;padding:1px 8px;border-radius:999px;font-size:10px;color:#fbbf24;background:#fbbf2424;border:1px solid rgba(251,191,36,.3)}@keyframes livePulse{0%,to{opacity:1}50%{opacity:.35}}.liveview-grid{display:grid;grid-template-columns:minmax(280px,360px) 1fr;gap:22px;align-items:start}@media (max-width: 720px){.liveview-grid{grid-template-columns:1fr}}.liveview-phone{display:flex;flex-direction:column;gap:12px}.phone-frame{border:6px solid #0b1120;border-radius:26px;overflow:hidden;background:#050914;box-shadow:0 18px 50px #00000073}.phone-statusbar{display:flex;align-items:center;justify-content:space-between;padding:8px 14px;background:linear-gradient(180deg,#8b7cf62e,#0f172ae6);border-bottom:1px solid rgba(148,163,184,.16)}.phone-screen-name{font-size:12px;font-weight:700;color:#e2e8f0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.phone-fg{font-size:10px;text-transform:uppercase;letter-spacing:.05em;padding:2px 8px;border-radius:999px}.phone-fg.on{color:#6ee7b7;background:#10b98124}.phone-fg.off{color:#fca5a5;background:#f8717124}.phone-screen{aspect-ratio:9 / 16;display:flex;align-items:stretch;justify-content:center;background:#020617}.phone-mirror-img{width:100%;height:100%;object-fit:contain;background:#000}.phone-waiting{margin:auto;text-align:center;padding:24px;color:var(--muted)}.phone-waiting p{margin:8px 0 0}.spinner{width:28px;height:28px;margin:0 auto 8px;border:3px solid rgba(148,163,184,.25);border-top-color:var(--accent);border-radius:50%;animation:spin .9s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.phone-replica{width:100%;padding:18px 16px;display:flex;flex-direction:column;gap:14px}.replica-meterhead{text-align:center;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:var(--muted)}.replica-fare{font-size:32px;font-weight:800;text-align:center;color:#f8fafc;letter-spacing:-.02em;margin-top:-4px}.replica-empty{grid-column:1 / -1;text-align:center;padding:6px 0}.replica-status{text-align:center;font-size:13px;color:var(--muted)}.replica-tiles{display:grid;grid-template-columns:1fr 1fr;gap:8px}.replica-tile{display:flex;flex-direction:column;gap:2px;padding:8px 10px;border-radius:10px;background:#0f172ab3;border:1px solid rgba(148,163,184,.14)}.replica-tile .t-label{font-size:10px;text-transform:uppercase;letter-spacing:.04em;color:var(--muted)}.replica-tile .t-value{font-size:14px;font-weight:700;color:#e2e8f0;word-break:break-word}.liveview-controls{display:flex;align-items:center;justify-content:space-between;gap:12px}.liveview-foot-note{margin-right:auto}.detail-foot{align-items:center}.liveview-timeline .timeline{list-style:none;margin:0;padding:0;max-height:460px;overflow-y:auto}.timeline-item{position:relative;display:flex;gap:12px;padding:0 0 16px 4px}.timeline-item:before{content:"";position:absolute;left:8px;top:14px;bottom:0;width:1px;background:#94a3b833}.timeline-item:last-child:before{display:none}.timeline-dot{flex:0 0 auto;width:9px;height:9px;margin-top:4px;border-radius:50%;background:var(--accent);box-shadow:0 0 0 3px #8b7cf62e}.timeline-item.sev-error .timeline-dot{background:#f87171;box-shadow:0 0 0 3px #f871712e}.timeline-item.sev-warn .timeline-dot{background:#fbbf24;box-shadow:0 0 0 3px #fbbf242e}.timeline-label{font-size:13px;font-weight:600;color:#e2e8f0}.timeline-type{display:inline-block;margin-right:6px;opacity:.75;font-weight:400}.timeline-detail{font-size:12px;margin-top:2px}.timeline-time{margin-top:2px}
