.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{--accent: #ea4c89;--accent-hover: #d63d78;--accent-soft: rgba(234,76,137,.1);--accent-strong: rgba(234,76,137,.25);--font-sans: "Plus Jakarta Sans", -apple-system, "Segoe UI", sans-serif;--font-mono: "JetBrains Mono", ui-monospace, SFMono-Regular, Menlo, monospace;--status-idle: #94A3B8;--status-progress: #3B82F6;--status-finalizing: #A78BFA;--status-pass: #22C55E;--status-fail: #EF4444;--status-cancel: #F59E0B;--kpi-good: #22C55E;--kpi-moderate: #F59E0B;--kpi-bad: #EF4444;--t-xs: 11px;--t-sm: 12px;--t-md: 13px;--t-base: 14px;--t-lg: 16px;--t-xl: 20px;--t-2xl: 24px;--r-sm: 6px;--r-md: 10px;--r-lg: 16px;--r-pill: 999px;--gap-1: 4px;--gap-2: 8px;--gap-3: 12px;--gap-4: 16px;--gap-5: 24px;--gap-6: 32px;--shadow-xs: 0 1px 2px rgba(0,0,0,.06);--shadow-sm: 0 1px 6px rgba(0,0,0,.07), 0 3px 12px rgba(0,0,0,.05);--shadow-md: 0 4px 16px rgba(0,0,0,.09), 0 1px 4px rgba(0,0,0,.06);--shadow-lg: 0 8px 32px rgba(0,0,0,.12), 0 2px 8px rgba(0,0,0,.07);--shadow-pink: 0 6px 20px rgba(234,76,137,.32)}:root,[data-theme=light]{--bg-app: #f5f5f7;--bg-elev: #ffffff;--bg-surface: #ffffff;--bg-surface-2: #f5f5f7;--bg-base: #f5f5f7;--bg-hover: #f0f0f5;--bg-input: #ffffff;--fg-primary: #0d0c22;--fg-secondary: #44435a;--fg-tertiary: #6e6d7a;--fg-quaternary: #9e9ea7;--border: #e8e8ed;--border-strong: #d0d0da;--border-input: #dcdce4}[data-theme=dark]{--bg-app: #0B0F14;--bg-elev: #10161E;--bg-surface: #141B25;--bg-surface-2: #1A2330;--bg-base: #1A2330;--bg-hover: #1E2A38;--bg-input: #0E141C;--fg-primary: #E6EDF6;--fg-secondary: #B7C2D0;--fg-tertiary: #7A8699;--fg-quaternary: #4F5B6B;--border: #1F2A38;--border-strong: #2C3A4D;--border-input: #243140;--accent-soft: rgba(234,76,137,.14);--accent-strong: rgba(234,76,137,.3);--shadow-xs: 0 1px 2px rgba(0,0,0,.25);--shadow-sm: 0 1px 6px rgba(0,0,0,.3), 0 3px 12px rgba(0,0,0,.2);--shadow-md: 0 4px 16px rgba(0,0,0,.35), 0 1px 4px rgba(0,0,0,.2);--shadow-lg: 0 8px 32px rgba(0,0,0,.4), 0 2px 8px rgba(0,0,0,.25)}[data-density=compact]{--gap-3: 8px;--gap-4: 12px;--gap-5: 18px;--gap-6: 24px}*{box-sizing:border-box}html,body{margin:0;height:100%}body{font-family:var(--font-sans);font-size:var(--t-base);font-weight:400;color:var(--fg-primary);background:var(--bg-app);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-feature-settings:"ss01"}.mono{font-family:var(--font-mono);font-size:.92em;letter-spacing:-.01em}.dim{color:var(--fg-tertiary)}.link{color:var(--accent);cursor:pointer;text-decoration:none;font-size:var(--t-md)}button,input,select,textarea{font-family:inherit}input,select,textarea{color:var(--fg-primary)}.app{display:grid;grid-template-columns:248px 1fr;min-height:100vh;background:var(--bg-app)}.main{display:flex;flex-direction:column;min-width:0}.main-scroll{flex:1;overflow-y:auto}.sidebar{background:var(--bg-elev);border-right:1px solid var(--border);display:flex;flex-direction:column;padding:20px 16px;position:sticky;top:0;height:100vh;gap:var(--gap-4);box-shadow:1px 0 0 var(--border)}.brand{display:flex;flex-direction:column;gap:6px;padding:4px 4px 18px;border-bottom:1px solid var(--border)}.brand-logo{height:96px;width:auto;max-width:100%;object-fit:contain;object-position:left center;display:block;mix-blend-mode:multiply}[data-theme=dark] .brand-logo{filter:invert(1);mix-blend-mode:screen}.brand-name{font-weight:700;font-size:var(--t-base);letter-spacing:-.01em}.brand-sub{color:var(--fg-tertiary);font-size:var(--t-xs);font-weight:500}.nav{display:flex;flex-direction:column;gap:3px;flex:1}.nav-item{display:flex;align-items:center;gap:10px;padding:9px 14px;border-radius:var(--r-pill);background:transparent;border:0;color:var(--fg-secondary);font-size:var(--t-md);font-weight:500;cursor:pointer;text-align:left;transition:background .14s,color .14s}.nav-item:hover{background:var(--bg-hover);color:var(--fg-primary)}.nav-item.active{background:var(--accent-soft);color:var(--accent);font-weight:600}.nav-item.active svg{stroke:var(--accent)}.nav-label{flex:1}.nav-badge{font-family:var(--font-mono);font-size:10px;background:var(--status-progress);color:#fff;padding:2px 7px;border-radius:var(--r-pill)}.sidebar-foot{border-top:1px solid var(--border);padding-top:14px}.avatar{width:30px;height:30px;border-radius:var(--r-pill);background:var(--accent-soft);color:var(--accent);display:grid;place-items:center;font-size:11px;font-weight:700;border:1.5px solid var(--accent-strong);flex-shrink:0}.user-name{font-size:var(--t-md);font-weight:600}.user-meta{color:var(--fg-tertiary);font-size:var(--t-xs);font-family:var(--font-mono)}.user-popover-wrap{position:relative}.user-pill{display:flex;align-items:center;gap:10px;width:100%;padding:6px 8px 6px 6px;background:transparent;border:1px solid transparent;border-radius:10px;cursor:pointer;-webkit-user-select:none;user-select:none;text-align:left;font:inherit;color:inherit;transition:background .16s ease,border-color .16s ease}.user-pill:hover{background:var(--bg-surface-2, rgba(15, 23, 42, .04));border-color:var(--border)}.user-pill:focus-visible{outline:2px solid var(--accent);outline-offset:1px}.user-pill.is-open{background:var(--bg-surface-2, rgba(15, 23, 42, .04));border-color:var(--accent-strong)}.user-pill-text{flex:1;min-width:0;display:flex;flex-direction:column;gap:1px}.user-pill-text .user-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;line-height:1.2}.user-pill-caret{color:var(--fg-tertiary);flex-shrink:0;transition:transform .2s ease,color .16s ease}.user-pill:hover .user-pill-caret{color:var(--fg-secondary)}.user-pill.is-open .user-pill-caret{transform:rotate(180deg);color:var(--accent)}.user-popover{position:absolute;left:0;right:0;bottom:calc(100% + 8px);z-index:200;min-width:240px;background:var(--bg-surface, #ffffff);border:1px solid var(--border);border-radius:12px;box-shadow:0 1px 2px #0f172a0a,0 16px 36px -10px #0f172a33,0 4px 12px -4px #0f172a14;padding:6px;animation:userPopoverIn .18s cubic-bezier(.16,1,.3,1);transform-origin:bottom center}@keyframes userPopoverIn{0%{opacity:0;transform:translateY(8px) scale(.96)}to{opacity:1;transform:translateY(0) scale(1)}}.user-popover-header{display:flex;align-items:flex-start;gap:12px;padding:10px 10px 12px}.user-popover-avatar{position:relative;width:42px;height:42px;border-radius:50%;background:var(--accent-soft);color:var(--accent);display:grid;place-items:center;font-size:14.5px;font-weight:700;border:2px solid var(--accent-strong);flex-shrink:0;letter-spacing:.01em}.user-popover-avatar:after{content:"";position:absolute;top:-5px;right:-5px;bottom:-5px;left:-5px;border-radius:50%;border:2px solid var(--accent-soft);opacity:0;transform:scale(.9);transition:opacity .28s ease,transform .32s cubic-bezier(.16,1,.3,1);pointer-events:none}.user-popover-header:hover .user-popover-avatar:after{opacity:1;transform:scale(1.18)}.user-popover-identity{flex:1;min-width:0;display:flex;flex-direction:column;gap:3px;padding-top:2px}.user-popover-name{font-size:14px;font-weight:700;color:var(--fg-primary);letter-spacing:-.01em;line-height:1.25}.user-popover-email{font-size:11px;color:var(--fg-tertiary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;line-height:1.4}.user-popover-meta{display:flex;align-items:center;gap:6px;margin-top:4px;flex-wrap:wrap}.user-popover-role{display:inline-flex;align-items:center;padding:1px 7px;font-size:9.5px;font-weight:700;letter-spacing:.08em;color:var(--accent);background:var(--accent-soft);border:1px solid var(--accent-strong);border-radius:var(--r-pill)}.user-popover-team{font-size:10px;color:var(--fg-quaternary, var(--fg-tertiary));letter-spacing:.03em}.user-popover-divider{height:1px;margin:0 6px;background:var(--border);opacity:.7}.user-popover-menu{display:flex;flex-direction:column;padding:4px;gap:1px}.user-popover-item{display:flex;align-items:center;gap:10px;width:100%;padding:8px 10px;background:transparent;border:0;border-radius:8px;text-align:left;font:inherit;font-size:13px;font-weight:500;color:var(--fg-primary);cursor:pointer;transition:background .12s ease,color .12s ease}.user-popover-item svg{color:var(--fg-tertiary);flex-shrink:0;transition:color .12s ease}.user-popover-label{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.user-popover-item:hover:not(:disabled){background:var(--accent-soft);color:var(--accent)}.user-popover-item:hover:not(:disabled) svg{color:var(--accent)}.user-popover-item:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}.user-popover-hint{font-family:var(--font-mono);font-size:10px;color:var(--fg-quaternary, var(--fg-tertiary));letter-spacing:.04em;flex-shrink:0}.user-popover-hint--kbd{font-size:11px;padding:1px 5px;min-width:18px;text-align:center;border:1px solid var(--border);border-radius:4px;background:var(--bg-surface-2, rgba(15, 23, 42, .04));color:var(--fg-tertiary)}.user-popover-item--disabled{cursor:not-allowed;opacity:.55}.user-popover-item--disabled:hover{background:transparent;color:var(--fg-primary)}.user-popover-item--disabled:hover svg{color:var(--fg-tertiary)}.user-popover-item--danger{color:var(--status-fail, #DC2626)}.user-popover-item--danger svg{color:var(--status-fail, #DC2626)}.user-popover-item--danger:hover:not(:disabled){background:color-mix(in srgb,var(--status-fail, #DC2626) 10%,transparent);color:var(--status-fail, #DC2626)}.user-popover-item--danger:hover:not(:disabled) svg{color:var(--status-fail, #DC2626)}.user-popover-item--danger:focus-visible{outline-color:var(--status-fail, #DC2626)}.user-popover-tip{text-align:center;padding:4px 0 6px;font-size:9.5px;color:var(--fg-quaternary, var(--fg-tertiary));letter-spacing:.08em;text-transform:uppercase;opacity:.55}[data-theme=dark] .user-popover{background:var(--bg-surface-2, #1a2230);box-shadow:0 1px 2px #0006,0 18px 40px -8px #0000008c,0 4px 12px -4px #00000059}[data-theme=dark] .user-popover-hint--kbd{background:#ffffff0a}.signout-confirm-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1000;display:grid;place-items:center;padding:24px;background:#0f172a9e;backdrop-filter:blur(10px) saturate(60%) brightness(.85);-webkit-backdrop-filter:blur(10px) saturate(60%) brightness(.85);animation:signoutBackdropIn .18s ease-out}@keyframes signoutBackdropIn{0%{opacity:0}to{opacity:1}}.signout-confirm-card{position:relative;width:100%;max-width:460px;background:var(--bg-surface, #ffffff);border:1px solid var(--border);border-radius:16px;padding:28px 28px 20px;box-shadow:0 1px 2px #0f172a0a,0 28px 60px -12px #0f172a52,0 10px 26px -8px #0f172a2e;animation:signoutCardIn .22s cubic-bezier(.16,1,.3,1);overflow:hidden}@keyframes signoutCardIn{0%{opacity:0;transform:translateY(8px) scale(.96)}to{opacity:1;transform:translateY(0) scale(1)}}.signout-confirm-accent{position:absolute;top:0;left:0;right:0;height:3px;background:linear-gradient(90deg,transparent 0%,var(--accent) 6%,var(--accent-strong) 50%,var(--accent) 94%,transparent 100%);transform-origin:left center;animation:signoutAccentDraw .6s .08s cubic-bezier(.16,1,.3,1) both}@keyframes signoutAccentDraw{0%{transform:scaleX(0)}to{transform:scaleX(1)}}.signout-confirm-icon{width:52px;height:52px;border-radius:50%;display:grid;place-items:center;background:color-mix(in srgb,var(--status-fail, #DC2626) 12%,transparent);color:var(--status-fail, #DC2626);border:1px solid color-mix(in srgb,var(--status-fail, #DC2626) 26%,transparent);margin-bottom:16px}.signout-confirm-icon svg{width:22px;height:22px}.signout-confirm-title{margin:0 0 8px;font-size:21px;font-weight:600;letter-spacing:-.018em;color:var(--fg-primary);line-height:1.22}.signout-confirm-body{margin:0 0 20px;font-size:14px;line-height:1.6;color:var(--fg-secondary);max-width:38ch}.signout-confirm-divider{height:1px;margin:0 -28px 16px;background:var(--border);opacity:.7}.signout-confirm-actions{display:flex;justify-content:flex-end;gap:10px;flex-wrap:wrap}.signout-confirm-btn{display:inline-flex;align-items:center;gap:10px;padding:10px 16px;background:transparent;border:1px solid var(--border);border-radius:9px;font:inherit;font-size:14px;font-weight:600;color:var(--fg-primary);cursor:pointer;transition:background .14s ease,border-color .14s ease,color .14s ease}.signout-confirm-btn:focus-visible{outline:2px solid var(--accent);outline-offset:1px}.signout-confirm-btn--ghost:hover{background:var(--bg-surface-2, rgba(15, 23, 42, .04));border-color:var(--fg-quaternary, var(--border))}.signout-confirm-btn--danger{color:var(--status-fail, #DC2626);border-color:color-mix(in srgb,var(--status-fail, #DC2626) 22%,var(--border))}.signout-confirm-btn--danger:hover{background:color-mix(in srgb,var(--status-fail, #DC2626) 10%,transparent);border-color:color-mix(in srgb,var(--status-fail, #DC2626) 34%,var(--border))}.signout-confirm-btn--danger:focus-visible{outline-color:var(--status-fail, #DC2626)}.signout-confirm-kbd{font-family:var(--font-mono);font-size:11px;font-weight:600;letter-spacing:.04em;padding:2px 6px;min-width:22px;text-align:center;border:1px solid var(--border);border-radius:5px;background:var(--bg-surface-2, rgba(15, 23, 42, .04));color:var(--fg-tertiary)}.signout-confirm-btn--danger .signout-confirm-kbd{color:color-mix(in srgb,var(--status-fail, #DC2626) 80%,var(--fg-tertiary));border-color:color-mix(in srgb,var(--status-fail, #DC2626) 20%,var(--border));background:color-mix(in srgb,var(--status-fail, #DC2626) 6%,var(--bg-surface-2, transparent))}[data-theme=dark] .signout-confirm-overlay{background:#000000b8}[data-theme=dark] .signout-confirm-card{background:var(--bg-surface-2, #1a2230);box-shadow:0 1px 2px #00000080,0 32px 64px -12px #000000a6,0 12px 28px -8px #00000073}[data-theme=dark] .signout-confirm-kbd{background:#ffffff0a}.topbar{display:flex;align-items:center;justify-content:space-between;padding:12px 28px;background:#ffffffd9;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border-bottom:1px solid var(--border);position:sticky;top:0;z-index:30;box-shadow:var(--shadow-xs)}[data-theme=dark] .topbar{background:#10161ee0}.crumbs{display:flex;align-items:center;gap:6px}.crumb{display:flex;align-items:center;gap:6px;color:var(--fg-secondary);font-size:var(--t-md)}.crumb:last-child{color:var(--fg-primary);font-weight:600}.crumb-sep{color:var(--fg-quaternary)}.topbar-right{display:flex;align-items:center;gap:8px}.search-pill{display:flex;align-items:center;gap:8px;padding:7px 14px;border-radius:var(--r-pill);background:var(--bg-surface-2);border:1.5px solid var(--border);color:var(--fg-tertiary);font-size:var(--t-md);cursor:pointer;min-width:260px;transition:border-color .15s,box-shadow .15s}.search-pill:hover{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}.search-pill kbd{font-family:var(--font-mono);font-size:10px;padding:1px 5px;border-radius:4px;border:1px solid var(--border);color:var(--fg-tertiary);margin-left:auto}.icon-btn{position:relative;width:34px;height:34px;background:transparent;border:1.5px solid var(--border);border-radius:var(--r-pill);display:grid;place-items:center;color:var(--fg-secondary);cursor:pointer;transition:all .15s}.icon-btn:hover{background:var(--bg-hover);color:var(--fg-primary);border-color:var(--border-strong);box-shadow:var(--shadow-xs)}.ic-btn{width:28px;height:28px;background:transparent;border:0;border-radius:var(--r-sm);display:grid;place-items:center;color:var(--fg-tertiary);cursor:pointer}.ic-btn:hover{background:var(--bg-hover);color:var(--fg-primary)}.ping{position:absolute;top:6px;right:6px;width:6px;height:6px;border-radius:var(--r-pill);background:var(--status-fail);box-shadow:0 0 0 2px var(--bg-elev)}.active-strip{display:flex;align-items:center;gap:16px;padding:8px 28px;background:linear-gradient(90deg,color-mix(in srgb,var(--accent) 8%,transparent),transparent 70%);border-bottom:1px solid var(--border)}.active-strip-label{display:flex;align-items:center;gap:6px;font-family:var(--font-mono);font-size:var(--t-xs);letter-spacing:.07em;color:var(--accent);font-weight:600;white-space:nowrap}.pulse-dot{width:7px;height:7px;border-radius:var(--r-pill);background:var(--status-progress);animation:livePulse 1.6s ease-in-out infinite}@keyframes livePulse{0%{box-shadow:0 0 color-mix(in srgb,var(--status-progress) 60%,transparent)}70%{box-shadow:0 0 0 6px transparent}to{box-shadow:0 0 0 0 transparent}}@keyframes pulse{0%,to{opacity:1}50%{opacity:.4}}.active-strip-rail{display:flex;gap:8px;flex-wrap:wrap;flex:1}.active-strip-item{display:flex;align-items:center;gap:10px;padding:5px 14px;background:var(--bg-surface);border:1.5px solid var(--border);border-radius:var(--r-pill);cursor:pointer;font-size:var(--t-md);color:var(--fg-primary);font-weight:500;transition:all .15s;box-shadow:var(--shadow-xs)}.active-strip-item:hover{border-color:var(--accent);box-shadow:0 2px 10px #ea4c892e;transform:translateY(-1px)}.ar-name{font-weight:600}.ar-meta{color:var(--fg-tertiary);font-size:var(--t-sm)}.ar-action{color:var(--fg-secondary);font-size:var(--t-sm)}.ar-more{color:var(--fg-tertiary);font-size:var(--t-sm);align-self:center}.page{padding:28px 32px;max-width:1480px;margin:0 auto}.page-head{display:flex;align-items:flex-end;justify-content:space-between;margin-bottom:24px;gap:16px}.page-eyebrow{font-family:var(--font-mono);font-size:var(--t-xs);letter-spacing:.08em;color:var(--accent);text-transform:uppercase;margin-bottom:6px;font-weight:600}.page-head h1{font-size:var(--t-2xl);margin:0;font-weight:700;letter-spacing:-.02em}.page-sub{color:var(--fg-tertiary);font-size:var(--t-md);margin-top:4px}.page-actions{display:flex;gap:8px}.grid-12{display:grid;grid-template-columns:repeat(12,1fr);gap:20px}.col-5{grid-column:span 5}.col-7{grid-column:span 7}.col-12{grid-column:span 12}.grid-2{display:grid;grid-template-columns:1fr 1fr;gap:20px}.stack-12{display:flex;flex-direction:column;gap:16px}.card{background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--r-lg);overflow:hidden;box-shadow:var(--shadow-sm);transition:box-shadow .2s,transform .2s}.card:hover{box-shadow:var(--shadow-md)}.card-head{display:flex;align-items:center;justify-content:space-between;padding:14px 20px;border-bottom:1px solid var(--border)}.card-head h3{margin:0;font-size:var(--t-md);font-weight:700;letter-spacing:-.01em}.card-body{padding:20px}.card+.card{margin-top:16px}.btn{display:inline-flex;align-items:center;gap:6px;padding:8px 18px;background:var(--bg-surface);border:1.5px solid var(--border);border-radius:var(--r-pill);color:var(--fg-primary);font-size:var(--t-md);font-weight:600;cursor:pointer;transition:all .15s;white-space:nowrap}.btn:hover{border-color:var(--border-strong);background:var(--bg-hover);transform:translateY(-1px);box-shadow:var(--shadow-sm)}.btn-primary{background:var(--accent);border-color:var(--accent);color:#fff}.btn-primary:hover{background:var(--accent-hover);border-color:var(--accent-hover);box-shadow:var(--shadow-pink)}.btn:disabled{opacity:.45;cursor:not-allowed;transform:none;box-shadow:none}.btn-sm{padding:5px 12px;font-size:var(--t-sm)}.chip{display:inline-flex;align-items:center;gap:5px;padding:3px 9px;border-radius:var(--r-pill);font-family:var(--font-mono);font-size:var(--t-xs);font-weight:600;color:var(--chip);background:color-mix(in srgb,var(--chip) 12%,transparent);border:1px solid color-mix(in srgb,var(--chip) 28%,transparent)}.chip-dot{width:5px;height:5px;border-radius:var(--r-pill);background:var(--chip)}.chip-sm{font-size:10px;padding:2px 7px}.spin{animation:spin 1.2s linear infinite}.pulse{animation:pulse 1.6s ease-in-out infinite}.tag{display:inline-flex;align-items:center;padding:2px 8px;font-size:var(--t-xs);border-radius:var(--r-sm);background:var(--bg-surface-2);color:var(--fg-secondary);border:1px solid var(--border);margin-right:4px}.tag.mono{font-family:var(--font-mono);font-size:10.5px;letter-spacing:0}.kpi-row-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:12px}.grid-12-tiles{grid-template-columns:repeat(4,1fr)}.kpi-tile{padding:18px 20px;background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--r-lg);box-shadow:var(--shadow-sm);transition:box-shadow .2s,transform .2s}.kpi-tile:hover{box-shadow:var(--shadow-md);transform:translateY(-2px)}.kpi-label{font-size:var(--t-xs);color:var(--fg-tertiary);text-transform:uppercase;letter-spacing:.07em;font-family:var(--font-mono);font-weight:600}.kpi-row{display:flex;align-items:baseline;gap:8px;margin-top:6px}.kpi-value{font-size:26px;font-weight:800;letter-spacing:-.03em}.kpi-trend{font-size:var(--t-xs);font-family:var(--font-mono);padding:2px 6px;border-radius:var(--r-pill);font-weight:600}.kpi-trend.up{color:var(--kpi-good);background:color-mix(in srgb,var(--kpi-good) 12%,transparent)}.kpi-trend.down{color:var(--kpi-bad);background:color-mix(in srgb,var(--kpi-bad) 12%,transparent)}.kpi-spark{height:28px;margin-top:8px}.kpi-spark svg{width:100%;height:100%}.kpi-sub{font-size:var(--t-xs);color:var(--fg-tertiary);margin-top:6px}.mini-kpi-row{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}.iter-dots{display:inline-flex;gap:4px}.iter-dot{width:12px;height:6px;border-radius:3px;background:var(--bg-surface-2);border:1px solid var(--border)}.iter-done{background:var(--status-pass);border-color:var(--status-pass)}.iter-now{background:var(--status-progress);border-color:var(--status-progress);animation:pulse 1.6s infinite}.iter-fail{background:var(--status-fail);border-color:var(--status-fail)}.iter-meta-inline{display:inline-flex;gap:14px;align-items:center;font-size:var(--t-xs);color:var(--fg-tertiary);font-family:var(--font-mono)}.iter-stack{display:flex;flex-direction:column;gap:10px}.iter-row{display:grid;grid-template-columns:110px minmax(0,1fr);gap:16px;align-items:center;padding:12px 14px;border:1px solid var(--border);border-radius:var(--r-md);background:var(--bg-surface);transition:background .15s,border-color .15s}.iter-row.is-current{border-color:color-mix(in srgb,var(--accent) 50%,var(--border));background:color-mix(in srgb,var(--accent) 6%,var(--bg-surface));box-shadow:0 0 0 1px color-mix(in srgb,var(--accent) 18%,transparent)}.iter-row-pass{opacity:.85}.iter-row-idle{opacity:.55}.iter-row-failed{border-color:color-mix(in srgb,var(--status-fail) 45%,var(--border));background:color-mix(in srgb,var(--status-fail) 5%,var(--bg-surface))}.iter-row-head{display:flex;flex-direction:column;gap:4px;align-items:flex-start}.iter-num{font-size:var(--t-md);font-weight:700;color:var(--fg-primary);letter-spacing:-.02em}.iter-status{font-family:var(--font-mono);font-size:10px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;padding:2px 8px;border-radius:var(--r-pill);background:var(--bg-surface-2);color:var(--fg-secondary)}.iter-status-pass{background:color-mix(in srgb,var(--status-pass) 14%,transparent);color:var(--status-pass)}.iter-status-progress{background:color-mix(in srgb,var(--status-progress) 14%,transparent);color:var(--status-progress)}.iter-status-failed{background:color-mix(in srgb,var(--status-fail) 14%,transparent);color:var(--status-fail)}.iter-status-idle{background:var(--bg-surface-2);color:var(--fg-tertiary)}.iter-row-tl{min-width:0;overflow-x:auto}.iter-row-tl .action-tl{flex-wrap:nowrap}@media (max-width: 760px){.iter-row{grid-template-columns:1fr;gap:8px}.iter-row-head{flex-direction:row;gap:10px;align-items:center}}.device-rows{display:flex;flex-direction:column;gap:10px}.dev-row{display:grid;grid-template-columns:80px 1fr 110px;gap:12px;align-items:center;font-size:var(--t-md)}.dev-name{color:var(--fg-secondary)}.dev-bar{height:6px;border-radius:var(--r-pill);background:var(--bg-surface-2);overflow:hidden}.dev-bar span{display:block;height:100%;background:var(--accent);border-radius:var(--r-pill)}.dev-num{text-align:right;font-family:var(--font-mono);font-size:var(--t-sm)}.dev-num span{color:var(--fg-tertiary)}.launchpad{display:grid;grid-template-columns:repeat(5,1fr);border-top:1px solid var(--border)}.launch-card{border:0;border-right:1px solid var(--border);background:var(--bg-surface);padding:20px 22px;text-align:left;cursor:pointer;display:flex;flex-direction:column;gap:6px;transition:background .14s}.launch-card:last-child{border-right:0}.launch-card:hover{background:var(--bg-hover)}.launch-icon{width:34px;height:34px;border-radius:var(--r-md);background:var(--accent-soft);color:var(--accent);display:grid;place-items:center}.launch-name{font-size:var(--t-md);font-weight:700}.launch-sub{color:var(--fg-tertiary);font-size:var(--t-sm)}.launch-meta{color:var(--fg-quaternary);font-size:10.5px;margin-top:auto}.catalog-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:16px}.catalog-card{background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--r-lg);padding:24px;box-shadow:var(--shadow-sm);transition:box-shadow .2s,transform .2s,border-color .15s}.catalog-card:hover{box-shadow:var(--shadow-md);transform:translateY(-2px);border-color:var(--border-strong)}.cat-head{display:flex;align-items:center;gap:14px;margin-bottom:12px}.cat-head h2{margin:0;font-size:var(--t-lg);font-weight:700;letter-spacing:-.01em}.cat-icon{width:46px;height:46px;border-radius:var(--r-md);background:var(--accent-soft);color:var(--accent);display:grid;place-items:center;flex-shrink:0}.cat-type{color:var(--fg-tertiary);font-size:var(--t-sm)}.cat-head .btn{margin-left:auto}.cat-desc{color:var(--fg-secondary);margin:8px 0 16px;font-size:var(--t-md);line-height:1.55}.cat-meta{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin:0}.cat-meta dt{font-size:var(--t-xs);color:var(--fg-tertiary);text-transform:uppercase;letter-spacing:.06em;font-family:var(--font-mono);margin-bottom:4px;font-weight:600}.cat-meta dd{margin:0}.active-list{display:flex;flex-direction:column}.active-row{display:grid;grid-template-columns:auto 1fr auto auto;gap:14px;align-items:center;padding:14px 20px;background:transparent;border:0;border-bottom:1px solid var(--border);cursor:pointer;text-align:left;width:100%;transition:background .12s}.active-row:last-child{border-bottom:0}.active-row:hover{background:var(--bg-hover)}.ar-main{min-width:0}.ar-title{font-weight:600;display:flex;gap:8px;align-items:center}.ar-sub{color:var(--fg-tertiary);font-size:var(--t-sm);margin-top:2px;font-family:var(--font-mono)}.ar-progress{min-width:140px}.ar-chev{color:var(--fg-tertiary)}.data-table{width:100%;border-collapse:collapse;font-size:var(--t-md)}.data-table th,.data-table td{text-align:left;padding:11px 16px;border-bottom:1px solid var(--border)}.data-table th{font-size:var(--t-xs);font-weight:600;color:var(--fg-tertiary);text-transform:uppercase;letter-spacing:.07em;font-family:var(--font-mono);background:var(--bg-surface-2)}.data-table tbody tr{cursor:pointer;transition:background .1s}.data-table tbody tr:hover td{background:color-mix(in srgb,var(--accent) 5%,transparent)}.data-table tbody tr:hover td:first-child{box-shadow:inset 3px 0 0 var(--accent)}.data-table.compact th,.data-table.compact td{padding:7px 12px}.data-table.dense td{padding:9px 14px}.row-fail td:first-child{box-shadow:inset 3px 0 0 var(--status-fail)}.filter-bar{display:flex;gap:8px;align-items:center;margin-bottom:16px;flex-wrap:wrap}.filter-spacer{flex:1}.id-code{font-family:var(--font-mono);font-size:11.5px;font-weight:700;letter-spacing:.04em;color:var(--fg-tertiary);padding:2px 7px;border-radius:6px;border:1px solid transparent;cursor:copy;-webkit-user-select:none;user-select:none;white-space:nowrap;transition:color .12s,border-color .12s,background .12s}.id-code:hover{color:var(--accent);border-color:var(--border);background:var(--bg-hover)}.id-code.copied{color:var(--status-pass, #16a34a);border-color:color-mix(in srgb,var(--status-pass, #16a34a) 40%,transparent)}.bulk-open-btn{display:inline-flex;align-items:center;gap:4px;padding:5px 11px;border-radius:var(--r-pill, 999px);border:1.5px solid var(--accent);background:transparent;color:var(--accent);font-size:12px;font-weight:700;cursor:pointer;white-space:nowrap;transition:background .14s,color .14s}.bulk-open-btn:hover{background:var(--accent);color:#fff}.pager{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-top:14px}.pager-info{font-size:12px;color:var(--fg-tertiary)}.pager-controls{display:flex;align-items:center;gap:8px}.pager-page{font-size:12px;color:var(--fg-secondary);min-width:96px;text-align:center}.pager-btn{display:inline-flex;align-items:center;gap:5px;padding:7px 14px;background:var(--bg-surface);border:1.5px solid var(--border-input);border-radius:var(--r-pill);color:var(--fg-primary);font-size:13px;font-weight:600;cursor:pointer;transition:border-color .15s,color .15s,background .15s}.pager-btn:hover:not(:disabled){border-color:var(--accent);color:var(--accent)}.pager-btn:disabled{opacity:.4;cursor:not-allowed}.pager-btn svg{opacity:.7}.input{padding:8px 14px;background:var(--bg-input);border:1.5px solid var(--border-input);border-radius:var(--r-pill);color:var(--fg-primary);font-size:var(--t-md);outline:none;transition:border-color .15s,box-shadow .15s}.input:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}textarea.input,.input[style*=resize]{border-radius:var(--r-lg)}textarea.input{resize:vertical}.search-input{display:flex;align-items:center;gap:6px;padding-left:8px;background:var(--bg-input);border:1px solid var(--border-input);border-radius:var(--r-md);color:var(--fg-tertiary)}.search-input .input{border:0;padding:7px 8px}.cfg-grid{display:grid;grid-template-columns:200px 1fr 320px;gap:24px}.cfg-rail{display:flex;flex-direction:column;gap:4px}.cfg-step{display:flex;align-items:center;gap:10px;padding:10px 13px;border-radius:var(--r-md);background:transparent;border:0;font-size:var(--t-md);color:var(--fg-secondary);text-align:left;cursor:pointer;transition:background .14s}.cfg-step:hover{background:var(--bg-hover)}.cfg-step.active{background:var(--accent-soft);color:var(--accent)}.cfg-step.done{color:var(--fg-secondary)}.cfg-step-num{width:22px;height:22px;border-radius:var(--r-pill);background:var(--bg-surface-2);border:1px solid var(--border);display:grid;place-items:center;font-family:var(--font-mono);font-size:11px;font-weight:700}.cfg-step.active .cfg-step-num{background:var(--accent);color:#fff;border-color:var(--accent)}.cfg-step.done .cfg-step-num{background:var(--status-pass);color:#fff;border-color:var(--status-pass)}.cfg-body .card+.card{margin-top:12px}.cfg-foot{display:flex;justify-content:space-between;margin-top:16px;padding-top:16px;border-top:1px solid var(--border)}.cfg-foot-right{display:flex;gap:8px}.cfg-summary{position:sticky;top:24px;align-self:start;background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--r-lg);padding:20px;box-shadow:var(--shadow-sm)}.summary-eyebrow{font-family:var(--font-mono);font-size:var(--t-xs);color:var(--fg-tertiary);text-transform:uppercase;letter-spacing:.06em;font-weight:600}.cfg-summary h2{font-size:var(--t-lg);margin:4px 0 14px;font-weight:700}.summary-rows{display:flex;flex-direction:column;gap:8px;padding-bottom:14px;border-bottom:1px solid var(--border)}.summary-rows>div{display:flex;justify-content:space-between;font-size:var(--t-md)}.summary-rows span{color:var(--fg-tertiary)}.summary-section{margin-top:14px}.summary-section .summary-eyebrow{margin-bottom:10px}.summary-explain{margin-top:14px;font-size:var(--t-sm);color:var(--fg-secondary)}.summary-explain summary{cursor:pointer;color:var(--accent);margin-bottom:6px}.dev-slot{border:1px solid var(--border);border-radius:var(--r-md);padding:14px;margin-bottom:10px;background:var(--bg-surface-2)}.dev-slot-head{display:flex;justify-content:space-between;margin-bottom:10px}.dev-slot-label{font-size:var(--t-sm);color:var(--fg-secondary);font-weight:600}.dev-slot-desc{font-size:var(--t-xs);color:var(--fg-tertiary)}.dev-pick{width:100%;display:flex;align-items:center;gap:10px;padding:10px 12px;background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--r-md);cursor:pointer;text-align:left;color:var(--fg-primary);transition:border-color .15s}.dev-pick:hover{border-color:var(--accent)}.dev-pick-empty{color:var(--fg-tertiary);flex:1;font-size:var(--t-md)}.dev-pick-main{flex:1}.dev-pick-name{font-size:var(--t-md);font-weight:500}.dev-pick-os{color:var(--fg-tertiary);font-size:var(--t-xs);margin-left:6px}.dev-pick-meta{color:var(--fg-tertiary);font-size:var(--t-xs);margin-top:2px}.dev-state{width:8px;height:8px;border-radius:var(--r-pill);background:var(--status-idle);flex-shrink:0}.dev-online{background:var(--status-pass);box-shadow:0 0 0 2px color-mix(in srgb,var(--status-pass) 30%,transparent)}.dev-busy{background:var(--status-cancel)}.dev-offline{background:var(--status-fail)}.dev-picker{margin-top:6px;background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--r-md);overflow:hidden}.dev-option{width:100%;display:flex;align-items:center;gap:10px;padding:10px 12px;background:transparent;border:0;border-bottom:1px solid var(--border);cursor:pointer;text-align:left;transition:background .12s}.dev-option:hover{background:var(--bg-hover)}.dev-option:last-child{border-bottom:0}.dev-option-name{font-size:var(--t-md);font-weight:500}.dev-option-meta{font-size:var(--t-xs);color:var(--fg-tertiary);margin-top:2px}.dev-tone{color:var(--fg-tertiary);font-size:var(--t-xs)}.field{display:block;margin-bottom:14px}.field-label{font-size:var(--t-sm);color:var(--fg-secondary);margin-bottom:6px;font-weight:600}.field-hint{font-size:var(--t-xs);color:var(--fg-tertiary);margin-top:4px;font-family:var(--font-mono)}.field-hint.field-hint-bad{color:var(--status-fail, #DC2626);font-weight:600}.input.input-bad{border-color:var(--status-fail, #DC2626);box-shadow:0 0 0 3px color-mix(in srgb,var(--status-fail, #DC2626) 14%,transparent)}.input.input-bad:focus{outline:none;box-shadow:0 0 0 3px color-mix(in srgb,var(--status-fail, #DC2626) 28%,transparent)}.field-row-2{display:grid;grid-template-columns:1fr 1fr;gap:12px}.field-row-3{display:grid;grid-template-columns:1fr 1fr 1fr;gap:12px}.adv details summary{cursor:pointer;color:var(--accent);font-size:var(--t-sm);margin:8px 0}.banner{display:flex;align-items:flex-start;gap:10px;padding:12px 14px;border-radius:var(--r-md);font-size:var(--t-sm);margin-bottom:10px}.banner-info{background:var(--accent-soft);color:var(--fg-primary);border:1px solid var(--accent-strong)}.banner-info svg{color:var(--accent);margin-top:1px;flex-shrink:0}.banner b{display:block;margin-bottom:2px;color:var(--accent)}.art-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.art-chip{display:flex;align-items:center;gap:8px;padding:10px 12px;background:var(--bg-surface-2);border:1.5px solid var(--border);border-radius:var(--r-md);cursor:pointer;text-align:left;color:var(--fg-secondary);transition:border-color .15s,background .12s}.art-chip.on{background:var(--accent-soft);border-color:var(--accent);color:var(--accent)}.art-chip-mark{width:16px;height:16px;border:1.5px solid var(--border-strong);border-radius:4px;display:grid;place-items:center;background:var(--bg-surface);flex-shrink:0}.art-chip.on .art-chip-mark{background:var(--accent);border-color:var(--accent);color:#fff}.review-grid{display:grid;grid-template-columns:140px 1fr;gap:8px 24px}.review-row{display:contents}.review-row.full .review-label,.review-row.full .review-value{grid-column:1 / -1}.review-row.full .review-label{margin-top:14px;padding-top:14px;border-top:1px solid var(--border)}.review-label{color:var(--fg-tertiary);font-size:var(--t-sm);padding:6px 0}.review-value{padding:4px 0;font-size:var(--t-md)}.hint{color:var(--fg-tertiary);font-size:var(--t-sm);margin:8px 0 0}.action-tl{display:flex;flex-wrap:wrap;align-items:center;gap:0}.tl-node{display:flex;align-items:center;gap:8px;padding:6px 10px;background:var(--bg-surface-2);border:1px solid var(--border);border-radius:var(--r-md)}.tl-dot{width:18px;height:18px;border-radius:var(--r-pill);background:var(--bg-surface);border:1px solid var(--border);display:grid;place-items:center;color:var(--fg-tertiary)}.tl-pass .tl-dot{background:var(--status-pass);border-color:var(--status-pass);color:#fff}.tl-failed .tl-dot{background:var(--status-fail);border-color:var(--status-fail);color:#fff}.tl-progress .tl-dot{background:var(--status-progress);border-color:var(--status-progress);color:#fff}.tl-progress{border-color:var(--accent-strong)}.tl-failed{border-color:var(--status-fail)}.tl-human{font-size:var(--t-md);font-weight:500}.tl-enum{font-size:10.5px;color:var(--fg-tertiary)}[data-advanced="0"] .tl-enum{display:none}.tl-edge{width:24px;height:1px;background:var(--border);align-self:center}.tl-edge-pass{background:var(--status-pass)}.tl-edge-failed{background:var(--status-fail)}.run-context{position:sticky;top:0;z-index:20;background:var(--bg-elev);border-bottom:1px solid var(--border);padding:14px 32px 0;box-shadow:var(--shadow-xs)}.run-ctx-top{display:flex;align-items:center;gap:12px;padding-bottom:12px}.back-btn{display:flex;align-items:center;gap:4px;background:transparent;border:0;color:var(--fg-tertiary);font-size:var(--t-md);cursor:pointer;padding:4px 10px;border-radius:var(--r-pill);transition:background .14s,color .14s}.back-btn:hover{background:var(--bg-hover);color:var(--fg-primary)}.flip{transform:rotate(180deg)}.run-title{font-size:18px;font-weight:700;margin:0;letter-spacing:-.02em}.run-meta{color:var(--fg-tertiary);font-size:var(--t-sm)}.run-ctx-actions{margin-left:auto;display:flex;gap:8px}.run-tabs{display:flex;gap:0;border-top:1px solid var(--border)}.run-tab{padding:12px 18px;background:transparent;border:0;border-bottom:2px solid transparent;color:var(--fg-tertiary);font-size:var(--t-md);font-weight:500;cursor:pointer;margin-bottom:-1px;transition:color .14s}.run-tab:hover{color:var(--fg-primary)}.run-tab.active{color:var(--accent);border-bottom-color:var(--accent);font-weight:600}.run-body{padding:24px 32px;max-width:1480px;margin:0 auto;display:flex;flex-direction:column;gap:16px}.run-body.grid-12{display:grid}.iter-meta{display:flex;gap:24px;margin-top:12px;color:var(--fg-tertiary);font-size:var(--t-sm)}.iter-meta .mono{color:var(--fg-secondary)}.role-cards{display:flex;flex-direction:column;gap:10px}.role-card{border:1px solid var(--border);border-radius:var(--r-md);padding:14px;background:var(--bg-surface-2)}.role-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px}.role-name{font-weight:600;font-size:var(--t-md);margin-bottom:2px}.role-meta{font-size:var(--t-xs);color:var(--fg-tertiary)}.role-recent{margin-top:10px;padding-top:10px;border-top:1px solid var(--border);display:flex;flex-direction:column;gap:3px}.role-recent-row{font-size:11px;color:var(--fg-tertiary)}.call-state{font-size:var(--t-xs);font-family:var(--font-mono)}.call-connected{color:var(--status-pass)}.call-ringing{color:var(--status-progress)}.call-dialing{color:var(--status-cancel)}.call-idle{color:var(--fg-tertiary)}.device-state-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}.raw-toggle{display:flex;align-items:center;gap:6px;font-size:var(--t-sm);color:var(--fg-tertiary);cursor:pointer}.event-log{font-family:var(--font-mono);font-size:11.5px;max-height:342px;overflow-y:auto;display:flex;flex-direction:column}.event-row{display:grid;grid-template-columns:90px 70px 1fr;gap:10px;padding:5px 4px;border-bottom:1px dashed var(--border);align-items:baseline}.event-t{color:var(--fg-tertiary)}.event-tag{font-size:9px;padding:1px 5px;border-radius:3px;text-align:center;letter-spacing:.06em;align-self:center}.event-tag-rmq{background:color-mix(in srgb,#A78BFA 15%,transparent);color:#a78bfa}.event-tag-state{background:color-mix(in srgb,var(--status-progress) 15%,transparent);color:var(--status-progress)}.event-tag-snapbox{background:color-mix(in srgb,var(--status-pass) 15%,transparent);color:var(--status-pass)}.event-tag-kpi{background:color-mix(in srgb,var(--kpi-moderate) 15%,transparent);color:var(--kpi-moderate)}.event-msg{color:var(--fg-secondary)}.headline-card{display:flex;align-items:center;gap:18px;padding:22px 24px;border-radius:var(--r-lg);border:1px solid var(--border);background:var(--bg-surface);box-shadow:var(--shadow-sm)}.headline-card.ok{border-left:4px solid var(--status-pass)}.headline-card.fail{border-left:4px solid var(--status-fail)}.headline-icon{width:56px;height:56px;border-radius:var(--r-pill);display:grid;place-items:center;flex-shrink:0}.ok .headline-icon{background:color-mix(in srgb,var(--status-pass) 15%,transparent);color:var(--status-pass)}.fail .headline-icon{background:color-mix(in srgb,var(--status-fail) 15%,transparent);color:var(--status-fail)}.headline-text{flex:1}.headline-text h2{margin:0 0 4px;font-size:var(--t-lg);font-weight:700}.headline-text p{margin:0;color:var(--fg-secondary);font-size:var(--t-md);text-wrap:pretty}.headline-actions{display:flex;gap:8px}.session-grid{display:grid;grid-template-columns:240px 1fr;gap:16px}.session-rail{background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--r-lg);padding:8px;position:sticky;top:124px;align-self:start;max-height:calc(100vh - 140px);overflow-y:auto;box-shadow:var(--shadow-sm)}.rail-head{padding:8px 10px;color:var(--fg-tertiary);font-size:var(--t-xs);text-transform:uppercase;letter-spacing:.06em;font-weight:600}.rail-iter{display:grid;grid-template-columns:auto 1fr auto;gap:8px;align-items:center;padding:8px 10px;background:transparent;border:0;border-radius:var(--r-md);cursor:pointer;text-align:left;color:var(--fg-secondary);width:100%;margin-bottom:2px;transition:background .12s}.rail-iter:hover{background:var(--bg-hover)}.rail-iter.active{background:var(--accent-soft);color:var(--accent)}.rail-iter-name{font-size:var(--t-sm);font-weight:500}.rail-iter-dur{color:var(--fg-tertiary);font-size:10.5px}.rail-fail .rail-iter-name{color:var(--status-fail)}.session-detail{display:flex;flex-direction:column;gap:16px}.step-grid{display:grid;grid-template-columns:140px 1fr;gap:8px 24px}.err-block{background:color-mix(in srgb,var(--status-fail) 8%,transparent);border:1px solid color-mix(in srgb,var(--status-fail) 30%,transparent);border-radius:var(--r-md);padding:10px 12px}.err-head{color:var(--status-fail);font-size:var(--t-sm);font-weight:600}.err-code{background:color-mix(in srgb,var(--status-fail) 18%,transparent);padding:1px 5px;border-radius:3px;margin-right:6px}.err-meta{color:var(--fg-tertiary);font-size:var(--t-xs);margin-top:4px}.link-evidence{display:flex;flex-direction:column;gap:6px}.evidence-row{display:flex;align-items:center;gap:12px;padding:8px 12px;background:var(--bg-surface-2);border:1px solid var(--border);border-radius:var(--r-md);cursor:pointer;text-align:left;width:100%;transition:border-color .14s}.evidence-row:hover{border-color:var(--accent)}.ev-name{font-size:var(--t-sm);flex:1;font-weight:500}.ev-meta{color:var(--fg-tertiary);font-size:var(--t-xs)}.bulk-bar{display:flex;align-items:center;gap:12px;padding:10px 14px;background:var(--accent-soft);border:1px solid var(--accent-strong);border-radius:var(--r-md)}.art-layout{display:grid;grid-template-columns:1fr;gap:16px}.art-layout.with-preview{grid-template-columns:1fr 460px}.art-list{display:flex;flex-direction:column;gap:12px}.art-group{background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--r-lg);overflow:hidden;box-shadow:var(--shadow-sm)}.art-group-head{width:100%;display:flex;align-items:center;gap:10px;padding:12px 16px;background:var(--bg-surface-2);border:0;border-bottom:1px solid var(--border);cursor:pointer;text-align:left;font-weight:600}.rot-90{transform:rotate(-90deg)}.art-count{margin-left:auto;color:var(--fg-tertiary);font-size:var(--t-xs);font-family:var(--font-mono)}.art-files{display:flex;flex-direction:column}.art-file{display:grid;grid-template-columns:auto auto auto 1fr auto auto auto;gap:10px;align-items:center;padding:8px 14px;border-bottom:1px solid var(--border);font-size:var(--t-sm);transition:background .12s}.art-file:last-child{border-bottom:0}.art-file:hover{background:var(--bg-hover)}.art-file.sel{background:var(--accent-soft)}.art-name{font-size:var(--t-sm);font-weight:500}.art-size{color:var(--fg-tertiary);font-size:var(--t-xs)}.art-acts{display:flex;gap:2px}.art-preview{background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--r-lg);padding:14px;position:sticky;top:124px;align-self:start;max-height:calc(100vh - 140px);overflow-y:auto;box-shadow:var(--shadow-sm)}.preview-head{display:flex;align-items:center;gap:8px;margin-bottom:12px;padding-bottom:12px;border-bottom:1px solid var(--border)}.preview-head b{flex:1;font-size:var(--t-sm);font-weight:600}.preview-video{display:flex;flex-direction:column;gap:8px}.video-stub{aspect-ratio:9/16;max-height:360px;background:linear-gradient(135deg,#000,#1a2330);border-radius:var(--r-md);display:grid;place-items:center;align-content:center;justify-items:center;gap:8px;color:var(--fg-tertiary)}.video-stub svg{color:#fff;opacity:.7}.video-ctrls{display:flex;align-items:center;gap:8px;padding:4px 0;color:var(--fg-tertiary);font-size:var(--t-xs)}.video-bar{flex:1;height:4px;background:var(--bg-surface-2);border-radius:var(--r-pill);overflow:hidden}.video-bar span{display:block;height:100%;background:var(--accent)}.preview-pre{background:var(--bg-app);padding:12px;border-radius:var(--r-md);font-size:11px;color:var(--fg-secondary);overflow:auto;margin:0}.preview-table{width:100%;font-size:var(--t-xs);border-collapse:collapse}.preview-table th,.preview-table td{padding:5px 8px;border-bottom:1px solid var(--border);text-align:left}.preview-table th{color:var(--fg-tertiary);font-weight:600}.preview-foot{display:flex;gap:8px;margin-top:12px;padding-top:12px;border-top:1px solid var(--border)}.kpi-chart-wrap{padding:8px 0}.kpi-chart{width:100%;height:200px}.chart-legend{display:flex;gap:16px;margin-top:8px;padding:0 8px;font-size:var(--t-xs);color:var(--fg-tertiary)}.chart-legend i{display:inline-block;width:12px;height:8px;border-radius:2px;margin-right:6px;vertical-align:middle}.chart-legend .band-good{background:color-mix(in srgb,var(--kpi-good) 30%,transparent)}.chart-legend .band-mod{background:color-mix(in srgb,var(--kpi-moderate) 30%,transparent)}.chart-legend .band-bad{background:color-mix(in srgb,var(--kpi-bad) 30%,transparent)}.empty{display:flex;flex-direction:column;align-items:center;gap:8px;padding:48px 16px;text-align:center;color:var(--fg-tertiary)}.empty-glyph{width:52px;height:52px;border-radius:var(--r-pill);background:var(--bg-surface-2);display:grid;place-items:center;box-shadow:var(--shadow-xs)}.empty-title{font-weight:600;color:var(--fg-secondary);font-size:var(--t-base)}.empty-sub{font-size:var(--t-sm)}.seg-tabs{display:flex;gap:4px;padding:4px;background:var(--bg-surface);border:1.5px solid var(--border);border-radius:var(--r-pill);width:fit-content;margin-bottom:16px;box-shadow:var(--shadow-xs)}.seg-tabs button{padding:6px 16px;background:transparent;border:0;border-radius:var(--r-pill);cursor:pointer;color:var(--fg-secondary);font-size:var(--t-md);font-weight:500;transition:all .15s}.seg-tabs button.active{background:var(--accent);color:#fff;font-weight:700;box-shadow:var(--shadow-pink)}.switch{display:flex;align-items:center;gap:8px;cursor:pointer;font-size:var(--t-md)}.switch input{accent-color:var(--accent)}.tweak-hint{color:var(--fg-tertiary);font-size:var(--t-xs);margin-top:4px;font-family:var(--font-mono)}.welcome-hero{position:relative;padding:32px 48px 40px;border:1px solid var(--border);border-radius:var(--r-lg);background:radial-gradient(900px 320px at 88% 10%,color-mix(in srgb,var(--accent) 16%,transparent),transparent 60%),radial-gradient(700px 280px at 8% 100%,color-mix(in srgb,var(--accent) 9%,transparent),transparent 70%),var(--bg-surface);overflow:hidden;margin-bottom:32px;box-shadow:var(--shadow-md)}.hero-badge{display:inline-flex;align-items:center;gap:8px;padding:6px 14px;border-radius:var(--r-pill);background:color-mix(in srgb,var(--accent) 12%,transparent);color:var(--accent);font-size:12px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;margin-bottom:22px}.hero-dot{width:8px;height:8px;border-radius:50%;background:var(--accent);box-shadow:0 0 0 4px color-mix(in srgb,var(--accent) 25%,transparent)}.hero-title{font-size:46px;line-height:1.07;font-weight:800;letter-spacing:-.03em;max-width:760px;margin:0 0 18px}.hero-accent{color:var(--accent)}.hero-lede{max-width:640px;font-size:17px;line-height:1.55;color:var(--fg-secondary);margin:0 0 28px;text-wrap:pretty}.hero-cta{display:flex;gap:12px;align-items:center;flex-wrap:wrap}.hero-live{display:inline-flex;align-items:center;gap:8px;padding:8px 16px;border-radius:var(--r-pill);border:1.5px solid var(--border);background:var(--bg-surface-2);color:var(--fg-primary);font-size:13px;font-weight:500;cursor:pointer;transition:all .15s}.hero-live:hover{border-color:var(--accent);color:var(--accent)}.live-dot{width:8px;height:8px;border-radius:50%;background:var(--status-progress);animation:livePulse 1.6s infinite}.hero-illu{position:absolute;right:48px;top:32px;display:flex;align-items:center;gap:14px;pointer-events:none;opacity:.95}@media (max-width: 1180px){.hero-illu{display:none}}.illu-card{background:var(--bg-surface-2);border:1px solid var(--border);border-radius:12px;padding:12px 14px;min-width:168px;font-size:12px;box-shadow:var(--shadow-md)}.illu-row{display:flex;align-items:center;gap:8px;font-weight:700;color:var(--fg-primary)}.illu-state{display:flex;align-items:center;gap:6px;margin-top:8px;color:var(--fg-secondary);font-family:var(--font-mono);font-size:11px}.ld{width:7px;height:7px;border-radius:50%;background:var(--status-progress);animation:livePulse 1.6s infinite}.ld-ok{background:var(--status-pass)}.illu-arrow{display:flex;flex-direction:column;align-items:center;gap:6px;color:var(--accent);width:110px}.illu-arrow svg{width:100%;height:18px}.illu-tag{font-family:var(--font-mono);font-size:10px;color:var(--fg-tertiary);letter-spacing:.04em}.explain-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-bottom:40px}@media (max-width: 980px){.explain-grid{grid-template-columns:1fr}}.explain-card{padding:24px;border:1px solid var(--border);border-radius:var(--r-lg);background:var(--bg-surface);box-shadow:var(--shadow-sm);transition:box-shadow .2s,transform .2s}.explain-card:hover{box-shadow:var(--shadow-md);transform:translateY(-2px)}.explain-icon{width:42px;height:42px;border-radius:var(--r-md);display:flex;align-items:center;justify-content:center;background:color-mix(in srgb,var(--accent) 14%,transparent);color:var(--accent);margin-bottom:16px}.explain-card h3{font-size:16px;font-weight:700;margin:0 0 8px}.explain-card p{font-size:14px;line-height:1.55;color:var(--fg-secondary);margin:0;text-wrap:pretty}.tour{margin-bottom:40px}.tour-head{margin-bottom:20px}.tour-title{font-size:26px;font-weight:700;letter-spacing:-.02em;max-width:700px;margin:4px 0 0}.tour-steps{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}@media (max-width: 980px){.tour-steps{grid-template-columns:repeat(2,1fr)}}.tour-step{text-align:left;padding:20px;border-radius:var(--r-lg);border:1.5px solid var(--border);background:var(--bg-surface);cursor:pointer;transition:all .15s;position:relative;box-shadow:var(--shadow-xs)}.tour-step:hover{border-color:var(--border-strong);box-shadow:var(--shadow-sm);transform:translateY(-1px)}.tour-active{border-color:var(--accent)!important;background:color-mix(in srgb,var(--accent) 5%,var(--bg-surface))}.tour-num{font-family:var(--font-mono);font-size:11px;color:var(--fg-tertiary);letter-spacing:.06em;font-weight:600}.tour-s-icon{width:34px;height:34px;border-radius:var(--r-md);display:flex;align-items:center;justify-content:center;background:var(--bg-surface-2);color:var(--accent);margin:10px 0 12px}.tour-active .tour-s-icon{background:color-mix(in srgb,var(--accent) 18%,transparent)}.tour-s-title{font-size:14px;font-weight:700;margin-bottom:6px}.tour-s-text{font-size:13px;color:var(--fg-secondary);line-height:1.5;text-wrap:pretty;margin-bottom:16px}.tour-preview{background:var(--bg-app);border:1px solid var(--border);border-radius:var(--r-md);padding:12px;min-height:110px;display:flex;flex-direction:column;justify-content:center}.tour-active .tour-preview{background:color-mix(in srgb,var(--accent) 4%,var(--bg-app));border-color:color-mix(in srgb,var(--accent) 30%,var(--border))}.tp-list{display:flex;flex-direction:column;gap:6px}.tp-mini{background:var(--bg-surface-2);border-radius:6px;padding:7px 9px;font-size:11px;display:flex;align-items:center;gap:8px}.tp-mini-on{background:color-mix(in srgb,var(--accent) 12%,var(--bg-surface-2))}.tp-dot{width:8px;height:8px;border-radius:50%;background:var(--fg-tertiary);flex-shrink:0}.tp-dot-on{background:var(--accent)}.tp-dot-g{background:var(--status-pass)}.tp-tl{display:flex;flex-direction:column;gap:8px}.tp-row{display:flex;align-items:center}.tp-node{width:12px;height:12px;border-radius:50%;border:2px solid var(--border-strong);background:var(--bg-app);flex-shrink:0}.tp-node.tp-done{background:var(--status-pass);border-color:var(--status-pass)}.tp-node.tp-now{background:var(--accent);border-color:var(--accent);box-shadow:0 0 0 4px color-mix(in srgb,var(--accent) 25%,transparent)}.tp-line{flex:1;height:2px;background:var(--border-strong);margin:0 3px}.tp-line.tp-done{background:var(--status-pass)}.tp-labels{display:flex;justify-content:space-between;font-size:9px;color:var(--fg-tertiary)}.tp-files{display:flex;flex-wrap:wrap;gap:5px}.tp-tag{font-family:var(--font-mono);font-size:10px;padding:3px 7px;background:var(--bg-surface-2);border-radius:4px;color:var(--fg-secondary)}.tp-pass{width:100%;margin-top:8px;padding:6px 9px;background:color-mix(in srgb,var(--status-pass) 12%,transparent);border-radius:6px;font-size:11px;color:var(--status-pass);font-weight:700}.usecases{margin-bottom:40px}.uc-title{font-size:26px;font-weight:700;letter-spacing:-.02em;margin:4px 0 20px}.uc-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:12px}@media (max-width: 880px){.uc-grid{grid-template-columns:1fr}}.uc-card{display:grid;grid-template-columns:44px 1fr auto;gap:16px;align-items:center;padding:18px 20px;border-radius:var(--r-lg);border:1.5px solid var(--border);background:var(--bg-surface);cursor:pointer;text-align:left;transition:all .15s;box-shadow:var(--shadow-xs)}.uc-card:hover{border-color:var(--accent);transform:translateY(-2px);box-shadow:var(--shadow-sm)}.uc-icon{width:44px;height:44px;border-radius:var(--r-md);display:flex;align-items:center;justify-content:center;background:color-mix(in srgb,var(--accent) 12%,transparent);color:var(--accent)}.uc-name{font-size:14px;font-weight:700;margin-bottom:2px}.uc-uc{font-size:14px;color:var(--fg-primary);margin-bottom:4px}.uc-who{font-size:12px;color:var(--fg-tertiary)}.uc-cta{display:inline-flex;align-items:center;gap:6px;font-size:13px;font-weight:600;color:var(--accent)}.live-snap{margin-bottom:40px}.ls-title{font-size:22px;font-weight:700;margin:4px 0 16px;letter-spacing:-.01em}.cta-strip{display:flex;align-items:center;justify-content:space-between;gap:24px;padding:28px 32px;border-radius:var(--r-lg);border:1px solid var(--border);background:radial-gradient(500px 200px at 100% 50%,color-mix(in srgb,var(--accent) 14%,transparent),transparent 70%),var(--bg-surface);flex-wrap:wrap;box-shadow:var(--shadow-sm)}.cta-text h3{font-size:20px;font-weight:700;margin:0 0 4px}.cta-text p{font-size:14px;color:var(--fg-secondary);margin:0}.cta-actions{display:flex;gap:10px;flex-wrap:wrap}.cfg-type-tabs{display:flex;gap:6px;padding:14px 32px 0;max-width:1480px;margin:0 auto;flex-wrap:wrap}.cfg-type-tab{display:inline-flex;align-items:center;gap:8px;padding:9px 16px;background:var(--bg-surface);border:1.5px solid var(--border);border-radius:var(--r-pill);color:var(--fg-secondary);font-size:var(--t-md);font-weight:600;cursor:pointer;transition:all .15s;white-space:nowrap}.cfg-type-tab:hover{border-color:var(--border-strong);color:var(--fg-primary)}.cfg-type-tab.active{background:var(--accent);border-color:var(--accent);color:#fff;box-shadow:var(--shadow-pink)}.cfg-type-tab-ic{opacity:.8;display:flex}.cfg-type-tab.active .cfg-type-tab-ic{opacity:1}.cfg-type-tab-code{font-family:var(--font-mono);font-size:10.5px;padding:1px 6px;border-radius:var(--r-pill);background:#ffffff2e;color:#fff}.cfg-dev-toolbar{display:flex;align-items:center;gap:14px;padding:14px 22px;border-bottom:1px solid var(--border);background:var(--bg-surface-2);flex-wrap:wrap}.cfg-dev-toolbar-label{font-family:var(--font-mono);font-size:var(--t-xs);letter-spacing:.08em;text-transform:uppercase;color:var(--fg-tertiary);font-weight:600}.cfg-bulk-input{width:64px;padding:6px 10px;background:var(--bg-input);border:1.5px solid var(--border-input);border-radius:var(--r-pill);font-family:var(--font-mono);font-size:var(--t-md);font-weight:600;text-align:center;outline:none;transition:border-color .15s,box-shadow .15s;color:var(--fg-primary)}.cfg-bulk-input:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}.cfg-divider-v{width:1px;height:20px;background:var(--border)}.cfg-avail-row{display:flex;align-items:center;gap:8px}.cfg-avail-label{font-size:var(--t-sm);color:var(--fg-secondary);font-weight:500}.cfg-avail-chip{display:inline-flex;align-items:center;gap:6px;padding:3px 10px;border-radius:var(--r-pill);background:var(--accent-soft);font-family:var(--font-mono);font-size:var(--t-xs);font-weight:600;color:var(--accent)}.cfg-avail-key{color:var(--fg-tertiary);font-weight:500;margin-right:2px}.cfg-dev-stage{position:relative;display:grid;gap:32px;padding:28px 24px 32px;background:radial-gradient(700px 280px at 50% -10%,color-mix(in srgb,var(--accent) 6%,transparent),transparent 70%),var(--bg-surface);border-bottom:1px dashed var(--border);justify-content:center}.cfg-dev-stage.cols-1{grid-template-columns:280px}.cfg-dev-stage.cols-2{grid-template-columns:1fr 1fr;max-width:680px;margin:0 auto}.cfg-dev-slot-card{display:flex;flex-direction:column;align-items:center;gap:14px;padding:12px 8px;border-radius:var(--r-lg);transition:background .18s}.cfg-dev-slot-card.is-empty:hover{background:color-mix(in srgb,var(--accent) 4%,transparent)}.cfg-dev-slot-card.has-error{background:color-mix(in srgb,var(--status-fail, #DC2626) 6%,transparent);outline:1.5px solid var(--status-fail, #DC2626);outline-offset:-1.5px;border-radius:var(--r-lg)}.cfg-dev-slot-err{display:flex;align-items:center;gap:6px;font-size:var(--t-xs);font-weight:600;color:var(--status-fail, #DC2626);text-align:center;margin-top:6px;padding:6px 10px;background:color-mix(in srgb,var(--status-fail, #DC2626) 10%,transparent);border-radius:var(--r-md);max-width:220px;line-height:1.35}.cfg-dev-slot-tag{display:inline-flex;align-items:center;gap:8px;padding:4px 12px;border-radius:var(--r-pill);background:var(--bg-surface-2);border:1px solid var(--border);font-family:var(--font-mono);font-size:var(--t-xs);letter-spacing:.06em;font-weight:600;color:var(--fg-secondary)}.cfg-role-dot{width:6px;height:6px;border-radius:var(--r-pill);background:var(--accent)}.cfg-phone{position:relative;width:196px;height:400px;border-radius:38px;background:linear-gradient(160deg,#1c1c22,#0a0a10);padding:9px;box-shadow:0 30px 60px -20px #0d0c2259,0 14px 28px -16px #0d0c224d,inset 0 0 0 1.5px #ffffff0f}.cfg-phone-screen{width:100%;height:100%;border-radius:30px;background:linear-gradient(180deg,#fafafd,#efeff4);position:relative;overflow:hidden;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px}.cfg-phone-notch{position:absolute;top:0;left:50%;transform:translate(-50%);width:96px;height:22px;background:#0a0a10;border-radius:0 0 18px 18px;z-index:2}.cfg-phone-screen:before{content:"";position:absolute;top:36px;right:24px;bottom:80px;left:24px;background-image:repeating-linear-gradient(135deg,rgba(13,12,34,.04) 0px,rgba(13,12,34,.04) 6px,transparent 6px,transparent 14px);border-radius:12px;opacity:.7}.cfg-phone-label{position:absolute;top:50px;left:24px;right:24px;font-family:var(--font-mono);font-size:10px;color:var(--fg-quaternary);text-align:center;letter-spacing:.06em;text-transform:uppercase;z-index:1}[data-theme=dark] .cfg-phone-screen{background:linear-gradient(180deg,#1e2530,#1a2030)}.cfg-dev-pick-cta{position:relative;z-index:3;display:flex;align-items:center;gap:8px;padding:11px 18px;background:var(--bg-surface);border:1.5px solid var(--border);border-radius:var(--r-pill);color:var(--fg-primary);font-size:var(--t-md);font-weight:600;cursor:pointer;box-shadow:var(--shadow-md);transition:all .18s}.cfg-dev-pick-cta:hover{border-color:var(--accent);color:var(--accent);transform:translateY(-1px);box-shadow:0 8px 24px #ea4c8938}.cfg-dev-pick-cta svg{color:var(--accent)}.cfg-dev-filled{position:relative;z-index:3;display:flex;flex-direction:column;gap:4px;padding:10px 14px;min-width:160px;background:var(--bg-surface);border:1.5px solid var(--accent);border-radius:var(--r-md);box-shadow:0 6px 18px #ea4c8933;cursor:pointer}.cfg-dev-filled-row{display:flex;align-items:center;gap:8px}.cfg-dev-state{width:8px;height:8px;border-radius:var(--r-pill);flex-shrink:0;background:var(--status-idle)}.cfg-dev-online{background:var(--status-pass);box-shadow:0 0 0 2px color-mix(in srgb,var(--status-pass) 30%,transparent)}.cfg-dev-busy{background:var(--status-cancel)}.cfg-dev-offline{background:var(--status-fail)}.cfg-dev-filled-name{font-size:var(--t-md);font-weight:600}.cfg-dev-filled-meta{font-family:var(--font-mono);font-size:10.5px;color:var(--fg-tertiary)}.cfg-dev-filled-os{margin-left:auto;font-family:var(--font-mono);font-size:9.5px;color:var(--fg-tertiary);background:var(--bg-surface-2);padding:2px 6px;border-radius:var(--r-pill)}.cfg-dev-slot-card.is-filled .cfg-phone-screen{background:linear-gradient(180deg,color-mix(in srgb,var(--accent) 6%,#fafafd),color-mix(in srgb,var(--accent) 3%,#efeff4))}.cfg-dev-slot-card.is-filled .cfg-phone{box-shadow:0 30px 60px -20px #ea4c8940,0 14px 28px -16px #ea4c8933,inset 0 0 0 1.5px #ffffff0f}.cfg-role-tag{display:inline-flex;align-items:center;padding:2px 10px;border-radius:var(--r-pill);font-family:var(--font-mono);font-size:var(--t-xs);font-weight:600;background:var(--bg-surface-2);border:1px solid var(--border);color:var(--fg-secondary)}.cfg-role-tag.mo{background:color-mix(in srgb,var(--status-progress) 12%,transparent);color:var(--status-progress);border-color:color-mix(in srgb,var(--status-progress) 28%,transparent)}.cfg-role-tag.mt{background:color-mix(in srgb,#A78BFA 14%,transparent);color:#7c5cf3;border-color:color-mix(in srgb,#A78BFA 28%,transparent)}.cfg-role-tag.verify{background:color-mix(in srgb,var(--status-cancel) 14%,transparent);color:var(--status-cancel);border-color:color-mix(in srgb,var(--status-cancel) 28%,transparent)}.cfg-col-step{font-family:var(--font-mono);font-weight:700;color:var(--accent);width:60px}.cfg-col-time{font-family:var(--font-mono);color:var(--fg-secondary);width:130px}.cfg-bulk-pick-remove{display:inline-flex;align-items:center;justify-content:center;width:24px;height:24px;background:transparent;color:var(--fg-tertiary);border:1.5px solid var(--border);border-radius:50%;font-size:14px;font-weight:700;line-height:1;cursor:pointer;transition:color .15s,border-color .15s,background .15s,transform .1s}.cfg-bulk-pick-remove:hover:not(:disabled){color:var(--status-fail, #DC2626);border-color:var(--status-fail, #DC2626);background:color-mix(in srgb,var(--status-fail, #DC2626) 8%,transparent)}.cfg-bulk-pick-remove:active:not(:disabled){transform:scale(.92)}.cfg-bulk-pick-remove:disabled{opacity:.35;cursor:not-allowed}.cfg-checkbox-row{display:flex;align-items:center;gap:10px;padding:10px 14px;background:var(--bg-surface-2);border:1px solid var(--border);border-radius:var(--r-md);cursor:pointer;font-size:var(--t-md);font-weight:500}.cfg-checkbox-row input{accent-color:var(--accent);width:16px;height:16px}.cfg-art-list{display:flex;flex-direction:column;gap:8px}.art-chip-label{font-family:var(--font-mono);font-size:var(--t-sm);font-weight:600;flex:1}.art-chip-desc{font-size:var(--t-xs);color:var(--fg-tertiary);font-family:var(--font-mono);margin-left:auto}.art-chip{width:100%;text-align:left}.cfg-art-matrix{width:100%;border-collapse:separate;border-spacing:0;font-size:var(--t-md)}.cfg-art-matrix th,.cfg-art-matrix td{padding:12px 14px;border-bottom:1px solid var(--border);text-align:center}.cfg-art-matrix thead th{font-size:var(--t-xs);font-weight:600;color:var(--fg-tertiary);text-transform:uppercase;letter-spacing:.08em;font-family:var(--font-mono);background:var(--bg-surface-2)}.cfg-art-matrix thead th:first-child{text-align:left}.cfg-art-matrix tbody th{text-align:left;font-family:var(--font-mono);font-weight:600;color:var(--fg-secondary)}.cfg-art-matrix tbody tr:hover td{background:color-mix(in srgb,var(--accent) 4%,transparent)}.cfg-matrix-check{width:20px;height:20px;border:1.5px solid var(--border-strong);border-radius:5px;display:inline-grid;place-items:center;background:var(--bg-surface);cursor:pointer;transition:all .14s}.cfg-matrix-check.on{background:var(--accent);border-color:var(--accent);color:#fff}.cfg-matrix-check:not(.on) svg{visibility:hidden}.cfg-banner{display:flex;align-items:flex-start;gap:10px;padding:14px 16px;border-radius:var(--r-md);font-size:var(--t-sm);background:var(--accent-soft);border:1px solid var(--accent-strong);color:var(--fg-secondary)}.cfg-banner svg{color:var(--accent);flex-shrink:0;margin-top:2px}.cfg-banner b{display:block;margin-bottom:2px;color:var(--accent)}.cfg-modal-shade{position:fixed;top:0;right:0;bottom:0;left:0;background:#0d0c2273;backdrop-filter:blur(2px);-webkit-backdrop-filter:blur(2px);display:flex;align-items:center;justify-content:center;z-index:50}.cfg-modal{width:480px;max-width:calc(100vw - 32px);background:var(--bg-surface);border-radius:var(--r-lg);box-shadow:var(--shadow-lg);overflow:hidden;border:1px solid var(--border)}.cfg-modal-head{display:flex;align-items:center;justify-content:space-between;padding:18px 22px;border-bottom:1px solid var(--border)}.cfg-modal-head h3{margin:0;font-size:var(--t-lg);font-weight:700}.cfg-modal-close{width:30px;height:30px;border-radius:var(--r-pill);background:transparent;border:0;display:grid;place-items:center;color:var(--fg-tertiary);cursor:pointer}.cfg-modal-close:hover{background:var(--bg-hover);color:var(--fg-primary)}.cfg-dev-option{width:100%;display:flex;align-items:center;gap:12px;padding:14px 22px;background:transparent;border:0;border-bottom:1px solid var(--border);cursor:pointer;text-align:left;transition:background .12s}.cfg-dev-option:hover{background:var(--bg-hover)}.cfg-dev-option:last-child{border-bottom:0}.cfg-dev-option-main{flex:1}.cfg-dev-option-name{font-size:var(--t-md);font-weight:600}.cfg-dev-option-meta{font-family:var(--font-mono);font-size:var(--t-xs);color:var(--fg-tertiary);margin-top:3px}.cfg-dev-option-os{font-family:var(--font-mono);font-size:10.5px;background:var(--bg-surface-2);padding:3px 8px;border-radius:var(--r-pill);color:var(--fg-tertiary);font-weight:500}.summary-row{display:flex;justify-content:space-between;align-items:baseline;font-size:var(--t-md)}.summary-row .lbl{color:var(--fg-tertiary)}.summary-row .val{font-weight:700}.cfg-summary{position:sticky;top:88px}.cfg-action-tl{display:flex;flex-direction:column;gap:8px}.cfg-tl-node{display:flex;align-items:center;gap:10px;padding:9px 12px;background:var(--bg-surface-2);border:1px solid var(--border);border-radius:var(--r-pill);font-size:var(--t-sm)}.cfg-tl-dot{width:16px;height:16px;border-radius:var(--r-pill);background:var(--bg-surface);border:1.5px solid var(--border-strong);flex-shrink:0}.cfg-tl-edge{width:1px;height:8px;background:var(--border);margin-left:19px;display:block}.tag-accent{background:var(--accent-soft);color:var(--accent);border-color:var(--accent-strong)}@media (max-width: 1100px){.app{grid-template-columns:66px 1fr}.nav-label,.brand-text,.user-pill>div:not(.avatar){display:none}.brand-logo{height:22px}.grid-12{grid-template-columns:1fr}.col-5,.col-7,.col-12{grid-column:1 / -1}.cfg-grid,.session-grid,.art-layout.with-preview{grid-template-columns:1fr}.launchpad{grid-template-columns:repeat(2,1fr)}.catalog-grid{grid-template-columns:1fr}}.dev-testing{background:var(--status-progress)}.dev-disconnected{background:var(--status-fail)}.dev-uninitialized,.dev-unauthorized{background:var(--status-cancel)}.dev-pending{background:var(--status-finalizing)}.d-chip{display:inline-flex;align-items:center;gap:5px;font-family:var(--font-mono);font-size:11px;font-weight:600;letter-spacing:.04em;color:var(--dchip)}.d-chip-dot{width:6px;height:6px;border-radius:50%;background:var(--dchip);flex-shrink:0}.bchip{display:inline-block;padding:2px 8px;border-radius:var(--r-pill);font-size:var(--t-xs);font-weight:600;letter-spacing:.03em}.bchip-avail{background:#22c55e1f;color:#16a34a}.bchip-res{background:#3b82f61f;color:#2563eb}.bchip-na{background:#94a3b826;color:var(--fg-tertiary)}.act-inline{display:flex;align-items:center;gap:1px}.act-ic-hist{color:var(--fg-tertiary)}.act-ic-hist:hover{color:var(--accent);background:var(--accent-soft)}.act-ic-info{color:var(--fg-tertiary)}.act-ic-info:hover{color:var(--accent);background:var(--accent-soft)}.act-ic-warn{color:#d97706}.act-ic-warn:hover{background:#d977061a}.act-ic-del{color:#ef4444}.act-ic-del:hover{background:#ef44441a}.pagination{display:flex;align-items:center;justify-content:space-between;padding:10px 20px;border-top:1px solid var(--border);font-size:var(--t-sm);color:var(--fg-secondary)}.pag-controls{display:flex;align-items:center;gap:8px}.pag-rows{display:flex;align-items:center;gap:6px;color:var(--fg-tertiary)}.pag-rows .input{padding:3px 8px;font-size:var(--t-sm);width:auto}.pag-pages{font-size:var(--t-sm);color:var(--fg-tertiary);min-width:44px;text-align:center}.ic-btn:disabled{opacity:.35;cursor:not-allowed;pointer-events:none}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:200;background:#00000073;display:flex;align-items:center;justify-content:center;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.modal-box{background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--r-lg);box-shadow:var(--shadow-lg);width:560px;max-width:92vw;max-height:80vh;display:flex;flex-direction:column}.modal-sm{width:420px}.modal-head{display:flex;align-items:center;justify-content:space-between;padding:16px 20px;border-bottom:1px solid var(--border);font-weight:700;font-size:var(--t-base)}.modal-body{padding:20px;overflow-y:auto;flex:1}.modal-body p{margin:0;color:var(--fg-secondary);line-height:1.6}.modal-foot{display:flex;justify-content:flex-end;gap:8px;padding:14px 20px;border-top:1px solid var(--border)}.btn-danger{background:#ef4444;border-color:#ef4444;color:#fff}.btn-danger:hover{background:#dc2626;border-color:#dc2626;box-shadow:0 4px 12px #ef44444d}.empty-hint{padding:32px;text-align:center;color:var(--fg-tertiary);font-size:var(--t-md)}.dri-box{width:640px}.dri-section-lbl{font-size:var(--t-xs);font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:var(--fg-tertiary);padding-bottom:6px;border-bottom:1px solid var(--border);margin-bottom:10px}.dri-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px}.dri-cell{display:flex;flex-direction:column;gap:3px;padding:8px 10px;border-radius:var(--r-sm);background:var(--bg-base);border:1px solid var(--border)}.dri-lbl{font-size:var(--t-xs);color:var(--fg-tertiary);text-transform:uppercase;letter-spacing:.05em}.ctrl-health-bar{display:flex;gap:12px;margin-bottom:16px;flex-wrap:wrap}.ctrl-hb-tile{flex:1;min-width:90px;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:14px 12px;border-radius:var(--r-md);border:1px solid var(--border);background:var(--bg-surface);gap:4px}.ctrl-hb-val{font-size:1.6rem;font-weight:700;line-height:1}.ctrl-hb-lbl{font-size:var(--t-sm);color:var(--fg-secondary);text-align:center}.ctrl-hb-ready .ctrl-hb-val{color:var(--status-pass)}.ctrl-hb-busy .ctrl-hb-val{color:var(--status-progress)}.ctrl-hb-unr .ctrl-hb-val{color:var(--status-fail)}.ctrl-hb-pend .ctrl-hb-val{color:var(--status-finalizing)}.ctrl-hb-quar .ctrl-hb-val{color:var(--status-cancel)}.ctrl-hb-total .ctrl-hb-val{color:var(--fg-primary)}.appr-badge{display:inline-block;padding:2px 8px;border-radius:99px;font-size:var(--t-xs);font-weight:600;letter-spacing:.02em}.appr-ok{background:#10b98126;color:#10b981}.appr-pend{background:#f59e0b26;color:#f59e0b}.appr-quar{background:#ef444426;color:#ef4444}.appr-susp{background:#94a3b826;color:var(--fg-secondary)}.appr-rej{background:#ef44441a;color:#ef4444}.rdy-badge{display:inline-block;padding:2px 8px;border-radius:4px;font-size:var(--t-xs);font-weight:700;letter-spacing:.03em}.rdy-ok{background:#10b9811f;color:#10b981;border:1px solid rgba(16,185,129,.3)}.rdy-busy{background:#3f8cff1f;color:var(--accent);border:1px solid rgba(63,140,255,.3)}.rdy-unr{background:#ef44441a;color:#ef4444;border:1px solid rgba(239,68,68,.25)}.bat-bar-wrap{display:flex;align-items:center;gap:6px;min-width:80px}.bat-bar{height:6px;border-radius:3px;flex:1;max-width:54px;transition:width .3s}.bat-hi{background:#10b981}.bat-mid{background:#f59e0b}.bat-lo{background:#ef4444}.bat-pct{font-size:var(--t-xs);color:var(--fg-secondary);white-space:nowrap}.ctrl-dev-cell{display:flex;align-items:center;gap:8px}.ctrl-dev-name{font-weight:600}.ctrl-dev-sn{font-size:var(--t-xs)}.ctrl-live-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0;background:var(--status-pass);box-shadow:0 0 #10b98166;animation:livePulse 1.8s ease-out infinite}.clog-chip{display:inline-block;padding:2px 7px;border-radius:4px;font-size:var(--t-xs);font-weight:600}.clog-ok{background:#10b9811f;color:#10b981}.clog-active{background:#3f8cff1f;color:var(--accent)}.clog-fail{background:#ef44441a;color:#ef4444}.clog-pend{background:#f59e0b1f;color:#f59e0b}.row-selected{background:color-mix(in srgb,var(--accent) 6%,transparent)}.ctrl-drawer-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:150;background:#0000004d;-webkit-backdrop-filter:blur(1px);backdrop-filter:blur(1px);display:flex;justify-content:flex-end}.ctrl-drawer{width:480px;max-width:96vw;height:100%;background:var(--bg-surface);border-left:1px solid var(--border);box-shadow:-8px 0 32px #0000002e;display:flex;flex-direction:column;overflow:hidden;animation:drawerSlideIn .2s ease-out}@keyframes drawerSlideIn{0%{transform:translate(100%)}to{transform:translate(0)}}.ctrl-drawer-head{display:flex;align-items:flex-start;justify-content:space-between;padding:18px 20px 14px;border-bottom:1px solid var(--border)}.ctrl-drawer-title{font-size:var(--t-lg);font-weight:700}.ctrl-drawer-sub{font-size:var(--t-sm);color:var(--fg-secondary);margin-top:2px}.ctrl-drawer-body{flex:1;overflow-y:auto;padding:20px;display:flex;flex-direction:column;gap:18px}.ctrl-meta-grid{display:grid;grid-template-columns:1fr 1fr 1fr;gap:12px}.ctrl-meta-item{display:flex;flex-direction:column;gap:2px;padding:10px 12px;border-radius:var(--r-sm);background:var(--bg-base);border:1px solid var(--border)}.ctrl-meta-lbl{font-size:var(--t-xs);color:var(--fg-tertiary);text-transform:uppercase;letter-spacing:.05em}.ctrl-status-row{display:flex;gap:16px;flex-wrap:wrap}.ctrl-status-row>div{display:flex;align-items:center;gap:8px}.ctrl-section-lbl{font-size:var(--t-xs);font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:var(--fg-tertiary);padding-bottom:4px;border-bottom:1px solid var(--border)}.ctrl-warn-banner{display:flex;align-items:center;gap:8px;padding:8px 12px;border-radius:var(--r-sm);background:#f59e0b1a;border:1px solid rgba(245,158,11,.3);color:#f59e0b;font-size:var(--t-sm)}.ctrl-cmd-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.ctrl-cmd-btn{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;padding:12px 8px;border-radius:var(--r-md);border:1px solid var(--border);background:var(--bg-base);cursor:pointer;transition:all .15s;font-size:var(--t-sm);font-weight:500;color:var(--fg-primary)}.ctrl-cmd-btn:hover:not(.ctrl-cmd-disabled){transform:translateY(-1px);box-shadow:0 4px 12px #0000001f}.ctrl-cmd-btn.ctrl-cmd-disabled{opacity:.4;cursor:not-allowed}.cmd-go{border-color:#10b98159;color:#10b981}.cmd-stop{border-color:#ef444459;color:#ef4444}.cmd-info{border-color:#3f8cff59;color:var(--accent)}.cmd-warn{border-color:#f59e0b59;color:#f59e0b}.cmd-dang{border-color:#ef444480;color:#ef4444;background:#ef44440d}.ctrl-toast{position:fixed;bottom:24px;left:50%;transform:translate(-50%);z-index:300;display:flex;align-items:center;gap:10px;padding:12px 20px;border-radius:var(--r-md);background:var(--bg-surface);border:1px solid var(--border);box-shadow:var(--shadow-lg);font-size:var(--t-sm);font-weight:500;animation:toastIn .2s ease-out}@keyframes toastIn{0%{opacity:0;transform:translate(-50%) translateY(8px)}to{opacity:1;transform:translate(-50%) translateY(0)}}.stg-tabs{display:flex;gap:4px;border-bottom:1px solid var(--border);margin-bottom:0;padding-bottom:0}.stg-tab{background:none;border:none;cursor:pointer;padding:9px 18px;font-size:var(--t-sm);font-weight:500;color:var(--fg-secondary);border-bottom:2px solid transparent;margin-bottom:-1px;border-radius:var(--r-sm) var(--r-sm) 0 0;transition:color .15s,border-color .15s}.stg-tab:hover{color:var(--fg-primary)}.stg-tab.active{color:var(--accent);border-bottom-color:var(--accent)}.stg-form-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}.stg-field{display:flex;flex-direction:column;gap:5px}.stg-lbl{font-size:var(--t-xs);font-weight:600;text-transform:uppercase;letter-spacing:.06em;color:var(--fg-tertiary)}.stg-input{background:var(--bg-base);border:1px solid var(--border);border-radius:var(--r-sm);padding:7px 10px;font-size:var(--t-sm);color:var(--fg-primary);font-family:inherit;outline:none;width:100%}.stg-input:focus{border-color:var(--accent)}.stg-input[readonly]{opacity:.65;cursor:default}.apk-chip{display:inline-flex;align-items:center;font-size:var(--t-xs);font-weight:700;text-transform:uppercase;letter-spacing:.06em;padding:2px 8px;border-radius:999px}.apk-current{background:#10b98126;color:#10b981}.apk-supported{background:#3f8cff1f;color:var(--accent)}.apk-depr{background:#f59e0b1f;color:#f59e0b}.apk-blocked{background:#ef44441f;color:#ef4444}.stg-flag-check{display:flex;align-items:center;gap:6px;font-size:var(--t-sm);cursor:pointer}.stg-flag-check input{cursor:pointer;accent-color:var(--accent)}.stg-notif-row{display:flex;align-items:center;justify-content:space-between;padding:12px 0;border-bottom:1px solid var(--border)}.stg-notif-row:last-child{border-bottom:none}.stg-notif-lbl{font-size:var(--t-sm);font-weight:600;color:var(--fg-primary)}.stg-notif-sub{font-size:var(--t-xs);color:var(--fg-tertiary);margin-top:2px}.stg-toggle{position:relative;width:40px;height:22px;border-radius:999px;border:none;cursor:pointer;background:var(--border);transition:background .2s;flex-shrink:0}.stg-toggle.on{background:var(--accent)}.stg-toggle-knob{position:absolute;top:3px;left:3px;width:16px;height:16px;border-radius:50%;background:#fff;transition:transform .2s;display:block}.stg-toggle.on .stg-toggle-knob{transform:translate(18px)}.stg-stor-grid{display:flex;flex-direction:column;gap:14px}.stg-stor-row{display:grid;grid-template-columns:140px 1fr 110px;align-items:center;gap:12px}.stg-stor-lbl{font-size:var(--t-sm);color:var(--fg-secondary)}.stg-stor-bar-wrap{height:6px;border-radius:999px;background:var(--bg-base);border:1px solid var(--border);overflow:hidden}.stg-stor-bar{height:100%;background:var(--accent);border-radius:999px}.stg-stor-num{font-size:var(--t-xs);color:var(--fg-tertiary);text-align:right}.stg-support-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}.stg-sup-tile{background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--r-lg);padding:20px}.stg-sup-icon{width:52px;height:52px;border-radius:var(--r-md);display:flex;align-items:center;justify-content:center;margin-bottom:14px}.stg-sup-tile-title{font-size:var(--t-base);font-weight:700;margin-bottom:6px}.stg-sup-tile-sub{font-size:var(--t-sm);color:var(--fg-secondary);margin-bottom:14px}.stg-sup-vlist{display:flex;flex-direction:column;gap:8px}.stg-sup-vrow{display:flex;align-items:center;gap:8px;padding:7px 10px;border-radius:var(--r-sm);background:var(--bg-base);border:1px solid var(--border);cursor:pointer}.stg-sup-vrow:hover{border-color:var(--accent)}.stg-sup-vdot{color:var(--accent);flex-shrink:0}.stg-sup-vtitle{font-size:var(--t-sm);flex:1}.stg-sup-vdur{font-size:var(--t-xs);color:var(--fg-tertiary)}.stg-faq-list{display:flex;flex-direction:column;gap:4px}.stg-faq-item{border:1px solid var(--border);border-radius:var(--r-sm);overflow:hidden}.stg-faq-q{display:flex;align-items:center;justify-content:space-between;gap:8px;width:100%;padding:9px 12px;background:none;border:none;cursor:pointer;font-size:var(--t-sm);font-weight:500;color:var(--fg-primary);text-align:left}.stg-faq-q:hover{background:var(--bg-base)}.stg-faq-a{padding:8px 12px 10px;font-size:var(--t-sm);color:var(--fg-secondary);background:var(--bg-base);border-top:1px solid var(--border);line-height:1.55}.rot90{transform:rotate(90deg)}.stg-sup-contact{display:flex;align-items:center;gap:12px;padding:12px;border-radius:var(--r-sm);background:var(--bg-base);border:1px solid var(--border);margin-bottom:12px}.stg-sup-avatar{width:40px;height:40px;border-radius:50%;background:var(--accent);color:#fff;display:flex;align-items:center;justify-content:center;font-size:var(--t-sm);font-weight:700;flex-shrink:0}.stg-sup-name{font-size:var(--t-sm);font-weight:700}.stg-sup-role{font-size:var(--t-xs);color:var(--fg-tertiary);margin-top:1px}.stg-sup-contact-links{display:flex;flex-direction:column;gap:8px;margin-bottom:12px}.stg-sup-link{display:flex;align-items:center;gap:8px;font-size:var(--t-sm);color:var(--accent);text-decoration:none}.stg-sup-link:hover{text-decoration:underline}.stg-sup-addr{display:flex;gap:8px;align-items:flex-start;font-size:var(--t-xs);color:var(--fg-secondary);line-height:1.5}.stg-sup-sent{padding:10px 14px;border-radius:var(--r-sm);background:#10b9811a;color:#10b981;font-size:var(--t-sm);font-weight:600;margin-top:8px}.stg-changelog{display:flex;flex-direction:column;gap:16px}.stg-cl-row{display:grid;grid-template-columns:140px 1fr;gap:16px;align-items:start}.stg-cl-meta{display:flex;flex-direction:column;gap:3px;padding-top:2px}.stg-cl-date{font-size:var(--t-xs);color:var(--fg-tertiary)}.stg-cl-list{margin:0;padding-left:18px}.stg-cl-list li{font-size:var(--t-sm);color:var(--fg-secondary);line-height:1.6;padding:1px 0}@media (max-width: 900px){.stg-support-grid,.stg-form-grid{grid-template-columns:1fr}.stg-stor-row{grid-template-columns:1fr 1fr}}.rt-page{padding:24px 32px 48px;max-width:1480px;margin:0 auto}.dash-routes{margin-top:56px}.rt-layout{display:grid;grid-template-columns:minmax(420px,1fr) minmax(520px,1.15fr);gap:20px;align-items:flex-start}@media (max-width: 1200px){.rt-layout{grid-template-columns:1fr}}.rt-list{display:flex;flex-direction:column;gap:12px;min-width:0}.rt-list-head{padding:0 4px 4px}.rt-card{display:flex;flex-direction:column;gap:10px;padding:18px;background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--r-lg);text-align:left;cursor:pointer;transition:border-color .12s ease,transform .12s ease,background .12s ease;position:relative}.rt-card:hover{border-color:var(--border-strong)}.rt-card-on{border-color:var(--accent);background:color-mix(in srgb,var(--accent) 6%,var(--bg-surface));box-shadow:0 0 0 1px var(--accent),0 6px 20px -8px color-mix(in srgb,var(--accent) 30%,transparent)}.rt-card-on:before{content:"";position:absolute;left:0;top:12px;bottom:12px;width:3px;border-radius:2px;background:var(--accent)}.rt-card-head{display:flex;align-items:center;gap:10px}.rt-id{color:var(--fg-tertiary);font-size:11px;margin-left:auto}.rt-card-name{font-size:16px;font-weight:600;letter-spacing:-.01em;color:var(--fg-primary)}.rt-card-desc{font-size:var(--t-md);color:var(--fg-secondary);line-height:1.5;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;text-wrap:pretty}.rt-card-meta{display:flex;gap:16px;padding-top:8px;border-top:1px solid var(--border);color:var(--fg-secondary)}.rt-meta-item{display:inline-flex;align-items:center;gap:6px;font-size:var(--t-sm)}.rt-meta-item svg{color:var(--fg-tertiary)}.rt-card-kpis{display:flex;flex-wrap:wrap;gap:6px}.rt-card-more{color:var(--fg-tertiary);font-size:var(--t-xs);align-self:center;font-family:var(--font-mono)}.rt-typechip{display:inline-flex;align-items:center;gap:6px;padding:2px 8px;border-radius:999px;font-family:var(--font-mono);font-size:10.5px;font-weight:600;letter-spacing:.06em;color:var(--chip);background:color-mix(in srgb,var(--chip) 14%,transparent);border:1px solid color-mix(in srgb,var(--chip) 30%,transparent)}.rt-detail-wrap{position:sticky;top:16px}.rt-detail{background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--r-lg);padding:22px;display:flex;flex-direction:column;gap:14px}.rt-detail-empty{align-items:center;justify-content:center;text-align:center;min-height:420px;color:var(--fg-tertiary)}.rt-detail-empty .empty-glyph{width:56px;height:56px;border-radius:999px;background:var(--bg-surface-2);display:grid;place-items:center;color:var(--fg-secondary)}.rt-detail-empty .empty-title{font-weight:500;color:var(--fg-secondary);margin-top:6px}.rt-detail-empty .empty-sub{font-size:var(--t-sm);color:var(--fg-tertiary)}.sk-spinner{width:56px;height:56px;border-radius:999px;background:var(--bg-surface-2);display:grid;place-items:center;color:var(--accent)}.rt-detail-head{display:flex;align-items:center;gap:10px}.rt-detail-name{font-size:22px;font-weight:600;letter-spacing:-.015em;margin:0;text-wrap:balance}.rt-detail-desc{margin:0;color:var(--fg-secondary);font-size:var(--t-md);line-height:1.55;text-wrap:pretty}.rt-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-top:4px}.rt-stat{padding:12px 14px;background:var(--bg-surface-2);border:1px solid var(--border);border-radius:var(--r-md)}.rt-stat-value{font-size:18px;font-weight:600;letter-spacing:-.01em;margin-top:4px;color:var(--fg-primary)}.rt-section-label{font-family:var(--font-mono);font-size:var(--t-xs);letter-spacing:.08em;color:var(--fg-tertiary);text-transform:uppercase;margin-top:4px}.rt-kpi-list{display:flex;flex-wrap:wrap;gap:6px}.rt-map{width:100%;height:340px;border-radius:var(--r-md);border:1px solid var(--border);background:var(--bg-surface-2);overflow:hidden;z-index:0}.rt-map .leaflet-control-zoom a{background:var(--bg-surface);border:1px solid var(--border)!important;color:var(--fg-primary)!important}.rt-map .leaflet-control-zoom a:hover{background:var(--bg-hover)}.rt-map .leaflet-bar{box-shadow:none}.rt-pin{display:grid!important;place-items:center;border-radius:999px;font-family:var(--font-mono);font-weight:700;font-size:11px;color:#fff;box-shadow:0 0 0 2px var(--bg-surface),0 2px 8px #00000059}.rt-pin-start{background:var(--accent)}.rt-pin-end{background:var(--status-pass)}.rt-pin-inner{line-height:22px}.rt-detail-foot{display:flex;gap:8px;justify-content:flex-end;padding-top:14px;margin-top:4px;border-top:1px solid var(--border)}.rt-card-sk{gap:8px;pointer-events:none}.sk-line{height:10px;border-radius:4px;background:linear-gradient(90deg,var(--bg-surface-2),var(--bg-hover),var(--bg-surface-2));background-size:200% 100%;animation:skshim 1.4s ease-in-out infinite}.sk-w-20{width:20%}.sk-w-30{width:30%}.sk-w-60{width:60%}.sk-w-80{width:80%}.sk-w-95{width:95%}@keyframes skshim{0%{background-position:200% 0}to{background-position:-200% 0}}.rt-error{display:flex;align-items:center;gap:14px;padding:18px;background:color-mix(in srgb,var(--status-fail) 7%,var(--bg-surface));border:1px solid color-mix(in srgb,var(--status-fail) 35%,var(--border));border-radius:var(--r-lg)}.rt-error-icon{width:36px;height:36px;border-radius:999px;background:color-mix(in srgb,var(--status-fail) 18%,transparent);color:var(--status-fail);display:grid;place-items:center;flex-shrink:0}.rt-error-text{flex:1}.rt-error-text b{display:block;font-size:var(--t-md);margin-bottom:2px}.rt-error-text p{margin:0;color:var(--fg-secondary);font-size:var(--t-sm)}.rt-toast{position:fixed;bottom:20px;right:20px;display:flex;align-items:center;gap:10px;padding:12px 16px;background:var(--bg-surface);border:1px solid var(--accent);border-left:4px solid var(--accent);border-radius:var(--r-md);box-shadow:0 10px 30px -10px #00000080;font-size:var(--t-md);z-index:100;animation:rtToastIn .24s ease-out}.rt-toast b{font-weight:600}.rt-toast .mono{color:var(--fg-tertiary);font-size:var(--t-sm)}@keyframes rtToastIn{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.report-shell{min-height:100vh;background:var(--bg-app);display:flex;flex-direction:column}.rep-context{position:sticky;top:0;z-index:30;background:var(--bg-elev);border-bottom:1px solid var(--border);padding:16px 32px 0;box-shadow:var(--shadow-xs)}.rep-ctx-top{display:flex;align-items:center;gap:12px;padding-bottom:14px;flex-wrap:wrap}.rep-back{display:inline-flex;align-items:center;gap:6px;padding:6px 12px;border-radius:var(--r-pill);background:transparent;border:0;color:var(--fg-tertiary);font-size:var(--t-md);cursor:pointer}.rep-back:hover{background:var(--bg-hover);color:var(--fg-primary)}.rep-title{font-size:20px;font-weight:700;margin:0;letter-spacing:-.02em}.rep-eye{color:var(--fg-tertiary);cursor:pointer;display:inline-grid;place-items:center}.rep-eye:hover{color:var(--accent)}.rep-ctx-actions{margin-left:auto;display:flex;gap:8px}.rep-tabs{display:flex;gap:0;border-top:1px solid var(--border)}.rep-tab{padding:12px 18px;background:transparent;border:0;border-bottom:2px solid transparent;color:var(--fg-tertiary);font-size:var(--t-md);font-weight:500;cursor:pointer;margin-bottom:-1px}.rep-tab:hover{color:var(--fg-primary)}.rep-tab.active{color:var(--accent);border-bottom-color:var(--accent);font-weight:700}.rep-tab .rep-tab-dot{display:inline-block;width:5px;height:5px;border-radius:50%;background:var(--accent);margin-left:6px;vertical-align:middle}.rep-body{padding:22px 32px 56px;max-width:1480px;width:100%;margin:0 auto;display:flex;flex-direction:column;gap:18px}.rep-meta-strip{display:grid;grid-template-columns:repeat(5,1fr);background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--r-lg);overflow:hidden;box-shadow:var(--shadow-sm)}.rep-meta-cell{padding:16px 20px;border-right:1px solid var(--border);display:flex;flex-direction:column;gap:6px;min-width:0}.rep-meta-cell:last-child{border-right:0}.rep-meta-label{font-size:var(--t-xs);color:var(--fg-tertiary);text-transform:uppercase;letter-spacing:.08em;font-family:var(--font-mono);font-weight:600}.rep-meta-val{font-size:var(--t-base);font-weight:600;color:var(--fg-primary)}.rep-meta-sub{font-size:var(--t-xs);color:var(--fg-tertiary);font-family:var(--font-mono)}.rep-meta-role{display:inline-flex;align-items:center;gap:6px;font-family:var(--font-mono);font-size:10px;padding:2px 7px;border-radius:var(--r-pill);background:var(--accent-soft);color:var(--accent);font-weight:700;width:fit-content}.rep-headline{display:grid;grid-template-columns:56px 1fr auto;gap:18px;align-items:center;padding:22px 24px;border-radius:var(--r-lg);border:1px solid var(--border);background:var(--bg-surface);box-shadow:var(--shadow-sm);border-left:4px solid var(--status-pass)}.rep-headline.fail{border-left-color:var(--status-fail)}.rep-hl-icon{width:56px;height:56px;border-radius:50%;display:grid;place-items:center;background:color-mix(in srgb,var(--status-pass) 15%,transparent);color:var(--status-pass)}.rep-headline.fail .rep-hl-icon{background:color-mix(in srgb,var(--status-fail) 15%,transparent);color:var(--status-fail)}.rep-hl-text h2{margin:0 0 4px;font-size:var(--t-lg);font-weight:700}.rep-hl-text p{margin:0;color:var(--fg-secondary);font-size:var(--t-md);text-wrap:pretty}.rep-hl-actions{display:flex;gap:8px}.rep-kpi-row{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}@media (max-width: 980px){.rep-kpi-row{grid-template-columns:repeat(2,1fr)}}@media (max-width: 540px){.rep-kpi-row{grid-template-columns:1fr}}.rep-kpi{position:relative;padding:18px 20px;background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--r-lg);box-shadow:var(--shadow-sm);transition:transform .15s,box-shadow .15s}.rep-kpi:hover{transform:translateY(-2px);box-shadow:var(--shadow-md)}.rep-kpi-label{font-size:10.5px;color:var(--fg-tertiary);text-transform:uppercase;letter-spacing:.08em;font-family:var(--font-mono);font-weight:700}.rep-kpi-val{font-size:30px;font-weight:800;letter-spacing:-.03em;margin-top:6px;line-height:1.05}.rep-kpi-sub{font-size:var(--t-xs);color:var(--fg-tertiary);margin-top:4px;font-family:var(--font-mono)}.rep-kpi-badge{position:absolute;top:12px;right:12px;font-family:var(--font-mono);font-size:10px;padding:1px 6px;border-radius:var(--r-pill);font-weight:700}.rep-kpi-badge.good{color:var(--kpi-good);background:color-mix(in srgb,var(--kpi-good) 12%,transparent)}.rep-kpi-badge.mod{color:var(--kpi-moderate);background:color-mix(in srgb,var(--kpi-moderate) 12%,transparent)}.rep-kpi-badge.bad{color:var(--kpi-bad);background:color-mix(in srgb,var(--kpi-bad) 12%,transparent)}.rep-kpi-spark{height:28px;margin-top:8px}.rep-kpi-spark svg{width:100%;height:100%;display:block}.rep-split{display:grid;grid-template-columns:minmax(0,.95fr) minmax(0,1.15fr);gap:16px}@media (max-width: 1180px){.rep-split{grid-template-columns:1fr}}.rep-iter-tiles{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}.rep-iter-tile{padding:12px 14px;background:var(--bg-surface-2);border:1px solid var(--border);border-radius:var(--r-md);text-align:center}.rep-iter-tile .v{font-size:22px;font-weight:800;letter-spacing:-.02em}.rep-iter-tile .l{font-size:var(--t-xs);color:var(--fg-tertiary);margin-top:2px;font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.06em}.rep-iter-tile.pass .v{color:var(--status-pass)}.rep-iter-tile.fail .v{color:var(--status-fail)}.rep-iter-tile.neut .v{color:var(--fg-secondary)}.rep-rat{display:flex;flex-direction:column;gap:14px}.rep-rat-row{display:grid;grid-template-columns:40px 1fr;align-items:center;gap:12px}.rep-rat-role{font-family:var(--font-mono);font-size:var(--t-xs);font-weight:700;color:var(--fg-secondary)}.rep-rat-bar{display:flex;height:28px;border-radius:var(--r-pill);overflow:hidden;background:var(--bg-surface-2);border:1px solid var(--border)}.rep-rat-seg{display:flex;align-items:center;padding:0 10px;font-family:var(--font-mono);font-size:10.5px;font-weight:700;color:#fff;white-space:nowrap;min-width:6px}.rep-rat-seg.rat-lte{background:#ea4c89}.rep-rat-seg.rat-5g-nsa{background:#a78bfa}.rep-rat-seg.rat-5g-sa{background:#6366f1}.rep-rat-seg.rat-other{background:#94a3b8}.rep-rat-legend{display:flex;gap:14px;padding-top:4px;font-size:var(--t-xs);color:var(--fg-tertiary);flex-wrap:wrap}.rep-rat-legend i{display:inline-block;width:10px;height:10px;border-radius:3px;margin-right:6px;vertical-align:middle}.rep-rat-legend i.rat-lte{background:#ea4c89}.rep-rat-legend i.rat-5g-nsa{background:#a78bfa}.rep-rat-legend i.rat-5g-sa{background:#6366f1}.rep-rat-legend i.rat-other{background:#94a3b8}.rep-map-card .card-body{padding:0}.rep-map-filters{display:grid;grid-template-columns:1fr 1fr;gap:8px;padding:14px 16px 12px;border-bottom:1px solid var(--border)}.rep-map-filter{display:flex;align-items:center;gap:6px;padding:7px 12px;background:var(--bg-input);border:1.5px solid var(--border-input);border-radius:var(--r-pill);cursor:pointer;font-size:var(--t-sm);color:var(--fg-secondary);-webkit-user-select:none;user-select:none;position:relative;min-height:34px}.rep-map-filter:hover{border-color:var(--accent)}.rep-map-filter .mf-chips{display:inline-flex;gap:4px;flex-wrap:wrap;flex:1}.rep-map-filter .mf-pill{display:inline-flex;align-items:center;gap:4px;padding:1px 7px;background:var(--accent);color:#fff;font-family:var(--font-mono);font-size:10px;font-weight:700;border-radius:var(--r-pill)}.rep-map-filter .mf-pill .x{cursor:pointer;opacity:.7}.rep-map-filter .mf-pill .x:hover{opacity:1}.rep-map-filter .mf-empty{color:var(--fg-tertiary);font-size:var(--t-sm)}.rep-map-filter .mf-caret{color:var(--fg-tertiary);margin-left:auto}.rep-map-wrap{position:relative;border-radius:0 0 var(--r-lg) var(--r-lg);overflow:hidden;isolation:isolate}.rep-map{width:100%;height:clamp(560px,70vh,820px);position:relative}.rep-map .leaflet-container{background:linear-gradient(180deg,#eef3f6,#e3e9ed);font-family:var(--font-mono)}.rep-map .leaflet-control-zoom a{background:#fffffff2;border:1px solid rgba(0,0,0,.06);color:var(--fg-primary);box-shadow:0 2px 8px #0f172a14}.rep-map .leaflet-control-zoom a:hover{background:#fff}.rep-map .leaflet-control-attribution{background:#ffffffc7;font-size:10px;padding:1px 6px}.rep-map-overlay{position:absolute;z-index:1100;background:#ffffffeb;backdrop-filter:blur(10px) saturate(140%);-webkit-backdrop-filter:blur(10px) saturate(140%);border:1px solid rgba(15,23,42,.08);border-radius:12px;box-shadow:0 6px 20px #0f172a1f,0 1px 3px #0f172a0f;font-family:var(--font-sans);pointer-events:auto}.rep-map-overlay-info{top:14px;left:14px;padding:10px 14px;display:flex;flex-direction:column;align-items:flex-start;gap:6px;max-width:min(520px,calc(100% - 260px))}.rmo-stats{display:flex;align-items:baseline;gap:14px;flex-wrap:wrap}.rmo-stat{display:inline-flex;align-items:baseline;gap:5px;font-family:var(--font-mono);white-space:nowrap}.rmo-stat b{font-size:16px;font-weight:700;color:var(--fg-primary);letter-spacing:-.01em}.rmo-stat em{font-style:normal;font-size:10.5px;color:var(--fg-tertiary);text-transform:uppercase;letter-spacing:.04em;font-weight:600}.rmo-stat.bad b,.rmo-stat.bad em{color:var(--status-fail, #DC2626)}.rmo-stat-planned b{color:#4b5c7a}.rmo-stat-planned em{color:#6b7b95}.rmo-plan-row{display:flex;flex-wrap:wrap;gap:6px;margin-top:6px;padding-top:8px;border-top:1px dashed rgba(15,23,42,.08)}.rmo-plan-pill{display:inline-flex;align-items:baseline;gap:5px;padding:3px 9px;font-family:var(--font-mono);border-radius:var(--r-pill);border:1px solid transparent;white-space:nowrap}.rmo-plan-pill b{font-size:12px;font-weight:700;letter-spacing:-.01em}.rmo-plan-pill em{font-style:normal;font-size:9.5px;text-transform:uppercase;letter-spacing:.06em;font-weight:600}.rmo-plan-pill.good{background:#22c55e1a;color:#15803d;border-color:#22c55e40}.rmo-plan-pill.mid{background:#f59e0b1f;color:#b45309;border-color:#f59e0b47}.rmo-plan-pill.bad{background:#ef44441a;color:#b91c1c;border-color:#ef444440}.rmo-plan-pill-quiet{background:#0f172a0a;color:var(--fg-secondary);border-color:#0f172a14}.rmo-source{display:inline-flex;align-items:center;gap:6px;padding:4px 10px;font-family:var(--font-mono);font-size:9.5px;font-weight:700;letter-spacing:.06em;border-radius:var(--r-pill);background:#0f172a0d;color:var(--fg-secondary);border:1px solid rgba(15,23,42,.08);cursor:help}.rmo-source-dot{width:6px;height:6px;border-radius:50%;background:var(--fg-tertiary)}.rmo-source-accent{background:#3f8cff1f;color:var(--accent, #3F8CFF);border-color:#3f8cff47}.rmo-source-accent .rmo-source-dot{background:var(--accent, #3F8CFF)}.rep-map-overlay-legend{top:14px;right:14px;padding:10px 14px;min-width:178px}.rmo-legend-title{font-size:10.5px;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--fg-tertiary);margin-bottom:8px;padding-bottom:6px;border-bottom:1px solid rgba(15,23,42,.06)}.rmo-legend-row{display:grid;grid-template-columns:12px 1fr auto;align-items:center;gap:9px;padding:3px 0;font-size:var(--t-sm);color:var(--fg-primary)}.rmo-legend-dot{width:10px;height:10px;border-radius:50%;box-shadow:0 0 0 1.5px #ffffffe6,0 0 0 2.5px #0f172a14}.rmo-legend-label{font-weight:600}.rmo-legend-value{font-family:var(--font-mono);font-size:10.5px;color:var(--fg-tertiary)}.rmo-legend-row-planned{margin-top:6px;padding-top:8px;border-top:1px solid rgba(15,23,42,.06)}.rmo-legend-swatch{display:inline-block;width:14px;height:0;border-top:2px dashed #6366F1}.rmo-legend-swatch-planned{opacity:.9}.planned-halo,.planned-core{transition:stroke .18s ease,stroke-opacity .18s ease,stroke-width .18s ease}.planned-hit{cursor:pointer}.planned-halo.is-hover{stroke-opacity:.32;stroke-width:13}.planned-core.is-hover{stroke:#7c5cff;stroke-opacity:1}.planned-wp{width:18px;height:18px;display:flex;align-items:center;justify-content:center;background:#fff;border:1.5px solid #6366F1;transform:rotate(45deg);box-shadow:0 1px 3px #6366f147,0 0 0 2px #ffffffd9;transition:transform .16s,box-shadow .16s}.planned-wp:hover{transform:rotate(45deg) scale(1.15);box-shadow:0 2px 6px #6366f173,0 0 0 2px #fffffff2}.planned-wp span{display:block;transform:rotate(-45deg);font-family:var(--font-mono);font-size:9px;font-weight:700;color:#4338ca;line-height:1}.planned-flag{position:relative;width:22px;height:22px;border-radius:4px;background:#fff;border:1.75px solid #6366F1;box-shadow:0 2px 6px #6366f152,0 0 0 2px #ffffffe6;display:grid;place-items:center;color:#4338ca}.planned-flag i{font-style:normal;font-size:10px;line-height:1;display:inline-block}.planned-flag b{position:absolute;top:100%;left:50%;transform:translate(-50%,2px);font-family:var(--font-mono);font-size:8px;font-weight:700;letter-spacing:.08em;color:#4338ca;background:#ffffffeb;padding:1px 4px;border-radius:3px;white-space:nowrap}.planned-flag.start:after{content:"";position:absolute;right:-6px;top:50%;transform:translateY(-50%);border-left:6px solid #6366F1;border-top:5px solid transparent;border-bottom:5px solid transparent}.planned-flag.end .chk{display:block;width:12px;height:12px;border-radius:1px;background:conic-gradient(#6366f1 0,#6366f1 25%,#fff 0,#fff 50%,#6366f1 0,#6366f1 75%,#fff 0)}.planned-flag-pulse{position:absolute;top:-3px;right:-3px;bottom:-3px;left:-3px;border-radius:6px;border:2px solid rgba(99,102,241,.55);opacity:0;pointer-events:none;animation:planned-flag-introduce 1.2s ease-out 3 forwards}@keyframes planned-flag-introduce{0%{transform:scale(1);opacity:.55}to{transform:scale(1.8);opacity:0}}.planned-tip.leaflet-tooltip{background:#4338caf5;color:#fff;border:0;border-radius:6px;padding:5px 9px;font-family:var(--font-mono);font-size:11px;font-weight:600;letter-spacing:.04em;box-shadow:0 6px 18px #4338ca61}.planned-tip.leaflet-tooltip:before{display:none}[data-theme=dark] .planned-wp{background:#1a2330;border-color:#8b8cff}[data-theme=dark] .planned-wp span{color:#c7c9ff}[data-theme=dark] .planned-flag{background:#1a2330;border-color:#8b8cff;color:#c7c9ff}[data-theme=dark] .planned-flag b{background:#1a2330eb;color:#c7c9ff}[data-theme=dark] .planned-flag.start:after{border-left-color:#8b8cff}[data-theme=dark] .planned-flag.end .chk{background:conic-gradient(#8b8cff 0,#8b8cff 25%,#1a2330 0,#1a2330 50%,#8b8cff 0,#8b8cff 75%,#1a2330 0)}[data-theme=dark] .planned-flag-pulse{border-color:#8b8cff8c}[data-theme=dark] .planned-tip.leaflet-tooltip{background:#6366f1eb;color:#f8faff;box-shadow:0 6px 18px #00000080}.rep-map-fit-btn{position:absolute;z-index:1100;bottom:22px;right:14px;display:inline-flex;align-items:center;gap:6px;padding:7px 12px;background:#fffffff2;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border:1px solid rgba(15,23,42,.1);border-radius:10px;font-family:var(--font-sans);font-size:12px;font-weight:600;color:var(--fg-primary);cursor:pointer;box-shadow:0 4px 12px #0f172a1a;transition:transform .15s ease,box-shadow .15s ease}.rep-map-fit-btn:hover{background:#fff;transform:translateY(-1px);box-shadow:0 6px 16px #0f172a24}.rep-map-fit-btn:active{transform:translateY(0)}.rep-map-fit-btn svg{stroke:var(--accent, #3F8CFF)}.rep-map-empty{padding:56px 24px;text-align:center;color:var(--fg-tertiary);background:linear-gradient(180deg,var(--bg-surface-2) 0%,var(--bg-secondary, #f3f4f6) 100%);border-radius:0 0 var(--r-lg) var(--r-lg);font-size:var(--t-sm)}.rep-map-empty-icon{display:inline-flex;align-items:center;justify-content:center;width:64px;height:64px;border-radius:50%;background:#0f172a0a;color:var(--fg-tertiary);margin-bottom:14px}.rep-map-empty-title{font-weight:700;font-size:15px;color:var(--fg-secondary);margin-bottom:6px}.rep-map-empty-sub{max-width:440px;margin:0 auto;line-height:1.5}.rep-tt{background:#0f172af2;color:#fff;border:0;padding:9px 12px;border-radius:8px;font-family:var(--font-sans);box-shadow:0 6px 18px #0f172a59}.rep-tt:before{border-top-color:#0f172af2!important}.rep-tt .rep-tt-title{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:#ffffffa6;margin-bottom:5px}.rep-tt .rep-tt-row{display:flex;justify-content:space-between;gap:14px;font-family:var(--font-mono);font-size:11.5px;line-height:1.6}.rep-tt .rep-tt-row span{color:#fff9}.rep-tt .rep-tt-row b{color:#fff;font-weight:700}.rep-tt .rep-tt-err{margin-top:5px;padding-top:5px;border-top:1px solid rgba(255,255,255,.12);font-size:11px;color:#fca5a5}.map-pin{width:30px;height:30px;border-radius:50% 50% 50% 0;border:2.5px solid #fff;transform:rotate(-45deg);box-shadow:0 4px 10px #0f172a59,0 1px 2px #0f172a2e;display:grid;place-items:center;color:#fff;font-family:var(--font-mono);font-size:11px;font-weight:800}.map-pin span{transform:rotate(45deg)}.map-pin-start{background:#10b981}.map-pin-end,.map-pin.end{background:#0f172a}.rep-map.live{height:clamp(520px,68vh,780px)}.rep-map-wrap.is-live .rep-map-overlay-info{padding:8px 12px;gap:10px}.live-marker-dot{width:16px;height:16px;border-radius:50%;background:var(--status-progress);border:2.5px solid #fff;position:relative;animation:live-pulse 1.8s ease-out infinite}.live-marker-ring{position:absolute;top:-7px;right:-7px;bottom:-7px;left:-7px;border-radius:50%;border:2px solid rgba(59,130,246,.35);animation:live-ring 1.8s ease-out infinite}@keyframes live-pulse{0%{box-shadow:0 0 #3b82f680}70%{box-shadow:0 0 0 10px #3b82f600}to{box-shadow:0 0 #3b82f600}}@keyframes live-ring{0%{transform:scale(1);opacity:.5}to{transform:scale(2.2);opacity:0}}.rep-matrix th{background:var(--bg-surface-2)}.rep-matrix .col-sm{width:60px}.rep-matrix .row-clk{cursor:pointer}.rep-matrix .num-cell{font-family:var(--font-mono);font-size:var(--t-sm)}.rep-matrix .row-fail td:first-child{box-shadow:inset 3px 0 0 var(--status-fail)}.rep-errors{display:flex;flex-direction:column;gap:10px}.rep-err-row{display:grid;grid-template-columns:160px 1fr 36px;align-items:center;gap:12px;font-size:var(--t-md)}.rep-err-name{color:var(--fg-secondary)}.rep-err-bar{height:8px;border-radius:var(--r-pill);background:var(--bg-surface-2);overflow:hidden;border:1px solid var(--border)}.rep-err-bar span{display:block;height:100%;background:var(--status-fail);border-radius:var(--r-pill)}.rep-err-row.zero .rep-err-bar span{background:color-mix(in srgb,var(--fg-tertiary) 30%,transparent)}.rep-err-num{text-align:right;font-family:var(--font-mono);font-weight:700}.rep-waterfall{display:flex;flex-direction:column;gap:8px}.rep-wf-row{display:grid;grid-template-columns:170px 1fr 70px;align-items:center;gap:12px;padding:6px 0;border-bottom:1px dashed var(--border)}.rep-wf-row:last-child{border-bottom:0}.rep-wf-name{font-size:var(--t-sm);font-weight:600;color:var(--fg-primary)}.rep-wf-sub{font-size:10.5px;color:var(--fg-tertiary);font-family:var(--font-mono);margin-top:1px}.rep-wf-track{position:relative;height:22px;border-radius:var(--r-md);background:var(--bg-surface-2);overflow:hidden;border:1px solid var(--border)}.rep-wf-fill{position:absolute;top:0;bottom:0;background:linear-gradient(90deg,var(--accent),color-mix(in srgb,var(--accent) 50%,transparent));border-radius:var(--r-md)}.rep-wf-ms{font-family:var(--font-mono);font-size:var(--t-sm);font-weight:700;text-align:right}.rep-multi-chart{width:100%;height:240px}.rep-multi-chart svg{width:100%;height:100%;display:block}.rep-multi-legend{display:flex;gap:16px;flex-wrap:wrap;padding:8px 4px 0;font-size:var(--t-xs);color:var(--fg-tertiary)}.rep-multi-legend i{display:inline-block;width:14px;height:3px;border-radius:2px;margin-right:6px;vertical-align:middle}.rep-multi-tabs{display:inline-flex;gap:2px;padding:3px;background:var(--bg-surface-2);border-radius:var(--r-pill);border:1px solid var(--border)}.rep-multi-tabs button{padding:4px 12px;background:transparent;border:0;border-radius:var(--r-pill);color:var(--fg-tertiary);font-family:var(--font-mono);font-size:11px;font-weight:700;cursor:pointer}.rep-multi-tabs button.active{background:var(--bg-surface);color:var(--accent);box-shadow:var(--shadow-xs)}.rep-two-up{display:grid;grid-template-columns:1fr 1fr;gap:16px}@media (max-width: 980px){.rep-two-up{grid-template-columns:1fr}}.rep-donut{display:flex;align-items:center;gap:18px}.rep-donut svg{flex-shrink:0}.rep-donut-legend{display:flex;flex-direction:column;gap:8px;flex:1;font-size:var(--t-sm)}.rep-donut-legend .row{display:grid;grid-template-columns:12px 1fr auto;align-items:center;gap:8px}.rep-donut-legend i{display:inline-block;width:12px;height:12px;border-radius:3px}.rep-donut-legend .v{font-family:var(--font-mono);font-weight:700}.rep-devices{display:grid;grid-template-columns:1fr 1fr;gap:12px}.rep-device{border:1px solid var(--border);border-radius:var(--r-md);background:var(--bg-surface-2);padding:14px}.rep-device .role{display:inline-flex;gap:6px;align-items:center;font-family:var(--font-mono);font-size:10.5px;font-weight:700;padding:2px 8px;border-radius:var(--r-pill);background:var(--accent-soft);color:var(--accent);margin-bottom:8px}.rep-device .nm{font-weight:700;font-size:var(--t-md)}.rep-device .os{color:var(--fg-tertiary);font-size:var(--t-xs);margin-top:2px;font-family:var(--font-mono)}.rep-device .pn{color:var(--fg-secondary);font-size:var(--t-sm);margin-top:8px;font-family:var(--font-mono)}.rep-device .udid{color:var(--fg-quaternary);font-size:10px;margin-top:2px;font-family:var(--font-mono)}.mf-pop{position:absolute;left:0;right:0;top:calc(100% + 4px);z-index:40;background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--r-md);box-shadow:var(--shadow-md);padding:6px;max-height:240px;overflow-y:auto}.mf-pop-row{display:flex;align-items:center;gap:8px;padding:7px 10px;border-radius:var(--r-sm);font-size:var(--t-sm);cursor:pointer;color:var(--fg-primary)}.mf-pop-row:hover{background:var(--bg-hover)}.mf-pop-row input{accent-color:var(--accent)}.mf-pop-row .sw{width:10px;height:10px;border-radius:3px}.sect-row{display:flex;align-items:center;justify-content:space-between;margin:0 0 12px}.mini-leg{font-size:var(--t-xs);color:var(--fg-tertiary);display:flex;gap:14px;flex-wrap:wrap;padding-top:6px}.mini-leg i{display:inline-block;width:10px;height:3px;margin-right:6px;vertical-align:middle}.sess-card{overflow:visible}.sess-subnav-row{display:flex;align-items:center;justify-content:space-between;padding:14px 20px 0;border-bottom:1px solid var(--border)}.sess-subnav{display:flex;gap:4px}.sess-subtab{padding:8px 16px;background:transparent;border:0;border-radius:var(--r-md) var(--r-md) 0 0;color:var(--fg-tertiary);font-size:var(--t-md);font-weight:500;cursor:pointer}.sess-subtab.active{background:var(--accent);color:#fff;font-weight:700}.sess-subnav-right{display:flex;align-items:center;gap:10px;padding-bottom:8px}.sess-pane{padding:18px 20px 22px}.sess-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:14px}.sess-head h3{margin:0;font-size:var(--t-md);font-weight:700}.sess-thresh{display:inline-flex;align-items:center;gap:6px;color:var(--accent);font-size:var(--t-sm);cursor:pointer;text-decoration:none;font-weight:600}.sess-filters{display:grid;gap:10px;margin-bottom:14px}.sess-filters.one{grid-template-columns:1fr}.sess-filters.two{grid-template-columns:1fr 1fr}.sess-filters.three{grid-template-columns:1fr 1fr 1fr}.mc-pill{position:relative;display:flex;align-items:center;gap:6px;padding:6px 12px;min-height:36px;background:var(--bg-input);border:1.5px solid var(--border-input);border-radius:var(--r-md);cursor:pointer;-webkit-user-select:none;user-select:none}.mc-pill:hover{border-color:var(--accent)}.mc-tags{display:inline-flex;gap:4px;flex-wrap:wrap;flex:1;align-items:center}.mc-chip{display:inline-flex;align-items:center;gap:4px;padding:2px 8px;background:var(--accent);color:#fff;font-size:11px;font-weight:600;border-radius:4px}.mc-chip .x{cursor:pointer;opacity:.85}.mc-chip .x:hover{opacity:1}.mc-more{font-size:11px;color:var(--fg-secondary);font-family:var(--font-mono)}.mc-empty{color:var(--fg-tertiary);font-size:var(--t-sm)}.mc-caret{color:var(--fg-tertiary);margin-left:auto}.sess-table th{background:var(--bg-surface-2)}.sess-table .cell-strong{font-weight:600}.sess-chart{width:100%}.sess-chart svg{width:100%;height:360px;display:block}.sess-chart-legend{display:flex;flex-wrap:wrap;gap:14px;padding:10px 4px 0;font-size:var(--t-xs);color:var(--fg-tertiary);font-family:var(--font-mono)}.sess-chart-legend i{display:inline-block;width:14px;height:3px;margin-right:6px;vertical-align:middle;border-radius:2px}.sess-map-legend{display:flex;gap:14px;padding-top:10px;flex-wrap:wrap;font-size:var(--t-xs);color:var(--fg-tertiary);font-family:var(--font-mono)}.sess-map-legend i{display:inline-block;width:12px;height:12px;border-radius:3px;margin-right:6px;vertical-align:middle}.sess-acc{display:flex;flex-direction:column;gap:10px}.sess-acc-row{border:1px solid var(--border);border-radius:var(--r-md);background:var(--bg-surface);overflow:hidden}.sess-acc-head{display:flex;align-items:center;gap:12px;padding:12px 16px;cursor:pointer}.sess-acc-head:hover{background:var(--bg-hover)}.sess-acc-head .nm{font-weight:600;flex:1}.acc-pill{padding:4px 14px;border-radius:4px;font-family:var(--font-mono);font-size:11px;font-weight:800;color:#fff}.acc-pill.pass{background:#22c55e}.acc-pill.fail{background:#ef4444}.sess-acc-body{border-top:1px solid var(--border);padding:0}.ev-table{width:100%;border-collapse:collapse;font-size:var(--t-sm)}.ev-table th,.ev-table td{padding:8px 14px;border-bottom:1px solid var(--border);text-align:left}.ev-table th{background:var(--bg-surface-2);font-size:10.5px;text-transform:uppercase;letter-spacing:.06em;color:var(--fg-tertiary);font-family:var(--font-mono);font-weight:700}.ev-table tr:last-child td{border-bottom:0}.ev-pill{display:inline-flex;padding:2px 8px;border-radius:var(--r-pill);font-family:var(--font-mono);font-size:10px;font-weight:700}.ev-pill.ev-success{background:color-mix(in srgb,var(--status-pass) 14%,transparent);color:var(--status-pass)}.ev-pill.ev-failure{background:color-mix(in srgb,var(--status-fail) 14%,transparent);color:var(--status-fail)}.ev-pill.ev-warning{background:color-mix(in srgb,var(--kpi-moderate) 14%,transparent);color:var(--kpi-moderate)}.ev-pill.ev-alert{background:color-mix(in srgb,#A78BFA 14%,transparent);color:#a78bfa}.ev-pill.ev-info{background:var(--bg-surface-2);color:var(--fg-tertiary)}.flip{transform:rotate(180deg);transition:transform .2s}.dp-page{padding:28px 32px;max-width:1480px;margin:0 auto}.dp-filter-bar{display:flex;gap:8px;align-items:center;margin-bottom:18px;flex-wrap:wrap}.dp-search{display:flex;align-items:center;gap:8px;padding:7px 14px 7px 12px;background:var(--bg-input);border:1.5px solid var(--border-input);border-radius:var(--r-pill);min-width:280px;color:var(--fg-tertiary);transition:border-color .15s,box-shadow .15s}.dp-search:focus-within{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}.dp-search input{background:transparent;border:0;outline:0;flex:1;font-size:var(--t-md);color:var(--fg-primary)}.dp-chip{display:inline-flex;align-items:center;gap:6px;padding:7px 14px;background:var(--bg-surface);border:1.5px solid var(--border);border-radius:var(--r-pill);color:var(--fg-secondary);font-size:var(--t-md);font-weight:500;cursor:pointer;transition:all .15s;white-space:nowrap}.dp-chip:hover{border-color:var(--border-strong);color:var(--fg-primary)}.dp-chip.on{background:var(--accent-soft);border-color:var(--accent);color:var(--accent)}.dp-chip svg{opacity:.7}.dp-view-toggle{display:inline-flex;padding:3px;background:var(--bg-surface);border:1.5px solid var(--border);border-radius:var(--r-pill);margin-left:auto}.dp-view-toggle button{width:30px;height:28px;background:transparent;border:0;border-radius:var(--r-pill);display:grid;place-items:center;color:var(--fg-tertiary);cursor:pointer;transition:background .14s,color .14s}.dp-view-toggle button.on{background:var(--accent);color:#fff}.dp-view-toggle button:not(.on):hover{color:var(--fg-primary)}.dp-status-row{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:18px}.dp-status-pill{display:inline-flex;align-items:center;gap:7px;padding:5px 12px;background:transparent;border:1.5px solid var(--border);border-radius:var(--r-pill);font-family:var(--font-mono);font-size:var(--t-xs);letter-spacing:.05em;font-weight:600;color:var(--fg-tertiary);cursor:pointer;transition:all .14s}.dp-status-pill .dot{width:6px;height:6px;border-radius:50%;background:var(--c, var(--fg-tertiary))}.dp-status-pill .ct{font-family:var(--font-mono);font-size:10px;padding:0 6px;border-radius:8px;background:var(--bg-surface-2);color:var(--fg-tertiary)}.dp-status-pill:hover{color:var(--fg-primary);border-color:var(--border-strong)}.dp-status-pill.on{background:color-mix(in srgb,var(--c, var(--accent)) 10%,transparent);border-color:var(--c, var(--accent));color:var(--c, var(--accent))}.dp-status-pill.on .ct{background:color-mix(in srgb,var(--c, var(--accent)) 18%,transparent);color:inherit}.dp-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(360px,1fr));gap:18px}.dp-card{background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--r-lg);overflow:hidden;box-shadow:var(--shadow-sm);transition:transform .2s,box-shadow .2s,border-color .15s;position:relative;display:flex;flex-direction:column}.dp-card:hover{transform:translateY(-3px);box-shadow:var(--shadow-md);border-color:var(--border-strong)}.dp-card-head{display:flex;align-items:flex-start;justify-content:space-between;gap:10px;padding:14px 16px 10px}.dp-card-name{font-size:var(--t-base);font-weight:700;line-height:1.25;letter-spacing:-.01em;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;text-wrap:pretty}.dp-card-version{font-family:var(--font-mono);font-size:10.5px;color:var(--fg-tertiary);margin-top:3px;letter-spacing:.04em}.dp-status-chip{display:inline-flex;align-items:center;gap:5px;padding:3px 8px;border-radius:var(--r-pill);font-family:var(--font-mono);font-size:10.5px;font-weight:700;letter-spacing:.04em;color:var(--c);background:color-mix(in srgb,var(--c) 12%,transparent);border:1px solid color-mix(in srgb,var(--c) 30%,transparent);white-space:nowrap;flex-shrink:0}.dp-status-chip .dot{width:5px;height:5px;border-radius:50%;background:var(--c)}.dp-status-chip.live .dot{animation:livePulse 1.6s infinite}.dp-thumb{position:relative;height:168px;margin:0 16px;border-radius:var(--r-md);overflow:hidden;border:1px solid var(--border);background:var(--bg-surface-2)}.dp-thumb .leaflet-container{background:var(--bg-surface-2)}.dp-thumb-overlay{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;background:linear-gradient(180deg,transparent 60%,color-mix(in srgb,var(--bg-surface) 70%,transparent))}.dp-thumb-corner{position:absolute;left:8px;bottom:8px;display:inline-flex;align-items:center;gap:8px;padding:4px 10px;background:color-mix(in srgb,var(--bg-surface) 80%,transparent);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);border:1px solid var(--border);border-radius:var(--r-pill);font-family:var(--font-mono);font-size:10.5px;color:var(--fg-secondary)}.dp-card-meta{display:grid;grid-template-columns:repeat(3,1fr);gap:4px;padding:12px 16px 4px}.dp-card-meta .lbl{font-size:10px;color:var(--fg-tertiary);font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.07em;font-weight:600}.dp-card-meta .val{font-size:var(--t-md);color:var(--fg-primary);font-weight:600;margin-top:2px}.dp-thresh-row{display:flex;gap:6px;flex-wrap:wrap;padding:8px 16px 4px}.dp-thresh{display:inline-flex;align-items:center;gap:5px;padding:2px 8px;background:var(--bg-surface-2);border:1px solid var(--border);border-radius:var(--r-sm);font-family:var(--font-mono);font-size:10.5px;color:var(--fg-secondary)}.dp-thresh:before{content:"";width:5px;height:5px;border-radius:50%;background:var(--status-pass)}.dp-thresh.warn:before{background:var(--status-cancel)}.dp-card-foot{display:flex;align-items:center;justify-content:space-between;padding:12px 16px;border-top:1px solid var(--border);background:var(--bg-surface-2);margin-top:auto}.dp-foot-author{display:flex;align-items:center;gap:8px;font-size:var(--t-sm);color:var(--fg-secondary)}.dp-foot-author .av{width:22px;height:22px;border-radius:50%;background:color-mix(in srgb,var(--accent) 15%,transparent);color:var(--accent);border:1.5px solid color-mix(in srgb,var(--accent) 30%,transparent);display:grid;place-items:center;font-size:9.5px;font-weight:700}.dp-foot-ts{color:var(--fg-tertiary);font-family:var(--font-mono);font-size:10.5px}.dp-foot-cta{display:inline-flex;align-items:center;gap:6px;padding:5px 12px;border-radius:var(--r-pill);font-size:var(--t-sm);font-weight:600;background:var(--accent);color:#fff;border:0;cursor:pointer;transition:all .15s;white-space:nowrap}.dp-foot-cta:hover{background:var(--accent-hover);box-shadow:var(--shadow-pink)}.dp-foot-cta.live:before{content:"";width:6px;height:6px;border-radius:50%;background:#fff;animation:livePulse 1.6s infinite}.dp-foot-cta.ghost{background:transparent;color:var(--accent);border:1.5px solid color-mix(in srgb,var(--accent) 35%,transparent)}.dp-foot-cta.ghost:hover{background:var(--accent-soft);border-color:var(--accent);box-shadow:none}.dp-hover-acts{position:absolute;top:12px;left:16px;display:flex;gap:4px;opacity:0;transform:translateY(-4px);transition:opacity .15s,transform .15s;pointer-events:none}.dp-card:hover .dp-hover-acts{opacity:1;transform:none;pointer-events:auto}.dp-hover-acts button{width:28px;height:28px;display:grid;place-items:center;background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--r-pill);color:var(--fg-secondary);cursor:pointer;box-shadow:var(--shadow-sm);transition:all .15s}.dp-hover-acts button:hover{color:var(--accent);border-color:var(--accent)}.dp-empty{padding:64px 20px;border:1.5px dashed var(--border-strong);border-radius:var(--r-lg);background:var(--bg-surface);text-align:center;display:flex;flex-direction:column;align-items:center;gap:14px}.dp-empty-illu{width:96px;height:96px;border-radius:50%;background:var(--accent-soft);display:grid;place-items:center;color:var(--accent)}.dp-empty h3{margin:0;font-size:var(--t-lg);font-weight:700}.dp-empty p{margin:0;color:var(--fg-tertiary);font-size:var(--t-md)}.dp-table-wrap{background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--r-lg);overflow:hidden;box-shadow:var(--shadow-sm)}.dp-row-acts{display:flex;gap:2px;opacity:0;transition:opacity .15s;justify-content:flex-end}.data-table tbody tr:hover .dp-row-acts{opacity:1}.dp-editor{display:grid;grid-template-rows:auto 1fr auto;height:calc(100vh - 61px);background:var(--bg-app);overflow:hidden}.dp-ed-head{display:flex;align-items:center;gap:14px;padding:12px 24px;background:var(--bg-elev);border-bottom:1px solid var(--border);box-shadow:var(--shadow-xs);z-index:5}.dp-ed-back{display:inline-flex;align-items:center;gap:6px;background:transparent;border:0;padding:6px 10px 6px 6px;border-radius:var(--r-pill);color:var(--fg-tertiary);cursor:pointer;transition:all .14s;font-size:var(--t-md)}.dp-ed-back:hover{background:var(--bg-hover);color:var(--fg-primary)}.dp-ed-title-wrap{display:flex;flex-direction:column;gap:2px;min-width:0;flex:1}.dp-ed-title-row{display:flex;align-items:center;gap:10px}.dp-ed-title{font-size:17px;font-weight:700;letter-spacing:-.01em;background:transparent;border:0;outline:0;padding:2px 6px;border-radius:6px;min-width:320px;max-width:560px;color:var(--fg-primary);border:1px solid transparent}.dp-ed-title:hover{background:var(--bg-hover)}.dp-ed-title:focus{background:var(--bg-input);border-color:var(--accent)}.dp-ed-sub{display:flex;align-items:center;gap:8px;font-size:var(--t-xs);color:var(--fg-tertiary);font-family:var(--font-mono);margin-left:6px}.dp-ed-sub .sep{opacity:.4}.dp-ed-actions{display:flex;align-items:center;gap:8px;margin-left:auto}.dp-ed-body{display:grid;grid-template-columns:280px 1fr 320px;min-height:0}.dp-ed-left{background:var(--bg-elev);border-right:1px solid var(--border);display:flex;flex-direction:column;min-height:0}.dp-ed-left-scroll{overflow-y:auto;padding:18px 18px 12px;display:flex;flex-direction:column;gap:20px;flex:1;min-height:0}.dp-left-scroll-ctrl{display:flex;align-items:center;gap:0;padding:6px 10px;border-top:1px solid var(--border);background:var(--bg-surface);flex-shrink:0}.dp-scroll-btn{flex:1;height:30px;display:grid;place-items:center;background:transparent;border:0;border-radius:8px;color:var(--fg-tertiary);cursor:pointer;transition:background .13s,color .13s}.dp-scroll-btn:hover{background:var(--bg-hover);color:var(--accent)}.dp-scroll-divider{width:1px;height:16px;background:var(--border);flex-shrink:0;margin:0 4px}.dp-resize-handle{height:8px;display:flex;align-items:center;justify-content:center;cursor:ns-resize;background:var(--bg-surface-2);border-top:1px solid var(--border);flex-shrink:0;transition:background .13s;-webkit-user-select:none;user-select:none}.dp-resize-handle:hover{background:color-mix(in srgb,var(--accent) 10%,var(--bg-surface-2))}.dp-resize-handle:hover .dp-resize-grip{background:var(--accent)}.dp-resize-grip{width:28px;height:3px;border-radius:999px;background:var(--border-strong);transition:background .13s,width .13s}.dp-resize-handle:hover .dp-resize-grip{width:36px}.dp-readiness-body{display:flex;flex-direction:column}.dp-pane-section{background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--r-md);overflow:hidden;flex-shrink:0}.dp-pane-h{display:flex;align-items:center;justify-content:space-between;padding:10px 12px;background:var(--bg-surface-2);border-bottom:1px solid var(--border);cursor:pointer}.dp-pane-h h4{margin:0;font-family:var(--font-mono);font-size:10.5px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--fg-secondary)}.dp-pane-h svg{color:var(--fg-tertiary);transition:transform .2s}.dp-pane-section.closed .dp-pane-h svg{transform:rotate(-90deg)}.dp-pane-section.closed .dp-pane-body{display:none}.dp-pane-body{padding:12px;display:flex;flex-direction:column;gap:10px}.dp-field{display:flex;flex-direction:column;gap:5px}.dp-field label{font-size:10.5px;color:var(--fg-tertiary);font-family:var(--font-mono);letter-spacing:.05em;text-transform:uppercase;font-weight:600}.dp-field label .req{color:var(--accent);margin-left:3px}.dp-input,.dp-select,.dp-textarea{width:100%;padding:7px 10px;background:var(--bg-input);border:1.5px solid var(--border-input);border-radius:8px;font-size:var(--t-md);color:var(--fg-primary);outline:0;transition:border-color .14s,box-shadow .14s}.dp-input:focus,.dp-select:focus,.dp-textarea:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}.dp-textarea{resize:vertical;min-height:56px;font-family:inherit}.dp-tags{display:flex;flex-wrap:wrap;gap:5px;padding:6px;background:var(--bg-input);border:1.5px solid var(--border-input);border-radius:8px}.dp-tag{display:inline-flex;align-items:center;gap:4px;padding:2px 8px;background:var(--accent-soft);color:var(--accent);border-radius:var(--r-pill);font-size:10.5px;font-weight:600;font-family:var(--font-mono);letter-spacing:.03em}.dp-tag button{background:transparent;border:0;color:inherit;cursor:pointer;opacity:.7}.dp-tag button:hover{opacity:1}.dp-tags input{flex:1;min-width:60px;background:transparent;border:0;outline:0;font-size:var(--t-sm);padding:2px;color:var(--fg-primary)}.dp-version-list{display:flex;flex-direction:column;gap:6px}.dp-version-item{display:grid;grid-template-columns:auto 1fr auto;gap:8px;align-items:center;padding:7px 10px;border:1px solid var(--border);border-radius:8px;background:var(--bg-surface-2);font-size:var(--t-sm)}.dp-version-item.current{border-color:var(--accent);background:var(--accent-soft)}.dp-version-item .v{font-family:var(--font-mono);font-weight:700}.dp-version-item .meta{color:var(--fg-tertiary);font-size:10.5px;font-family:var(--font-mono)}.dp-version-item .diff{color:var(--accent);font-size:10.5px;cursor:pointer}.dp-version-item .diff:hover{text-decoration:underline}.dp-readiness{display:flex;align-items:center;gap:14px;padding:14px 12px 12px;border-bottom:1px solid var(--border)}.dp-readiness-ring{--pct: 74;--ring-c: var(--accent);width:64px;height:64px;border-radius:50%;background:conic-gradient(var(--ring-c) calc(var(--pct) * 1%),var(--bg-surface-2) 0);display:grid;place-items:center;position:relative;flex-shrink:0}.dp-readiness-ring:after{content:"";position:absolute;top:6px;right:6px;bottom:6px;left:6px;background:var(--bg-surface);border-radius:50%}.dp-readiness-ring span{position:relative;font-family:var(--font-mono);font-size:14px;font-weight:800;color:var(--fg-primary);letter-spacing:-.02em;z-index:1}.dp-readiness-ring span sub{font-size:9px;vertical-align:super;color:var(--fg-tertiary)}.dp-readiness-text{display:flex;flex-direction:column;gap:2px}.dp-readiness-text .lbl{font-size:10.5px;font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.06em;color:var(--fg-tertiary);font-weight:600}.dp-readiness-text .ttl{font-size:var(--t-md);font-weight:700}.dp-checklist{display:flex;flex-direction:column}.dp-check-item{display:flex;align-items:center;gap:8px;padding:8px 12px;background:transparent;border:0;width:100%;text-align:left;cursor:pointer;font-size:var(--t-sm);color:var(--fg-secondary);border-top:1px solid var(--border);transition:background .12s}.dp-check-item:first-child{border-top:0}.dp-check-item:hover{background:var(--bg-hover);color:var(--fg-primary)}.dp-check-item .ico{width:16px;height:16px;border-radius:50%;display:grid;place-items:center;flex-shrink:0;background:var(--bg-surface-2);border:1.5px solid var(--border-strong)}.dp-check-item.ok .ico{background:var(--status-pass);border-color:var(--status-pass);color:#fff}.dp-check-item.warn .ico{background:var(--status-cancel);border-color:var(--status-cancel);color:#fff}.dp-check-item.bad .ico{background:var(--status-fail);border-color:var(--status-fail);color:#fff}.dp-check-item.bad .text{color:var(--fg-secondary)}.dp-canvas{position:relative;background:var(--bg-app);overflow:hidden}.dp-map{position:absolute;top:0;right:0;bottom:0;left:0}.dp-map .leaflet-container{background:var(--bg-surface-2)}.dp-map.drawing{cursor:crosshair}.dp-tool-bar{position:absolute;top:16px;left:16px;display:flex;flex-direction:column;gap:6px;background:var(--bg-surface);border:1px solid var(--border);border-radius:14px;padding:6px;box-shadow:var(--shadow-md);z-index:400}.dp-tool{width:36px;height:36px;display:grid;place-items:center;background:transparent;border:0;border-radius:10px;color:var(--fg-secondary);cursor:pointer;transition:all .14s;position:relative}.dp-tool:hover{background:var(--bg-hover);color:var(--fg-primary)}.dp-tool.on{background:var(--accent);color:#fff;box-shadow:var(--shadow-pink)}.dp-tool[data-tip]:hover:after{content:attr(data-tip);position:absolute;left:46px;top:50%;transform:translateY(-50%);background:var(--fg-primary);color:var(--bg-surface);padding:4px 10px;border-radius:6px;font-size:11px;white-space:nowrap;pointer-events:none;z-index:10}.dp-tool-sep{height:1px;background:var(--border);margin:4px}.dp-layers{position:absolute;top:16px;left:70px;display:flex;gap:6px;flex-wrap:wrap;max-width:calc(100% - 240px);z-index:400}.dp-layer-chip{display:inline-flex;align-items:center;gap:7px;padding:6px 12px;background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--r-pill);font-size:var(--t-sm);font-weight:600;color:var(--fg-secondary);cursor:pointer;transition:all .14s;box-shadow:var(--shadow-xs)}.dp-layer-chip:hover{border-color:var(--border-strong);color:var(--fg-primary)}.dp-layer-chip.on{background:var(--accent-soft);border-color:var(--accent);color:var(--accent)}.dp-layer-chip .sw{width:9px;height:9px;border-radius:50%;background:var(--c, var(--accent))}.dp-ran-filters{position:absolute;top:60px;left:70px;display:flex;gap:4px;flex-wrap:wrap;z-index:400;padding:4px 6px;background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--r-pill);box-shadow:var(--shadow-xs)}.dp-ran-filters button{padding:3px 10px;background:transparent;border:0;border-radius:var(--r-pill);font-family:var(--font-mono);font-size:10.5px;font-weight:600;letter-spacing:.04em;color:var(--fg-tertiary);cursor:pointer;transition:all .14s}.dp-ran-filters button.on{background:var(--accent);color:#fff}.dp-ran-filters button:not(.on):hover{color:var(--fg-primary);background:var(--bg-hover)}.dp-ran-filters.dp-ran-filters-row2{top:92px}.dp-ran-truncated{padding:3px 8px 3px 6px;font-family:var(--font-mono);font-size:10px;font-weight:600;letter-spacing:.03em;color:var(--fg-tertiary);border-left:1px solid var(--border);margin-left:4px;align-self:center}.dp-zoom{position:absolute;right:16px;bottom:16px;display:flex;flex-direction:column;gap:6px;z-index:400}.dp-zoom button{width:36px;height:36px;display:grid;place-items:center;background:var(--bg-surface);border:1px solid var(--border);border-radius:10px;color:var(--fg-secondary);cursor:pointer;box-shadow:var(--shadow-sm);transition:all .14s;font-family:var(--font-mono);font-size:16px;font-weight:700}.dp-zoom button:hover{color:var(--accent);border-color:var(--accent)}.dp-zoom-level{width:36px;height:22px;display:grid;place-items:center;background:var(--bg-surface);border:1px solid var(--border);border-radius:8px;box-shadow:var(--shadow-xs);color:var(--fg-secondary);font-family:var(--font-mono);font-size:11px;font-weight:700;letter-spacing:.04em;-webkit-user-select:none;user-select:none}.dp-draw-hint{position:absolute;left:50%;bottom:28px;transform:translate(-50%);display:inline-flex;align-items:center;gap:10px;padding:8px 16px;background:var(--fg-primary);color:var(--bg-surface);border-radius:var(--r-pill);font-size:var(--t-sm);font-weight:500;box-shadow:var(--shadow-md);z-index:400}.dp-draw-hint kbd{font-family:var(--font-mono);font-size:10px;padding:1px 5px;border-radius:4px;border:1px solid color-mix(in srgb,var(--bg-surface) 30%,transparent)}.dp-seg-label{background:var(--bg-surface);border:1px solid var(--border);border-radius:6px;padding:3px 8px;font-family:var(--font-mono);font-size:10.5px;font-weight:600;color:var(--fg-primary);white-space:nowrap;box-shadow:var(--shadow-sm)}.dp-pin{width:26px;height:32px;position:relative;filter:drop-shadow(0 2px 4px rgba(0,0,0,.25))}.dp-pin span{position:absolute;top:0;right:0;bottom:0;left:0;background:var(--accent);-webkit-mask:radial-gradient(circle at 50% 38%,transparent 7px,#000 7.5px) 50% 0/100% 100%,linear-gradient(#000,#000) 50% 0/100% 100%;display:grid;place-items:center;color:#fff;font-size:11px;font-weight:800;font-family:var(--font-mono);padding-bottom:6px}.dp-pin.start{color:#fff}.dp-pin.start:before,.dp-pin.end:before{content:attr(data-label);position:absolute;top:0;right:0;bottom:0;left:0;display:grid;place-items:center;padding-bottom:8px;color:#fff;font-size:11px;font-weight:800;font-family:var(--font-mono)}.dp-pin-c{background:var(--accent);border:2px solid #fff;width:100%;height:100%;border-radius:50% 50% 50% 0;transform:rotate(-45deg);display:grid;place-items:center;box-shadow:0 3px 6px #00000040}.dp-pin-c b{transform:rotate(45deg);color:#fff;font-size:11px;font-weight:800;font-family:var(--font-mono)}.dp-pin.end .dp-pin-c{background:#0d0c22}[data-theme=dark] .dp-pin.end .dp-pin-c{background:#1a2330;border-color:var(--fg-tertiary)}.dp-site{width:26px;height:26px;display:grid;place-items:center;border-radius:50%;border:2px solid #fff;box-shadow:0 2px 6px #0000004d;color:#fff}.dp-site.lte{background:#3f8cff}.dp-site.nr{background:#a78bfa}.dp-site.nsa{background:#14b8a6}.dp-site-label{background:var(--bg-surface);border:1px solid var(--border);border-radius:6px;padding:1px 6px;font-family:var(--font-mono);font-size:10px;font-weight:600;color:var(--fg-secondary);white-space:nowrap;margin-top:28px;box-shadow:var(--shadow-xs)}.dp-zone-label{background:color-mix(in srgb,var(--accent) 90%,transparent);color:#fff;border-radius:4px;padding:2px 8px;font-family:var(--font-mono);font-size:10.5px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;white-space:nowrap;box-shadow:var(--shadow-sm)}.leaflet-popup.dp-site-popup .leaflet-popup-content-wrapper{background:var(--bg-surface);color:var(--fg-primary);border-radius:var(--r-md);border:1px solid var(--border);box-shadow:var(--shadow-lg);padding:0}.leaflet-popup.dp-site-popup .leaflet-popup-content{margin:0;width:240px!important}.leaflet-popup.dp-site-popup .leaflet-popup-tip{background:var(--bg-surface)}.dp-popup-head{padding:10px 12px;border-bottom:1px solid var(--border);display:flex;align-items:center;gap:8px}.dp-popup-head .dot{width:8px;height:8px;border-radius:50%}.dp-popup-name{font-weight:700;font-size:var(--t-md)}.dp-popup-addr{font-size:11px;color:var(--fg-tertiary);margin-top:2px}.dp-popup-body{padding:8px 12px;display:flex;flex-direction:column;gap:5px}.dp-popup-row{display:grid;grid-template-columns:60px 1fr;font-size:11px;gap:6px}.dp-popup-row .k{color:var(--fg-tertiary);font-family:var(--font-mono)}.dp-popup-row .v{font-family:var(--font-mono);color:var(--fg-primary);font-weight:600}.dp-popup-foot{padding:8px 12px;border-top:1px solid var(--border)}.dp-popup-foot button{width:100%;padding:6px 10px;background:var(--accent);color:#fff;border:0;border-radius:var(--r-pill);font-size:11px;font-weight:600;cursor:pointer;transition:background .14s}.dp-popup-foot button:hover{background:var(--accent-hover)}.dp-ed-right{background:var(--bg-elev);border-left:1px solid var(--border);display:flex;flex-direction:column;min-height:0}.dp-tabs{display:flex;border-bottom:1px solid var(--border);background:var(--bg-surface)}.dp-tabs button{flex:1;padding:12px 8px;background:transparent;border:0;border-bottom:2px solid transparent;color:var(--fg-tertiary);font-size:11.5px;font-weight:600;cursor:pointer;transition:all .14s;font-family:var(--font-mono);letter-spacing:.03em;margin-bottom:-1px}.dp-tabs button:hover{color:var(--fg-primary)}.dp-tabs button.on{color:var(--accent);border-bottom-color:var(--accent)}.dp-tab-body{flex:1;overflow-y:auto;padding:16px 16px 80px;display:flex;flex-direction:column;gap:14px}.dp-tab-head{display:flex;align-items:center;justify-content:space-between}.dp-tab-head h4{margin:0;font-family:var(--font-mono);font-size:10.5px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--fg-tertiary)}.dp-add-btn{display:inline-flex;align-items:center;gap:4px;padding:5px 12px;background:var(--accent-soft);border:1.5px solid color-mix(in srgb,var(--accent) 30%,transparent);border-radius:var(--r-pill);color:var(--accent);font-size:var(--t-sm);font-weight:600;cursor:pointer;transition:all .14s}.dp-add-btn:hover{background:var(--accent);color:#fff}.dp-prof-list{display:flex;flex-direction:column;gap:8px}.dp-prof{display:grid;grid-template-columns:auto auto 1fr auto;gap:8px;align-items:center;padding:10px;background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--r-md);position:relative;transition:border-color .14s}.dp-prof:hover{border-color:var(--border-strong)}.dp-prof .drag{color:var(--fg-quaternary);cursor:grab;font-family:var(--font-mono);font-size:14px;line-height:1}.dp-prof .ico{width:30px;height:30px;background:var(--accent-soft);color:var(--accent);border-radius:8px;display:grid;place-items:center}.dp-prof .name{font-size:var(--t-md);font-weight:600}.dp-prof .sub{color:var(--fg-tertiary);font-size:10.5px;font-family:var(--font-mono);margin-top:1px}.dp-prof .seq{padding:3px 8px;background:var(--bg-input);border:1px solid var(--border);border-radius:var(--r-pill);font-size:10.5px;font-family:var(--font-mono);font-weight:600;color:var(--fg-secondary);cursor:pointer}.dp-prof .rm{width:22px;height:22px;background:transparent;border:0;border-radius:var(--r-sm);display:grid;place-items:center;color:var(--fg-tertiary);cursor:pointer}.dp-prof .rm:hover{color:var(--status-fail);background:color-mix(in srgb,var(--status-fail) 10%,transparent)}.dp-prof-num{position:absolute;top:-6px;left:-6px;width:18px;height:18px;background:var(--fg-primary);color:var(--bg-surface);border-radius:50%;display:grid;place-items:center;font-family:var(--font-mono);font-size:10px;font-weight:700}.dp-seq-timeline{display:flex;align-items:center;gap:0;padding:12px;background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--r-md);overflow-x:auto}.dp-seq-node{display:flex;flex-direction:column;align-items:center;min-width:60px;gap:4px}.dp-seq-node .b{width:28px;height:28px;background:var(--accent-soft);color:var(--accent);border-radius:8px;display:grid;place-items:center}.dp-seq-node .l{font-size:9.5px;font-family:var(--font-mono);color:var(--fg-tertiary)}.dp-seq-edge{width:14px;height:1.5px;background:var(--accent-strong);flex-shrink:0}.dp-pick-grid{display:grid;grid-template-columns:1fr 1fr;gap:6px;padding:10px;background:var(--bg-surface-2);border:1px dashed var(--border-strong);border-radius:var(--r-md)}.dp-pick-card{display:flex;flex-direction:column;align-items:flex-start;gap:4px;padding:10px;background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--r-sm);cursor:pointer;transition:all .14s;text-align:left}.dp-pick-card:hover{border-color:var(--accent);background:var(--accent-soft);transform:translateY(-1px)}.dp-pick-card .b{width:28px;height:28px;background:var(--accent-soft);color:var(--accent);border-radius:8px;display:grid;place-items:center}.dp-pick-card:hover .b{background:var(--accent);color:#fff}.dp-pick-card .l{font-size:var(--t-sm);font-weight:600}.dp-pick-card .d{font-size:10px;color:var(--fg-tertiary)}.dp-dev{display:grid;grid-template-columns:auto 1fr auto auto;gap:8px;align-items:center;padding:10px;background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--r-md);position:relative}.dp-dev .av{width:32px;height:32px;background:var(--bg-surface-2);border:1px solid var(--border);border-radius:8px;display:grid;place-items:center;color:var(--fg-secondary);position:relative}.dp-dev .av .hb{position:absolute;top:-2px;right:-2px;width:10px;height:10px;border-radius:50%;background:var(--status-pass);border:2px solid var(--bg-surface);box-shadow:0 0 0 1px var(--status-pass)}.dp-dev .av .hb.idle{background:var(--status-cancel)}.dp-dev .name{font-size:var(--t-md);font-weight:600}.dp-dev .meta{font-size:10px;color:var(--fg-tertiary);font-family:var(--font-mono);margin-top:1px}.dp-dev .role{font-family:var(--font-mono);font-size:10px;font-weight:600;padding:3px 7px;background:var(--bg-input);border:1px solid var(--border);border-radius:var(--r-pill);color:var(--fg-secondary)}.dp-dev .rm{width:22px;height:22px;background:transparent;border:0;display:grid;place-items:center;color:var(--fg-tertiary);cursor:pointer;border-radius:var(--r-sm)}.dp-dev .rm:hover{color:var(--status-fail)}.dp-thresh-table{border:1px solid var(--border);border-radius:var(--r-md);overflow:hidden;background:var(--bg-surface)}.dp-thresh-row-r{display:grid;grid-template-columns:1.2fr 1fr 1fr;gap:6px;padding:8px 10px;border-bottom:1px solid var(--border);align-items:center}.dp-thresh-row-r:last-child{border-bottom:0}.dp-thresh-row-r.head{background:var(--bg-surface-2);font-family:var(--font-mono);font-size:10px;letter-spacing:.05em;text-transform:uppercase;color:var(--fg-tertiary);font-weight:700}.dp-thresh-name{font-size:var(--t-sm);font-weight:600}.dp-thresh-name .u{color:var(--fg-tertiary);font-family:var(--font-mono);font-size:10px;margin-left:4px}.dp-thresh-input{width:100%;padding:5px 8px;background:var(--bg-input);border:1px solid var(--border-input);border-radius:6px;font-family:var(--font-mono);font-size:11.5px;font-weight:600;color:var(--fg-primary);outline:0;text-align:center}.dp-thresh-input.warn{color:var(--status-cancel)}.dp-thresh-input.crit{color:var(--status-fail)}.dp-thresh-input:focus{border-color:var(--accent)}.dp-ai-run{display:flex;flex-direction:column;align-items:center;gap:12px;padding:24px 16px;background:linear-gradient(135deg,var(--accent-soft),transparent);border:1px dashed color-mix(in srgb,var(--accent) 40%,transparent);border-radius:var(--r-md);text-align:center}.dp-ai-run .ico{width:40px;height:40px;border-radius:12px;background:var(--accent);color:#fff;display:grid;place-items:center}.dp-ai-run h5{margin:0;font-size:var(--t-md);font-weight:700}.dp-ai-run p{margin:0;font-size:var(--t-sm);color:var(--fg-secondary);max-width:240px;line-height:1.5}.dp-ai-running{padding:18px 16px;background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--r-md);display:flex;flex-direction:column;gap:10px}.dp-ai-step{display:flex;align-items:center;gap:10px;font-size:var(--t-sm);color:var(--fg-tertiary);transition:color .2s}.dp-ai-step.done{color:var(--fg-secondary)}.dp-ai-step.active{color:var(--accent);font-weight:600}.dp-ai-step .b{width:18px;height:18px;border-radius:50%;display:grid;place-items:center;background:var(--bg-surface-2);border:1.5px solid var(--border);flex-shrink:0}.dp-ai-step.done .b{background:var(--status-pass);border-color:var(--status-pass);color:#fff}.dp-ai-step.active .b{background:var(--accent);border-color:var(--accent);color:#fff}.dp-ai-score{display:flex;align-items:center;gap:14px;padding:14px;background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--r-md)}.dp-ai-score-num{font-size:32px;font-weight:800;letter-spacing:-.03em;color:var(--accent);font-family:var(--font-mono)}.dp-ai-score-delta{font-size:10.5px;color:var(--status-pass);font-family:var(--font-mono);font-weight:700}.dp-finding{padding:12px;background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--r-md);display:flex;flex-direction:column;gap:8px;border-left:3px solid var(--c, var(--fg-tertiary))}.dp-finding.info{--c: var(--status-progress)}.dp-finding.warning{--c: var(--status-cancel)}.dp-finding.critical{--c: var(--status-fail)}.dp-finding-head{display:flex;align-items:center;gap:8px}.dp-finding-head .sev{font-family:var(--font-mono);font-size:9.5px;font-weight:800;padding:2px 6px;border-radius:4px;background:color-mix(in srgb,var(--c) 14%,transparent);color:var(--c);letter-spacing:.06em}.dp-finding-text{font-size:var(--t-sm);line-height:1.5;color:var(--fg-primary)}.dp-finding-ev{font-size:10.5px;color:var(--fg-tertiary);font-family:var(--font-mono)}.dp-finding-acts{display:flex;gap:8px;align-items:center;padding-top:8px;border-top:1px solid var(--border)}.dp-finding-fix{padding:4px 12px;background:var(--accent);color:#fff;border:0;border-radius:var(--r-pill);font-size:11px;font-weight:600;cursor:pointer}.dp-finding-fix:hover{background:var(--accent-hover)}.dp-finding-rate{margin-left:auto;display:flex;gap:4px}.dp-finding-rate button{width:22px;height:22px;background:transparent;border:0;border-radius:var(--r-sm);display:grid;place-items:center;color:var(--fg-tertiary);cursor:pointer}.dp-finding-rate button:hover{color:var(--accent);background:var(--bg-hover)}.dp-finding-rate button.on{color:var(--accent);background:var(--accent-soft)}.dp-valid-bar{display:flex;align-items:center;gap:12px;padding:0 24px;height:48px;border-top:1px solid var(--border);background:var(--bg-elev);font-size:var(--t-sm);position:relative;z-index:5}.dp-valid-bar.ok{border-top-color:var(--status-pass);background:color-mix(in srgb,var(--status-pass) 6%,var(--bg-elev))}.dp-valid-bar.warn{border-top-color:var(--status-cancel);background:color-mix(in srgb,var(--status-cancel) 6%,var(--bg-elev))}.dp-valid-bar.bad{border-top-color:var(--status-fail);background:color-mix(in srgb,var(--status-fail) 6%,var(--bg-elev))}.dp-valid-icon{width:22px;height:22px;border-radius:50%;display:grid;place-items:center;color:#fff;flex-shrink:0}.dp-valid-bar.ok .dp-valid-icon{background:var(--status-pass)}.dp-valid-bar.warn .dp-valid-icon{background:var(--status-cancel)}.dp-valid-bar.bad .dp-valid-icon{background:var(--status-fail)}.dp-valid-text b{color:var(--fg-primary)}.dp-valid-link{color:var(--accent);cursor:pointer;font-weight:600;margin-left:4px}.dp-valid-link:hover{text-decoration:underline}.dp-valid-saved{margin-left:auto;display:inline-flex;align-items:center;gap:6px;color:var(--fg-tertiary);font-family:var(--font-mono);font-size:var(--t-xs)}.dp-valid-saved .pulse{width:7px;height:7px;border-radius:50%;background:var(--status-pass);animation:livePulse 1.6s infinite}.dp-valid-saved .pulse.pulse-warn{background:var(--status-progress, #F59E0B)}.dp-valid-saved .pulse.pulse-warn~*{color:var(--fg-secondary);font-weight:600}.dp-mini-spinner{width:14px;height:14px;border:2px solid color-mix(in srgb,var(--accent) 20%,transparent);border-top-color:var(--accent);border-radius:50%;animation:spin .7s linear infinite}.dp-addr-search{position:absolute;top:16px;right:16px;z-index:400;width:clamp(220px,30vw,320px);font-family:var(--font-sans)}.dp-addr-search-row{display:flex;align-items:center;gap:8px;padding:7px 10px 7px 12px;background:var(--bg-surface);border:1.5px solid var(--border-input);border-radius:var(--r-pill);box-shadow:var(--shadow-md);transition:border-color .14s,box-shadow .14s;cursor:text}.dp-addr-search-row:focus-within{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft),var(--shadow-md)}.dp-addr-icon{color:var(--fg-tertiary);flex:0 0 auto}.dp-addr-search-row input{flex:1 1 auto;min-width:0;background:transparent;border:0;outline:0;font:600 var(--t-md)/1.2 var(--font-sans);color:var(--fg-primary)}.dp-addr-search-row input::placeholder{color:var(--fg-tertiary);font-weight:500}.dp-addr-clear{flex:0 0 auto;width:20px;height:20px;display:grid;place-items:center;background:transparent;border:0;cursor:pointer;color:var(--fg-tertiary);border-radius:999px;font-size:18px;line-height:1;transition:background .14s,color .14s}.dp-addr-clear:hover{background:var(--bg-hover);color:var(--fg-primary)}.dp-addr-spin{width:14px;height:14px;border:2px solid var(--accent-soft);border-top-color:var(--accent);border-radius:50%;animation:dp-addr-spin .7s linear infinite;flex:0 0 auto}@keyframes dp-addr-spin{to{transform:rotate(360deg)}}.dp-addr-search-panel{position:absolute;top:calc(100% + 6px);left:0;right:0;background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--r-md);box-shadow:var(--shadow-md);overflow:hidden auto;max-height:320px;padding:4px}.dp-addr-search-item{display:flex;flex-direction:column;align-items:flex-start;gap:2px;width:100%;padding:8px 12px;border:0;background:transparent;cursor:pointer;border-radius:8px;text-align:left;border-left:3px solid transparent;transition:background .12s,border-color .12s}.dp-addr-search-item:hover,.dp-addr-search-item.active{background:var(--accent-soft);border-left-color:var(--accent)}.dp-addr-name{font-size:var(--t-md);font-weight:600;color:var(--fg-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}.dp-addr-ctx{font-family:var(--font-mono);font-size:11px;color:var(--fg-tertiary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}.dp-addr-empty{padding:12px 14px;font-size:var(--t-sm);color:var(--fg-tertiary);font-style:italic;text-align:center}.dp-search-pin .dp-pin.search .dp-pin-c{background:var(--accent);border-color:#fff;color:#fff}.dp-search-pin{transition:opacity .4s ease-out}.dp-search-pin.fading{opacity:0}.dash-dp-header{display:flex;align-items:flex-start;justify-content:space-between;gap:20px;margin-bottom:24px;flex-wrap:wrap}.dash-dp-actions{display:flex;align-items:center;gap:8px;flex-shrink:0;margin-top:8px}.dash-dp-sublabel{display:flex;align-items:baseline;gap:10px;font-family:var(--font-mono);font-size:10.5px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--fg-tertiary);margin-bottom:14px}.dash-dp-sublabel-hint{font-family:var(--font-sans, inherit);font-weight:400;text-transform:none;letter-spacing:0;font-size:var(--t-sm);color:var(--fg-quaternary)}.dash-dp-grid{margin-bottom:0}.dash-route-card .dash-route-desc{font-size:var(--t-sm);color:var(--fg-secondary);line-height:1.55;padding:8px 16px 4px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.dash-route-card{cursor:pointer}@media (max-width: 1380px){.dp-ed-body{grid-template-columns:250px 1fr 290px}.dp-layers{max-width:calc(100% - 220px)}}@media (max-width: 1180px){.dp-ed-body{grid-template-columns:230px 1fr 270px}.dp-ed-actions .btn-sm:nth-child(n+4){display:none}}@keyframes ltFadeIn{0%{opacity:0}}@keyframes ltScaleIn{0%{transform:scale(.96);opacity:0}}@keyframes ltSlideDown{0%{transform:translateY(-100%)}}@keyframes ltSlideInRight{0%{transform:translate(20px);opacity:0}}@keyframes ltShimmer{0%{background-position:200% 0}to{background-position:-200% 0}}@keyframes ltDevPulse{0%{transform:translate(-50%,-50%) scale(1);opacity:.7}to{transform:translate(-50%,-50%) scale(1.9);opacity:0}}@keyframes ltDrawCircle{to{stroke-dashoffset:0}}@keyframes ltDrawCheck{to{stroke-dashoffset:0}}@keyframes ltChipPulse{0%{box-shadow:0 0 color-mix(in srgb,var(--c, var(--status-progress)) 60%,transparent)}70%{box-shadow:0 0 0 6px transparent}to{box-shadow:0 0 0 0 transparent}}@keyframes ltLivePulse{0%{box-shadow:0 0 color-mix(in srgb,var(--c, var(--status-progress)) 60%,transparent)}70%{box-shadow:0 0 0 6px transparent}to{box-shadow:0 0 0 0 transparent}}@keyframes ltDot{0%,to{opacity:1}50%{opacity:.3}}@keyframes ltSpin{to{transform:rotate(360deg)}}.lt-spin-ring{border-radius:50%;border:2px solid color-mix(in srgb,var(--accent) 25%,transparent);border-top-color:var(--accent);animation:ltSpin .8s linear infinite;flex-shrink:0}.lt-scrim{position:fixed;top:0;right:0;bottom:0;left:0;z-index:210;background:#0000008c;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:grid;place-items:center;animation:ltFadeIn .18s ease-out}[data-theme=light] .lt-scrim{background:#0d0c2273}.rd-modal{width:680px;max-width:calc(100vw - 32px);max-height:calc(100vh - 48px);background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--r-lg);box-shadow:var(--shadow-lg);display:flex;flex-direction:column;overflow:hidden;animation:ltScaleIn .22s cubic-bezier(.16,1,.3,1)}.rd-head{display:flex;align-items:flex-start;gap:14px;padding:18px 20px 14px;border-bottom:1px solid var(--border)}.rd-thumb{width:92px;height:64px;border-radius:var(--r-md);overflow:hidden;border:1px solid var(--border);background:var(--bg-surface-2);flex-shrink:0}.rd-head-text{flex:1;min-width:0}.rd-h-title-row{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.rd-h-title{font-size:18px;font-weight:800;letter-spacing:-.01em}.rd-h-meta{margin-top:6px;font-family:var(--font-mono);font-size:11px;color:var(--fg-tertiary);display:flex;gap:8px;flex-wrap:wrap}.rd-h-meta .sep{opacity:.4}.rd-close{width:30px;height:30px;border-radius:50%;background:transparent;border:0;display:grid;place-items:center;color:var(--fg-tertiary);cursor:pointer;flex-shrink:0;transition:background .14s}.rd-close:hover{background:var(--bg-hover);color:var(--fg-primary)}.rd-body{padding:16px 20px 4px;overflow-y:auto;flex:1}.rd-section-label{display:flex;align-items:center;justify-content:space-between;font-family:var(--font-mono);font-size:10.5px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--fg-tertiary);margin:4px 0 10px}.rd-section-label .progress{color:var(--fg-secondary)}.rd-checks{display:flex;flex-direction:column;gap:6px;margin-bottom:18px}.rd-check{background:var(--bg-surface-2);border:1px solid var(--border);border-radius:var(--r-md);overflow:hidden;transition:border-color .14s}.rd-check.fail{border-color:color-mix(in srgb,var(--status-fail) 35%,var(--border))}.rd-check.warn{border-color:color-mix(in srgb,var(--status-cancel) 35%,var(--border))}.rd-check-row{display:grid;grid-template-columns:22px 1fr auto;gap:12px;align-items:center;padding:10px 14px}.rd-check-ico{width:22px;height:22px;border-radius:50%;display:grid;place-items:center;color:#fff;background:var(--status-pass)}.rd-check.fail .rd-check-ico{background:var(--status-fail)}.rd-check.warn .rd-check-ico{background:var(--status-cancel)}.rd-check.loading .rd-check-ico{background:var(--bg-surface);border:1.5px solid var(--border-strong);color:var(--fg-tertiary)}.rd-check-label{font-size:var(--t-base);font-weight:600}.rd-check-sub{font-size:var(--t-xs);color:var(--fg-tertiary);margin-top:2px;font-family:var(--font-mono)}.rd-check.loading .rd-check-label,.rd-check.loading .rd-check-sub{background:linear-gradient(90deg,var(--bg-surface-2) 0%,var(--bg-hover) 50%,var(--bg-surface-2) 100%);background-size:200% 100%;color:transparent;border-radius:4px;height:12px;animation:ltShimmer 1.4s infinite}.rd-check.loading .rd-check-label{width:60%;height:14px}.rd-check.loading .rd-check-sub{width:40%;margin-top:4px}.rd-check-badge{display:inline-flex;align-items:center;gap:6px;padding:3px 10px;font-family:var(--font-mono);font-size:10.5px;font-weight:700;border-radius:var(--r-pill);color:var(--status-pass);background:color-mix(in srgb,var(--status-pass) 14%,transparent);border:1px solid color-mix(in srgb,var(--status-pass) 30%,transparent)}.rd-check.fail .rd-check-badge{color:var(--status-fail);background:color-mix(in srgb,var(--status-fail) 14%,transparent);border-color:color-mix(in srgb,var(--status-fail) 30%,transparent)}.rd-check.warn .rd-check-badge{color:var(--status-cancel);background:color-mix(in srgb,var(--status-cancel) 14%,transparent);border-color:color-mix(in srgb,var(--status-cancel) 30%,transparent)}.rd-check.loading .rd-check-badge{color:transparent;background:linear-gradient(90deg,var(--bg-surface-2) 0%,var(--bg-hover) 50%,var(--bg-surface-2) 100%);background-size:200% 100%;border-color:var(--border);animation:ltShimmer 1.4s infinite}.rd-check-fail-block{margin:0 14px 12px 36px;padding:10px 12px;border-left:3px solid var(--status-fail);background:color-mix(in srgb,var(--status-fail) 7%,transparent);border-radius:0 var(--r-md) var(--r-md) 0}.rd-check.warn .rd-check-fail-block{border-left-color:var(--status-cancel);background:color-mix(in srgb,var(--status-cancel) 7%,transparent)}.rd-fail-title{font-size:var(--t-sm);font-weight:600;margin-bottom:4px}.rd-fail-desc{font-size:var(--t-sm);color:var(--fg-secondary);line-height:1.45}.rd-fail-actions{margin-top:8px;display:flex;gap:12px}.rd-fail-link{font-size:var(--t-sm);color:var(--accent);font-weight:600;background:transparent;border:0;padding:0;cursor:pointer}.rd-fail-link:hover{text-decoration:underline}.rd-devices{display:flex;gap:8px;padding-bottom:4px;overflow-x:auto}.rd-dev{flex:0 0 auto;padding:9px 11px;background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--r-md);display:flex;align-items:center;gap:8px;font-size:var(--t-sm)}.rd-dev.offline{opacity:.6;border-style:dashed}.rd-dev-name{font-family:var(--font-mono);font-size:10.5px;font-weight:700;letter-spacing:.03em}.rd-dev-dot{width:7px;height:7px;border-radius:50%;background:var(--status-pass)}.rd-dev.online .rd-dev-dot{animation:ltChipPulse 1.6s infinite;box-shadow:0 0 color-mix(in srgb,var(--status-pass) 60%,transparent)}.rd-dev.offline .rd-dev-dot{background:var(--status-fail)}.rd-dev-meta{font-family:var(--font-mono);font-size:10.5px;color:var(--fg-tertiary);display:inline-flex;align-items:center;gap:6px}.rd-dev-role{padding:1px 6px;background:var(--bg-surface-2);border:1px solid var(--border);border-radius:4px;font-family:var(--font-mono);font-size:9.5px;font-weight:700;letter-spacing:.06em;color:var(--c, var(--fg-secondary))}.rd-foot{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:14px 20px;border-top:1px solid var(--border);background:var(--bg-surface-2)}.rd-foot-status{display:inline-flex;align-items:center;gap:8px;font-size:var(--t-sm);color:var(--fg-tertiary);font-family:var(--font-mono)}.rd-foot-status.ready{color:var(--status-pass)}.rd-foot-status.fail{color:var(--status-fail)}.rd-foot-actions{display:flex;gap:8px}.rd-foot-rel{position:relative}.rd-popover{position:absolute;bottom:calc(100% + 8px);right:0;width:280px;padding:14px;background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--r-md);box-shadow:var(--shadow-lg);z-index:10;animation:ltFadeIn .14s}.rd-popover h5{margin:0 0 6px;font-size:var(--t-sm);font-weight:700;color:var(--status-fail);display:inline-flex;align-items:center;gap:6px}.rd-popover p{margin:0 0 10px;font-size:var(--t-sm);color:var(--fg-secondary);line-height:1.45}.rd-popover-acts{display:flex;gap:8px;justify-content:flex-end}.live-app{position:fixed;top:0;right:0;bottom:0;left:0;display:grid;grid-template-rows:56px 1fr;background:var(--bg-app);z-index:200}.live-top{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:16px;padding:0 18px;background:var(--bg-elev);border-bottom:1px solid var(--border);box-shadow:var(--shadow-xs)}.live-top-left{display:flex;align-items:center;gap:12px;min-width:0}.live-top-right{display:flex;align-items:center;gap:6px;justify-content:flex-end}.live-back{display:inline-flex;align-items:center;gap:4px;background:transparent;border:0;padding:6px 10px 6px 8px;border-radius:var(--r-pill);color:var(--fg-tertiary);cursor:pointer;font-size:var(--t-md);transition:background .14s,color .14s}.live-back:hover{background:var(--bg-hover);color:var(--fg-primary)}.live-title-wrap{display:flex;align-items:center;gap:10px;min-width:0}.live-title{font-size:var(--t-base);font-weight:700;letter-spacing:-.01em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:320px}.live-ver{font-family:var(--font-mono);font-size:10.5px;padding:2px 8px;background:var(--bg-surface-2);border:1px solid var(--border);border-radius:var(--r-sm);color:var(--fg-secondary);font-weight:600}.live-chip{display:inline-flex;align-items:center;gap:5px;padding:3px 9px;border-radius:var(--r-pill);font-family:var(--font-mono);font-size:10.5px;font-weight:700;letter-spacing:.06em;color:var(--c, var(--status-progress));background:color-mix(in srgb,var(--c, var(--status-progress)) 14%,transparent);border:1px solid color-mix(in srgb,var(--c, var(--status-progress)) 32%,transparent)}.live-chip .dot{width:5px;height:5px;border-radius:50%;background:var(--c, var(--status-progress));animation:ltLivePulse 1.6s infinite}.live-chip.paused{--c: var(--status-cancel)}.live-chip.paused .dot{animation:none}.live-elapsed{display:inline-flex;align-items:center;gap:10px;padding:6px 14px;background:var(--bg-surface-2);border:1px solid var(--border);border-radius:var(--r-pill)}.live-elapsed .lbl{font-family:var(--font-mono);font-size:10px;letter-spacing:.08em;text-transform:uppercase;color:var(--fg-tertiary);font-weight:700}.live-elapsed .val{font-family:var(--font-mono);font-size:var(--t-base);font-weight:700;color:var(--fg-primary);font-variant-numeric:tabular-nums}.live-tb-btn{width:36px;height:36px;background:transparent;border:1.5px solid var(--border);border-radius:var(--r-pill);display:grid;place-items:center;color:var(--fg-secondary);cursor:pointer;transition:all .14s}.live-tb-btn:hover{color:var(--fg-primary);border-color:var(--border-strong)}.live-tb-btn.stop{color:var(--status-fail);border-color:color-mix(in srgb,var(--status-fail) 35%,var(--border))}.live-tb-btn.stop:hover{background:color-mix(in srgb,var(--status-fail) 10%,transparent);border-color:var(--status-fail)}.live-body{display:grid;grid-template-columns:1fr 360px;min-height:0;position:relative}.live-body.fullscreen{grid-template-columns:1fr}.live-map{position:relative;background:var(--bg-surface-2);overflow:hidden}.live-map-bg,.live-leaflet{position:absolute;top:0;right:0;bottom:0;left:0}[data-theme=dark] .live-leaflet .leaflet-tile{filter:brightness(.65) invert(1) contrast(3) hue-rotate(200deg) saturate(.3) brightness(.7)}.live-map-tl{position:absolute;top:12px;left:12px;z-index:1000;display:flex;gap:6px;flex-wrap:wrap;max-width:calc(100% - 80px)}.live-map-tr{position:absolute;top:12px;right:12px;display:flex;flex-direction:column;gap:6px;z-index:1000}.live-map-bl{position:absolute;bottom:60px;left:12px;z-index:1000;padding:8px 12px;background:color-mix(in srgb,var(--bg-surface) 90%,transparent);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border:1px solid var(--border);border-radius:var(--r-md);box-shadow:var(--shadow-sm);display:flex;flex-direction:column;gap:6px}.live-legend-row{display:flex;align-items:center;gap:8px;font-size:var(--t-xs)}.live-legend-row .sw{width:22px;height:4px;border-radius:2px;background:var(--c, var(--status-pass))}.live-legend-row .lbl{color:var(--fg-secondary)}.live-map-btn{width:34px;height:34px;background:color-mix(in srgb,var(--bg-surface) 92%,transparent);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border:1px solid var(--border);border-radius:var(--r-sm);display:grid;place-items:center;color:var(--fg-secondary);cursor:pointer;font-family:var(--font-mono);font-weight:700;font-size:14px;box-shadow:var(--shadow-sm);transition:all .14s}.live-map-btn:hover{color:var(--accent);border-color:var(--accent)}.live-map-btn.on{background:var(--accent);color:#fff;border-color:var(--accent)}.live-map-btn.long{width:auto;padding:0 12px;font-size:var(--t-sm);gap:6px;font-family:var(--font-sans);font-weight:600;display:inline-flex;align-items:center}.live-layer-chip{display:inline-flex;align-items:center;gap:7px;padding:6px 11px;background:color-mix(in srgb,var(--bg-surface) 92%,transparent);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border:1px solid var(--border);border-radius:var(--r-pill);font-size:var(--t-sm);font-weight:600;color:var(--fg-secondary);cursor:pointer;box-shadow:var(--shadow-xs);transition:all .14s}.live-layer-chip:hover{color:var(--fg-primary);border-color:var(--border-strong)}.live-layer-chip.on{background:color-mix(in srgb,var(--accent) 15%,var(--bg-surface));border-color:var(--accent);color:var(--accent)}.live-layer-chip .sw{width:8px;height:8px;border-radius:50%}.live-progress-bar{position:absolute;left:0;right:0;bottom:0;height:44px;background:color-mix(in srgb,var(--bg-elev) 92%,transparent);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-top:1px solid var(--border);display:flex;align-items:center;padding:0 20px;gap:14px;z-index:1000}.live-progress-track{flex:1;height:8px;border-radius:4px;background:var(--bg-surface-2);position:relative;overflow:hidden;border:1px solid var(--border)}.live-progress-fill{position:absolute;left:0;top:0;bottom:0;background:linear-gradient(90deg,var(--status-progress),color-mix(in srgb,var(--status-progress) 70%,var(--accent)));border-radius:4px;transition:width .8s ease-out}.live-progress-text{font-family:var(--font-mono);font-size:11.5px;display:flex;gap:14px;color:var(--fg-secondary);font-variant-numeric:tabular-nums}.live-progress-text b{color:var(--fg-primary);font-weight:700}.dev-marker{position:relative;width:44px;height:44px;z-index:5;pointer-events:auto}.dev-marker-bubble{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:36px;height:36px;border-radius:50%;background:var(--bg-surface);border:3px solid var(--c, var(--status-progress));display:grid;place-items:center;font-family:var(--font-mono);font-size:9.5px;font-weight:800;color:var(--fg-primary);box-shadow:0 4px 12px #00000040;letter-spacing:.03em}.dev-marker.offline .dev-marker-bubble{background:var(--bg-surface-2);border-color:var(--fg-quaternary);color:var(--fg-quaternary);opacity:.7}.dev-marker-pulse{position:absolute;top:50%;left:50%;width:36px;height:36px;transform:translate(-50%,-50%);border-radius:50%;border:2px solid var(--c, var(--status-progress));animation:ltDevPulse 1.8s infinite ease-out;pointer-events:none}.dev-marker.deviation .dev-marker-bubble{box-shadow:0 0 0 4px color-mix(in srgb,var(--status-fail) 35%,transparent)}.dev-deviation-ring{position:absolute;top:50%;left:50%;width:64px;height:64px;transform:translate(-50%,-50%);border:2px dashed var(--status-fail);border-radius:50%;animation:ltSpin 6s linear infinite;pointer-events:none}.dev-marker-tip{position:absolute;bottom:calc(100% + 4px);left:50%;transform:translate(-50%);padding:6px 10px;background:var(--fg-primary);color:var(--bg-surface);border-radius:var(--r-sm);font-size:var(--t-xs);white-space:nowrap;pointer-events:none;box-shadow:var(--shadow-md);opacity:0;transition:opacity .14s;z-index:20}.dev-marker:hover .dev-marker-tip{opacity:1}.dev-marker-tip-row{display:flex;gap:8px;font-family:var(--font-mono)}.dev-marker-tip-row .k{opacity:.55}.live-leaflet .leaflet-tooltip.live-ran-tip{background:var(--bg-surface);color:var(--fg-primary);border:1px solid var(--border);border-radius:var(--r-sm);font-family:var(--font-mono);font-size:10.5px;font-weight:600;padding:3px 8px;box-shadow:var(--shadow-md)}.live-right{background:var(--bg-elev);border-left:1px solid var(--border);display:flex;flex-direction:column;min-height:0;overflow-y:auto}.lr-section{border-bottom:1px solid var(--border)}.lr-section.sticky-top{position:sticky;top:0;background:var(--bg-elev);z-index:5}.lr-section.sticky-bottom{position:sticky;bottom:0;background:var(--bg-elev);z-index:5;margin-top:auto;border-top:1px solid var(--border);border-bottom:0}.lr-head{display:flex;align-items:center;justify-content:space-between;padding:12px 16px 8px}.lr-head h4{margin:0;font-family:var(--font-mono);font-size:10.5px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--fg-tertiary)}.lr-head .ct{font-family:var(--font-mono);font-size:10px;padding:1px 7px;border-radius:999px;background:var(--status-fail);color:#fff;font-weight:700}.lr-body{padding:0 16px 14px}.profile-chips{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:12px}.profile-chip{display:inline-flex;align-items:center;gap:6px;padding:5px 10px;background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--r-pill);font-size:11px;font-weight:600}.profile-chip .dot{width:6px;height:6px;border-radius:50%;background:var(--fg-quaternary)}.profile-chip.running .dot{background:var(--status-progress);animation:ltDot 1.6s infinite}.profile-chip .name{color:var(--fg-primary)}.profile-chip .iter{color:var(--fg-tertiary);font-family:var(--font-mono);font-size:10px}.kpi-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px}.kpi-cell{padding:10px 12px;background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--r-md)}.kpi-cell .lbl{font-size:10px;color:var(--fg-tertiary);font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.06em;font-weight:600;margin-bottom:4px}.kpi-cell .val-row{display:flex;align-items:baseline;gap:6px}.kpi-cell .val{font-family:var(--font-mono);font-size:16px;font-weight:700;color:var(--fg-primary);letter-spacing:-.02em;font-variant-numeric:tabular-nums}.kpi-cell .unit{font-family:var(--font-mono);font-size:10px;color:var(--fg-tertiary)}.kpi-cell .stat-dot{margin-left:auto;width:8px;height:8px;border-radius:50%;background:var(--status-pass)}.kpi-cell .stat-dot.warn{background:var(--status-cancel)}.kpi-cell .stat-dot.fail{background:var(--status-fail)}.kpi-cell.fail .val{color:var(--status-fail)}.kpi-cell.warn .val{color:var(--status-cancel)}.dev-row{display:grid;grid-template-columns:14px 1fr auto;gap:10px;align-items:center;padding:9px 12px;background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--r-md);margin-bottom:6px;cursor:pointer;transition:border-color .14s}.dev-row:hover{border-color:var(--border-strong)}.dev-row.lost{border-color:color-mix(in srgb,var(--status-fail) 35%,var(--border));background:color-mix(in srgb,var(--status-fail) 5%,var(--bg-surface))}.dev-row-dot{width:8px;height:8px;border-radius:50%;background:var(--status-pass)}.dev-row.lost .dev-row-dot{background:var(--status-fail)}.dev-row.online .dev-row-dot{animation:ltChipPulse 1.6s infinite;box-shadow:0 0 color-mix(in srgb,var(--status-pass) 60%,transparent)}.dev-row-name{font-family:var(--font-mono);font-size:var(--t-sm);font-weight:700;display:flex;align-items:center;gap:6px}.dev-row-role{padding:1px 5px;background:var(--bg-surface-2);border-radius:3px;font-family:var(--font-mono);font-size:9px;font-weight:700;letter-spacing:.05em;color:var(--c, var(--fg-secondary))}.dev-row-meta{display:flex;gap:10px;margin-top:2px;font-family:var(--font-mono);font-size:10px;color:var(--fg-tertiary)}.dev-row-meta span{display:inline-flex;align-items:center;gap:3px}.dev-row-meta .batt-warn{color:var(--status-cancel)}.dev-row-meta .batt-crit{color:var(--status-fail)}.dev-row-tech{padding:2px 7px;font-family:var(--font-mono);font-size:9.5px;font-weight:700;border-radius:4px;background:color-mix(in srgb,var(--status-progress) 12%,transparent);color:var(--status-progress);letter-spacing:.04em}.dev-row-expanded{padding:10px 12px;margin:-6px 0 6px;background:var(--bg-surface-2);border:1px solid var(--border);border-radius:var(--r-md);font-family:var(--font-mono);font-size:10.5px}.dev-row-exp-grid{display:grid;grid-template-columns:1fr 1fr;gap:6px 14px}.dev-row-exp-grid .k{color:var(--fg-tertiary)}.dev-row-exp-grid .v{color:var(--fg-primary);font-weight:600;text-align:right}.anom-feed{display:flex;flex-direction:column;max-height:280px;overflow-y:auto}.anom-row{display:grid;grid-template-columns:64px 56px 1fr;gap:8px;align-items:baseline;padding:7px 10px;border-radius:var(--r-sm);cursor:pointer;font-size:11px;line-height:1.4;transition:background .12s;background:transparent;border:0;text-align:left;width:100%}.anom-row:hover{background:var(--bg-hover)}.anom-time{font-family:var(--font-mono);font-size:10px;color:var(--fg-tertiary)}.anom-cat{font-family:var(--font-mono);font-size:9px;font-weight:800;letter-spacing:.06em;padding:2px 6px;border-radius:3px;text-align:center;color:var(--c);background:color-mix(in srgb,var(--c) 14%,transparent)}.anom-cat.kpi{--c: var(--status-fail)}.anom-cat.call{--c: var(--status-cancel)}.anom-cat.gps{--c: var(--status-finalizing)}.anom-cat.batt{--c: var(--status-cancel)}.anom-cat.net{--c: var(--status-progress)}.anom-msg{color:var(--fg-secondary)}.anom-msg b{color:var(--fg-primary);font-weight:700}.anom-msg .seg{color:var(--fg-tertiary);font-family:var(--font-mono);font-size:10px}.anom-empty{display:flex;flex-direction:column;align-items:center;gap:6px;padding:24px 10px;color:var(--fg-tertiary);font-size:var(--t-sm);text-align:center}.anom-empty .ok-ico{width:32px;height:32px;border-radius:50%;background:color-mix(in srgb,var(--status-pass) 14%,transparent);color:var(--status-pass);display:grid;place-items:center}.exec-controls{padding:12px 16px 14px}.exec-dots{display:flex;gap:5px;margin-bottom:10px;align-items:center}.exec-dot{width:10px;height:10px;border-radius:50%;background:var(--status-pass)}.exec-dot.lost{background:transparent;border:1.5px solid var(--fg-quaternary)}.exec-dot.online{animation:ltChipPulse 1.6s infinite;box-shadow:0 0 color-mix(in srgb,var(--status-pass) 60%,transparent)}.exec-dots-label{font-family:var(--font-mono);font-size:10.5px;color:var(--fg-tertiary);margin-left:4px}.exec-btns{display:flex;gap:8px}.exec-btn{flex:1;padding:9px 14px;border-radius:var(--r-pill);font-size:var(--t-sm);font-weight:700;display:inline-flex;align-items:center;justify-content:center;gap:6px;cursor:pointer;transition:all .14s;background:var(--bg-surface);border:1.5px solid var(--border);color:var(--fg-primary)}.exec-btn:hover{background:var(--bg-hover);border-color:var(--border-strong)}.exec-btn.stop{background:var(--status-fail);border-color:var(--status-fail);color:#fff}.exec-btn.stop:hover{background:#cf3636;border-color:#cf3636}.exec-btn.resume{background:var(--status-pass);border-color:var(--status-pass);color:#fff}.exec-btn.resume:hover{background:#1ca84d;border-color:#1ca84d}.paused-banner{display:flex;align-items:center;gap:10px;padding:10px 12px;background:color-mix(in srgb,var(--status-cancel) 12%,transparent);border:1px solid color-mix(in srgb,var(--status-cancel) 35%,transparent);border-radius:var(--r-md);margin-bottom:10px;font-size:var(--t-sm)}.paused-banner .ico{width:20px;height:20px;border-radius:50%;background:var(--status-cancel);color:#fff;display:grid;place-items:center;flex-shrink:0}.paused-banner b{color:var(--status-cancel);font-weight:700}.paused-banner .meta{color:var(--fg-secondary);font-size:11px}.live-banner{position:absolute;top:0;left:0;right:0;z-index:1100;padding:9px 18px;background:color-mix(in srgb,var(--status-cancel) 15%,var(--bg-elev));border-bottom:1px solid color-mix(in srgb,var(--status-cancel) 50%,var(--border));display:flex;align-items:center;gap:10px;font-size:var(--t-sm);color:var(--fg-primary);font-weight:600;animation:ltSlideDown .22s}.live-banner .ico{width:18px;height:18px;border-radius:50%;background:var(--status-cancel);color:#fff;display:grid;place-items:center;flex-shrink:0}.live-banner .reconnect{margin-left:auto;display:inline-flex;align-items:center;gap:6px;color:var(--fg-secondary);font-family:var(--font-mono);font-size:11px}.live-toast-wrap{position:absolute;top:16px;right:16px;z-index:1200;display:flex;flex-direction:column;gap:8px;pointer-events:none}.live-toast{display:flex;align-items:flex-start;gap:10px;padding:12px 14px 12px 12px;background:var(--bg-surface);border:1px solid var(--border);border-left:3px solid var(--c, var(--status-cancel));border-radius:var(--r-md);box-shadow:var(--shadow-md);min-width:280px;font-size:var(--t-sm);pointer-events:auto;animation:ltSlideInRight .22s}.live-toast .ico{width:22px;height:22px;border-radius:50%;display:grid;place-items:center;background:color-mix(in srgb,var(--c, var(--status-cancel)) 14%,transparent);color:var(--c, var(--status-cancel));flex-shrink:0}.live-toast.fail{--c: var(--status-fail)}.live-toast.warn{--c: var(--status-cancel)}.live-toast h6{margin:0 0 2px;font-size:var(--t-sm);font-weight:700}.live-toast p{margin:0;font-size:11.5px;color:var(--fg-secondary);line-height:1.4}.live-alldrop{position:absolute;top:0;right:0;bottom:0;left:0;z-index:1300;background:color-mix(in srgb,var(--bg-elev) 80%,transparent);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);display:grid;place-items:center;animation:ltFadeIn .22s}.live-alldrop-card{width:420px;padding:28px 30px;background:var(--bg-surface);border:1px solid var(--border);border-top:4px solid var(--status-fail);border-radius:var(--r-lg);box-shadow:var(--shadow-lg);text-align:center}.live-alldrop-card .ico{width:56px;height:56px;border-radius:50%;background:color-mix(in srgb,var(--status-fail) 14%,transparent);color:var(--status-fail);display:grid;place-items:center;margin:0 auto 16px}.live-alldrop-card h3{margin:0 0 8px;font-size:18px;font-weight:800;letter-spacing:-.01em}.live-alldrop-card p{margin:0 0 20px;font-size:var(--t-md);color:var(--fg-secondary);line-height:1.5}.live-alldrop-card .acts{display:flex;gap:10px;justify-content:center}.stop-modal{width:480px;max-width:calc(100vw - 32px);background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--r-lg);box-shadow:var(--shadow-lg);overflow:hidden;animation:ltScaleIn .22s cubic-bezier(.16,1,.3,1)}.stop-modal-head{padding:22px 24px 4px}.stop-modal-head .ico{width:44px;height:44px;border-radius:50%;background:color-mix(in srgb,var(--status-fail) 14%,transparent);color:var(--status-fail);display:grid;place-items:center;margin-bottom:14px}.stop-modal-head h3{margin:0 0 6px;font-size:18px;font-weight:800;letter-spacing:-.01em}.stop-modal-head p{margin:0;font-size:var(--t-md);color:var(--fg-secondary);line-height:1.5}.stop-stats{margin:18px 24px;padding:14px 16px;background:var(--bg-surface-2);border:1px solid var(--border);border-radius:var(--r-md);display:grid;grid-template-columns:1fr 1fr 1fr;gap:12px}.stop-stat .lbl{font-family:var(--font-mono);font-size:10px;text-transform:uppercase;letter-spacing:.06em;color:var(--fg-tertiary);font-weight:700;margin-bottom:4px}.stop-stat .val{font-family:var(--font-mono);font-size:18px;font-weight:700;letter-spacing:-.02em;font-variant-numeric:tabular-nums}.stop-foot{display:flex;justify-content:flex-end;gap:8px;padding:14px 24px;border-top:1px solid var(--border);background:var(--bg-surface-2)}.post-overlay{position:absolute;top:0;right:0;bottom:0;left:0;background:color-mix(in srgb,var(--bg-elev) 75%,transparent);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);display:grid;place-items:center;z-index:1400;animation:ltFadeIn .22s}.post-card{width:520px;max-width:calc(100vw - 32px);padding:36px 40px 32px;background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--r-lg);box-shadow:var(--shadow-lg);text-align:center;animation:ltScaleIn .35s cubic-bezier(.16,1,.3,1)}.post-check{width:72px;height:72px;margin:0 auto 18px}.post-check svg{width:100%;height:100%}.post-check circle{fill:none;stroke:var(--status-pass);stroke-width:3;stroke-dasharray:220;stroke-dashoffset:220;animation:ltDrawCircle .55s ease-out forwards}.post-check path{fill:none;stroke:var(--status-pass);stroke-width:4;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:48;stroke-dashoffset:48;animation:ltDrawCheck .45s .35s ease-out forwards}.post-title{font-size:22px;font-weight:800;letter-spacing:-.02em;margin:0 0 10px}.post-stats{font-family:var(--font-mono);font-size:var(--t-sm);color:var(--fg-secondary);margin-bottom:6px;display:inline-flex;gap:10px;align-items:center;flex-wrap:wrap;justify-content:center}.post-stats .sep{color:var(--fg-quaternary)}.post-meta{font-size:var(--t-sm);color:var(--fg-tertiary);margin:0 0 24px}.post-ai{display:inline-flex;align-items:center;gap:8px;padding:8px 14px;border-radius:var(--r-pill);background:var(--accent-soft);border:1px solid var(--accent-strong);color:var(--accent);font-size:var(--t-sm);font-weight:600;margin-bottom:26px}.post-ai .pulse-dot{width:7px;height:7px;border-radius:50%;background:var(--accent);animation:ltChipPulse 1.4s infinite;box-shadow:0 0 color-mix(in srgb,var(--accent) 60%,transparent)}.post-actions{display:flex;gap:10px;justify-content:center}.back-confirm{width:440px;padding:24px;background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--r-lg);box-shadow:var(--shadow-lg);animation:ltScaleIn .22s cubic-bezier(.16,1,.3,1)}.back-confirm h3{margin:0 0 8px;font-size:17px;font-weight:800}.back-confirm p{margin:0 0 18px;font-size:var(--t-md);color:var(--fg-secondary);line-height:1.5}.back-confirm .acts{display:flex;gap:8px;justify-content:flex-end}.cmp{--cmp-gap: 16px;--cmp-radius: 14px;display:flex;flex-direction:column;gap:22px;padding-bottom:40px}.cmp-section{display:flex;flex-direction:column;gap:12px}.cmp-sec-head{display:flex;align-items:baseline;gap:12px;flex-wrap:wrap}.cmp-sec-eyebrow{font-family:var(--font-mono);font-size:10.5px;font-weight:700;letter-spacing:.16em;text-transform:uppercase;color:var(--accent);display:inline-flex;align-items:center;gap:7px}.cmp-sec-eyebrow:before{content:"";width:18px;height:2px;border-radius:2px;background:var(--accent);display:inline-block}.cmp-sec-title{font-size:17px;font-weight:800;letter-spacing:-.01em}.cmp-sec-sub{font-size:12px;color:var(--fg-tertiary)}.cmp-sec-spacer{flex:1}.cmp-panel{background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--cmp-radius);box-shadow:var(--shadow-xs);position:relative;overflow:hidden}.cmp-panel-pad{padding:16px 18px}.cmp-loading{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:14px;padding:80px 24px;text-align:center}.cmp-loading-bar{width:240px;height:4px;border-radius:4px;overflow:hidden;background:var(--bg-hover)}.cmp-loading-bar>i{display:block;height:100%;width:40%;border-radius:4px;background:var(--accent);animation:cmp-indet 1.1s ease-in-out infinite}@keyframes cmp-indet{0%{transform:translate(-120%)}to{transform:translate(320%)}}.cmp-loading-sub{font-size:12.5px;color:var(--fg-tertiary)}.cmp-summary{display:grid;grid-template-columns:repeat(auto-fit,minmax(165px,1fr));gap:var(--cmp-gap)}.cmp-kpi{background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--cmp-radius);padding:14px 16px;position:relative;overflow:hidden;display:flex;flex-direction:column;gap:6px;min-height:92px}.cmp-kpi:after{content:"";position:absolute;left:0;top:0;bottom:0;width:3px;background:var(--kpi-accent, var(--accent));opacity:.9}.cmp-kpi-label{font-family:var(--font-mono);font-size:10px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--fg-tertiary)}.cmp-kpi-value{font-size:26px;font-weight:800;letter-spacing:-.02em;line-height:1.05;font-variant-numeric:tabular-nums}.cmp-kpi-value .unit{font-size:13px;font-weight:600;color:var(--fg-tertiary);margin-left:3px}.cmp-kpi-sub{font-size:11.5px;color:var(--fg-secondary);display:flex;align-items:center;gap:6px}.cmp-kpi-dev{display:inline-flex;align-items:center;gap:6px;font-weight:700;font-size:13px}.cmp-kpi-swatch{width:9px;height:9px;border-radius:3px;flex:none;background:var(--dev)}.cmp-dev-chips{display:flex;flex-wrap:wrap;gap:7px}.cmp-dev-chip{display:inline-flex;align-items:center;gap:7px;padding:5px 11px 5px 9px;border-radius:var(--r-pill, 999px);border:1.5px solid var(--border);background:var(--bg-surface);cursor:pointer;-webkit-user-select:none;user-select:none;font-size:12px;font-weight:600;color:var(--fg-primary);transition:border-color .14s,background .14s,opacity .14s,transform .12s}.cmp-dev-chip:hover{transform:translateY(-1px)}.cmp-dev-chip .dot{width:10px;height:10px;border-radius:50%;background:var(--dev);flex:none;box-shadow:0 0 0 3px color-mix(in srgb,var(--dev) 22%,transparent)}.cmp-dev-chip.off{opacity:.4;border-style:dashed}.cmp-dev-chip.off .dot{box-shadow:none}.cmp-dev-chip .mono{font-family:var(--font-mono);font-size:11px;color:var(--fg-tertiary)}.cmp-map-wrap{position:relative}.cmp-map{height:460px;width:100%;border-radius:var(--cmp-radius);overflow:hidden;z-index:0;background:var(--bg-hover)}.cmp-map-overlay{position:absolute;z-index:500;background:color-mix(in srgb,var(--bg-surface) 92%,transparent);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border:1px solid var(--border);border-radius:12px;box-shadow:var(--shadow-md);padding:10px 12px}.cmp-map-legend{top:12px;left:12px;max-width:260px;max-height:78%;overflow:auto}.cmp-map-legend .cmp-dev-chips{flex-direction:column;gap:5px}.cmp-map-legend .cmp-dev-chip{width:100%;justify-content:flex-start}.cmp-map-controls{top:12px;right:12px;display:flex;gap:6px}.cmp-map-btn{width:34px;height:34px;border-radius:9px;display:grid;place-items:center;background:color-mix(in srgb,var(--bg-surface) 92%,transparent);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border:1px solid var(--border);cursor:pointer;color:var(--fg-primary);font-weight:700;transition:border-color .14s,color .14s}.cmp-map-btn:hover{border-color:var(--accent);color:var(--accent)}.cmp-map-tip{font-family:var(--font-mono);font-size:11px;line-height:1.45}.cmp-map-tip b{font-family:var(--font-sans, inherit)}.cmp-rank{width:100%;border-collapse:collapse;font-size:13px}.cmp-rank th{text-align:left;padding:10px 12px;font-family:var(--font-mono);font-size:10px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--fg-tertiary);border-bottom:1px solid var(--border);white-space:nowrap;cursor:pointer;-webkit-user-select:none;user-select:none}.cmp-rank th.sortable:hover{color:var(--accent)}.cmp-rank th .arr{opacity:.5;margin-left:4px;font-size:9px}.cmp-rank th.active{color:var(--accent)}.cmp-rank td{padding:11px 12px;border-bottom:1px solid var(--border);vertical-align:middle}.cmp-rank tr:last-child td{border-bottom:0}.cmp-rank tr.off{opacity:.4}.cmp-rank tr:hover td{background:var(--bg-hover)}.cmp-rank-pos{display:inline-grid;place-items:center;width:26px;height:26px;border-radius:8px;font-family:var(--font-mono);font-weight:800;font-size:13px;background:var(--bg-hover);color:var(--fg-secondary)}.cmp-rank-pos.gold{background:#fef3c7;color:#92400e}.cmp-rank-pos.silver{background:#e5e7eb;color:#374151}.cmp-rank-pos.bronze{background:#fed7aa;color:#9a3412}[data-theme=dark] .cmp-rank-pos.gold{background:#422006;color:#fcd34d}[data-theme=dark] .cmp-rank-pos.silver{background:#1f2937;color:#d1d5db}[data-theme=dark] .cmp-rank-pos.bronze{background:#431407;color:#fdba74}.cmp-rank-dev{display:flex;align-items:center;gap:9px}.cmp-rank-dev .dot{width:11px;height:11px;border-radius:50%;background:var(--dev);flex:none}.cmp-rank-dev b{font-weight:700}.cmp-rank-dev .sn{font-family:var(--font-mono);font-size:10.5px;color:var(--fg-tertiary)}.cmp-rank .num{font-family:var(--font-mono);font-variant-numeric:tabular-nums;text-align:right}.cmp-score{display:flex;align-items:center;gap:9px;min-width:130px}.cmp-score-track{flex:1;height:7px;border-radius:5px;background:var(--bg-hover);overflow:hidden}.cmp-score-fill{height:100%;border-radius:5px;background:var(--dev);transition:width .5s cubic-bezier(.2,.7,.2,1)}.cmp-score-val{font-family:var(--font-mono);font-weight:800;font-size:13px;min-width:34px;text-align:right}.cmp-kpi-tabs{display:flex;flex-wrap:wrap;gap:6px}.cmp-kpi-tab{padding:6px 13px;border-radius:var(--r-pill, 999px);border:1.5px solid var(--border);background:var(--bg-surface);font-family:var(--font-mono);font-size:11.5px;font-weight:700;letter-spacing:.02em;color:var(--fg-secondary);cursor:pointer;transition:all .14s;white-space:nowrap}.cmp-kpi-tab:hover:not(.on):not(:disabled){color:var(--fg-primary);border-color:var(--accent)}.cmp-kpi-tab.on{background:var(--accent);color:#fff;border-color:var(--accent)}.cmp-kpi-tab:disabled{opacity:.32;cursor:not-allowed}.cmp-seg{display:inline-flex;border:1.5px solid var(--border);border-radius:var(--r-pill, 999px);overflow:hidden}.cmp-seg button{padding:6px 14px;background:var(--bg-surface);border:0;cursor:pointer;font-family:var(--font-mono);font-size:11px;font-weight:700;color:var(--fg-secondary);transition:all .14s}.cmp-seg button.on{background:var(--accent);color:#fff}.cmp-seg button:not(.on):hover{background:var(--bg-hover)}.cmp-grid-2{display:grid;grid-template-columns:1fr 1fr;gap:var(--cmp-gap)}@media (max-width: 1100px){.cmp-grid-2{grid-template-columns:1fr}}.cmp-stats{width:100%;border-collapse:collapse;font-size:12.5px}.cmp-stats th,.cmp-stats td{padding:9px 11px;border-bottom:1px solid var(--border);white-space:nowrap}.cmp-stats thead th{font-family:var(--font-mono);font-size:10px;letter-spacing:.06em;text-transform:uppercase;color:var(--fg-tertiary);text-align:right;font-weight:700}.cmp-stats thead th:first-child{text-align:left}.cmp-stats td{text-align:right;font-family:var(--font-mono);font-variant-numeric:tabular-nums}.cmp-stats td:first-child{text-align:left;font-family:var(--font-sans, inherit);font-weight:700;display:flex;align-items:center;gap:8px}.cmp-stats td:first-child .dot{width:9px;height:9px;border-radius:50%;background:var(--dev);flex:none}.cmp-stats .best{color:var(--status-pass, #16a34a);font-weight:800}.cmp-stats .worst{color:var(--status-fail, #dc2626)}.cmp-box-row{display:grid;grid-template-columns:150px 1fr 60px;align-items:center;gap:12px;padding:7px 0}.cmp-box-dev{display:flex;align-items:center;gap:8px;font-size:12.5px;font-weight:700;min-width:0}.cmp-box-dev .dot{width:10px;height:10px;border-radius:50%;background:var(--dev);flex:none}.cmp-box-dev span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.cmp-box-track{position:relative;height:30px}.cmp-box-val{font-family:var(--font-mono);font-size:12px;font-weight:700;text-align:right}.cmp-events-table{width:100%;border-collapse:collapse;font-size:12.5px}.cmp-events-table th,.cmp-events-table td{padding:9px 11px;border-bottom:1px solid var(--border);text-align:right;white-space:nowrap}.cmp-events-table thead th{font-family:var(--font-mono);font-size:10px;letter-spacing:.06em;text-transform:uppercase;color:var(--fg-tertiary)}.cmp-events-table th:first-child,.cmp-events-table td:first-child{text-align:left}.cmp-events-table td{font-family:var(--font-mono);font-variant-numeric:tabular-nums}.cmp-events-table td:first-child{font-family:var(--font-sans, inherit);font-weight:700}.cmp-insights{display:grid;grid-template-columns:repeat(auto-fit,minmax(290px,1fr));gap:var(--cmp-gap)}.cmp-insight{display:flex;gap:12px;padding:14px 16px;border:1px solid var(--border);border-radius:var(--cmp-radius);background:var(--bg-surface);position:relative;overflow:hidden}.cmp-insight:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;background:linear-gradient(120deg,color-mix(in srgb,var(--ins, var(--accent)) 8%,transparent),transparent 55%)}.cmp-insight-ic{width:34px;height:34px;border-radius:10px;flex:none;display:grid;place-items:center;background:color-mix(in srgb,var(--ins, var(--accent)) 16%,transparent);color:var(--ins, var(--accent))}.cmp-insight-body{position:relative}.cmp-insight-title{font-weight:700;font-size:13.5px;margin-bottom:3px}.cmp-insight-text{font-size:12.5px;color:var(--fg-secondary);line-height:1.45}.cmp-insight-text b{color:var(--fg-primary)}.cmp-scatter-axes{display:flex;gap:10px;flex-wrap:wrap;align-items:center}.cmp-axis-pick{display:inline-flex;align-items:center;gap:6px;font-size:11.5px;color:var(--fg-tertiary)}.cmp-axis-pick select{padding:5px 10px;border-radius:8px;border:1.5px solid var(--border);background:var(--bg-surface);color:var(--fg-primary);font-family:var(--font-mono);font-size:11.5px;font-weight:700;cursor:pointer}.cmp-corr-readout{display:flex;align-items:center;gap:10px;flex-wrap:wrap;padding:10px 12px;margin-bottom:12px;background:var(--bg-hover);border-radius:10px;border-left:3px solid var(--accent)}.cmp-corr-r{font-family:var(--font-mono);font-weight:800;font-size:15px;color:color-mix(in srgb,var(--accent) calc(40% + var(--r, 0) * 60%),var(--fg-primary))}.cmp-corr-word{font-weight:700;font-size:13px;text-transform:capitalize}.cmp-corr-legend{display:flex;flex-wrap:wrap;gap:12px;margin-top:12px}.cmp-corr-leg{display:inline-flex;align-items:center;gap:6px;font-size:11.5px;font-weight:600;color:var(--fg-secondary)}.cmp-corr-leg .dot{width:9px;height:9px;border-radius:50%;background:var(--dev);flex:none}.cmp-empty{padding:38px 16px;text-align:center;color:var(--fg-tertiary);font-size:13px}.cmp-tabbar{display:inline-flex;gap:4px;padding:4px;background:var(--bg-hover);border-radius:var(--r-pill, 999px);border:1px solid var(--border)}.cmp-tabbar button{display:inline-flex;align-items:center;gap:7px;padding:8px 16px;border:0;border-radius:var(--r-pill, 999px);background:transparent;cursor:pointer;font-size:13px;font-weight:700;color:var(--fg-secondary);transition:all .15s}.cmp-tabbar button.on{background:var(--bg-surface);color:var(--fg-primary);box-shadow:var(--shadow-xs)}.cmp-tabbar button .badge{font-family:var(--font-mono);font-size:10px;font-weight:700;padding:1px 6px;border-radius:999px;background:var(--accent);color:#fff}.cmp-toolbar{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.spinner{display:inline-block;border:2px solid color-mix(in srgb,var(--accent) 25%,transparent);border-top-color:var(--accent);border-radius:50%;animation:spin .8s linear infinite}.spinner-sm{width:14px;height:14px;border-width:2px}.spinner-md{width:22px;height:22px;border-width:2px}.spinner-lg{width:38px;height:38px;border-width:3px}.spinner-row{display:inline-flex;align-items:center;gap:8px}.spinner-text{font-size:var(--t-sm);color:var(--fg-secondary)}@keyframes spin{to{transform:rotate(360deg)}}.loading-screen{position:fixed;top:0;right:0;bottom:0;left:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:14px;background:var(--bg-primary);color:var(--fg-primary);z-index:100}.loading-label{font-size:var(--t-sm);color:var(--fg-secondary)}.eb-screen{position:fixed;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;background:var(--bg-primary);padding:24px;z-index:1000}.eb-card{max-width:520px;width:100%;background:var(--bg-surface, #fff);border:1px solid var(--border-color, #e5e7eb);border-radius:12px;padding:24px;box-shadow:0 10px 32px #00000014}.eb-title{font-size:var(--t-lg);font-weight:700;margin-bottom:6px;color:var(--status-fail, #ef4444)}.eb-sub{font-size:var(--t-sm);color:var(--fg-secondary);margin-bottom:14px}.eb-detail{background:var(--bg-secondary, #f3f4f6);border:1px solid var(--border-color, #e5e7eb);border-radius:6px;padding:10px 12px;font-family:var(--font-mono);font-size:12px;color:var(--fg-primary);white-space:pre-wrap;word-break:break-word;margin-bottom:14px;max-height:200px;overflow:auto}.toast-stack{position:fixed;bottom:20px;right:20px;display:flex;flex-direction:column;gap:8px;z-index:1500;max-width:380px;pointer-events:none}.toast{pointer-events:auto;padding:10px 14px;border-radius:8px;font-size:var(--t-sm);cursor:pointer;box-shadow:0 6px 18px #0000001f;background:var(--bg-surface, #fff);border-left:3px solid var(--accent);color:var(--fg-primary);animation:toast-in .2s ease-out}.toast-success{border-left-color:var(--status-pass, #10b981)}.toast-error{border-left-color:var(--status-fail, #ef4444)}.toast-warn{border-left-color:var(--status-finalizing, #f59e0b)}.toast-info{border-left-color:var(--accent)}@keyframes toast-in{0%{transform:translateY(8px);opacity:0}to{transform:translateY(0);opacity:1}}.tbl-empty{text-align:center;padding:36px 16px;color:var(--fg-tertiary, #9ca3af)}.tbl-empty-title{font-weight:600;color:var(--fg-secondary);margin-bottom:4px}.tbl-empty-sub{font-size:var(--t-sm)}.role-gated[data-allowed=false]{display:none!important}
