@import"https://fonts.googleapis.com/css2?family=Plus+Jakarta+Sans:wght@300;400;500;600;700;800&family=JetBrains+Mono:wght@400;500&family=Orbitron:wght@700;800;900&display=swap";.leaflet-pane,.leaflet-tile,.leaflet-marker-icon,.leaflet-marker-shadow,.leaflet-tile-container,.leaflet-pane>svg,.leaflet-pane>canvas,.leaflet-zoom-box,.leaflet-image-layer,.leaflet-layer{position:absolute;left:0;top:0}.leaflet-container{overflow:hidden}.leaflet-tile,.leaflet-marker-icon,.leaflet-marker-shadow{-webkit-user-select:none;-moz-user-select:none;user-select:none;-webkit-user-drag:none}.leaflet-tile::selection{background:transparent}.leaflet-safari .leaflet-tile{image-rendering:-webkit-optimize-contrast}.leaflet-safari .leaflet-tile-container{width:1600px;height:1600px;-webkit-transform-origin:0 0}.leaflet-marker-icon,.leaflet-marker-shadow{display:block}.leaflet-container .leaflet-overlay-pane svg{max-width:none!important;max-height:none!important}.leaflet-container .leaflet-marker-pane img,.leaflet-container .leaflet-shadow-pane img,.leaflet-container .leaflet-tile-pane img,.leaflet-container img.leaflet-image-layer,.leaflet-container .leaflet-tile{max-width:none!important;max-height:none!important;width:auto;padding:0}.leaflet-container img.leaflet-tile{mix-blend-mode:plus-lighter}.leaflet-container.leaflet-touch-zoom{-ms-touch-action:pan-x pan-y;touch-action:pan-x pan-y}.leaflet-container.leaflet-touch-drag{-ms-touch-action:pinch-zoom;touch-action:none;touch-action:pinch-zoom}.leaflet-container.leaflet-touch-drag.leaflet-touch-zoom{-ms-touch-action:none;touch-action:none}.leaflet-container{-webkit-tap-highlight-color:transparent}.leaflet-container a{-webkit-tap-highlight-color:rgba(51,181,229,.4)}.leaflet-tile{filter:inherit;visibility:hidden}.leaflet-tile-loaded{visibility:inherit}.leaflet-zoom-box{width:0;height:0;-moz-box-sizing:border-box;box-sizing:border-box;z-index:800}.leaflet-overlay-pane svg{-moz-user-select:none}.leaflet-pane{z-index:400}.leaflet-tile-pane{z-index:200}.leaflet-overlay-pane{z-index:400}.leaflet-shadow-pane{z-index:500}.leaflet-marker-pane{z-index:600}.leaflet-tooltip-pane{z-index:650}.leaflet-popup-pane{z-index:700}.leaflet-map-pane canvas{z-index:100}.leaflet-map-pane svg{z-index:200}.leaflet-vml-shape{width:1px;height:1px}.lvml{behavior:url(#default#VML);display:inline-block;position:absolute}.leaflet-control{position:relative;z-index:800;pointer-events:visiblePainted;pointer-events:auto}.leaflet-top,.leaflet-bottom{position:absolute;z-index:1000;pointer-events:none}.leaflet-top{top:0}.leaflet-right{right:0}.leaflet-bottom{bottom:0}.leaflet-left{left:0}.leaflet-control{float:left;clear:both}.leaflet-right .leaflet-control{float:right}.leaflet-top .leaflet-control{margin-top:10px}.leaflet-bottom .leaflet-control{margin-bottom:10px}.leaflet-left .leaflet-control{margin-left:10px}.leaflet-right .leaflet-control{margin-right:10px}.leaflet-fade-anim .leaflet-popup{opacity:0;-webkit-transition:opacity .2s linear;-moz-transition:opacity .2s linear;transition:opacity .2s linear}.leaflet-fade-anim .leaflet-map-pane .leaflet-popup{opacity:1}.leaflet-zoom-animated{-webkit-transform-origin:0 0;-ms-transform-origin:0 0;transform-origin:0 0}svg.leaflet-zoom-animated{will-change:transform}.leaflet-zoom-anim .leaflet-zoom-animated{-webkit-transition:-webkit-transform .25s cubic-bezier(0,0,.25,1);-moz-transition:-moz-transform .25s cubic-bezier(0,0,.25,1);transition:transform .25s cubic-bezier(0,0,.25,1)}.leaflet-zoom-anim .leaflet-tile,.leaflet-pan-anim .leaflet-tile{-webkit-transition:none;-moz-transition:none;transition:none}.leaflet-zoom-anim .leaflet-zoom-hide{visibility:hidden}.leaflet-interactive{cursor:pointer}.leaflet-grab{cursor:-webkit-grab;cursor:-moz-grab;cursor:grab}.leaflet-crosshair,.leaflet-crosshair .leaflet-interactive{cursor:crosshair}.leaflet-popup-pane,.leaflet-control{cursor:auto}.leaflet-dragging .leaflet-grab,.leaflet-dragging .leaflet-grab .leaflet-interactive,.leaflet-dragging .leaflet-marker-draggable{cursor:move;cursor:-webkit-grabbing;cursor:-moz-grabbing;cursor:grabbing}.leaflet-marker-icon,.leaflet-marker-shadow,.leaflet-image-layer,.leaflet-pane>svg path,.leaflet-tile-container{pointer-events:none}.leaflet-marker-icon.leaflet-interactive,.leaflet-image-layer.leaflet-interactive,.leaflet-pane>svg path.leaflet-interactive,svg.leaflet-image-layer.leaflet-interactive path{pointer-events:visiblePainted;pointer-events:auto}.leaflet-container{background:#ddd;outline-offset:1px}.leaflet-container a{color:#0078a8}.leaflet-zoom-box{border:2px dotted #38f;background:#ffffff80}.leaflet-container{font-family:Helvetica Neue,Arial,Helvetica,sans-serif;font-size:12px;font-size:.75rem;line-height:1.5}.leaflet-bar{box-shadow:0 1px 5px #000000a6;border-radius:4px}.leaflet-bar a{background-color:#fff;border-bottom:1px solid #ccc;width:26px;height:26px;line-height:26px;display:block;text-align:center;text-decoration:none;color:#000}.leaflet-bar a,.leaflet-control-layers-toggle{background-position:50% 50%;background-repeat:no-repeat;display:block}.leaflet-bar a:hover,.leaflet-bar a:focus{background-color:#f4f4f4}.leaflet-bar a:first-child{border-top-left-radius:4px;border-top-right-radius:4px}.leaflet-bar a:last-child{border-bottom-left-radius:4px;border-bottom-right-radius:4px;border-bottom:none}.leaflet-bar a.leaflet-disabled{cursor:default;background-color:#f4f4f4;color:#bbb}.leaflet-touch .leaflet-bar a{width:30px;height:30px;line-height:30px}.leaflet-touch .leaflet-bar a:first-child{border-top-left-radius:2px;border-top-right-radius:2px}.leaflet-touch .leaflet-bar a:last-child{border-bottom-left-radius:2px;border-bottom-right-radius:2px}.leaflet-control-zoom-in,.leaflet-control-zoom-out{font:700 18px Lucida Console,Monaco,monospace;text-indent:1px}.leaflet-touch .leaflet-control-zoom-in,.leaflet-touch .leaflet-control-zoom-out{font-size:22px}.leaflet-control-layers{box-shadow:0 1px 5px #0006;background:#fff;border-radius:5px}.leaflet-control-layers-toggle{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABoAAAAaCAQAAAADQ4RFAAACf0lEQVR4AY1UM3gkARTePdvdoTxXKc+qTl3aU5U6b2Kbkz3Gtq3Zw6ziLGNPzrYx7946Tr6/ee/XeCQ4D3ykPtL5tHno4n0d/h3+xfuWHGLX81cn7r0iTNzjr7LrlxCqPtkbTQEHeqOrTy4Yyt3VCi/IOB0v7rVC7q45Q3Gr5K6jt+3Gl5nCoDD4MtO+j96Wu8atmhGqcNGHObuf8OM/x3AMx38+4Z2sPqzCxRFK2aF2e5Jol56XTLyggAMTL56XOMoS1W4pOyjUcGGQdZxU6qRh7B9Zp+PfpOFlqt0zyDZckPi1ttmIp03jX8gyJ8a/PG2yutpS/Vol7peZIbZcKBAEEheEIAgFbDkz5H6Zrkm2hVWGiXKiF4Ycw0RWKdtC16Q7qe3X4iOMxruonzegJzWaXFrU9utOSsLUmrc0YjeWYjCW4PDMADElpJSSQ0vQvA1Tm6/JlKnqFs1EGyZiFCqnRZTEJJJiKRYzVYzJck2Rm6P4iH+cmSY0YzimYa8l0EtTODFWhcMIMVqdsI2uiTvKmTisIDHJ3od5GILVhBCarCfVRmo4uTjkhrhzkiBV7SsaqS+TzrzM1qpGGUFt28pIySQHR6h7F6KSwGWm97ay+Z+ZqMcEjEWebE7wxCSQwpkhJqoZA5ivCdZDjJepuJ9IQjGGUmuXJdBFUygxVqVsxFsLMbDe8ZbDYVCGKxs+W080max1hFCarCfV+C1KATwcnvE9gRRuMP2prdbWGowm1KB1y+zwMMENkM755cJ2yPDtqhTI6ED1M/82yIDtC/4j4BijjeObflpO9I9MwXTCsSX8jWAFeHr05WoLTJ5G8IQVS/7vwR6ohirYM7f6HzYpogfS3R2OAAAAAElFTkSuQmCC);width:36px;height:36px}.leaflet-retina .leaflet-control-layers-toggle{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADQAAAA0CAQAAABvcdNgAAAEsklEQVR4AWL4TydIhpZK1kpWOlg0w3ZXP6D2soBtG42jeI6ZmQTHzAxiTbSJsYLjO9HhP+WOmcuhciVnmHVQcJnp7DFvScowZorad/+V/fVzMdMT2g9Cv9guXGv/7pYOrXh2U+RRR3dSd9JRx6bIFc/ekqHI29JC6pJ5ZEh1yWkhkbcFeSjxgx3L2m1cb1C7bceyxA+CNjT/Ifff+/kDk2u/w/33/IeCMOSaWZ4glosqT3DNnNZQ7Cs58/3Ce5HL78iZH/vKVIaYlqzfdLu8Vi7dnvUbEza5Idt36tquZFldl6N5Z/POLof0XLK61mZCmJSWjVF9tEjUluu74IUXvgttuVIHE7YxSkaYhJZam7yiM9Pv82JYfl9nptxZaxMJE4YSPty+vF0+Y2up9d3wwijfjZbabqm/3bZ9ecKHsiGmRflnn1MW4pjHf9oLufyn2z3y1D6n8g8TZhxyzipLNPnAUpsOiuWimg52psrTZYnOWYNDTMuWBWa0tJb4rgq1UvmutpaYEbZlwU3CLJm/ayYjHW5/h7xWLn9Hh1vepDkyf7dE7MtT5LR4e7yYpHrkhOUpEfssBLq2pPhAqoSWKUkk7EDqkmK6RrCEzqDjhNDWNE+XSMvkJRDWlZTmCW0l0PHQGRZY5t1L83kT0Y3l2SItk5JAWHl2dCOBm+fPu3fo5/3v61RMCO9Jx2EEYYhb0rmNQMX/vm7gqOEJLcXTGw3CAuRNeyaPWwjR8PRqKQ1PDA/dpv+on9Shox52WFnx0KY8onHayrJzm87i5h9xGw/tfkev0jGsQizqezUKjk12hBMKJ4kbCqGPVNXudyyrShovGw5CgxsRICxF6aRmSjlBnHRzg7Gx8fKqEubI2rahQYdR1YgDIRQO7JvQyD52hoIQx0mxa0ODtW2Iozn1le2iIRdzwWewedyZzewidueOGqlsn1MvcnQpuVwLGG3/IR1hIKxCjelIDZ8ldqWz25jWAsnldEnK0Zxro19TGVb2ffIZEsIO89EIEDvKMPrzmBOQcKQ+rroye6NgRRxqR4U8EAkz0CL6uSGOm6KQCdWjvjRiSP1BPalCRS5iQYiEIvxuBMJEWgzSoHADcVMuN7IuqqTeyUPq22qFimFtxDyBBJEwNyt6TM88blFHao/6tWWhuuOM4SAK4EI4QmFHA+SEyWlp4EQoJ13cYGzMu7yszEIBOm2rVmHUNqwAIQabISNMRstmdhNWcFLsSm+0tjJH1MdRxO5Nx0WDMhCtgD6OKgZeljJqJKc9po8juskR9XN0Y1lZ3mWjLR9JCO1jRDMd0fpYC2VnvjBSEFg7wBENc0R9HFlb0xvF1+TBEpF68d+DHR6IOWVv2BECtxo46hOFUBd/APU57WIoEwJhIi2CdpyZX0m93BZicktMj1AS9dClteUFAUNUIEygRZCtik5zSxI9MubTBH1GOiHsiLJ3OCoSZkILa9PxiN0EbvhsAo8tdAf9Seepd36lGWHmtNANTv5Jd0z4QYyeo/UEJqxKRpg5LZx6btLPsOaEmdMyxYdlc8LMaJnikDlhclqmPiQnTEpLUIZEwkRagjYkEibQErwhkTAKCLQEbUgkzJQWc/0PstHHcfEdQ+UAAAAASUVORK5CYII=);background-size:26px 26px}.leaflet-touch .leaflet-control-layers-toggle{width:44px;height:44px}.leaflet-control-layers .leaflet-control-layers-list,.leaflet-control-layers-expanded .leaflet-control-layers-toggle{display:none}.leaflet-control-layers-expanded .leaflet-control-layers-list{display:block;position:relative}.leaflet-control-layers-expanded{padding:6px 10px 6px 6px;color:#333;background:#fff}.leaflet-control-layers-scrollbar{overflow-y:scroll;overflow-x:hidden;padding-right:5px}.leaflet-control-layers-selector{margin-top:2px;position:relative;top:1px}.leaflet-control-layers label{display:block;font-size:13px;font-size:1.08333em}.leaflet-control-layers-separator{height:0;border-top:1px solid #ddd;margin:5px -10px 5px -6px}.leaflet-default-icon-path{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABkAAAApCAYAAADAk4LOAAAFgUlEQVR4Aa1XA5BjWRTN2oW17d3YaZtr2962HUzbDNpjszW24mRt28p47v7zq/bXZtrp/lWnXr337j3nPCe85NcypgSFdugCpW5YoDAMRaIMqRi6aKq5E3YqDQO3qAwjVWrD8Ncq/RBpykd8oZUb/kaJutow8r1aP9II0WmLKLIsJyv1w/kqw9Ch2MYdB++12Onxee/QMwvf4/Dk/Lfp/i4nxTXtOoQ4pW5Aj7wpici1A9erdAN2OH64x8OSP9j3Ft3b7aWkTg/Fm91siTra0f9on5sQr9INejH6CUUUpavjFNq1B+Oadhxmnfa8RfEmN8VNAsQhPqF55xHkMzz3jSmChWU6f7/XZKNH+9+hBLOHYozuKQPxyMPUKkrX/K0uWnfFaJGS1QPRtZsOPtr3NsW0uyh6NNCOkU3Yz+bXbT3I8G3xE5EXLXtCXbbqwCO9zPQYPRTZ5vIDXD7U+w7rFDEoUUf7ibHIR4y6bLVPXrz8JVZEql13trxwue/uDivd3fkWRbS6/IA2bID4uk0UpF1N8qLlbBlXs4Ee7HLTfV1j54APvODnSfOWBqtKVvjgLKzF5YdEk5ewRkGlK0i33Eofffc7HT56jD7/6U+qH3Cx7SBLNntH5YIPvODnyfIXZYRVDPqgHtLs5ABHD3YzLuespb7t79FY34DjMwrVrcTuwlT55YMPvOBnRrJ4VXTdNnYug5ucHLBjEpt30701A3Ts+HEa73u6dT3FNWwflY86eMHPk+Yu+i6pzUpRrW7SNDg5JHR4KapmM5Wv2E8Tfcb1HoqqHMHU+uWDD7zg54mz5/2BSnizi9T1Dg4QQXLToGNCkb6tb1NU+QAlGr1++eADrzhn/u8Q2YZhQVlZ5+CAOtqfbhmaUCS1ezNFVm2imDbPmPng5wmz+gwh+oHDce0eUtQ6OGDIyR0uUhUsoO3vfDmmgOezH0mZN59x7MBi++WDL1g/eEiU3avlidO671bkLfwbw5XV2P8Pzo0ydy4t2/0eu33xYSOMOD8hTf4CrBtGMSoXfPLchX+J0ruSePw3LZeK0juPJbYzrhkH0io7B3k164hiGvawhOKMLkrQLyVpZg8rHFW7E2uHOL888IBPlNZ1FPzstSJM694fWr6RwpvcJK60+0HCILTBzZLFNdtAzJaohze60T8qBzyh5ZuOg5e7uwQppofEmf2++DYvmySqGBuKaicF1blQjhuHdvCIMvp8whTTfZzI7RldpwtSzL+F1+wkdZ2TBOW2gIF88PBTzD/gpeREAMEbxnJcaJHNHrpzji0gQCS6hdkEeYt9DF/2qPcEC8RM28Hwmr3sdNyht00byAut2k3gufWNtgtOEOFGUwcXWNDbdNbpgBGxEvKkOQsxivJx33iow0Vw5S6SVTrpVq11ysA2Rp7gTfPfktc6zhtXBBC+adRLshf6sG2RfHPZ5EAc4sVZ83yCN00Fk/4kggu40ZTvIEm5g24qtU4KjBrx/BTTH8ifVASAG7gKrnWxJDcU7x8X6Ecczhm3o6YicvsLXWfh3Ch1W0k8x0nXF+0fFxgt4phz8QvypiwCCFKMqXCnqXExjq10beH+UUA7+nG6mdG/Pu0f3LgFcGrl2s0kNNjpmoJ9o4B29CMO8dMT4Q5ox8uitF6fqsrJOr8qnwNbRzv6hSnG5wP+64C7h9lp30hKNtKdWjtdkbuPA19nJ7Tz3zR/ibgARbhb4AlhavcBebmTHcFl2fvYEnW0ox9xMxKBS8btJ+KiEbq9zA4RthQXDhPa0T9TEe69gWupwc6uBUphquXgf+/FrIjweHQS4/pduMe5ERUMHUd9xv8ZR98CxkS4F2n3EUrUZ10EYNw7BWm9x1GiPssi3GgiGRDKWRYZfXlON+dfNbM+GgIwYdwAAAAASUVORK5CYII=)}.leaflet-container .leaflet-control-attribution{background:#fff;background:#fffc;margin:0}.leaflet-control-attribution,.leaflet-control-scale-line{padding:0 5px;color:#333;line-height:1.4}.leaflet-control-attribution a{text-decoration:none}.leaflet-control-attribution a:hover,.leaflet-control-attribution a:focus{text-decoration:underline}.leaflet-attribution-flag{display:inline!important;vertical-align:baseline!important;width:1em;height:.6669em}.leaflet-left .leaflet-control-scale{margin-left:5px}.leaflet-bottom .leaflet-control-scale{margin-bottom:5px}.leaflet-control-scale-line{border:2px solid #777;border-top:none;line-height:1.1;padding:2px 5px 1px;white-space:nowrap;-moz-box-sizing:border-box;box-sizing:border-box;background:#fffc;text-shadow:1px 1px #fff}.leaflet-control-scale-line:not(:first-child){border-top:2px solid #777;border-bottom:none;margin-top:-2px}.leaflet-control-scale-line:not(:first-child):not(:last-child){border-bottom:2px solid #777}.leaflet-touch .leaflet-control-attribution,.leaflet-touch .leaflet-control-layers,.leaflet-touch .leaflet-bar{box-shadow:none}.leaflet-touch .leaflet-control-layers,.leaflet-touch .leaflet-bar{border:2px solid rgba(0,0,0,.2);background-clip:padding-box}.leaflet-popup{position:absolute;text-align:center;margin-bottom:20px}.leaflet-popup-content-wrapper{padding:1px;text-align:left;border-radius:12px}.leaflet-popup-content{margin:13px 24px 13px 20px;line-height:1.3;font-size:13px;font-size:1.08333em;min-height:1px}.leaflet-popup-content p{margin:1.3em 0}.leaflet-popup-tip-container{width:40px;height:20px;position:absolute;left:50%;margin-top:-1px;margin-left:-20px;overflow:hidden;pointer-events:none}.leaflet-popup-tip{width:17px;height:17px;padding:1px;margin:-10px auto 0;pointer-events:auto;-webkit-transform:rotate(45deg);-moz-transform:rotate(45deg);-ms-transform:rotate(45deg);transform:rotate(45deg)}.leaflet-popup-content-wrapper,.leaflet-popup-tip{background:#fff;color:#333;box-shadow:0 3px 14px #0006}.leaflet-container a.leaflet-popup-close-button{position:absolute;top:0;right:0;border:none;text-align:center;width:24px;height:24px;font:16px/24px Tahoma,Verdana,sans-serif;color:#757575;text-decoration:none;background:transparent}.leaflet-container a.leaflet-popup-close-button:hover,.leaflet-container a.leaflet-popup-close-button:focus{color:#585858}.leaflet-popup-scrolled{overflow:auto}.leaflet-oldie .leaflet-popup-content-wrapper{-ms-zoom:1}.leaflet-oldie .leaflet-popup-tip{width:24px;margin:0 auto;-ms-filter:"progid:DXImageTransform.Microsoft.Matrix(M11=0.70710678, M12=0.70710678, M21=-0.70710678, M22=0.70710678)";filter:progid:DXImageTransform.Microsoft.Matrix(M11=.70710678,M12=.70710678,M21=-.70710678,M22=.70710678)}.leaflet-oldie .leaflet-control-zoom,.leaflet-oldie .leaflet-control-layers,.leaflet-oldie .leaflet-popup-content-wrapper,.leaflet-oldie .leaflet-popup-tip{border:1px solid #999}.leaflet-div-icon{background:#fff;border:1px solid #666}.leaflet-tooltip{position:absolute;padding:6px;background-color:#fff;border:1px solid #fff;border-radius:3px;color:#222;white-space:nowrap;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;pointer-events:none;box-shadow:0 1px 3px #0006}.leaflet-tooltip.leaflet-interactive{cursor:pointer;pointer-events:auto}.leaflet-tooltip-top:before,.leaflet-tooltip-bottom:before,.leaflet-tooltip-left:before,.leaflet-tooltip-right:before{position:absolute;pointer-events:none;border:6px solid transparent;background:transparent;content:""}.leaflet-tooltip-bottom{margin-top:6px}.leaflet-tooltip-top{margin-top:-6px}.leaflet-tooltip-bottom:before,.leaflet-tooltip-top:before{left:50%;margin-left:-6px}.leaflet-tooltip-top:before{bottom:0;margin-bottom:-12px;border-top-color:#fff}.leaflet-tooltip-bottom:before{top:0;margin-top:-12px;margin-left:-6px;border-bottom-color:#fff}.leaflet-tooltip-left{margin-left:-6px}.leaflet-tooltip-right{margin-left:6px}.leaflet-tooltip-left:before,.leaflet-tooltip-right:before{top:50%;margin-top:-6px}.leaflet-tooltip-left:before{right:0;margin-right:-12px;border-left-color:#fff}.leaflet-tooltip-right:before{left:0;margin-left:-12px;border-right-color:#fff}@media print{.leaflet-control{-webkit-print-color-adjust:exact;print-color-adjust:exact}}:root{--color-primary: #dce4f2;--color-primary-dim: #c8d3e6;--color-success: #57c489;--color-error: #e06b82;--color-warning: #d7a05a;--color-bg: #111318;--color-surface: #171b22;--color-surface-mid: #1d232d;--color-surface-light: #272e3a;--color-text: #e8edf6;--color-text-muted: #9eabbe;--color-border: #2c3441;--color-border-hover: #3a4351;--glow-primary: 0 0 12px rgba(210, 220, 236, .18);--glow-success: 0 0 10px rgba(87, 196, 137, .16);--spacing-xs: 4px;--spacing-sm: 8px;--spacing-md: 16px;--spacing-lg: 24px;--radius: 7px;--radius-sm: 4px;--radius-lg: 12px;--input-bg: var(--color-surface-light);--card-bg: var(--color-surface-mid);--border: var(--color-border);--text: var(--color-text);--accent: var(--color-primary);--color-surface-2: var(--color-surface-light);--color-text-primary: var(--color-text);--color-text-secondary:var(--color-text-muted)}[data-theme=light]{--color-primary: #3857c4;--color-primary-dim: #2a42a8;--color-success: #10b981;--color-error: #dc2626;--color-warning: #f59e0b;--color-bg: #f8fafb;--color-surface: #ffffff;--color-surface-mid: #f3f6fa;--color-surface-light: #eef2f9;--color-text: #111318;--color-text-muted: #6b7280;--color-border: #e0e7f1;--color-border-hover: #cbd5e8;--glow-primary: 0 0 0px rgba(56, 87, 196, 0);--glow-success: 0 0 0px rgba(16, 185, 129, 0)}*{box-sizing:border-box;margin:0;padding:0}body{font-family:Plus Jakarta Sans,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;background-color:var(--color-bg);color:var(--color-text);line-height:1.55;font-size:14px;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}[disabled],.disabled,[aria-disabled=true]{pointer-events:none!important;cursor:default!important;opacity:.5!important}[disabled]:hover,.disabled:hover,[aria-disabled=true]:hover{background:inherit!important;border-color:inherit!important;color:inherit!important;box-shadow:none!important;transform:none!important}*:hover{transform:none!important;box-shadow:none!important}button:hover,a:hover{background-color:inherit!important;color:inherit!important;border-color:inherit!important}.form-input{width:100%;min-height:38px;padding:8px 11px;border-radius:9px;border:1px solid var(--color-border);background:var(--color-surface-light);color:var(--color-text);font-family:inherit;font-size:.92rem;outline:none;transition:border-color .18s ease,box-shadow .18s ease,background .18s ease}.form-input::placeholder{color:color-mix(in srgb,var(--color-text-muted) 82%,transparent)}.form-input:focus{border-color:var(--color-primary);background:var(--color-surface-light);box-shadow:0 0 0 3px color-mix(in srgb,var(--color-primary) 22%,transparent)}.form-input:disabled{opacity:.7;cursor:not-allowed}select.form-input{appearance:none;background-image:linear-gradient(45deg,transparent 50%,var(--color-text-muted) 50%),linear-gradient(135deg,var(--color-text-muted) 50%,transparent 50%);background-position:calc(100% - 16px) calc(50% - 3px),calc(100% - 11px) calc(50% - 3px);background-size:5px 5px,5px 5px;background-repeat:no-repeat;padding-right:30px}.sidebar-ad{position:fixed;top:80px;width:300px;min-height:250px;max-height:600px;z-index:10}.sidebar-ad--left{left:8px}.sidebar-ad--right{right:8px}.sidebar-ad ins.adsbygoogle{display:block!important;width:300px;height:250px}@media(max-width:1600px){.sidebar-ad{display:none}}code,pre,.hop-ip code,.hop-row-ip,.stability-ip{font-family:JetBrains Mono,Fira Code,ui-monospace,monospace}.app{display:flex;flex-direction:column;min-height:100vh}.app-header{background:#161a21;border-bottom:1px solid var(--color-border);box-shadow:0 1px #d2dcec14;padding:0 var(--spacing-lg);height:52px;display:flex;align-items:center;justify-content:space-between;flex-shrink:0}[data-theme=light] .app-header{background:#fff;border-bottom-color:#e0e7f1;box-shadow:0 1px 3px #11131814}.app-header h1{font-size:2rem;margin-bottom:var(--spacing-sm);font-weight:700}.app-header p{font-size:1rem;opacity:.9}.app-header-wrapper{background:#141820;border-bottom:1px solid rgba(166,177,192,.2);width:100vw;position:relative;left:50%;margin-left:-50vw;margin-top:calc(-1 * var(--spacing-lg));margin-bottom:var(--spacing-lg);padding:10px clamp(12px,2vw,28px) 8px;border-radius:0;overflow:hidden;box-sizing:border-box}[data-theme=light] .app-header-wrapper{background:#f0f4fb;border-bottom-color:#d0d9ec}.app-header-top{display:flex;align-items:center;justify-content:space-between;gap:var(--spacing-md)}.app-header-title-section{display:flex;align-items:center;gap:10px;min-width:0;flex:1}.app-header-icon{font-size:1.1rem;display:flex;align-items:center;justify-content:center;flex-shrink:0;line-height:1}.app-header-text{min-width:0;display:flex;align-items:baseline;flex-direction:row;gap:8px;flex-wrap:wrap}.app-header-title{margin:0;font-size:1rem;font-weight:800;color:#e6ebf4;letter-spacing:.08em;text-transform:uppercase}[data-theme=light] .app-header-title{color:#3857c4;background:none;-webkit-background-clip:unset;-webkit-text-fill-color:unset;background-clip:unset}.app-header-subtitle{display:block;font-size:.72rem;color:#aeb8c9;letter-spacing:.06em;text-transform:uppercase}[data-theme=light] .app-header-subtitle{color:#6b7a9a}.app-header-controls{display:flex;align-items:center;gap:8px;flex-shrink:0}.app-header-tabs{display:flex;gap:4px;border-top:1px solid var(--color-border);padding:10px var(--spacing-md);background:var(--color-surface);overflow-x:auto;overflow-y:hidden}[data-theme=light] .app-header-tabs{border-top-color:#e0e7f1;background:#fff}.app-header-tab{flex-shrink:0;padding:6px 14px;background:transparent;border:1px solid transparent;border-radius:var(--radius-sm);color:var(--color-text-muted);font-size:.75rem;font-weight:600;cursor:pointer;transition:all .18s ease-out;position:relative;white-space:nowrap;text-transform:uppercase;letter-spacing:.02em}.app-header-tab:hover:not(:disabled):not(.disabled){color:var(--color-text);background:var(--color-surface-light);border-color:var(--color-border-hover)}[data-theme=light] .app-header-tab:hover:not(:disabled):not(.disabled){background:#f3f6fa;color:#111318}.app-header-tab.active{color:#000c18;background:var(--color-primary);border-color:var(--color-primary);box-shadow:var(--glow-primary);font-weight:700}[data-theme=light] .app-header-tab.active{color:#fff}@media(max-width:768px){.app-header-wrapper{margin-bottom:var(--spacing-md)}.app-header-top{flex-direction:row;align-items:center;gap:8px;padding:6px var(--spacing-sm)}.app-header-title{font-size:.88rem}.app-header-subtitle{display:none}.app-header-controls{align-self:auto}.app-header-icon{font-size:1.1rem}.app-header-tabs{padding:8px var(--spacing-sm)}.app-header-tab{padding:5px 10px;font-size:.7rem}}.app-main,.app-content{flex:1;padding:var(--spacing-lg) clamp(12px,2vw,28px);width:min(96vw,2100px);margin:0 auto}.config-panel{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);padding:var(--spacing-lg);margin-bottom:var(--spacing-lg)}.config-panel h2{margin-bottom:var(--spacing-md);color:var(--color-primary)}.iperf-info{background:var(--color-surface-light);padding:var(--spacing-md);border-radius:var(--radius);margin-bottom:var(--spacing-md);border-left:3px solid var(--color-success)}.iperf-info small{color:var(--color-text-muted)}.profiles-bar{display:flex;align-items:center;gap:var(--spacing-sm);margin-bottom:var(--spacing-md);padding:var(--spacing-sm) var(--spacing-md);background:var(--color-bg);border-radius:var(--radius)}.profile-select{flex:1;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);padding:8px 12px;color:var(--color-text);font-size:.9rem;cursor:pointer;appearance:auto}.profile-select:focus{outline:none;border-color:var(--color-primary)}.profile-select:disabled{opacity:.5;cursor:not-allowed}form{display:flex;flex-direction:column;gap:var(--spacing-md)}.form-group{display:flex;flex-direction:column;gap:var(--spacing-sm)}.form-group label{font-weight:600;color:var(--color-text)}.form-group .required{color:var(--color-error)}.form-group input{background:var(--color-bg);border:1px solid var(--color-border);border-radius:var(--radius);padding:10px 12px;color:var(--color-text);font-size:.95rem;transition:border-color .2s}.form-group input:focus{outline:none;border-color:var(--color-primary)}.form-group input:disabled{opacity:.5;cursor:not-allowed}.form-group small{color:var(--color-text-muted);font-size:.85rem}.public-wan-picker{margin-top:8px;display:flex;flex-direction:column;gap:6px;width:100%;max-width:100%;min-width:0}.public-wan-row{display:grid;grid-template-columns:1fr 120px auto;gap:8px;align-items:center;width:100%;max-width:100%;min-width:0}.public-wan-row>*{min-width:0}.public-wan-row select{width:100%;max-width:100%;background:var(--color-bg);border:1px solid var(--color-border);border-radius:var(--radius);padding:8px 10px;color:var(--color-text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:var(--spacing-md)}.btn-primary{background:var(--color-primary);color:#000c18;border:none;border-radius:var(--radius);padding:12px 24px;font-size:1rem;font-weight:700;cursor:pointer;transition:all .2s;letter-spacing:.01em}.btn-primary:hover:not(:disabled){background:var(--color-primary-dim);transform:translateY(-1px);box-shadow:var(--glow-primary)}.btn-primary:disabled{opacity:.4;cursor:not-allowed}.loading-indicator{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);padding:var(--spacing-lg);text-align:center;margin-bottom:var(--spacing-lg)}.spinner{width:40px;height:40px;margin:0 auto var(--spacing-md);border:4px solid var(--color-surface-light);border-top-color:var(--color-primary);border-radius:50%;animation:spin 1s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.error-banner{background:#ef44441a;border:1px solid var(--color-error);border-radius:var(--radius);padding:var(--spacing-md);margin-bottom:var(--spacing-lg);color:var(--color-error)}.npcap-banner{display:flex;align-items:center;justify-content:space-between;gap:var(--spacing-md);background:#f59e0b26;border:1px solid var(--color-warning);border-radius:var(--radius);padding:var(--spacing-sm) var(--spacing-md);margin:0 var(--spacing-lg);color:var(--color-warning);font-size:.9rem}.success-banner{background:#10b9811a;border:1px solid var(--color-success);border-radius:var(--radius);padding:var(--spacing-md);margin-bottom:var(--spacing-lg);color:var(--color-success);font-weight:500}.progress-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--spacing-sm)}.progress-step{font-weight:600;color:var(--color-primary);text-transform:uppercase;font-size:.9rem;letter-spacing:.5px}.progress-percent{font-weight:700;color:var(--color-text);font-size:1.1rem}.progress-bar-track{width:100%;height:12px;background:var(--color-bg);border-radius:6px;overflow:hidden;margin-bottom:var(--spacing-sm)}.progress-bar-fill{height:100%;background:linear-gradient(90deg,var(--color-primary),#6366f1);border-radius:6px;transition:width .3s ease;min-width:0}.progress-detail{color:var(--color-text-muted);font-size:.9rem;text-align:center}.results-display{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);padding:var(--spacing-lg)}.results-placeholder{text-align:center;padding:var(--spacing-lg) * 2;color:var(--color-text-muted)}.results-header{margin-bottom:var(--spacing-lg)}.results-header h2{color:var(--color-primary);margin-bottom:var(--spacing-sm)}.metadata{display:flex;gap:var(--spacing-lg);color:var(--color-text-muted);font-size:.9rem;flex-wrap:wrap}.results-cards{display:grid;grid-template-columns:1fr 1fr;gap:var(--spacing-md);margin-bottom:var(--spacing-lg)}.test-card{border-radius:var(--radius);padding:var(--spacing-md);border:2px solid}.test-card-blue{background:#3b82f61a;border-color:var(--color-primary)}.test-card-green{background:#10b9811a;border-color:var(--color-success)}.test-card h3{margin-bottom:var(--spacing-md);font-size:1.2rem}.test-card-content{display:flex;flex-direction:column;gap:var(--spacing-sm)}.test-info{display:flex;justify-content:space-between;align-items:center;padding:var(--spacing-sm);background:var(--color-bg);border-radius:4px}.test-info.highlight{background:var(--color-surface-light);font-weight:600;font-size:1.1rem}.test-info .label{color:var(--color-text-muted)}.test-info .value{color:var(--color-text);font-weight:500}.status{padding:4px 12px;border-radius:4px;font-size:.85rem;font-weight:600}.status.success{background:#10b98133;color:var(--color-success)}.status.error{background:#ef444433;color:var(--color-error)}.error-message{background:#ef44441a;border:1px solid var(--color-error);border-radius:4px;padding:var(--spacing-sm);color:var(--color-error);font-size:.9rem}.comparison-chart{margin-bottom:var(--spacing-lg);padding:var(--spacing-md);background:var(--color-bg);border-radius:var(--radius)}.comparison-chart h3{margin-bottom:var(--spacing-md);color:var(--color-text)}.chart-row{display:grid;grid-template-columns:80px 1fr;align-items:center;gap:var(--spacing-md);margin-bottom:var(--spacing-md)}.chart-label{font-weight:600;color:var(--color-text)}.chart-bar-container{background:var(--color-surface);border-radius:4px;height:40px;overflow:hidden}.chart-bar{height:100%;display:flex;align-items:center;justify-content:flex-end;padding:0 var(--spacing-sm);transition:width .3s ease;min-width:100px}.chart-bar.wan{background:linear-gradient(90deg,var(--color-primary),#60a5fa)}.chart-bar.vpn{background:linear-gradient(90deg,var(--color-success),#34d399)}.chart-value{color:#fff;font-weight:600;font-size:.9rem;white-space:nowrap}.comparison-metrics{padding:var(--spacing-md);background:var(--color-bg);border-radius:var(--radius)}.comparison-metrics h3{margin-bottom:var(--spacing-md);color:var(--color-text)}.metrics-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:var(--spacing-md)}.metric{background:var(--color-surface);padding:var(--spacing-md);border-radius:var(--radius);display:flex;flex-direction:column;gap:var(--spacing-sm)}.metric-label{color:var(--color-text-muted);font-size:.9rem}.metric-value{font-size:1.5rem;font-weight:700;color:var(--color-text)}.metric-value.degradation{color:var(--color-warning)}.metric-value.efficiency{color:var(--color-success)}.app-footer{background:var(--color-surface);border-top:1px solid var(--color-border);padding:var(--spacing-md);display:flex;justify-content:space-between;align-items:center;color:var(--color-text-muted);font-size:.85rem}@media(max-width:768px){.results-cards,.form-row{grid-template-columns:1fr}.metadata{flex-direction:column;gap:var(--spacing-sm)}.app-footer{flex-direction:column;gap:var(--spacing-sm);text-align:center}}.app-tabs{display:flex;gap:8px;background:linear-gradient(180deg,var(--color-surface),color-mix(in srgb,var(--color-surface) 88%,black));border-bottom:1px solid var(--color-border);padding:10px var(--spacing-lg);flex-wrap:wrap}.tab-btn{background:transparent;border:1px solid transparent;border-radius:var(--radius-sm);padding:6px 14px;color:var(--color-text-muted);font-size:.82rem;font-weight:600;cursor:pointer;position:relative;transition:all .15s ease;white-space:nowrap;letter-spacing:.02em;text-transform:uppercase}.tab-btn:hover:not(:disabled):not(.disabled){color:var(--color-text);background:var(--color-surface-light);border-color:var(--color-border-hover)}.tab-btn.active{color:#000c18;background:var(--color-primary);border-color:var(--color-primary);box-shadow:var(--glow-primary);font-weight:700}[data-theme=light] .tab-btn.active{color:#fff}.tab-btn.active:after{display:none}.test-history{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);padding:var(--spacing-lg)}.test-history.loading{text-align:center;padding:var(--spacing-lg) * 2}.history-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--spacing-lg)}.history-header h2{color:var(--color-primary)}.history-actions{display:flex;gap:var(--spacing-sm)}.btn-secondary{background:transparent;color:var(--color-text-muted);border:1px solid var(--color-border);border-radius:var(--radius);padding:8px 16px;font-size:.85rem;font-weight:600;cursor:pointer;transition:all .15s}.btn-secondary:hover{color:var(--color-text);border-color:var(--color-border-hover);background:var(--color-surface-light)}.btn-danger{background:#ef444433;color:var(--color-error);border:1px solid var(--color-error);border-radius:var(--radius);padding:8px 16px;font-size:.9rem;cursor:pointer;transition:all .2s}.btn-danger:hover{background:var(--color-error);color:#fff}.history-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:var(--spacing-md);margin-bottom:var(--spacing-lg);padding:var(--spacing-md);background:var(--color-bg);border-radius:var(--radius)}.stat-item{display:flex;flex-direction:column;gap:4px;text-align:center}.stat-label{font-size:.85rem;color:var(--color-text-muted)}.stat-value{font-size:1.2rem;font-weight:700;color:var(--color-text)}.history-empty{text-align:center;padding:var(--spacing-lg) * 2;color:var(--color-text-muted)}.history-list{display:flex;flex-direction:column;gap:var(--spacing-md)}.history-item{background:var(--color-bg);border:1px solid var(--color-border);border-radius:var(--radius);padding:var(--spacing-md);cursor:pointer;transition:all .2s}.history-item:hover{border-color:var(--color-primary);transform:translateY(-2px);box-shadow:0 4px 12px #0003}.history-item-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--spacing-sm)}.history-date{font-size:.85rem;color:var(--color-text-muted)}.btn-icon{background:transparent;border:none;color:var(--color-text-muted);cursor:pointer;padding:4px 8px;border-radius:4px;transition:all .2s}.btn-icon:hover{background:var(--color-error);color:#fff}.history-item-body{display:flex;flex-direction:column;gap:var(--spacing-sm)}.history-servers{display:flex;gap:var(--spacing-md);font-size:.9rem}.history-results{display:flex;align-items:center;gap:var(--spacing-md);font-size:1.1rem}.throughput{font-weight:600}.throughput.wan{color:var(--color-primary)}.throughput.vpn{color:var(--color-success)}.separator{color:var(--color-text-muted)}.degradation{padding:4px 8px;border-radius:4px;font-weight:600;font-size:.9rem}.degradation.negative{background:#ef444433;color:var(--color-error)}.degradation.positive{background:#10b98133;color:var(--color-success)}.history-item-footer{margin-top:var(--spacing-sm);font-size:.85rem;color:var(--color-text-muted)}.network-interfaces{background:var(--color-bg);border-radius:var(--radius);padding:var(--spacing-md);margin-bottom:var(--spacing-md)}.interfaces-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--spacing-md)}.interfaces-header h3{font-size:1rem;color:var(--color-text)}.btn-small{padding:6px 12px;font-size:.85rem}.error-text{color:var(--color-error);font-size:.9rem;margin-bottom:var(--spacing-md)}.suggestion-box{background:var(--color-surface);border:1px solid var(--color-success);border-radius:var(--radius);padding:var(--spacing-md);margin-bottom:var(--spacing-md)}.suggestion-box h4{font-size:.95rem;color:var(--color-success);margin-bottom:var(--spacing-sm)}.suggestion-details{display:flex;flex-direction:column;gap:var(--spacing-sm);margin-bottom:var(--spacing-md)}.suggestion-item{display:flex;align-items:center;gap:var(--spacing-sm);font-size:.9rem}.suggestion-item .label{font-weight:600;color:var(--color-text-muted);min-width:40px}.suggestion-item .value{color:var(--color-text);font-family:monospace}.suggestion-item .interface-name{color:var(--color-text-muted);font-size:.85rem}.warning-text{color:var(--color-warning);font-size:.9rem;font-style:italic}.interfaces-toggle{margin-bottom:var(--spacing-sm)}.btn-link{background:transparent;border:none;color:var(--color-primary);font-size:.9rem;cursor:pointer;padding:0;text-decoration:underline}.btn-link:hover{color:#60a5fa}.interfaces-list{margin-top:var(--spacing-md)}.interface-group{margin-bottom:var(--spacing-md)}.interface-group h4{font-size:.9rem;color:var(--color-text-muted);margin-bottom:var(--spacing-sm)}.interface-item{display:flex;align-items:center;gap:var(--spacing-sm);padding:var(--spacing-sm);background:var(--color-surface);border-radius:4px;margin-bottom:4px;font-size:.85rem}.interface-item.vpn{border-left:3px solid var(--color-success)}.interface-item.wan{border-left:3px solid var(--color-primary)}.interface-icon{font-family:monospace;color:var(--color-text-muted)}.interface-name{flex:1;color:var(--color-text)}.interface-ip{font-family:monospace;color:var(--color-primary)}.interface-type{font-size:.8rem;padding:2px 6px;background:var(--color-surface-light);border-radius:4px;color:var(--color-text-muted)}.mode-selector{display:flex;justify-content:center;gap:0;padding:var(--spacing-md) var(--spacing-lg);background:var(--color-surface)}.mode-btn{background:var(--color-surface-light);border:2px solid var(--color-border);padding:var(--spacing-sm) var(--spacing-lg);color:var(--color-text-muted);font-size:1rem;font-weight:700;letter-spacing:1px;cursor:pointer;transition:all .2s;min-width:140px}.mode-btn:first-child{border-radius:var(--radius) 0 0 var(--radius);border-right:none}.mode-btn:last-child{border-radius:0 var(--radius) var(--radius) 0}.mode-btn.active{background:var(--color-primary);border-color:var(--color-primary);color:#fff}.mode-btn:not(.active):hover{background:var(--color-border);color:var(--color-text)}.server-panel{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);padding:var(--spacing-lg)}.server-panel h2{color:var(--color-primary);margin-bottom:var(--spacing-sm)}.server-description,.panel-description{color:var(--color-text-muted);font-size:.9rem;margin-bottom:var(--spacing-lg)}.server-info-box{background:var(--color-bg);border-radius:var(--radius);padding:var(--spacing-lg);margin-bottom:var(--spacing-lg)}.server-info-box h3{font-size:1rem;color:var(--color-text);margin-bottom:var(--spacing-lg)}.loading-text{color:var(--color-text-muted);font-style:italic}.server-field{margin-bottom:var(--spacing-lg)}.server-field label{display:block;font-weight:600;color:var(--color-text);margin-bottom:var(--spacing-sm)}.server-field small{display:block;color:var(--color-text-muted);font-size:.85rem;margin-top:var(--spacing-sm)}.server-interface-select{width:100%;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);padding:10px 12px;color:var(--color-text);font-size:.95rem}.server-interface-select:focus{outline:none;border-color:var(--color-primary)}.server-ip-display{display:flex;align-items:center;gap:var(--spacing-md);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);padding:10px 14px}.ip-value{font-family:monospace;font-size:1.1rem;color:var(--color-primary);font-weight:600}.port-badge{background:var(--color-surface-light);color:var(--color-text-muted);padding:4px 10px;border-radius:4px;font-size:.85rem;font-weight:500}.client-config-hint{background:var(--color-surface);border:1px dashed var(--color-border);border-radius:var(--radius);padding:var(--spacing-md)}.config-row{display:flex;align-items:center;gap:var(--spacing-md);margin-bottom:var(--spacing-sm)}.config-row:last-child{margin-bottom:0}.config-label{font-weight:600;color:var(--color-text-muted);min-width:100px}.config-row code{font-family:monospace;color:var(--color-primary);background:var(--color-bg);padding:4px 8px;border-radius:4px;font-size:.95rem}.server-controls{display:flex;align-items:center;gap:var(--spacing-lg)}.server-status{padding:var(--spacing-sm) var(--spacing-md);border-radius:var(--radius);font-weight:700;font-size:.9rem;letter-spacing:1px}.server-status.running{background:#10b98133;color:var(--color-success);border:1px solid var(--color-success)}.server-status.stopped{background:#ef44441a;color:var(--color-error);border:1px solid var(--color-error)}.server-buttons{display:flex;gap:var(--spacing-sm)}.chart-panel{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);padding:var(--spacing-lg);position:relative}.chart-panel.loading{text-align:center;padding:48px var(--spacing-lg)}.chart-empty{text-align:center;padding:48px var(--spacing-lg);color:var(--color-text-muted)}.chart-empty .text-muted{font-size:.9rem;margin-top:var(--spacing-sm)}.chart-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--spacing-lg)}.chart-header h2{color:var(--color-primary)}.chart-view-toggle{display:flex;gap:0}.btn-toggle{background:var(--color-surface-light);border:1px solid var(--color-border);padding:var(--spacing-sm) var(--spacing-md);color:var(--color-text-muted);font-size:.9rem;font-weight:500;cursor:pointer;transition:all .2s}.btn-toggle:first-child{border-radius:var(--radius) 0 0 var(--radius);border-right:none}.btn-toggle:last-child{border-radius:0 var(--radius) var(--radius) 0}.btn-toggle.active{background:var(--color-primary);border-color:var(--color-primary);color:#fff}.btn-toggle:not(.active):hover{background:var(--color-border);color:var(--color-text)}.chart-svg{width:100%;height:auto;background:var(--color-bg);border-radius:var(--radius);margin-bottom:var(--spacing-md)}.chart-tooltip{background:var(--color-surface-light);border:1px solid var(--color-border);border-radius:var(--radius);padding:var(--spacing-md);margin-bottom:var(--spacing-md)}.tooltip-date{font-size:.85rem;color:var(--color-text-muted);margin-bottom:var(--spacing-sm)}.tooltip-row{display:flex;justify-content:space-between;gap:var(--spacing-md);padding:2px 0;font-size:.95rem}.tooltip-row.wan span:first-child{color:var(--color-primary)}.tooltip-row.vpn span:first-child{color:var(--color-success)}.tooltip-row.degradation span:first-child{color:var(--color-warning)}.chart-legend{display:flex;align-items:center;gap:var(--spacing-lg);padding-top:var(--spacing-sm)}.legend-item{display:flex;align-items:center;gap:var(--spacing-sm);font-size:.9rem;color:var(--color-text)}.legend-dot{width:12px;height:12px;border-radius:50%}.legend-dot.wan{background:var(--color-primary)}.legend-dot.vpn{background:var(--color-success)}.legend-dot.degradation{background:var(--color-warning)}.legend-count{margin-left:auto;font-size:.85rem;color:var(--color-text-muted)}.settings-panel{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);padding:var(--spacing-lg);box-shadow:inset 0 1px #ffffff0a}.settings-panel>h2{color:var(--color-primary);margin-bottom:var(--spacing-lg)}.settings-section{background:var(--color-bg);border:1px solid var(--color-border);border-radius:var(--radius);padding:var(--spacing-md);margin-bottom:var(--spacing-md);box-shadow:0 6px 16px #00000018;transition:border-color .2s ease,transform .2s ease}.settings-section:hover{border-color:color-mix(in srgb,var(--color-primary) 35%,var(--color-border));transform:translateY(-1px)}.settings-section h3{font-size:1rem;color:var(--color-text);margin-bottom:var(--spacing-md);padding-bottom:var(--spacing-sm);border-bottom:1px solid var(--color-border)}.settings-info-grid{display:flex;flex-direction:column;gap:var(--spacing-sm)}.settings-info-item{display:flex;justify-content:space-between;align-items:center;padding:var(--spacing-sm);background:var(--color-surface);border-radius:4px}.settings-info-label{font-weight:600;color:var(--color-text-muted);font-size:.9rem}.settings-info-value{color:var(--color-text);font-size:.9rem}code.settings-info-value{font-family:monospace;color:var(--color-primary);background:var(--color-bg);padding:2px 8px;border-radius:4px;font-size:.85rem}.settings-form-grid{display:grid;grid-template-columns:1fr 1fr;gap:var(--spacing-md)}.settings-field{display:flex;flex-direction:column;gap:var(--spacing-sm)}.settings-field label{font-weight:600;color:var(--color-text);font-size:.9rem}.settings-field input{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);padding:10px 12px;color:var(--color-text);font-size:.95rem;transition:border-color .2s}.settings-field input:focus{outline:none;border-color:var(--color-primary)}.settings-field select{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);padding:10px 12px;color:var(--color-text);font-size:.95rem}.settings-field select:focus{outline:none;border-color:var(--color-primary)}.settings-actions{display:flex;align-items:center;gap:var(--spacing-md);margin-top:var(--spacing-md)}.settings-saved{color:var(--color-success);font-weight:600;font-size:.9rem;animation:fadeIn .3s ease}.scheduler-panel{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);padding:var(--spacing-lg)}.scheduler-panel h2{color:var(--color-primary);margin-bottom:var(--spacing-sm)}.scheduler-config{display:flex;flex-direction:column;gap:var(--spacing-md);margin-bottom:var(--spacing-lg)}.scheduler-config .form-group input{background:var(--color-bg);border:1px solid var(--color-border);border-radius:var(--radius);padding:10px 12px;color:var(--color-text);font-size:.95rem}.scheduler-config .form-group input:focus{outline:none;border-color:var(--color-primary)}.scheduler-controls{margin-bottom:var(--spacing-lg)}.scheduler-status{background:var(--color-bg);border-radius:var(--radius);padding:var(--spacing-md);display:flex;flex-direction:column;gap:var(--spacing-sm)}.scheduler-status-row{display:flex;align-items:center;gap:var(--spacing-md)}.scheduler-indicator{padding:4px 12px;border-radius:4px;font-weight:700;font-size:.8rem;letter-spacing:1px}.scheduler-indicator.running{background:#10b98133;color:var(--color-success);border:1px solid var(--color-success)}.scheduler-info{color:var(--color-text-muted);font-size:.9rem}.scheduler-countdown{display:flex;align-items:center;gap:var(--spacing-sm);color:var(--color-text);font-size:.95rem}.spinner-small{width:16px;height:16px;border:2px solid var(--color-surface-light);border-top-color:var(--color-primary);border-radius:50%;animation:spin 1s linear infinite}.scheduler-last{font-size:.9rem;color:var(--color-text-muted);padding:var(--spacing-sm);background:var(--color-surface);border-radius:4px}.scheduler-last.error{color:var(--color-error);background:#ef44441a}.compare-panel{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);padding:var(--spacing-lg)}.compare-panel.loading{text-align:center;padding:48px var(--spacing-lg)}.compare-panel h2{color:var(--color-primary);margin-bottom:var(--spacing-sm)}.compare-selectors{display:flex;align-items:center;gap:var(--spacing-md);margin-bottom:var(--spacing-lg)}.compare-selector{flex:1;display:flex;flex-direction:column;gap:var(--spacing-sm)}.compare-selector label{font-weight:600;color:var(--color-text);font-size:.9rem}.compare-selector select{background:var(--color-bg);border:1px solid var(--color-border);border-radius:var(--radius);padding:10px 12px;color:var(--color-text);font-size:.9rem;cursor:pointer}.compare-selector select:focus{outline:none;border-color:var(--color-primary)}.compare-vs{font-weight:700;font-size:1.2rem;color:var(--color-text-muted);padding-top:20px}.compare-table{width:100%;border-collapse:collapse;margin-bottom:var(--spacing-lg)}.compare-table th,.compare-table td{padding:var(--spacing-sm) var(--spacing-md);text-align:left;border-bottom:1px solid var(--color-border);font-size:.9rem}.compare-table th{background:var(--color-bg);color:var(--color-text-muted);font-weight:600;font-size:.85rem;text-transform:uppercase;letter-spacing:.5px}.compare-table .metric-name{font-weight:600;color:var(--color-text)}.compare-table .highlight-row{background:var(--color-bg)}.compare-table .value-wan{color:var(--color-primary);font-weight:600}.compare-table .value-vpn,.compare-table .diff-positive{color:var(--color-success);font-weight:600}.compare-table .diff-negative{color:var(--color-error);font-weight:600}.compare-bars{background:var(--color-bg);border-radius:var(--radius);padding:var(--spacing-md)}.compare-bars h3{font-size:1rem;color:var(--color-text);margin-bottom:var(--spacing-md)}.compare-bar-group{margin-bottom:var(--spacing-md)}.compare-bar-label{display:block;font-weight:600;color:var(--color-text);font-size:.9rem;margin-bottom:var(--spacing-sm)}.compare-bar-pair{display:flex;flex-direction:column;gap:4px}.compare-bar-row{display:flex;align-items:center;gap:var(--spacing-sm)}.compare-bar-tag{width:20px;font-weight:700;font-size:.8rem;color:var(--color-text-muted);text-align:center}.compare-bar-track{flex:1;height:24px;background:var(--color-surface);border-radius:4px;overflow:hidden}.compare-bar-fill{height:100%;border-radius:4px;transition:width .3s ease;min-width:2px}.compare-bar-value{min-width:70px;text-align:right;font-size:.85rem;font-weight:600;color:var(--color-text)}.header-row{display:flex;justify-content:space-between;align-items:center}.header-content{flex:1}.theme-toggle{background:#4c9be81f;border:1.5px solid rgba(76,155,232,.45);border-radius:var(--radius);padding:4px 10px;font-size:1.15rem;cursor:pointer;transition:all .2s;line-height:1;box-shadow:0 0 8px #4c9be840;filter:drop-shadow(0 0 5px rgba(76,155,232,.4))}.theme-toggle:hover{background:#4c9be838;border-color:#4c9be8cc;transform:scale(1.08);filter:drop-shadow(0 0 9px rgba(76,155,232,.7))}[data-theme=light] .app-header{box-shadow:0 4px 6px #0000001a}.threshold-ok{border-left:4px solid var(--color-success)!important}.threshold-warn{border-left:4px solid var(--color-warning)!important}.threshold-fail{border-left:4px solid var(--color-error)!important}.threshold-badge{display:inline-block;padding:2px 8px;border-radius:4px;font-size:.75rem;font-weight:700;letter-spacing:.5px;text-transform:uppercase}.threshold-badge.ok{background:#10b98133;color:var(--color-success)}.threshold-badge.warn{background:#f59e0b33;color:var(--color-warning)}.threshold-badge.fail{background:#ef444433;color:var(--color-error)}.threshold-summary{background:var(--color-bg);border-radius:var(--radius);padding:var(--spacing-md);margin-top:var(--spacing-md);display:flex;align-items:center;gap:var(--spacing-md)}.threshold-summary .threshold-icon{font-size:1.5rem}.threshold-summary .threshold-message{flex:1;font-size:.95rem}.udp-metrics{margin-top:var(--spacing-sm);padding-top:var(--spacing-sm);border-top:1px dashed var(--color-border)}.udp-metrics .test-info .label{font-style:italic}.test-mode-toggle{display:flex;gap:0;margin-bottom:var(--spacing-md)}.test-mode-btn{background:var(--color-surface-light);border:1px solid var(--color-border);padding:var(--spacing-sm) var(--spacing-md);color:var(--color-text-muted);font-size:.9rem;font-weight:600;cursor:pointer;transition:all .2s;min-width:80px;text-align:center}.test-mode-btn:first-child{border-radius:var(--radius) 0 0 var(--radius);border-right:none}.test-mode-btn:last-child{border-radius:0 var(--radius) var(--radius) 0}.test-mode-btn.active{background:var(--color-primary);border-color:var(--color-primary);color:#fff}.test-mode-btn:not(.active):hover{background:var(--color-border);color:var(--color-text)}.traceroute-options{display:flex;align-items:center;gap:var(--spacing-lg);margin-bottom:var(--spacing-md);padding:var(--spacing-sm) var(--spacing-md);background:var(--color-surface-light);border-radius:var(--radius);font-size:.88rem;color:var(--color-text-muted)}.traceroute-info{font-style:italic}.checkbox-label{display:flex;align-items:center;gap:6px;cursor:pointer;color:var(--color-text)}.checkbox-label input[type=checkbox]{accent-color:var(--color-primary);width:16px;height:16px;cursor:pointer}.traceroute-section{margin-top:var(--spacing-lg)}.traceroute-section h3{margin-bottom:var(--spacing-sm);color:var(--color-text);font-size:1rem}.traceroute-map-wrap,.traceroute-chart-wrap{margin-top:var(--spacing-sm)}.traceroute-leaflet-map{width:100%;min-height:380px;height:clamp(320px,42vh,520px);border-radius:var(--radius);overflow:hidden;border:1px solid var(--color-border);background:var(--color-surface-light)}.traceroute-map-svg,.traceroute-chart-svg{width:100%;height:auto;display:block}.traceroute-map-bg{fill:var(--color-surface-light)}.traceroute-map-line{fill:none;stroke:var(--color-primary);stroke-width:2.5;stroke-linejoin:round;stroke-linecap:round;opacity:.9}.traceroute-map-node{fill:var(--color-success);stroke:var(--color-bg);stroke-width:1.5}.traceroute-map-label{fill:var(--color-text);font-size:11px;font-weight:700}.traceroute-chart-line{fill:none;stroke:var(--color-warning);stroke-width:2.5;stroke-linejoin:round;stroke-linecap:round}.traceroute-chart-header{display:flex;justify-content:space-between;align-items:center;font-size:.82rem;color:var(--color-text-muted);margin-bottom:6px}.traceroute-chart-endpoints{color:var(--color-text-muted)}.traceroute-axis{stroke:var(--color-border);stroke-width:1}.traceroute-grid-line{stroke:var(--color-border);stroke-width:.8;opacity:.35}.traceroute-axis-label{fill:var(--color-text-muted);font-size:10px}.traceroute-axis-title{fill:var(--color-text);font-size:10px;font-weight:600}.traceroute-map-empty{margin-top:var(--spacing-sm);padding:var(--spacing-sm);border-radius:var(--radius);background:var(--color-surface-light);color:var(--color-text-muted);font-size:.85rem}.traceroute-layout{display:grid;grid-template-columns:2fr 1fr;gap:var(--spacing-md);align-items:start}.traceroute-left{display:flex;flex-direction:column;gap:var(--spacing-sm)}.traceroute-right{background:var(--color-surface-light);border-radius:var(--radius);padding:var(--spacing-sm)}.traceroute-right h4{margin:0 0 var(--spacing-sm) 0;font-size:.9rem}.traceroute-locations{max-height:430px;overflow:auto;display:flex;flex-direction:column;gap:6px}.traceroute-location-row{display:grid;grid-template-columns:42px 1fr auto;gap:8px;align-items:center;font-size:.82rem;padding:6px;border-radius:6px;background:var(--color-surface)}.traceroute-location-hop{font-weight:700;color:var(--color-primary)}.traceroute-location-text{color:var(--color-text)}.traceroute-location-ip{color:var(--color-text-muted);font-size:.78rem}.outage-bulletin{margin-top:var(--spacing-sm);background:var(--color-surface);border-radius:var(--radius);padding:var(--spacing-sm);border:1px solid var(--color-border)}.outage-item{background:var(--color-surface-light);border-radius:6px;padding:8px;margin-bottom:8px}.outage-item-title{font-weight:700;color:var(--color-text);font-size:.82rem}.outage-item-meta,.outage-notice{color:var(--color-text-muted);font-size:.78rem}.outage-link{color:var(--color-primary);font-size:.78rem;text-decoration:none}.stats-modal-backdrop{position:fixed;inset:0;background:#0000008c;z-index:2000;display:flex;align-items:center;justify-content:center;padding:20px}.stats-modal{width:min(1200px,95vw);max-height:85vh;overflow:auto;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);padding:var(--spacing-md)}.stats-modal-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--spacing-sm)}@media(max-width:1200px){.traceroute-layout{grid-template-columns:1fr}}.traceroute-panel{padding:var(--spacing-md)}.traceroute-panel h2{margin-bottom:var(--spacing-md);color:var(--color-text)}.traceroute-controls{margin-bottom:var(--spacing-lg)}.traceroute-input-row{display:flex;gap:var(--spacing-sm)}.traceroute-input{flex:1;padding:var(--spacing-sm) var(--spacing-md);background:var(--color-surface-light);border:1px solid var(--color-border);border-radius:var(--radius);color:var(--color-text);font-size:1rem;font-family:Cascadia Code,Fira Code,monospace}.traceroute-input:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 2px #6366f133}.traceroute-btn{white-space:nowrap;min-width:140px}.traceroute-progress{margin-top:var(--spacing-sm);color:var(--color-primary);font-size:.9rem;animation:pulse 1.5s ease-in-out infinite}@keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}.traceroute-error{background:#ef44441a;border:1px solid var(--color-danger);border-radius:var(--radius);padding:var(--spacing-md);color:var(--color-danger);margin-bottom:var(--spacing-md)}.traceroute-results{margin-top:var(--spacing-md)}.traceroute-summary{display:flex;gap:var(--spacing-lg);align-items:center;margin-bottom:var(--spacing-md);padding:var(--spacing-sm) var(--spacing-md);background:var(--color-surface-light);border-radius:var(--radius);font-size:.9rem;color:var(--color-text-muted)}.traceroute-target strong{color:var(--color-text)}.traceroute-hops{background:var(--color-primary);color:#fff;padding:2px 10px;border-radius:12px;font-weight:600;font-size:.85rem}.traceroute-table-wrapper{overflow-x:auto;border-radius:var(--radius);border:1px solid var(--color-border)}.traceroute-table{width:100%;border-collapse:collapse;font-size:.88rem}.traceroute-table thead{background:var(--color-surface-light);position:sticky;top:0}.traceroute-table th{padding:var(--spacing-sm) var(--spacing-md);text-align:left;font-weight:600;color:var(--color-text-muted);border-bottom:2px solid var(--color-border);white-space:nowrap}.traceroute-table td{padding:var(--spacing-sm) var(--spacing-md);border-bottom:1px solid var(--color-border);vertical-align:middle}.traceroute-table tbody tr:hover{background:#6366f10d}.traceroute-table tbody tr.hop-loss{opacity:.5}.hop-number{font-weight:700;color:var(--color-text-muted);text-align:center;min-width:30px}.hop-ip code{background:var(--color-bg);padding:2px 6px;border-radius:4px;font-size:.85rem;color:var(--color-primary)}.hop-ip .timeout{color:var(--color-text-muted);font-style:italic}.hop-isp .isp-info{display:flex;flex-direction:column;gap:2px}.isp-badge{font-size:.82rem;color:var(--color-text);font-weight:500;max-width:200px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.as-badge{font-size:.75rem;color:var(--color-text-muted);background:var(--color-bg);padding:1px 6px;border-radius:4px;display:inline-block;width:fit-content}.hop-location{font-size:.85rem;white-space:nowrap}.hop-location .timeout{color:var(--color-text-muted)}.hop-rtt{text-align:right;font-family:Cascadia Code,Fira Code,monospace;font-size:.83rem;white-space:nowrap}.hop-avg{font-weight:700}.latency-good{color:var(--color-success)}.latency-medium{color:var(--color-warning)}.latency-high{color:var(--color-danger)}.latency-timeout{color:var(--color-text-muted);font-style:italic}.traceroute-legend{display:flex;gap:var(--spacing-lg);margin-top:var(--spacing-md);padding:var(--spacing-sm) var(--spacing-md);background:var(--color-surface-light);border-radius:var(--radius);font-size:.82rem;color:var(--color-text-muted)}.legend-item{display:flex;align-items:center;gap:6px}.legend-dot{width:10px;height:10px;border-radius:50%;display:inline-block}.legend-dot.latency-good{background:var(--color-success)}.legend-dot.latency-medium{background:var(--color-warning)}.legend-dot.latency-high{background:var(--color-danger)}.legend-dot.latency-timeout{background:var(--color-text-muted)}.captures-container{margin-top:var(--spacing-lg)}.captures-container h3{margin-bottom:var(--spacing-sm);color:var(--color-text);font-size:1rem}.capture-section{margin-top:var(--spacing-sm);padding:var(--spacing-md);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius)}.capture-section h4{margin:0 0 var(--spacing-sm) 0;color:var(--color-primary);font-size:.9rem}.capture-info{display:flex;flex-direction:column;gap:4px}.capture-field{display:flex;gap:var(--spacing-sm);align-items:center;font-size:.85rem}.capture-label{font-weight:600;min-width:45px;color:var(--color-text-muted)}.capture-path{font-size:.8em;word-break:break-all;color:var(--color-text)}.server-capture-section{margin-top:var(--spacing-lg);padding:var(--spacing-md);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius)}.server-capture-section h3{margin-bottom:var(--spacing-sm);color:var(--color-text)}.capture-description{font-size:.85rem;color:var(--color-text-muted);margin-bottom:var(--spacing-md)}.capture-controls{display:flex;align-items:center;gap:var(--spacing-md)}.capture-buttons{display:flex;gap:var(--spacing-sm)}.capture-status{padding:4px 12px;border-radius:var(--radius);font-size:.8rem;font-weight:700;letter-spacing:.05em;background:var(--color-surface-light);color:var(--color-text-muted)}.capture-status.capturing{background:#10b98126;color:var(--color-success);animation:capture-pulse 2s ease-in-out infinite}@keyframes capture-pulse{0%,to{opacity:1}50%{opacity:.6}}.capture-results{margin-top:var(--spacing-md)}.capture-results h4{margin-bottom:var(--spacing-sm);font-size:.9rem;color:var(--color-text)}.capture-file-info{padding:var(--spacing-sm) var(--spacing-md);background:var(--color-surface-light);border-radius:var(--radius);margin-bottom:var(--spacing-sm)}.capture-file-info .capture-field{display:flex;gap:var(--spacing-sm);align-items:center;font-size:.85rem}.pcap-badge{display:inline-block;margin-top:4px;padding:2px 8px;border-radius:4px;font-size:.8rem;font-weight:600}.pcap-badge.available{background:#10b98126;color:var(--color-success)}.pcap-badge.unavailable{background:#ef444426;color:var(--color-error)}.capture-iface-select{margin-top:6px;display:flex;align-items:center;gap:8px;font-size:.85rem}.capture-iface-select label{color:var(--color-text-muted);white-space:nowrap}.capture-iface-select select{flex:1;padding:4px 8px;border-radius:4px;border:1px solid var(--color-border);background:var(--color-surface);color:var(--color-text);font-size:.85rem}.pcap-unavailable{margin-top:var(--spacing-md);padding:var(--spacing-sm) var(--spacing-md);background:var(--color-surface-light);border-radius:var(--radius);color:var(--color-text-muted);text-align:center}.data-analysis-panel{display:flex;flex-direction:column;gap:var(--spacing-md)}.data-analysis-header{display:flex;justify-content:space-between;align-items:center}.analysis-current-results h3{margin-bottom:var(--spacing-sm)}.analysis-session-layout{display:grid;grid-template-columns:300px 1fr;gap:var(--spacing-md);align-items:start}.analysis-session-list,.analysis-session-detail{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);padding:var(--spacing-md)}.analysis-session-list h3,.analysis-session-detail h3{margin-bottom:var(--spacing-sm)}.analysis-session-item{width:100%;text-align:left;border:1px solid var(--color-border);background:var(--color-bg);color:var(--color-text);border-radius:var(--radius);padding:10px;margin-bottom:8px;display:flex;flex-direction:column;gap:3px;cursor:pointer}.analysis-session-item.active{border-color:var(--color-primary);box-shadow:0 0 0 1px var(--color-primary)}.analysis-grid{display:grid;grid-template-columns:1fr 1fr;gap:var(--spacing-md);margin-bottom:var(--spacing-md)}.analysis-card{background:var(--color-bg);border:1px solid var(--color-border);border-radius:var(--radius);padding:var(--spacing-md);margin-bottom:var(--spacing-md)}.analysis-card h4{margin-bottom:var(--spacing-sm)}.analysis-ai-header{display:flex;justify-content:space-between;align-items:center;gap:var(--spacing-sm)}.analysis-ai-text{margin-top:var(--spacing-sm);white-space:pre-wrap;word-break:break-word;font-family:Consolas,Courier New,monospace;font-size:.88rem;line-height:1.45;color:var(--color-text);background:var(--color-surface-light);border:1px solid var(--color-border);border-radius:var(--radius);padding:var(--spacing-sm)}.analysis-kv{display:grid;grid-template-columns:1fr 1fr;gap:8px 14px}.analysis-kv div{display:flex;justify-content:space-between;gap:12px}.analysis-kv span{color:var(--color-text-muted)}.analysis-notes{margin:0;padding-left:20px;display:flex;flex-direction:column;gap:6px}.analysis-files{display:flex;flex-direction:column;gap:8px}.analysis-file-row{background:var(--color-surface-light);border-radius:6px;padding:8px;display:grid;grid-template-columns:180px 110px 1fr;gap:10px;align-items:center}.analysis-empty{color:var(--color-text-muted)}.analysis-mtr-grid{display:grid;grid-template-columns:1fr 1fr;gap:var(--spacing-md)}.analysis-mtr h5,.analysis-pcap-card h5{margin-bottom:var(--spacing-sm)}.analysis-hop-table{margin-top:var(--spacing-sm);display:flex;flex-direction:column;gap:6px}.analysis-hop-row{background:var(--color-surface-light);border-radius:6px;padding:6px 8px;display:grid;grid-template-columns:50px 1.2fr 110px 70px 1fr;gap:8px;align-items:center;font-size:.82rem}.analysis-pcap-grid{display:grid;grid-template-columns:1fr 1fr;gap:var(--spacing-md)}.analysis-pcap-card{background:var(--color-surface-light);border:1px solid var(--color-border);border-radius:var(--radius);padding:var(--spacing-md)}.analysis-proto-list{margin-top:var(--spacing-sm);display:flex;flex-direction:column;gap:4px}.analysis-proto-row{display:grid;grid-template-columns:1fr 80px 100px;gap:8px;font-size:.82rem}.scheduler-panel{display:flex;flex-direction:column;gap:var(--spacing-md)}.scheduler-header p{color:var(--color-text-muted);margin-top:4px}.scheduler-form h3{margin-bottom:var(--spacing-sm)}.scheduler-grid{display:grid;gap:10px}.scheduler-field-row{display:grid;grid-template-columns:180px minmax(0,1fr);align-items:center;gap:10px}.scheduler-field-label{color:var(--color-text-muted);font-size:.82rem;font-weight:700;text-transform:uppercase;letter-spacing:.04em}.scheduler-input{width:100%;min-width:0;background:var(--color-surface-light);border:1px solid var(--color-border);border-radius:var(--radius-sm);color:var(--color-text);font-size:.9rem;padding:8px 10px}.scheduler-input::placeholder{color:var(--color-text-muted)}.scheduler-input:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 2px color-mix(in srgb,var(--color-primary) 22%,transparent)}.scheduler-checks{display:flex;gap:14px;color:var(--color-text-muted);font-size:.86rem}.scheduler-agents{margin-top:6px}.scheduler-agents-title{font-size:.82rem;color:var(--color-text-muted);margin-bottom:6px;text-transform:uppercase;letter-spacing:.04em}.scheduler-agents-list{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:6px;margin-bottom:10px}.scheduler-agent-item{display:flex;align-items:center;gap:8px;font-size:.88rem}.scheduler-list{display:grid;gap:8px}.scheduler-item{border:1px solid var(--color-border);border-radius:var(--radius);padding:10px;background:var(--color-bg)}.scheduler-item-head{display:flex;justify-content:space-between;align-items:center;gap:8px}.scheduler-state{font-size:.75rem;padding:2px 8px;border-radius:999px;font-weight:700}.scheduler-state.on{color:var(--color-success);background:color-mix(in srgb,var(--color-success) 18%,transparent)}.scheduler-state.off{color:var(--color-text-muted);background:color-mix(in srgb,var(--color-text-muted) 18%,transparent)}.scheduler-item-meta{color:var(--color-text-muted);font-size:.82rem;margin-top:4px}.scheduler-item-result{margin-top:6px;font-size:.82rem;color:var(--color-text)}.scheduler-actions{margin-top:8px;display:flex;gap:8px;flex-wrap:wrap}.advanced-speed-panel{display:grid;gap:12px}.advanced-speed-header h3{margin:0 0 6px}.advanced-speed-subtitle{color:var(--color-text-muted);line-height:1.4}.advanced-speed-control-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}.advanced-speed-control-grid.single{grid-template-columns:minmax(260px,420px)}.advanced-speed-field{display:grid;gap:6px}.advanced-speed-field>span{font-size:.82rem;color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.04em}.advanced-speed-mode-row{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.advanced-settings-panel{display:grid;gap:10px;border:1px solid var(--color-border);border-radius:10px;padding:10px;background:color-mix(in srgb,var(--color-bg) 82%,transparent)}.advanced-settings-header{display:flex;align-items:center;justify-content:space-between;gap:8px}.advanced-settings-checks{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.advanced-settings-check{display:flex;align-items:center;gap:8px;padding:8px 10px;border:1px solid var(--color-border);border-radius:8px;background:color-mix(in srgb,var(--color-surface) 82%,transparent);color:var(--color-text);font-size:.86rem}.advanced-settings-check input{accent-color:var(--color-primary)}.advanced-speed-pill{border:1px solid var(--color-border);background:color-mix(in srgb,var(--color-bg) 70%,transparent);border-radius:999px;padding:6px 10px;color:var(--color-text-muted);font-size:.82rem}.advanced-speed-schedule-grid{display:grid;grid-template-columns:1.2fr 1fr 1fr;gap:10px}.advanced-speed-action-row{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.advanced-speed-summary{font-weight:700}.advanced-live-card{border:1px solid var(--color-border);border-radius:var(--radius);padding:10px;background:color-mix(in srgb,var(--color-bg) 86%,transparent)}.advanced-live-header{display:flex;justify-content:space-between;gap:10px;flex-wrap:wrap;margin-bottom:8px}.advanced-live-note{color:var(--color-text-muted);font-size:.82rem;margin-top:3px}.advanced-live-metrics{display:grid;justify-items:end;color:var(--color-text-muted);font-size:.85rem}.advanced-live-chart{position:relative;border:1px solid var(--color-border);border-radius:10px;padding:6px;background:color-mix(in srgb,#091425 85%,transparent)}.advanced-live-chart svg{width:100%;height:220px;display:block}.advanced-live-axis{stroke:var(--color-border);stroke-width:1}.advanced-live-grid{stroke:color-mix(in srgb,var(--color-border) 75%,transparent);stroke-width:.8}.advanced-live-grid.vertical{stroke-dasharray:3 4}.advanced-live-axis-label{fill:var(--color-text-muted);font-size:9px}.advanced-live-line{fill:none;stroke:var(--color-primary);stroke-width:2.4;stroke-linecap:round;stroke-linejoin:round}.advanced-live-scale{font-size:.78rem;color:var(--color-text-muted);margin-top:4px}.advanced-speed-bars{display:flex;align-items:flex-end;gap:10px;overflow-x:auto;padding-bottom:2px}.advanced-speed-bar-item{width:96px;text-align:center}.advanced-speed-bar-value{font-weight:700;font-size:.82rem;margin-bottom:4px}.advanced-speed-bar-col{width:54px;margin:0 auto;border-radius:6px;min-height:4px}.advanced-speed-bar-label{margin-top:6px;color:var(--color-text-muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:.72rem}.advanced-speed-bar-status{margin-top:2px;font-size:.74rem;color:var(--color-text-muted)}.advanced-speed-run-list{display:grid;gap:8px}.advanced-speed-run-item{padding:10px}.advanced-speed-run-head{display:flex;justify-content:space-between;gap:10px}.advanced-speed-run-state{text-transform:uppercase;font-size:.76rem;letter-spacing:.04em;color:var(--color-text-muted)}.advanced-speed-run-state.completed{color:var(--color-success)}.advanced-speed-run-state.failed{color:var(--color-error)}.advanced-speed-run-meta{color:var(--color-text-muted);font-size:.88rem;margin-top:5px}.advanced-speed-run-error{color:var(--color-error);font-size:.86rem;margin-top:4px}.lan-scanner-panel{display:grid;gap:12px}.lan-section-switch{display:inline-flex;gap:8px}.lan-scanner-control-grid{display:grid;grid-template-columns:1fr 1.4fr 180px 140px;gap:10px}.lan-scanner-summary-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}.lan-watch-row{display:grid;grid-template-columns:auto 160px auto auto auto;gap:10px;align-items:end}.lan-host-alerts{position:sticky;top:64px;z-index:8;display:grid;gap:8px;justify-items:end}.lan-host-alert-item{min-width:320px;max-width:460px;border:1px solid rgba(255,128,140,.55);background:linear-gradient(180deg,#3a141ef0,#2a0e16ed);border-radius:10px;padding:8px 10px;display:flex;align-items:center;justify-content:space-between;gap:10px;color:#ffdce2;box-shadow:0 8px 24px #00000059;opacity:1;transform:translateY(0);transition:opacity .35s ease,transform .35s ease}.lan-host-alert-item.offline{border-color:#ff808c8c;background:linear-gradient(180deg,#3a141ef0,#2a0e16ed);color:#ffdce2}.lan-host-alert-item.offline div{color:#ffc8d2}.lan-host-alert-item.recovered{border-color:#78f4be8c;background:linear-gradient(180deg,#113625f0,#0d2b1eed);color:#dcffee}.lan-host-alert-item.recovered div{color:#b4f8db}.lan-host-alert-item.closing{opacity:0;transform:translateY(-4px)}.lan-host-alert-item strong{display:block;font-size:.86rem}.lan-host-alert-item div{font-size:.75rem;color:#ffc8d2}.lan-vendor-wrap{display:inline-flex;align-items:center;gap:6px}.lan-vendor-name{text-decoration:underline dotted transparent;transition:text-decoration-color .2s ease}.lan-vendor-wrap:hover .lan-vendor-name{text-decoration-color:#7af3b6bf}.lan-brand-badge{width:24px;height:24px;border-radius:999px;display:inline-flex;align-items:center;justify-content:center;border:1px solid rgba(152,168,192,.45);background:#232b39e6;color:#eef3ff;font-size:.67rem;font-weight:800;letter-spacing:.02em}.lan-watch-cell{display:inline-flex;align-items:center;justify-content:center}.kpi-card{border:1px solid var(--color-border);background:color-mix(in srgb,var(--color-bg) 84%,transparent);border-radius:10px;padding:12px;display:grid;gap:4px}.kpi-value{font-size:1.7rem;font-weight:800;line-height:1}.kpi-label{color:var(--color-text-muted);font-size:.84rem}.lan-scanner-split{display:grid;grid-template-columns:1.5fr 1fr;gap:12px}.lan-table-wrap,.lan-topology-wrap,.lan-scanner-agents-wrap{border:1px solid var(--color-border);background:color-mix(in srgb,var(--color-bg) 86%,transparent);border-radius:10px;padding:10px}.lan-table-wrap h4,.lan-topology-wrap h4{margin:0 0 8px}.lan-table{width:100%;border-collapse:collapse;font-size:.83rem}.lan-table th,.lan-table td{text-align:left;border-bottom:1px solid color-mix(in srgb,var(--color-border) 65%,transparent);padding:6px 8px}.lan-host-row.monitored-offline{background:color-mix(in srgb,var(--color-error) 14%,transparent)}.lan-host-row.monitored-offline td{border-bottom-color:color-mix(in srgb,var(--color-error) 30%,var(--color-border))}.lan-state{border-radius:999px;padding:2px 8px;font-size:.74rem;text-transform:uppercase;letter-spacing:.04em;font-weight:700}.lan-state.online{background:color-mix(in srgb,var(--color-success) 20%,transparent);color:#7af3b6}.lan-state.offline{background:color-mix(in srgb,var(--color-error) 20%,transparent);color:#ff90a4}.lan-topology-list,.lan-events-list{display:grid;gap:6px;max-height:300px;overflow:auto}.lan-topology-legend{display:flex;flex-wrap:wrap;gap:10px;margin-bottom:8px}.legend-item{display:inline-flex;align-items:center;gap:6px;font-size:.78rem;color:var(--color-text-muted)}.legend-dot{width:10px;height:10px;border-radius:999px;display:inline-block}.legend-dot.agent{background:#7af3b6}.legend-dot.l2{background:#6bc4ff}.legend-dot.l3{background:#f7a95e}.legend-dot.host{background:#c8d6eb}.lan-topology-graph-wrap{border:1px solid color-mix(in srgb,var(--color-border) 70%,transparent);border-radius:10px;overflow:auto;background:linear-gradient(180deg,#08132d8c,#050c1eb3)}.lan-topology-svg{width:100%;min-width:880px;height:420px}.lan-topology-line{stroke-width:1.7;opacity:.9}.lan-topology-line.l2{stroke:#6bc4ffa8}.lan-topology-line.l3{stroke:#f7a95eb3}.lan-topology-line.trace{stroke:#ffeeb885;stroke-dasharray:4 4}.lan-topology-line.uplink{stroke:#7af3b6b3;stroke-width:2}.lan-topology-line-label{fill:#c5cfdf;font-size:10px}.lan-topology-node{stroke-width:1}.lan-topology-node.agent{fill:#1e553f99;stroke:#7af3b6e6}.lan-topology-node.l2{fill:#183f6799;stroke:#6bc4ffd9}.lan-topology-node.l3{fill:#5f3d1799;stroke:#f7a95ee6}.lan-topology-node.host{fill:#212b3eb8;stroke:#c8d6ebc7}.lan-topology-node-label{fill:#edf3ff;font-size:11px;font-weight:600;pointer-events:none}.lan-topology-notes{margin-top:8px;display:grid;gap:4px;font-size:.79rem;color:var(--color-text-muted)}.lan-topology-edge,.lan-event-row{border:1px solid var(--color-border);border-radius:8px;padding:6px 8px;background:color-mix(in srgb,var(--color-surface) 85%,transparent);font-size:.84rem}.lan-topology-edge .arrow{margin:0 6px;color:var(--color-text-muted)}.lan-topology-edge .meta{margin-left:8px;color:var(--color-text-muted)}.lan-event-row{display:grid;grid-template-columns:auto 1fr auto;gap:8px;align-items:center}@media(max-width:1200px){.analysis-session-layout,.analysis-grid,.analysis-file-row,.analysis-mtr-grid,.analysis-pcap-grid,.analysis-hop-row{grid-template-columns:1fr}.scheduler-field-row{grid-template-columns:1fr;gap:6px}.advanced-speed-control-grid,.advanced-speed-schedule-grid,.advanced-settings-checks,.lan-scanner-control-grid,.lan-scanner-summary-grid,.lan-scanner-split,.lan-watch-row{grid-template-columns:1fr}}.portal-header{position:sticky;top:0;z-index:50;display:grid;grid-template-columns:1fr auto auto;align-items:center;gap:14px;padding:10px var(--spacing-lg);background:linear-gradient(180deg,#181c23,#14171d);border-bottom:1px solid rgba(170,180,195,.22);box-shadow:0 8px 18px #0000004d}[data-theme=light] .portal-header{background:linear-gradient(180deg,#e8edf5,#dde4ef);border-bottom-color:#c5cedf;box-shadow:0 2px 8px #1113181f}.portal-brand-wrap{display:flex;flex-direction:column;min-width:0}.portal-title{font-family:Segoe UI,Inter,Helvetica Neue,Arial,sans-serif;font-size:1.55rem;font-weight:800;letter-spacing:.08em;color:#eef2f9;text-transform:uppercase;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;line-height:1}.portal-subtitle{margin-top:2px;color:#bac3d3;font-size:.72rem;letter-spacing:.09em;text-transform:uppercase;line-height:1.2;display:inline-flex;flex-direction:column;align-items:flex-start;width:fit-content;max-width:100%}.portal-subtitle>span{display:block}.portal-nav{display:flex;align-items:center;gap:8px}.portal-dropdown{position:relative}.portal-nav-btn{display:inline-flex;align-items:center;gap:8px;border:1px solid rgba(175,185,198,.28);background:#232832c2;color:#e6ebf4;padding:7px 12px;border-radius:10px;cursor:pointer;font-size:.83rem;font-weight:700}.portal-nav-btn:hover:not(:disabled):not(.disabled){border-color:#d8e0ee8c;color:#f6f9ff;background:#353b48d6}.portal-home-btn{min-width:36px;justify-content:center;padding:7px 10px}.portal-home-icon{width:16px;height:16px;display:block}.portal-caret{font-size:.62rem;opacity:.9}.portal-dropdown-menu{position:absolute;top:calc(100% + 8px);left:0;min-width:290px;display:none;flex-direction:column;background:#1f242d;border:1px solid rgba(177,186,200,.24);border-radius:8px;padding:6px;box-shadow:0 16px 32px #00000059}.portal-dropdown.open .portal-dropdown-menu{display:flex}.portal-dropdown-item{border:1px solid transparent;background:transparent;color:var(--color-text);text-align:left;font-size:.83rem;font-weight:600;padding:9px 10px;border-radius:6px;cursor:pointer}.portal-dropdown-item:hover:not(.disabled){background:#ffffff14}.portal-dropdown-item.active{border-color:#c5cfde66;background:#c5cfde26;color:#f4f7fc}.portal-dropdown-item.disabled{opacity:.55;cursor:not-allowed}.portal-dropdown-menu--categorized{min-width:480px;max-height:80vh;overflow-y:auto;padding:8px 10px}.portal-dropdown-category-header{padding:10px 4px 5px;font-size:.68rem;font-weight:800;letter-spacing:.14em;text-transform:uppercase;text-align:center;color:#e2a84b;-webkit-user-select:none;user-select:none;position:relative}.portal-dropdown-category-header:before,.portal-dropdown-category-header:after{content:"";display:inline-block;width:20px;height:1px;background:#e2a84b44;vertical-align:middle;margin:0 6px}.portal-dropdown-grid{display:grid;grid-template-columns:1fr 1fr;gap:2px;margin-bottom:4px}.portal-dropdown-item--grid{font-size:.8rem;font-weight:500;padding:5px 8px;border-radius:4px;text-align:left;display:flex;align-items:center;justify-content:space-between;gap:4px;color:#c5cfded1}.portal-dropdown-item--grid:hover:not(.disabled){background:#ffffff12;color:#f0f4ff}.portal-dropdown-item--grid.active{background:#4fa8e826;color:#4fa8e8;border-color:transparent}.portal-item-badge{font-size:.6rem;font-weight:700;letter-spacing:.05em;padding:1px 5px;border-radius:3px;background:#4fa8e833;color:#4fa8e8;flex-shrink:0}.portal-item-badge--new{background:#4ade8026;color:#4ade80}.portal-item-badge--free{background:#86efac1f;color:#86efac}.portal-item-badge--enterprise{background:linear-gradient(135deg,#c98b00,#f5c842);color:#1a0e00;border:1px solid #a37200}.portal-dropdown-footer{display:flex;gap:2px}.portal-dropdown-item--footer{font-size:.75rem;font-weight:500;color:#c5cfde73;padding:4px 8px;border-radius:4px}.portal-dropdown-item--footer:hover{color:#c5cfdecc;background:#ffffff0d}.portal-dropdown-item--footer.active{color:#4fa8e8;background:transparent;border-color:transparent}.portal-dropdown-item--contact{color:#c5cfde99!important;border:1px solid rgba(197,207,222,.16);border-radius:4px;background:#c5cfde08}.portal-dropdown-item--contact:hover{color:#c5cfdec7!important;background:#c5cfde14!important;border-color:#c5cfde42}.portal-dropdown-item--contact.active{color:#8ebbe0!important;background:#4fa8e814!important;border-color:#4fa8e838}.portal-dropdown-item--suggest{color:#e05252!important;font-weight:600!important;border:1px solid rgba(224,82,82,.3);border-radius:4px;background:#e052520f}.portal-dropdown-item--suggest:hover{color:#ff6b6b!important;background:#e0525224!important;border-color:#e0525280}.portal-dropdown-item--suggest.active{color:#ff6b6b!important;background:#e052521f!important}.portal-dropdown-divider{height:1px;background:#c5cfde1a;margin:6px 0 4px}.portal-dropdown-item--indented{padding-left:28px;display:flex;align-items:center;gap:7px;font-size:.82rem}.portal-dropdown-item--meta{display:flex;align-items:center;gap:7px;font-size:.82rem;color:#c5cfded9}[data-theme=light] .portal-dropdown-category-header{color:#b8821a}[data-theme=light] .portal-dropdown-category-header:before,[data-theme=light] .portal-dropdown-category-header:after{background:#b8821a44}[data-theme=light] .portal-dropdown-divider{background:#3c4b641a}[data-theme=light] .portal-dropdown-item--meta{color:#3c4b64d9}[data-theme=light] .portal-dropdown-item--grid{color:#1e283cbf}[data-theme=light] .portal-dropdown-item--grid:hover{background:#0000000d;color:#1a2540}[data-theme=light] .portal-dropdown-item--grid.active{background:#4fa8e81f;color:#1a6fa8}[data-theme=light] .portal-dropdown-item--footer{color:#3c4b6473}.portal-user-tools{display:flex;align-items:center;gap:8px}.portal-language-select{height:31px;border-radius:8px;border:1px solid rgba(170,180,195,.34);background:#282d38d6;color:#f0f4fa;font-size:.75rem;font-weight:700;letter-spacing:.04em;padding:0 8px}.portal-language-select:focus{outline:none;border-color:#c8d2e3}.workspace-header{padding:10px var(--spacing-lg) 8px;border-bottom:1px solid rgba(166,177,192,.2);background:#141820}.workspace-title-wrap{display:flex;align-items:baseline;gap:8px}.workspace-title{margin:0;font-family:Segoe UI,Inter,Helvetica Neue,Arial,sans-serif;font-size:1rem;font-weight:800;color:#e6ebf4;text-transform:uppercase;letter-spacing:.08em}.workspace-subtitle{font-size:.72rem;color:#aeb8c9;letter-spacing:.06em;text-transform:uppercase}.app-header{display:flex;align-items:center;justify-content:space-between;padding:var(--spacing-md) var(--spacing-lg);text-align:left}.app-header h1{font-size:1.5rem;margin-bottom:0}.header-left{display:flex;align-items:baseline;gap:var(--spacing-sm)}.app-title{font-family:Orbitron,Eurostile,Bank Gothic,Microgramma,Plus Jakarta Sans,sans-serif;font-size:1.15rem;font-weight:800;color:#ff3b4d;letter-spacing:-.01em;text-transform:uppercase;letter-spacing:.08em;transform:skew(-10deg);transform-origin:left center}.app-subtitle{font-size:.75rem;font-weight:500;color:var(--color-text-muted);letter-spacing:.04em}.user-plan-badge{font-size:.66rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase;padding:4px 8px;border-radius:999px;border:1px solid transparent}.user-plan-badge.plan-free{color:#22c55e;background:#22c55e26;border-color:#22c55e6b}.user-plan-badge.plan-pro{color:#ef4444;background:#ef444426;border-color:#ef444473}.user-plan-badge.plan-enterprise{color:#8fd3ff;background:linear-gradient(90deg,#1d4ed838,#38bdf833,#3b82f638);border-color:#60a5fa8c;box-shadow:0 0 10px #38bdf859,inset 0 0 8px #3b82f640;position:relative;overflow:hidden}.user-plan-badge.plan-enterprise:after{content:"";position:absolute;top:-30%;left:-40%;width:28%;height:170%;transform:rotate(22deg);background:linear-gradient(180deg,#fff0,#ffffffb8,#fff0);animation:enterpriseShimmer 2.6s linear infinite}@keyframes enterpriseShimmer{0%{left:-40%}to{left:130%}}.header-right{display:flex;align-items:center;gap:var(--spacing-sm)}.theme-toggle{background:#4c9be81f;border:1.5px solid rgba(76,155,232,.45);border-radius:var(--radius-sm);font-size:1.15rem;cursor:pointer;padding:4px 10px;transition:all .2s;line-height:1;box-shadow:0 0 8px #4c9be840,inset 0 0 6px #4c9be814;filter:drop-shadow(0 0 5px rgba(76,155,232,.4))}.theme-toggle:hover{background:#4c9be838;border-color:#4c9be8cc;box-shadow:0 0 14px #4c9be873,inset 0 0 8px #4c9be81f;filter:drop-shadow(0 0 9px rgba(76,155,232,.7));transform:scale(1.08)}[data-theme=light] .theme-toggle{background:#ffba0021;border:1.5px solid rgba(255,186,0,.5);border-radius:var(--radius-sm);font-size:1.15rem;cursor:pointer;padding:4px 10px;transition:all .2s;line-height:1;box-shadow:0 0 8px #ffba0047,inset 0 0 6px #ffba0014;filter:drop-shadow(0 0 5px rgba(255,186,0,.45))}[data-theme=light] .theme-toggle:hover{background:#ffba003d;border-color:#ffba00d9;box-shadow:0 0 16px #ffba0080,inset 0 0 8px #ffba001f;filter:drop-shadow(0 0 10px rgba(255,186,0,.75));transform:scale(1.08)}.tabs-nav{display:flex;gap:4px;background:var(--color-surface);border-bottom:1px solid var(--color-border);padding:8px var(--spacing-lg);flex-wrap:wrap}.app-content{flex:1;padding:var(--spacing-lg) clamp(12px,2vw,28px);width:min(96vw,1400px);margin:0 auto}@media(max-width:1050px){.portal-header{grid-template-columns:1fr;gap:10px}.portal-nav,.portal-user-tools{width:100%}.portal-user-tools{justify-content:flex-end}}@media(max-width:720px){.portal-title{font-size:1.15rem}.portal-subtitle{font-size:.62rem}.workspace-title-wrap{flex-wrap:wrap}.portal-dropdown-menu{min-width:240px}}.btn{display:inline-flex;align-items:center;gap:6px;padding:7px 14px;border-radius:var(--radius-sm);border:1px solid var(--color-border);background:var(--color-surface-light);color:var(--color-text);font-family:inherit;font-size:.83rem;font-weight:600;cursor:pointer;transition:all .15s;letter-spacing:.01em}.btn:hover:not(:disabled){border-color:var(--color-border-hover);background:var(--color-surface-mid)}.btn.btn-primary{background:var(--color-primary);color:#000c18;border-color:transparent;font-weight:700}.btn.btn-primary:hover:not(:disabled){background:var(--color-primary-dim);box-shadow:var(--glow-primary)}.btn.btn-secondary{background:transparent;color:var(--color-text-muted);border-color:var(--color-border)}.btn.btn-secondary:hover:not(:disabled){color:var(--color-text);border-color:var(--color-border-hover);background:var(--color-surface-light)}.btn.btn-danger{background:transparent;color:var(--color-error);border-color:var(--color-error)}.btn.btn-danger:hover:not(:disabled){background:#ff4a6a1f}.btn:disabled{opacity:.5;cursor:not-allowed}.btn-sm{padding:4px 10px;font-size:.8rem}.global-outage-panel{display:flex;flex-direction:column;gap:14px}.global-outage-header{display:flex;justify-content:space-between;align-items:flex-start;gap:10px}.global-outage-header h2{margin:0;color:var(--color-primary)}.global-outage-title-wrap{display:inline-flex;align-items:center;gap:8px}.global-outage-info-dot{width:18px;height:18px;display:inline-flex;align-items:center;justify-content:center;border-radius:50%;border:1px solid var(--color-border-hover);color:var(--color-primary);font-size:.72rem;font-weight:700;cursor:help;-webkit-user-select:none;user-select:none}.global-outage-meta{color:var(--color-text-muted);font-size:.8rem}.global-outage-meta-row{display:flex;justify-content:space-between;gap:10px;flex-wrap:wrap}.global-outage-kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:10px}.global-outage-kpi{border:1px solid var(--color-border);background:var(--color-surface);border-radius:10px;padding:10px;display:flex;flex-direction:column;align-items:center;gap:2px}.global-outage-kpi-value{font-size:1.35rem;font-weight:800;color:var(--color-primary)}.global-outage-kpi-label{font-size:.72rem;text-transform:uppercase;letter-spacing:.06em;color:var(--color-text-muted)}.global-outage-kpi.critical .global-outage-kpi-value{color:#ff415f}.global-outage-kpi.warning .global-outage-kpi-value{color:#f0a030}.global-outage-kpi.minor .global-outage-kpi-value{color:#8ca3c0}.global-outage-layout{display:grid;grid-template-columns:minmax(360px,1fr) minmax(360px,1fr);gap:12px;align-items:start}.global-outage-map-wrap{border:1px solid var(--color-border);border-radius:10px;background:var(--color-surface);padding:10px}.global-outage-map-legend{font-size:.76rem;color:var(--color-text-muted);margin-top:8px}.global-outage-tooltip{font-size:.75rem;line-height:1.4}.global-outage-list{display:flex;flex-direction:column;gap:8px;max-height:500px;overflow:auto;border:1px solid var(--color-border);border-radius:10px;background:var(--color-surface);padding:10px}.global-outage-item{border:1px solid var(--color-border);border-radius:8px;background:var(--color-bg);padding:8px 10px}.global-outage-item-head{display:flex;justify-content:space-between;gap:8px;align-items:center}.global-outage-item-title{font-size:.8rem;font-weight:700}.global-outage-item-country{font-size:.7rem;padding:2px 8px;border-radius:999px;border:1px solid var(--color-border);color:var(--color-text-muted)}.global-outage-item-detail{margin-top:4px;color:var(--color-text-muted);font-size:.76rem}.global-outage-item-foot{margin-top:5px;display:flex;flex-wrap:wrap;gap:8px 12px;font-size:.7rem;color:var(--color-text-muted)}.global-outage-item.severity-critical{border-left:3px solid #ff304f}.global-outage-item.severity-warning{border-left:3px solid #f0a030}.global-outage-item.severity-minor{border-left:3px solid #758eb0}.global-outage-empty{font-size:.78rem;color:var(--color-text-muted);text-align:center;padding:10px}.portal-nav-btn.active{border-color:var(--color-primary);color:var(--color-primary);box-shadow:var(--glow-primary)}.endpoint-status-strip{display:flex;gap:.5rem;padding:.4rem 1rem .2rem;overflow-x:auto;border-bottom:1px solid var(--color-border)}.endpoint-chip{min-width:210px;max-width:280px;border:1px solid var(--color-border);border-radius:10px;padding:.55rem .72rem .6rem;background:#1e242dc7}.endpoint-chip.online{border-color:#6bc48d85}.endpoint-chip.testing{border-color:#adbbd19e}.endpoint-chip.offline{border-color:#80889773;opacity:.76}.endpoint-chip.scanner{background:linear-gradient(180deg,#24272de6,#1d1f24db);border-color:#c85e6c94}.endpoint-chip.scanner.online{border-color:#e26c7aad}.endpoint-chip.scanner.testing{border-color:#d47a869e}.endpoint-chip.scanner.offline{border-color:#a85f6c94}.endpoint-chip.ips{background:#f9731614;border-color:#f9731652}.endpoint-chip.ips.online{border-color:#f97316a6}.endpoint-chip.ips.testing{border-color:#f9731680}.endpoint-chip.ips.offline{border-color:#f9731647}.endpoint-chip-name{font-size:.74rem;font-weight:700;display:flex;align-items:center;justify-content:flex-start;gap:0;min-width:0}.endpoint-chip-name-left{display:inline-flex;align-items:center;gap:8px;min-width:0;flex:0 1 auto}.endpoint-chip-name-text{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.endpoint-chip-ecg-row{display:flex;justify-content:flex-start;padding-left:18px;margin-top:6px}.endpoint-chip-tag-scanner{font-size:.58rem;letter-spacing:.05em;font-weight:800;color:#ffd5db;background:#9b3c4b59;border:1px solid rgba(210,110,126,.65);border-radius:999px;padding:2px 6px;line-height:1;flex:0 0 auto}.endpoint-chip-tag-ips{font-size:.58rem;letter-spacing:.05em;font-weight:800;color:#f97316;background:#f9731633;border-radius:999px;padding:2px 6px;line-height:1;flex:0 0 auto}.endpoint-led{width:10px;height:10px;border-radius:999px;position:relative;flex:0 0 auto}.endpoint-led.led-online{background:#57c489;box-shadow:0 0 0 3px #57c48933,0 0 10px #57c4896b}.endpoint-led.led-stale{background:#d7a05a;box-shadow:0 0 0 3px #d7a05a33,0 0 9px #d7a05a47}.endpoint-led.led-offline{background:#e06b82;box-shadow:0 0 0 3px #e06b8233,0 0 9px #e06b8257}.endpoint-signal{flex:0 0 auto;min-width:72px;max-width:118px;height:14px;display:inline-flex;align-items:center;overflow:hidden;opacity:.95}.endpoint-signal svg{width:100%;height:100%;display:block}.endpoint-signal-line{fill:none;stroke:#57c48973;stroke-width:1.8}.endpoint-signal-pulse{fill:none;stroke:#57c489f7;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:70 220;animation:endpointEcgTravel 2.1s linear infinite}.endpoint-signal.offline .endpoint-signal-line{stroke:#e06b82f2}.endpoint-signal.offline .endpoint-signal-pulse{stroke:#e06b82f2;stroke-dasharray:280 0;stroke-dashoffset:0;animation:none}.endpoint-chip.ips .endpoint-signal-line{stroke:#4ade8059}.endpoint-chip.ips .endpoint-signal-pulse{stroke:#4ade80f7}.endpoint-chip.ips .endpoint-signal.offline .endpoint-signal-line{stroke:#4ade8038}.endpoint-chip.ips .endpoint-signal.offline .endpoint-signal-pulse{stroke:#4ade808c}@keyframes ipsBadgePulse{0%,to{opacity:1;background:#f97316e6;color:#fff;box-shadow:0 0 6px #f97316b3}50%{opacity:.45;background:#f9731633;color:#f97316;box-shadow:none}}.endpoint-chip.ips-active .endpoint-chip-tag-ips{animation:ipsBadgePulse 1s ease-in-out infinite}.endpoint-chip-live{margin-top:.3rem;position:relative;overflow:hidden;white-space:nowrap;font-size:.72rem;color:var(--text-secondary)}.endpoint-chip-ip{margin-top:4px;display:inline-flex;align-items:center;gap:6px;font-size:.68rem;color:#7ab8f5;font-family:JetBrains Mono,Fira Code,ui-monospace,monospace}.endpoint-chip-ip span:first-child{color:var(--color-text-muted);font-family:Plus Jakarta Sans,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-weight:600}.endpoint-chip-live-scroll{display:inline-block;padding-left:100%;animation:endpointMarquee 8s linear infinite}@keyframes endpointMarquee{0%{transform:translate(0)}to{transform:translate(-100%)}}@keyframes endpointEcgTravel{0%{stroke-dashoffset:320}to{stroke-dashoffset:0}}.ips-ecg-line{fill:none;stroke:#4ade8059;stroke-width:1.4;stroke-linecap:round}.ips-ecg-pulse{fill:none;stroke:#4ade80f7;stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:70 220;animation:endpointEcgTravel 2.1s linear infinite}.ips-ecg-pulse.offline{stroke:#e06b82d9;stroke-dasharray:280 0;stroke-dashoffset:0;animation:ipsEcgOfflineBlink 1.4s ease-in-out infinite}.ips-ecg-line.offline{stroke:#e06b824d}@keyframes ipsEcgOfflineBlink{0%,to{opacity:1}50%{opacity:.15}}@media(max-width:1100px){.global-outage-layout{grid-template-columns:1fr}}.vuln-panel{display:flex;flex-direction:column;gap:12px}.vuln-header{display:flex;justify-content:space-between;align-items:flex-start;gap:10px}.vuln-header h2{margin:0;color:var(--color-primary)}.vuln-header p{margin:4px 0 0;color:var(--color-text-muted);font-size:.8rem}.vuln-search-form{display:grid;grid-template-columns:1fr auto auto;gap:8px}.vuln-search-input{width:100%;border:1px solid var(--color-border);border-radius:10px;background:var(--color-surface);color:var(--color-text);padding:9px 12px}.vuln-search-input:focus{outline:none;border-color:var(--color-primary)}.vuln-meta-row{display:flex;justify-content:space-between;flex-wrap:wrap;gap:8px;color:var(--color-text-muted);font-size:.78rem}.vuln-kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:8px}.vuln-kpi{border:1px solid var(--color-border);background:var(--color-surface);border-radius:10px;padding:9px;text-align:center}.vuln-kpi-value{font-size:1.1rem;font-weight:800;color:var(--color-primary)}.vuln-kpi-label{margin-top:2px;font-size:.7rem;text-transform:uppercase;letter-spacing:.05em;color:var(--color-text-muted)}.vuln-kpi.critical .vuln-kpi-value{color:#ff4664}.vuln-kpi.high .vuln-kpi-value{color:#ff9f40}.vuln-kpi.medium .vuln-kpi-value{color:#ffd066}.vuln-kpi.low .vuln-kpi-value{color:#7ddbb7}.vuln-sources{display:flex;flex-wrap:wrap;gap:8px}.vuln-source{display:inline-flex;align-items:center;border:1px solid var(--color-border);border-radius:999px;padding:4px 10px;font-size:.7rem}.vuln-source.live{border-color:#10b98173;background:#10b9811a;color:#80e2c3}.vuln-source.planned{border-color:#f59e0b73;background:#f59e0b14;color:#f2bf66}.vuln-list{display:flex;flex-direction:column;gap:8px}.vuln-item{border:1px solid var(--color-border);border-radius:10px;background:var(--color-surface);padding:10px}.vuln-item.risk-critical{border-left:3px solid #ff4664}.vuln-item.risk-high{border-left:3px solid #ff9f40}.vuln-item.risk-medium{border-left:3px solid #ffd066}.vuln-item.risk-low{border-left:3px solid #7ddbb7}.vuln-item-top{display:flex;justify-content:space-between;align-items:center;gap:8px}.vuln-id-link{color:var(--color-primary);font-weight:800;text-decoration:none}.vuln-id-link:hover{text-decoration:underline}.vuln-risk-pill{font-size:.7rem;padding:2px 8px;border-radius:999px;border:1px solid var(--color-border)}.vuln-risk-pill.risk-critical{border-color:#ef444499;color:#ff8b99}.vuln-risk-pill.risk-high{border-color:#f59e0bb3;color:#ffc271}.vuln-risk-pill.risk-medium{border-color:#eab308b3;color:#f7d986}.vuln-risk-pill.risk-low{border-color:#10b981b3;color:#8be5c7}.vuln-item-summary{margin-top:6px;color:var(--color-text);font-size:.8rem}.vuln-item-grid{margin-top:8px;display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:6px;color:var(--color-text-muted);font-size:.74rem}.vuln-item-foot{margin-top:8px;display:flex;justify-content:space-between;gap:8px;flex-wrap:wrap;font-size:.7rem;color:var(--color-text-muted)}.vuln-empty{border:1px dashed var(--color-border);border-radius:10px;padding:12px;text-align:center;color:var(--color-text-muted)}@media(max-width:760px){.vuln-search-form{grid-template-columns:1fr}}.loading{display:flex;align-items:center;justify-content:center;padding:var(--spacing-lg) * 2;color:var(--color-text-muted);font-size:1rem;min-height:120px}.empty-state{text-align:center;padding:var(--spacing-lg);color:var(--color-text-muted)}.empty-state p{margin-bottom:var(--spacing-sm)}.dashboard-home h2{margin-bottom:var(--spacing-md)}.welcome-hero{display:grid;grid-template-columns:1.25fr .9fr;gap:14px;margin-bottom:16px}.welcome-hero-content{border:1px solid var(--color-border);border-radius:12px;padding:16px;background:linear-gradient(180deg,#252b36b8,#171b22e6),url(/image.jpg) center / cover no-repeat;position:relative;overflow:hidden}.welcome-hero-content:before{content:"";position:absolute;inset:0;background:linear-gradient(115deg,#11141aeb,#11141a8c);pointer-events:none}.welcome-hero-content>*{position:relative;z-index:1}.welcome-badge{display:inline-flex;padding:4px 10px;border-radius:999px;border:1px solid rgba(217,226,239,.32);color:#dbe3f0;font-size:.7rem;letter-spacing:.08em;text-transform:uppercase;margin-bottom:8px}.welcome-title{margin:0 0 8px;font-size:1.45rem;font-weight:800;letter-spacing:.02em;color:#eef3fb}.welcome-lead{color:#d2dbe9;font-size:.85rem;line-height:1.55;max-width:92%}.welcome-pillars{margin-top:12px;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.welcome-pill{border:1px solid rgba(198,209,225,.2);border-radius:10px;background:#14181f9e;padding:9px 10px}.welcome-pill-title{font-size:.72rem;text-transform:uppercase;letter-spacing:.06em;color:#ecf2fb;margin-bottom:4px;font-weight:700}.welcome-pill-text{font-size:.74rem;color:#bac4d5;line-height:1.45}.welcome-hero-visual{display:grid;grid-template-rows:auto 1fr;gap:10px}.welcome-visual-card{border:1px solid var(--color-border);border-radius:12px;background:linear-gradient(160deg,#222934f2,#181e27f2);padding:12px}.welcome-visual-logo{width:42px;height:42px;border-radius:10px;background:url(/favicon-256.png) center / cover no-repeat;border:1px solid rgba(184,197,217,.36);margin-bottom:8px}.welcome-visual-title{font-size:.85rem;color:#edf3fd;font-weight:700;letter-spacing:.04em;text-transform:uppercase}.welcome-visual-text{margin-top:4px;font-size:.76rem;color:#b5c1d4;line-height:1.45}.welcome-visual-image{border:1px solid var(--color-border);border-radius:12px;background:linear-gradient(180deg,#12161d8c,#12161dc7),url(/image.jpg) center / cover no-repeat;min-height:148px}.kpi-section-title{margin:0 0 10px;color:var(--color-text);font-size:1.05rem;font-weight:700}.kpi-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:var(--spacing-md)}.kpi-card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);padding:var(--spacing-md);text-align:center;transition:border-color .2s,box-shadow .2s}.kpi-card:hover:not(:disabled):not(.disabled){border-color:var(--color-border-hover);box-shadow:var(--glow-primary)}.kpi-card:hover:not(:disabled):not(.disabled){border-color:var(--color-primary)}.kpi-value{font-size:2rem;font-weight:700;color:var(--color-primary);line-height:1.2}.kpi-label{font-size:.8rem;color:var(--color-text-muted);margin-top:4px;text-transform:uppercase;letter-spacing:.04em}.storage-kpi,.storage-kpi .kpi-value,.storage-kpi .kpi-label{text-align:left}.storage-meter{margin-top:8px;height:8px;border-radius:999px;border:1px solid var(--color-border);background:var(--color-bg);overflow:hidden}.storage-meter-fill{height:100%;background:linear-gradient(90deg,#cdd8eb,#7fcda0);border-radius:999px;transition:width .3s ease}.storage-meta{margin-top:6px;display:flex;justify-content:space-between;gap:8px;font-size:.74rem;color:var(--color-text-muted)}.latest-speed-title{margin-top:14px}.latest-speed-grid{display:grid;grid-template-columns:1fr 1fr 1.3fr;gap:var(--spacing-md)}.latest-speed-card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);padding:var(--spacing-md)}.latest-speed-label{font-size:.78rem;text-transform:uppercase;letter-spacing:.05em;color:var(--color-text-muted);margin-bottom:6px}.latest-speed-value{font-size:1.9rem;font-weight:800;color:var(--color-primary)}.latest-speed-meta{display:grid;gap:8px}.latest-speed-meta-row{display:flex;justify-content:space-between;gap:8px;font-size:.88rem;color:var(--color-text-muted)}.latest-speed-meta-row strong{color:var(--color-text);font-weight:700}@media(max-width:1080px){.welcome-hero,.welcome-pillars{grid-template-columns:1fr}.welcome-lead{max-width:100%}.latest-speed-grid{grid-template-columns:1fr}}.agents-list h2{margin-bottom:var(--spacing-md)}.agents-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:var(--spacing-md);margin-top:var(--spacing-md)}.agent-card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);padding:var(--spacing-md);cursor:pointer;transition:border-color .2s,box-shadow .2s}.agent-card:hover:not(:disabled):not(.disabled){border-color:var(--color-primary)}.agent-card.selected{border-color:var(--color-primary);box-shadow:0 0 0 2px color-mix(in srgb,var(--color-primary) 30%,transparent)}.agent-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--spacing-sm)}.agent-type-badge{font-size:.7rem;font-weight:700;padding:2px 8px;border-radius:999px;background:var(--color-surface-light);color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.05em}.agent-type-badge[data-type=client]{background:color-mix(in srgb,var(--color-primary) 20%,transparent);color:var(--color-primary)}.agent-type-badge[data-type=server]{background:color-mix(in srgb,var(--color-success) 20%,transparent);color:var(--color-success)}.agent-type-badge[data-type=ips_agent]{background:color-mix(in srgb,#f97316 20%,transparent);color:#f97316}.agent-card[data-agent-type=ips_agent]{border-color:#f9731666}.agent-card[data-agent-type=ips_agent]:hover:not(:disabled):not(.disabled){border-color:#f97316}.agent-card[data-agent-type=ips_agent].selected{border-color:#f97316;box-shadow:0 0 0 2px #f9731640}.agent-status{font-size:.82rem;font-weight:600}.agent-info{font-size:.88rem;line-height:1.6;color:var(--color-text)}.agent-heartbeat{font-size:.78rem;color:var(--color-text-muted);margin-top:4px}.agent-command-status{margin-top:6px;font-size:.82rem;color:var(--color-text-secondary)}.agent-command-error{margin-top:4px;color:var(--color-error);font-size:.78rem;word-break:break-word}.agent-progress-live{margin-top:6px;font-size:.8rem;color:var(--color-info)}.agent-wan-line{display:flex;flex-wrap:wrap;gap:4px;align-items:baseline}.agent-wan-geo{color:var(--color-text-muted);font-size:.82rem}.agent-progress-label{color:var(--color-text-secondary)}.agent-shutting-down{margin-top:6px;font-size:.8rem;color:var(--color-warning);animation:pulse 1.2s ease-in-out infinite}@keyframes pulse{0%,to{opacity:1}50%{opacity:.45}}.agent-actions{margin-top:var(--spacing-sm);padding-top:var(--spacing-sm);border-top:1px solid var(--color-border);display:grid;gap:8px;min-width:0}.agent-remote-form{display:grid;gap:8px;width:100%;min-width:0}.agent-remote-row{display:grid;grid-template-columns:1fr 1fr;gap:8px;min-width:0}.agent-remote-row-3,.agent-remote-actions{grid-template-columns:1fr 1fr 1fr}.agent-remote-input{width:100%;min-width:0}.agent-remote-btn{width:100%;min-width:0;white-space:nowrap}.agent-mtr-row{gap:.75rem}.agent-mtr-toggle{display:flex;align-items:center;gap:.35rem;font-size:.82rem;color:var(--text-secondary);cursor:pointer;-webkit-user-select:none;user-select:none;white-space:nowrap}.agent-mtr-toggle input[type=checkbox]{cursor:pointer;accent-color:var(--color-primary);width:14px;height:14px}.agent-section-label{font-size:.75rem;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--color-primary);margin-bottom:4px;margin-top:2px}.agent-remote-form+.agent-remote-form{margin-top:8px;padding-top:8px;border-top:1px solid var(--color-border)}.agent-role-switch-row{display:flex;align-items:center;gap:6px;margin-top:6px;flex-wrap:wrap}.agent-role-label{font-size:.8rem;color:var(--text-secondary);margin-right:2px}.agent-role-btn{font-size:.75rem;padding:2px 10px;border-radius:12px;border:1px solid var(--color-border);background:transparent;color:var(--text-secondary);cursor:pointer;transition:background .15s,color .15s,border-color .15s;line-height:1.6}.agent-role-btn:hover{border-color:var(--color-primary);color:var(--color-primary)}.agent-role-btn.active{background:var(--color-primary);border-color:var(--color-primary);color:#fff;font-weight:600}.api-keys h2{margin-bottom:4px}.api-keys>p{color:var(--color-text-muted);margin-bottom:var(--spacing-md)}.create-key-form{display:flex;gap:var(--spacing-sm);margin-bottom:var(--spacing-md);flex-wrap:wrap}.create-key-form input,.create-key-form select{flex:1;min-width:180px;padding:8px 12px;border-radius:var(--radius);border:1px solid var(--color-border);background:var(--color-surface);color:var(--color-text);font-size:.9rem}.create-key-form input:focus,.create-key-form select:focus{outline:none;border-color:var(--color-primary)}.key-created-banner{display:flex;align-items:center;gap:var(--spacing-sm);flex-wrap:wrap;background:color-mix(in srgb,var(--color-success) 12%,var(--color-surface));border:1px solid var(--color-success);border-radius:var(--radius);padding:var(--spacing-md);margin-bottom:var(--spacing-md);font-size:.88rem}.api-key-display{flex:1;font-family:Consolas,Fira Code,monospace;font-size:.82rem;background:var(--color-surface-light);padding:4px 8px;border-radius:4px;word-break:break-all;color:var(--color-success)}.keys-list{margin-top:var(--spacing-md)}.keys-table{width:100%;border-collapse:collapse;font-size:.9rem}.keys-table th,.keys-table td{padding:10px 12px;text-align:left;border-bottom:1px solid var(--color-border)}.keys-table th{color:var(--color-text-muted);font-weight:600;font-size:.8rem;text-transform:uppercase;letter-spacing:.04em}.keys-table tr:hover td{background:color-mix(in srgb,var(--color-surface-light) 40%,transparent)}@media(max-width:640px){.kpi-grid{grid-template-columns:repeat(2,1fr)}.agents-grid,.agent-remote-row,.agent-remote-row-3,.agent-remote-actions{grid-template-columns:1fr}.create-key-form{flex-direction:column}.tabs-nav{padding:8px var(--spacing-md);gap:6px}}.test-detail-modal{width:min(1300px,97vw);max-height:92vh}.test-detail-content{display:flex;flex-direction:column;gap:var(--spacing-md)}.test-detail-meta{display:flex;flex-wrap:wrap;gap:var(--spacing-md);padding:var(--spacing-sm) var(--spacing-md);background:var(--color-bg);border-radius:var(--radius);font-size:.9rem;color:var(--color-text-muted)}.test-detail-throughput{display:grid;grid-template-columns:1fr auto 1fr;gap:var(--spacing-md);align-items:stretch}.throughput-card{padding:var(--spacing-md);border-radius:var(--radius);border:1px solid var(--color-border);display:flex;flex-direction:column;gap:4px}.wan-card{border-left:4px solid var(--color-primary)}.vpn-card{border-left:4px solid var(--color-success)}.degrad-card{border-left:4px solid var(--color-warning);text-align:center;justify-content:center}.degrad-high{border-left-color:var(--color-error)}.degrad-medium{border-left-color:var(--color-warning)}.degrad-good{border-left-color:var(--color-success)}.throughput-label{font-size:.75rem;text-transform:uppercase;letter-spacing:.06em;color:var(--color-text-muted);font-weight:600}.throughput-server{font-size:.8rem;color:var(--color-text-muted);font-family:monospace;word-break:break-all}.throughput-value{font-size:1.6rem;font-weight:700;color:var(--color-text)}.degrad-value{font-size:2rem}.throughput-efficiency{font-size:.85rem;color:var(--color-text-muted)}.throughput-udp{display:flex;gap:var(--spacing-sm);font-size:.8rem;color:var(--color-text-muted)}.throughput-error{font-size:.8rem;color:var(--color-error)}.test-detail-speed{border:1px solid var(--color-border);border-radius:var(--radius);padding:var(--spacing-sm);background:var(--color-bg)}.test-detail-speed-header{display:flex;justify-content:space-between;align-items:center;gap:var(--spacing-sm);margin-bottom:6px}.test-detail-speed-header h3{margin:0;font-size:.95rem;color:var(--color-text)}.test-detail-speed-legend{display:inline-flex;align-items:center;gap:10px;font-size:.78rem;color:var(--color-text-muted)}.speed-legend-dot{width:8px;height:8px;border-radius:50%;display:inline-block;margin-right:4px}.speed-legend-dot.wan{background:var(--color-primary)}.speed-legend-dot.vpn{background:var(--color-success)}.test-detail-speed-svg{width:100%;height:auto;display:block}.speed-bg{fill:color-mix(in srgb,var(--color-surface) 65%,transparent);stroke:var(--color-border)}.speed-grid{stroke:#ffffff1a;stroke-dasharray:4 4}[data-theme=light] .speed-grid{stroke:#0000001f}.speed-axis{fill:var(--color-text-muted);font-size:10px}.speed-line-wan{fill:none;stroke:var(--color-primary);stroke-width:2.2}.speed-line-vpn{fill:none;stroke:var(--color-success);stroke-width:2.2}.speed-dot-wan{fill:var(--color-primary);stroke:var(--color-bg);stroke-width:1.2}.speed-dot-vpn{fill:var(--color-success);stroke:var(--color-bg);stroke-width:1.2}.test-detail-mtr{border-top:1px solid var(--color-border);padding-top:var(--spacing-md)}.test-detail-mtr h3{margin-bottom:var(--spacing-sm);color:var(--color-text)}.mtr-two-panels{display:grid;grid-template-columns:1fr 1fr;gap:var(--spacing-md)}.mtr-one-panel{display:block}@media(max-width:1100px){.mtr-two-panels,.test-detail-throughput{grid-template-columns:1fr}}.traceroute-panel{border:1px solid var(--color-border);border-radius:var(--radius);padding:var(--spacing-sm);background:var(--color-bg)}.traceroute-label{font-size:.85rem;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--color-text-muted);margin-bottom:var(--spacing-xs)}.traceroute-three-panel{display:grid;grid-template-columns:220px 1fr 200px;gap:var(--spacing-sm);margin-top:var(--spacing-sm)}.traceroute-stability{display:flex;flex-direction:column;gap:4px;min-width:0;font-size:.78rem}.traceroute-stability-header{font-size:.75rem;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--color-text-muted);display:flex;flex-direction:column;gap:1px;margin-bottom:4px;padding-bottom:6px;border-bottom:1px solid var(--color-border)}.stability-subtitle{font-weight:400;font-size:.7rem;color:var(--color-text-muted);opacity:.7}.stability-note{font-size:.72rem;color:var(--color-text-muted);font-style:italic;padding:2px 0}.stability-row{display:grid;grid-template-columns:18px 1fr auto;align-items:center;gap:4px;padding:2px 0;border-bottom:1px solid rgba(255,255,255,.04)}[data-theme=light] .stability-row{border-bottom-color:#0000000a}.stability-hop-num{color:var(--color-text-muted);font-weight:600;text-align:right}.stability-ip{font-family:monospace;font-size:.72rem;color:var(--color-text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.stability-status{display:flex;align-items:center;gap:3px;font-size:.7rem;font-weight:600;white-space:nowrap}.stability-icon{font-size:.55rem}.stability-loading,.stability-unknown{color:var(--color-text-muted)}.stability-stable{color:var(--color-success)}.stability-minor{color:var(--color-warning)}.stability-unstable{color:var(--color-error)}.stability-legend{margin-top:6px;display:flex;flex-direction:column;gap:2px;font-size:.68rem;color:var(--color-text-muted);padding-top:6px;border-top:1px solid var(--color-border)}.traceroute-center{min-width:0}.traceroute-hop-list{display:flex;flex-direction:column;font-size:.76rem;min-width:0;overflow-y:auto;max-height:420px}.traceroute-hop-list-header{font-size:.72rem;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--color-text-muted);margin-bottom:6px;padding-bottom:6px;border-bottom:1px solid var(--color-border)}.traceroute-hop-row{display:grid;grid-template-columns:18px 8px 1fr auto 16px;align-items:center;gap:4px;padding:2px;border-bottom:1px solid rgba(255,255,255,.04)}[data-theme=light] .traceroute-hop-row{border-bottom-color:#0000000a}.hop-row-loss{background:#ef44440f;border-radius:3px}.hop-row-num{color:var(--color-text-muted);text-align:right;font-weight:600;font-size:.7rem}.hop-row-dot{width:7px;height:7px;border-radius:50%;flex-shrink:0}.hop-row-dot.latency-good{background:var(--color-success)}.hop-row-dot.latency-medium{background:var(--color-warning)}.hop-row-dot.latency-high{background:var(--color-error)}.hop-row-dot.latency-timeout{background:var(--color-text-muted);opacity:.4}.hop-row-ip{font-family:monospace;font-size:.71rem;color:var(--color-text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.hop-row-rtt{font-size:.7rem;font-weight:600;text-align:right;white-space:nowrap}.hop-row-rtt.latency-good{color:var(--color-success)}.hop-row-rtt.latency-medium{color:var(--color-warning)}.hop-row-rtt.latency-high{color:var(--color-error)}.hop-row-rtt.latency-timeout{color:var(--color-text-muted)}.hop-row-flag{font-size:.85rem;line-height:1}.traceroute-chart-title{font-size:.72rem;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--color-text-muted);margin:6px 0 3px}.traceroute-grid-deg{fill:#ffffff2e;font-size:7px;font-family:sans-serif;pointer-events:none;-webkit-user-select:none;user-select:none}[data-theme=light] .traceroute-grid-deg{fill:#0000002e}.outage-bulletin{margin-top:var(--spacing-sm);border:1px solid var(--color-border);border-radius:var(--radius);background:var(--color-bg);overflow:hidden}.outage-bulletin-header{display:flex;align-items:baseline;gap:var(--spacing-sm);padding:7px var(--spacing-sm);background:color-mix(in srgb,var(--color-surface) 60%,transparent);border-bottom:1px solid var(--color-border)}.outage-bulletin-title{font-size:.78rem;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--color-text)}.outage-bulletin-sub{font-size:.7rem;color:var(--color-text-muted)}.bulletin-loading{padding:8px var(--spacing-sm);font-size:.78rem;color:var(--color-text-muted);font-style:italic}.bulletin-clear{padding:8px var(--spacing-sm);font-size:.8rem;color:var(--color-success);display:flex;align-items:center;gap:6px}.bulletin-ok-icon{font-size:1rem}.bulletin-list{display:flex;flex-direction:column}.bulletin-item{display:grid;grid-template-columns:20px 1fr auto;align-items:center;gap:6px;padding:5px var(--spacing-sm);border-bottom:1px solid rgba(255,255,255,.04);font-size:.78rem;transition:background .1s}[data-theme=light] .bulletin-item{border-bottom-color:#0000000d}.bulletin-item:last-child{border-bottom:none}.bulletin-item:hover{background:color-mix(in srgb,var(--color-surface) 40%,transparent)}.bulletin-critical{border-left:3px solid var(--color-error)}.bulletin-warning{border-left:3px solid var(--color-warning)}.bulletin-recovery{border-left:3px solid var(--color-success)}.bulletin-normal{border-left:3px solid var(--color-border)}.bulletin-icon{font-size:.85rem;text-align:center}.bulletin-body{display:flex;align-items:center;gap:var(--spacing-sm);min-width:0}.bulletin-entity{font-weight:700;font-family:monospace;font-size:.78rem;color:var(--color-text);white-space:nowrap}.bulletin-entity-name{font-weight:400;font-family:inherit;color:var(--color-text-muted)}.bulletin-condition{font-size:.72rem;text-transform:uppercase;letter-spacing:.04em;color:var(--color-text-muted);white-space:nowrap}.bulletin-critical .bulletin-condition{color:var(--color-error)}.bulletin-warning .bulletin-condition{color:var(--color-warning)}.bulletin-recovery .bulletin-condition{color:var(--color-success)}.bulletin-time{font-size:.72rem;color:var(--color-text-muted);white-space:nowrap;text-align:right}.traceroute-leaflet-wrap{border-radius:6px;overflow:hidden;border:1px solid var(--color-border)}.hop-tooltip{background:#000000c7!important;border:none!important;border-radius:4px!important;color:#fff!important;padding:2px 5px!important;box-shadow:none!important;font-size:11px!important;font-weight:700!important}.hop-tooltip:before,.hop-tooltip:after{display:none!important}@media(max-width:900px){.traceroute-three-panel{grid-template-columns:1fr}.traceroute-hop-list{max-height:200px}}.traceroute-equator-line{stroke:#ffffff26;stroke-width:1;stroke-dasharray:4 4}.traceroute-continent-label{fill:#ffffff38;font-size:9px;font-family:sans-serif;font-weight:600;pointer-events:none;-webkit-user-select:none;user-select:none}[data-theme=light] .traceroute-continent-label{fill:#00000038}[data-theme=light] .traceroute-equator-line{stroke:#00000026}.traceroute-map-node-loss{fill:var(--color-error)!important}.login-page{min-height:100vh;display:grid;place-items:center;background:linear-gradient(#101216c7,#101216c7),radial-gradient(1200px 520px at 50% -12%,rgba(162,171,187,.18),transparent 58%),url(/image.jpg) center center / cover no-repeat,linear-gradient(180deg,#16191f,#111318);padding:24px 12px;position:relative;overflow:hidden}.login-page,.login-page *{font-family:Segoe UI,Inter,Helvetica Neue,Arial,sans-serif}.login-topbar{position:absolute;top:14px;right:16px;z-index:6}.login-topbar-language{display:inline-flex;align-items:center;gap:8px;background:#14171ddb;border:1px solid rgba(165,175,190,.25);border-radius:10px;padding:8px 10px;color:#d5dbe6;font-size:.74rem;letter-spacing:.03em}.login-language-select{height:28px;min-width:105px;border-radius:8px;border:1px solid rgba(170,180,196,.35);background:#262b36;color:#f0f3f7;padding:0 8px}.login-shell{width:min(100%,410px);display:grid;gap:10px;justify-items:center;opacity:0;transform:translateY(14px) scale(.985);transition:opacity .45s ease,transform .45s ease}.login-shell.show{opacity:1;transform:translateY(0) scale(1)}.login-brand{display:flex;justify-content:center;width:100%}.login-brand-mark{font-size:clamp(2.35rem,5vw,3rem);font-weight:800;letter-spacing:.09em;color:#eef2f9;text-transform:uppercase;text-shadow:0 2px 20px rgba(0,0,0,.36);line-height:1}.login-brand-sub{margin-top:4px;font-size:.75rem;letter-spacing:.08em;text-transform:uppercase;color:#b6bfcd;display:inline-flex;flex-direction:column;align-items:stretch;width:fit-content;max-width:100%;line-height:1.2}.login-brand-sub>span{display:block;white-space:nowrap}.login-brand-sub>span:first-child{text-align:left}.login-brand-sub>span:last-child{text-align:center}.login-card{width:min(100%,410px);background:#12151beb;border-radius:12px;border:1px solid rgba(177,186,200,.24);box-shadow:0 16px 48px #00000075;-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px);overflow:hidden}.login-title{margin:18px 18px 4px;text-align:center;color:#eef2f9;font-size:clamp(1rem,1.9vw,1.2rem);font-weight:700;letter-spacing:.01em}.login-subtitle{margin:0 18px 10px;text-align:center;color:#b6bfcd;font-size:.77rem}.login-form{padding:0 18px}.login-form .form-group{margin-bottom:9px}.login-form .form-group label{display:block;margin-bottom:4px;font-size:.7rem;font-weight:600;color:#b8c1ce;text-transform:uppercase;letter-spacing:.05em}.login-input{width:100%;height:38px;border-radius:10px;border:1px solid rgba(168,178,194,.3);background:#272c37b8;color:#f4f7fb;font-size:.86rem;padding:0 12px;outline:none}.login-input:focus{border-color:#9aa4b8;box-shadow:0 0 0 3px #afbacd33}.login-cta{width:min(100%,220px);height:36px;margin:10px auto 0;display:block;border-radius:10px;background:#dfe5ef!important;color:#121620!important;border:none!important;font-size:.82rem;font-weight:700;letter-spacing:.03em}.login-cta:hover:not(:disabled){background:#cfd7e5!important}.login-google-cta{width:100%;height:40px;margin-top:10px;border-radius:10px;background:#fff;color:#3c4043;border:1px solid #dadce0;font-size:.86rem;font-weight:600;letter-spacing:.01em;display:inline-flex;justify-content:center;align-items:center;gap:10px}.login-google-cta:hover:not(:disabled){background:#f7f8f8;border-color:#cfd1d3}.login-google-cta:disabled{opacity:.78}.google-icon{display:inline-flex;align-items:center;justify-content:center}.login-x-cta{width:100%;height:40px;margin-top:8px;border-radius:10px;border:1px solid #2f3336;background:#111315;color:#f4f7fb;font-size:.86rem;font-weight:600;letter-spacing:.01em;display:inline-flex;justify-content:center;align-items:center;gap:10px}.login-x-cta:hover:not(:disabled){background:#1b1f23;border-color:#3d4348}.x-icon{width:18px;height:18px;display:inline-flex;align-items:center;justify-content:center;font-weight:800;font-size:.95rem;line-height:1}.login-toggle{margin:10px 18px 12px;text-align:center;color:#b6bfcd;font-size:.78rem}.login-toggle .link-btn{border:none;background:none;color:#d8e0ef;font-weight:700;cursor:pointer;text-decoration:none}.login-toggle .link-btn:hover{text-decoration:underline}.login-card-footer{display:none}.login-intro-overlay{position:absolute;inset:0;display:grid;place-items:center;background:radial-gradient(540px 190px at 50% 55%,rgba(190,200,216,.16),transparent 70%),#0c0e12e6;animation:loginIntroFade 1.1s ease forwards;z-index:5;pointer-events:none}.login-intro-mark{font-family:Segoe UI,Inter,Helvetica Neue,Arial,sans-serif;font-size:clamp(1.5rem,3.2vw,2.3rem);font-weight:800;letter-spacing:.11em;color:#f1f5fc;text-transform:uppercase;animation:introPulse .9s ease-in-out infinite alternate}.login-intro-sub{margin-top:8px;text-align:center;font-size:.88rem;color:#c3ccdb;letter-spacing:.08em;text-transform:uppercase}@keyframes loginIntroFade{0%{opacity:1}75%{opacity:1}to{opacity:0;visibility:hidden}}@keyframes introPulse{0%{text-shadow:0 0 0 rgba(238,243,252,0)}to{text-shadow:0 0 24px rgba(213,222,236,.36)}}.traceroute-chart-dot{fill:var(--color-primary);stroke:var(--color-surface);stroke-width:1.5}.traceroute-chart-header{font-size:.75rem;color:var(--color-text-muted);font-weight:600;text-transform:uppercase;letter-spacing:.05em;margin-bottom:4px}.history-item-actions{display:flex;align-items:center;gap:var(--spacing-xs)}.test-detail-no-mtr{padding:var(--spacing-md);border:1px dashed var(--color-border);border-radius:var(--radius);color:var(--color-text-muted);text-align:center}.text-muted{color:var(--color-text-muted);font-size:.85rem}.test-detail-ai{border-top:1px solid var(--color-border);padding-top:var(--spacing-md)}.test-detail-ai h3{margin-bottom:var(--spacing-sm)}.ai-controls{display:flex;gap:var(--spacing-sm);align-items:center;margin-bottom:var(--spacing-sm)}.ai-result{background:var(--color-bg);border:1px solid var(--color-border);border-radius:var(--radius);padding:var(--spacing-md);max-height:300px;overflow:auto}.ai-result pre{margin:0;white-space:pre-wrap;word-break:break-word;font-size:.85rem;color:var(--color-text);font-family:inherit}.admin-panel{display:flex;flex-direction:column;gap:var(--spacing-lg)}.admin-panel-header{display:flex;justify-content:space-between;align-items:flex-end;gap:var(--spacing-md);flex-wrap:wrap}.admin-tabs{display:flex;gap:4px;flex-wrap:wrap;margin:0 0 1.5rem;border-bottom:1px solid rgba(255,255,255,.08);padding-bottom:0}.admin-tab{background:none;border:none;border-bottom:2px solid transparent;color:var(--color-text-secondary);cursor:pointer;font-size:.85rem;font-weight:500;padding:8px 16px;transition:color .15s,border-color .15s;margin-bottom:-1px}.admin-tab:hover{color:var(--color-text)}.admin-tab-active{color:#4fa8e8;border-bottom-color:#4fa8e8;font-weight:600}.admin-panel-title h2{margin:0 0 2px;font-size:1.25rem;color:var(--color-primary)}.admin-panel-subtitle{font-size:.8rem;color:var(--color-text-secondary);text-transform:uppercase;letter-spacing:.08em}.admin-panel-actions{display:flex;gap:var(--spacing-sm)}.admin-kpi-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:var(--spacing-md)}.admin-kpi{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);padding:var(--spacing-md);display:flex;flex-direction:column;align-items:center;gap:4px}.admin-kpi-value{font-size:1.5rem;font-weight:700;color:var(--color-primary)}.admin-kpi-label{font-size:.72rem;color:var(--color-text-secondary);text-transform:uppercase;letter-spacing:.06em}.admin-filter-row{display:flex;gap:var(--spacing-sm)}.admin-filter-row .form-input{flex:1;max-width:400px}.admin-world-map-card{background:linear-gradient(180deg,#171b22f5,#12161efa);border:1px solid var(--color-border);border-radius:12px;padding:var(--spacing-md);display:flex;flex-direction:column;gap:var(--spacing-md)}.admin-world-map-head{display:flex;justify-content:space-between;align-items:flex-start;gap:var(--spacing-md);flex-wrap:wrap}.admin-world-map-head h3{margin:0 0 4px;color:var(--color-primary);font-size:1.05rem}.admin-world-map-head p{margin:0;color:var(--color-text-muted);max-width:760px;font-size:.9rem}.admin-world-map-counter{color:#ffb4b4;background:#ff3d3d14;border:1px solid rgba(255,61,61,.22);border-radius:999px;padding:6px 10px;font-size:.8rem;font-weight:700;letter-spacing:.04em}.admin-world-map-wrap{border-radius:12px;overflow:hidden;border:1px solid rgba(255,255,255,.05)}.admin-map-tooltip{font-size:.82rem;line-height:1.4}.admin-users-list{display:flex;flex-direction:column;gap:var(--spacing-sm)}.admin-user-card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);transition:border-color .15s;overflow:hidden}.admin-user-card:hover{border-color:var(--color-border-hover)}.admin-user-card.expanded{border-color:color-mix(in srgb,var(--color-primary) 35%,var(--color-border));box-shadow:0 10px 30px #00000029}.admin-user-summary{width:100%;background:transparent;border:0;color:inherit;padding:var(--spacing-md);display:grid;grid-template-columns:minmax(220px,1.1fr) minmax(240px,1fr) auto;gap:var(--spacing-md);align-items:center;text-align:left;cursor:pointer}.admin-user-summary:hover{background:#ffffff04}.admin-user-summary-left,.admin-user-summary-center,.admin-user-summary-right{display:flex;align-items:center;gap:var(--spacing-sm)}.admin-user-summary-right{justify-content:flex-end}.admin-user-name{font-size:.98rem;font-weight:700;color:var(--color-text)}.admin-user-location{color:var(--color-text-muted);font-size:.9rem}.admin-expand-hint{color:var(--color-text-muted);font-size:.78rem}.admin-user-details{padding:0 var(--spacing-md) var(--spacing-md);border-top:1px solid rgba(255,255,255,.05)}.admin-user-header{display:flex;justify-content:space-between;align-items:center;gap:var(--spacing-sm);flex-wrap:wrap;margin-bottom:var(--spacing-sm)}.admin-user-identity{display:flex;align-items:center;gap:var(--spacing-sm);flex-wrap:wrap}.admin-status-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0}.admin-status-dot.online{background:var(--color-success, #22c55e);box-shadow:0 0 6px var(--color-success, #22c55e)}.admin-status-dot.offline{background:var(--color-text-secondary)}.admin-user-email{font-weight:600;font-size:.95rem}.admin-user-badge{font-size:.65rem;font-weight:700;letter-spacing:.08em;padding:2px 6px;border-radius:3px}.badge-online{background:#22c55e26;color:#22c55e;border:1px solid rgba(34,197,94,.3)}.badge-offline{background:#64748b26;color:var(--color-text-secondary);border:1px solid var(--color-border)}.badge-free{background:#3b82f61f;color:#93c5fd;border:1px solid rgba(59,130,246,.35)}.badge-pro{background:#f59e0b24;color:#fbbf24;border:1px solid rgba(245,158,11,.38)}.badge-enterprise{background:linear-gradient(135deg,#c98b00,#f5c842);color:#1a0e00;border:1px solid #a37200;text-shadow:none}.admin-user-actions{display:flex;gap:var(--spacing-xs, 4px);align-items:center;flex-wrap:wrap}.admin-plan-select{min-width:110px;height:32px;padding:0 8px}.admin-user-meta{display:flex;gap:var(--spacing-md);flex-wrap:wrap;font-size:.78rem;color:var(--color-text-secondary);margin-bottom:4px}.admin-user-id{font-family:var(--font-mono);font-size:.7rem;color:var(--color-text-secondary);background:var(--color-bg);padding:1px 5px;border-radius:3px;border:1px solid var(--color-border)}.admin-user-agents{display:flex;gap:var(--spacing-md);flex-wrap:wrap;font-size:.78rem;color:var(--color-text-secondary);margin-bottom:var(--spacing-sm)}.admin-storage-row{display:flex;align-items:center;gap:var(--spacing-sm);flex-wrap:wrap}.admin-storage-label{font-size:.75rem;color:var(--color-text-secondary);min-width:180px}.admin-storage-bar-track{flex:1;height:6px;background:var(--color-bg);border-radius:3px;border:1px solid var(--color-border);overflow:hidden;min-width:80px}.admin-storage-bar-fill{height:100%;background:linear-gradient(90deg,var(--color-primary),color-mix(in srgb,var(--color-primary) 60%,#a855f7));border-radius:3px;transition:width .3s ease;min-width:2px}.admin-empty{color:var(--color-text-secondary);text-align:center;padding:var(--spacing-xl, 2rem)}@media(max-width:980px){.admin-user-summary{grid-template-columns:1fr}.admin-user-summary-right{justify-content:flex-start}}.admin-toast{position:fixed;right:18px;bottom:18px;z-index:5000;max-width:420px;padding:10px 12px;border-radius:10px;border:1px solid transparent;font-size:.82rem;font-weight:600;box-shadow:0 10px 24px #00000059}.admin-toast.success{color:#86efac;background:#166534f2;border-color:#22c55e73}.admin-toast.error{color:#fecaca;background:#7f1d1df5;border-color:#f8717173}.content-soft-deleted{opacity:.78}.content-soft-deleted .admin-user-summary{background:#6b72800d}.btn-warning{background:#eab3081f;color:#eab308;border-color:#eab3084d}.btn-warning:hover:not(:disabled){background:#eab30838;border-color:#eab30899}.success-banner{background:#22c55e1a;border:1px solid rgba(34,197,94,.3);color:#22c55e;padding:var(--spacing-sm) var(--spacing-md);border-radius:var(--radius);font-size:.875rem}.admin-file-browser-modal{max-width:720px;width:95vw}.fb-breadcrumb{display:flex;align-items:center;gap:0;font-size:.82rem;color:var(--color-text-secondary);background:var(--color-bg);border:1px solid var(--color-border);border-radius:var(--radius);padding:6px 12px;margin-bottom:var(--spacing-sm);flex-wrap:wrap}.fb-crumb{padding:2px 4px}.fb-crumb-link{color:var(--color-primary);cursor:pointer}.fb-crumb-link:hover{text-decoration:underline}.fb-crumb-current{color:var(--color-text);font-weight:600}.fb-crumb-sep{color:var(--color-border-hover);padding:0 2px}.fb-list{display:flex;flex-direction:column;gap:2px;max-height:420px;overflow-y:auto;border:1px solid var(--color-border);border-radius:var(--radius);padding:4px;background:var(--color-bg)}.fb-entry{display:grid;grid-template-columns:24px 1fr auto auto;align-items:center;gap:var(--spacing-sm);padding:6px 8px;border-radius:calc(var(--radius) - 2px);font-size:.82rem;transition:background .1s}.fb-dir{cursor:pointer;color:var(--color-primary)}.fb-dir:hover{background:#00c8e812}.fb-file{color:var(--color-text)}.fb-file:hover{background:var(--color-surface)}.fb-icon{font-size:.95rem;text-align:center}.fb-name{font-family:var(--font-mono);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.fb-size{color:var(--color-text-secondary);font-size:.75rem;white-space:nowrap}.fb-date{color:var(--color-text-secondary);font-size:.72rem;white-space:nowrap}.fb-empty{color:var(--color-text-secondary);text-align:center;padding:var(--spacing-md);font-size:.85rem}.ip-lookup-panel{display:flex;flex-direction:column;gap:var(--spacing-md)}.ip-lookup-header h2{margin:0 0 4px;color:var(--color-primary)}.ip-lookup-header p{margin:0;color:var(--color-text-secondary)}.ip-lookup-form{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);padding:var(--spacing-md)}.ip-lookup-form label{display:block;margin-bottom:6px;color:var(--color-text-secondary);font-size:.85rem;text-transform:uppercase;letter-spacing:.05em}.ip-lookup-row{display:grid;grid-template-columns:1fr auto;gap:var(--spacing-sm)}.ip-lookup-results{display:flex;flex-direction:column;gap:var(--spacing-md)}.ip-lookup-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:var(--spacing-md)}.ip-lookup-card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);padding:var(--spacing-md);display:flex;flex-direction:column;gap:6px}.ip-lookup-card h3{margin:0 0 4px;color:var(--color-text)}.ip-lookup-list{max-height:120px;overflow-y:auto;font-family:var(--font-mono);font-size:.83rem}.ip-lookup-dnsbl{display:flex;flex-direction:column;gap:6px}.ip-lookup-dnsbl-row{display:grid;grid-template-columns:180px 1fr 1fr;gap:var(--spacing-sm);padding:8px;border-radius:6px;border:1px solid var(--color-border);background:var(--color-bg)}.ip-lookup-dnsbl-row.listed{border-color:#ef444499;background:#ef444414}.ip-lookup-dnsbl-row.clean{border-color:#10b98173;background:#10b98114}@media(max-width:900px){.ip-lookup-row,.ip-lookup-dnsbl-row{grid-template-columns:1fr}}.ip-lookup-input{background:var(--color-surface-light)!important;color:var(--color-text)!important;border:1px solid var(--color-border)!important}.ip-lookup-input::placeholder{color:var(--color-text-muted)}.ip-lookup-input:focus{border-color:var(--color-primary)!important;box-shadow:0 0 0 3px #00c8e833}.ip-lookup-input:-webkit-autofill,.ip-lookup-input:-webkit-autofill:hover,.ip-lookup-input:-webkit-autofill:focus{-webkit-text-fill-color:var(--color-text)!important;-webkit-box-shadow:0 0 0px 1000px var(--color-surface-light) inset!important;transition:background-color 5000s ease-in-out 0s}.ip-lookup-mini-map-wrap{margin-top:8px;border:1px solid var(--color-border);border-radius:8px;overflow:hidden}.ip-lookup-info-row{display:flex;flex-wrap:wrap;gap:6px;align-items:center}.ip-lookup-info-label{display:inline-flex;align-items:center;gap:6px}.ip-lookup-info-dot{display:inline-flex;align-items:center;justify-content:center;width:16px;height:16px;border-radius:50%;border:1px solid var(--color-border);font-size:10px;font-weight:700;color:var(--color-text-secondary);cursor:help;-webkit-user-select:none;user-select:none;background:var(--color-bg)}.ip-lookup-info-dot:hover{color:var(--color-primary);border-color:var(--color-primary)}.ip-lookup-modal{max-width:960px;width:95vw}.ip-lookup-listed-banner,.ip-lookup-clean-banner{width:100%;border-radius:8px;border:1px solid var(--color-border);padding:10px 12px;margin-bottom:10px;text-align:left;font-weight:700;cursor:pointer}.ip-lookup-listed-banner{color:#ff8f97;border-color:#ff506099;background:#ff354c1f}.ip-lookup-clean-banner{color:#8de1c9;border-color:#10b98173;background:#10b9811f}.ip-lookup-dnsbl-compact{color:var(--color-text-secondary);font-size:.9rem}.dashboard-home-header{display:flex;align-items:baseline;justify-content:space-between;gap:var(--spacing-md)}.hiw-inline-link{background:none;border:none;padding:0;cursor:pointer;font-family:inherit;font-size:.78rem;font-weight:600;color:var(--color-error);opacity:.82;white-space:nowrap;transition:opacity .15s}.hiw-inline-link:hover{opacity:1;text-decoration:underline}.hiw-root{max-width:900px;margin:0 auto;padding:var(--spacing-lg) var(--spacing-md) 60px;display:flex;flex-direction:column;gap:40px}.hiw-hero{display:flex;flex-direction:column;gap:10px;padding:28px 32px;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg)}.hiw-hero-badge{display:inline-block;padding:3px 10px;border-radius:99px;background:color-mix(in srgb,var(--color-primary) 15%,transparent);color:var(--color-primary);font-size:.72rem;font-weight:700;letter-spacing:.1em;width:fit-content}.hiw-hero-title{font-size:1.55rem;font-weight:700;color:var(--color-text)}.hiw-hero-lead{font-size:.95rem;color:var(--color-text-muted);line-height:1.65;max-width:700px}.hiw-section{display:flex;flex-direction:column;gap:var(--spacing-lg)}.hiw-section-title{display:flex;align-items:center;gap:12px;font-size:1.1rem;font-weight:700;color:var(--color-text);border-bottom:1px solid var(--color-border);padding-bottom:10px}.hiw-section-num{font-family:JetBrains Mono,monospace;font-size:.78rem;font-weight:600;color:var(--color-primary);background:color-mix(in srgb,var(--color-primary) 12%,transparent);padding:2px 8px;border-radius:4px;letter-spacing:.04em}.hiw-cards-2col{display:grid;grid-template-columns:1fr 1fr;gap:var(--spacing-md)}@media(max-width:640px){.hiw-cards-2col{grid-template-columns:1fr}}.hiw-card{padding:20px 22px;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);display:flex;flex-direction:column;gap:10px}.hiw-card--accent{border-color:color-mix(in srgb,var(--color-primary) 25%,transparent)}.hiw-card-icon{display:inline-flex;align-items:center;justify-content:center;width:40px;height:40px;border-radius:var(--radius);font-size:.7rem;font-weight:800;letter-spacing:.05em}.hiw-icon-wan{background:color-mix(in srgb,var(--color-warning) 18%,transparent);color:var(--color-warning)}.hiw-icon-vpn{background:color-mix(in srgb,var(--color-success) 18%,transparent);color:var(--color-success)}.hiw-card-title{font-size:.97rem;font-weight:700;color:var(--color-text)}.hiw-card-text{font-size:.87rem;color:var(--color-text-muted);line-height:1.6}.hiw-card-pill{margin-top:4px;font-size:.78rem;color:var(--color-text-muted);padding:5px 10px;background:var(--color-surface-mid);border-radius:6px}.hiw-goal-box{display:flex;flex-direction:column;gap:10px;padding:18px 22px;background:color-mix(in srgb,var(--color-primary) 5%,var(--color-surface));border:1px solid color-mix(in srgb,var(--color-primary) 20%,transparent);border-radius:var(--radius-lg);font-size:.88rem;color:var(--color-text-muted);line-height:1.65}.hiw-goal-label{font-size:.7rem;font-weight:700;letter-spacing:.1em;color:var(--color-primary)}.hiw-formula{font-family:JetBrains Mono,monospace;font-size:.82rem;padding:10px 14px;background:var(--color-surface-mid);border-radius:var(--radius);color:var(--color-text);border:1px solid var(--color-border)}.hiw-diagram{display:grid;grid-template-columns:1fr auto 1fr;gap:var(--spacing-md);align-items:center;padding:24px;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg)}@media(max-width:700px){.hiw-diagram{grid-template-columns:1fr}.hiw-diagram-arrows{flex-direction:row;align-items:center}}.hiw-diagram-site{display:flex;flex-direction:column;gap:10px;align-items:center}.hiw-diagram-site-label{font-size:.7rem;font-weight:700;letter-spacing:.1em;color:var(--color-text-muted)}.hiw-diagram-box{display:flex;flex-direction:column;gap:5px;padding:14px 18px;border-radius:var(--radius-lg);font-size:.82rem;text-align:center;width:100%}.hiw-diagram-box strong{font-size:.9rem;margin-bottom:4px;color:var(--color-text)}.hiw-diagram-box span{color:var(--color-text-muted)}.hiw-diagram-box--client{background:color-mix(in srgb,var(--color-warning) 10%,var(--color-surface-mid));border:1px solid color-mix(in srgb,var(--color-warning) 30%,transparent)}.hiw-diagram-box--server{background:color-mix(in srgb,var(--color-success) 10%,var(--color-surface-mid));border:1px solid color-mix(in srgb,var(--color-success) 30%,transparent)}.hiw-diagram-fw{padding:8px 12px;border-radius:var(--radius);background:var(--color-surface-mid);border:1px dashed var(--color-border);font-size:.78rem;color:var(--color-text-muted);text-align:center;width:100%}.hiw-diagram-fw-rule{font-family:JetBrains Mono,monospace;font-size:.7rem;margin-top:4px;color:var(--color-warning)}.hiw-diagram-arrows{display:flex;flex-direction:column;gap:18px;align-items:center}.hiw-diagram-arrow{display:flex;flex-direction:column;align-items:center;gap:4px}.hiw-arrow-label{font-size:.7rem;font-weight:600;color:var(--color-text-muted);white-space:nowrap}.hiw-arrow-line{width:80px;height:2px;background:var(--color-warning);border-radius:2px;position:relative}.hiw-arrow-line:after{content:"→";position:absolute;right:-8px;top:-10px;font-size:.9rem;color:var(--color-warning)}.hiw-arrow-line--vpn{background:var(--color-success);border-top:2px dashed var(--color-success);background:none;height:0}.hiw-arrow-line--vpn:after{color:var(--color-success)}.hiw-arrow-wan .hiw-arrow-label{color:var(--color-warning)}.hiw-arrow-vpn .hiw-arrow-label{color:var(--color-success)}.hiw-diagram-cloud{display:flex;flex-direction:column;gap:8px}.hiw-cloud-bar{padding:12px 18px;background:color-mix(in srgb,var(--color-primary) 7%,var(--color-surface));border:1px solid color-mix(in srgb,var(--color-primary) 22%,transparent);border-radius:var(--radius-lg);font-size:.83rem;color:var(--color-text-muted);display:flex;align-items:center;gap:10px}.hiw-cloud-tag{font-size:.7rem;font-weight:700;letter-spacing:.08em;color:var(--color-primary);background:color-mix(in srgb,var(--color-primary) 14%,transparent);padding:2px 8px;border-radius:99px;white-space:nowrap}.hiw-cloud-arrows{display:flex;justify-content:space-around;font-size:.78rem;color:var(--color-text-muted);padding:0 18px}.hiw-metrics-row{display:flex;flex-wrap:wrap;gap:8px}.hiw-metric-chip{padding:8px 14px;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);display:flex;flex-direction:column;gap:2px}.hiw-metric-chip-label{font-size:.82rem;font-weight:600;color:var(--color-text)}.hiw-metric-chip-desc{font-size:.75rem;color:var(--color-text-muted)}.hiw-steps{display:flex;flex-direction:column;gap:var(--spacing-md)}.hiw-step{display:flex;gap:var(--spacing-md);padding:20px 22px;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);transition:border-color .18s}.hiw-step:hover:not(:disabled):not(.disabled){border-color:var(--color-border-hover)}.hiw-step-num{flex-shrink:0;width:32px;height:32px;border-radius:50%;background:color-mix(in srgb,var(--color-primary) 16%,transparent);color:var(--color-primary);font-weight:800;font-size:.88rem;display:flex;align-items:center;justify-content:center}.hiw-step-body{display:flex;flex-direction:column;gap:10px;flex:1}.hiw-step-title{font-size:.97rem;font-weight:700;color:var(--color-text)}.hiw-step-text{font-size:.87rem;color:var(--color-text-muted);line-height:1.65}.hiw-step-list{margin:0;padding-left:20px;display:flex;flex-direction:column;gap:6px;font-size:.87rem;color:var(--color-text-muted);line-height:1.6}.hiw-step-list code{font-family:JetBrains Mono,monospace;font-size:.82rem;padding:1px 5px;background:var(--color-surface-mid);border-radius:4px;color:var(--color-text)}.hiw-menu-ref{display:inline-block;padding:1px 8px;border-radius:5px;background:color-mix(in srgb,var(--color-primary) 14%,transparent);color:var(--color-primary);font-size:.8rem;font-weight:600}.hiw-code-block{font-family:JetBrains Mono,monospace;font-size:.8rem;padding:12px 16px;background:var(--color-surface-mid);border:1px solid var(--color-border);border-radius:var(--radius);color:var(--color-text);white-space:pre;line-height:1.7}.hiw-code-comment{color:var(--color-text-muted)}.hiw-result-tabs{display:grid;grid-template-columns:1fr 1fr;gap:10px}@media(max-width:580px){.hiw-result-tabs{grid-template-columns:1fr}}.hiw-result-tab{padding:12px 14px;background:var(--color-surface-mid);border:1px solid var(--color-border);border-radius:var(--radius-lg);display:flex;flex-direction:column;gap:6px}.hiw-result-tab p{font-size:.82rem;color:var(--color-text-muted);line-height:1.55;margin:0}.hiw-tip-box{display:flex;gap:10px;align-items:flex-start;padding:12px 16px;background:color-mix(in srgb,var(--color-success) 8%,var(--color-surface-mid));border:1px solid color-mix(in srgb,var(--color-success) 25%,transparent);border-radius:var(--radius);font-size:.83rem;color:var(--color-text-muted);line-height:1.6}.hiw-tip-label{flex-shrink:0;font-size:.68rem;font-weight:800;letter-spacing:.1em;color:var(--color-success);background:color-mix(in srgb,var(--color-success) 15%,transparent);padding:2px 7px;border-radius:4px;margin-top:2px}.permanent-key-badge{display:inline-block;margin-left:8px;padding:1px 6px;font-size:.68rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--color-warning, #e6b450);background:color-mix(in srgb,var(--color-warning, #e6b450) 15%,transparent);border:1px solid color-mix(in srgb,var(--color-warning, #e6b450) 35%,transparent);border-radius:4px;vertical-align:middle}.permanent-key-toggle{display:flex;align-items:center;gap:6px;font-size:.85rem;color:var(--color-text-muted);white-space:nowrap;cursor:pointer}.permanent-key-toggle input[type=checkbox]{accent-color:var(--color-warning, #e6b450);width:14px;height:14px;cursor:pointer}.btn-stop{background:#dc2626;color:#fff;border:none;border-radius:var(--radius);padding:8px 20px;font-size:.9rem;font-weight:700;cursor:pointer;letter-spacing:.02em;transition:background .15s,transform .1s}.btn-stop:hover{background:#b91c1c;transform:translateY(-1px)}.btn-stop:active{transform:translateY(0)}.btn-premium{background:linear-gradient(135deg,#7c3aed,#a855f7);color:#fff;border:none;border-radius:var(--radius);padding:4px 10px;font-size:.85rem;font-weight:700;cursor:pointer;transition:opacity .15s,transform .1s;position:relative}.btn-premium:hover{opacity:.85;transform:translateY(-1px)}.btn-premium:disabled{opacity:.5;cursor:not-allowed;transform:none}.site-info-page{max-width:1180px;margin:0 auto;display:flex;flex-direction:column;gap:18px}.site-info-hero{padding:28px 30px;border-radius:22px;border:1px solid color-mix(in srgb,var(--color-border) 86%,transparent);background:linear-gradient(135deg,#161e2ceb,#11151df5),radial-gradient(circle at top right,rgba(75,148,255,.12),transparent 30%);box-shadow:0 18px 40px #00000029}.site-info-badge{display:inline-flex;align-items:center;width:fit-content;padding:6px 12px;border-radius:999px;border:1px solid color-mix(in srgb,var(--color-primary) 30%,transparent);color:var(--color-primary);font-size:.74rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;margin-bottom:12px}.site-info-title{font-size:clamp(2rem,4vw,3.1rem);line-height:1.02;margin-bottom:12px}.site-info-lead{max-width:900px;font-size:1rem;line-height:1.75;color:var(--color-text-muted)}.site-info-sections{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}.site-info-card{padding:22px;border-radius:18px;background:linear-gradient(180deg,color-mix(in srgb,var(--color-surface) 96%,black),var(--color-surface));border:1px solid color-mix(in srgb,var(--color-border) 88%,transparent)}.site-info-card h3{font-size:1.05rem;margin-bottom:12px}.site-info-card p{color:var(--color-text-muted);line-height:1.7;margin-bottom:10px}.portal-footer{margin-top:auto;display:flex;justify-content:space-between;align-items:center;gap:18px;padding:14px 22px 18px;border-top:1px solid color-mix(in srgb,var(--color-border) 82%,transparent);background:linear-gradient(180deg,#12161f66,#0b0e14db)}.portal-footer-copy{color:var(--color-text-muted);font-size:.86rem}.portal-footer-links{display:flex;flex-wrap:wrap;gap:10px}.portal-footer-link{appearance:none;border:1px solid color-mix(in srgb,var(--color-border) 86%,transparent);background:color-mix(in srgb,var(--color-surface) 90%,transparent);color:var(--color-text);border-radius:999px;padding:8px 14px;font-size:.84rem;cursor:pointer;transition:border-color .18s ease,background .18s ease,color .18s ease}.portal-footer-link:hover,.portal-footer-link.active{border-color:color-mix(in srgb,var(--color-primary) 38%,transparent);color:var(--color-primary);background:color-mix(in srgb,var(--color-primary) 10%,transparent)}@media(max-width:980px){.site-info-sections{grid-template-columns:1fr}}@media(max-width:720px){.site-info-hero{padding:22px 18px}.portal-footer{flex-direction:column;align-items:flex-start}}.gp-root{display:flex;flex-direction:column;gap:var(--spacing-lg);max-width:1100px;margin:0 auto;padding:var(--spacing-lg) var(--spacing-md)}.gp-header{display:flex;align-items:flex-start;justify-content:space-between;flex-wrap:wrap;gap:var(--spacing-md);padding-bottom:var(--spacing-md);border-bottom:1px solid var(--color-border)}.gp-header-title{display:flex;align-items:flex-start;gap:var(--spacing-md)}.gp-header-icon{font-size:2rem;line-height:1;margin-top:2px}.gp-title{margin:0 0 4px;font-size:1.4rem;font-weight:700;color:var(--color-text)}.gp-subtitle{margin:0;color:var(--color-text-muted);font-size:.87rem;max-width:520px}.gp-header-meta{display:flex;align-items:center;gap:var(--spacing-sm);flex-wrap:wrap}.gp-proxy-count{font-size:.82rem;color:var(--color-text-muted);font-family:JetBrains Mono,monospace}.gp-cache-age{font-size:.78rem;color:var(--color-text-muted);opacity:.7}.gp-refresh-btn{background:var(--color-surface-light);border:1px solid var(--color-border);border-radius:var(--radius-sm);color:var(--color-text-muted);padding:5px 12px;font-size:.82rem;cursor:pointer;transition:background .15s,color .15s}.gp-refresh-btn:hover:not(:disabled){background:var(--color-border-hover);color:var(--color-text)}.gp-refresh-btn:disabled{opacity:.55;cursor:default}.gp-refresh-btn--loading{animation:gp-pulse 1.4s ease-in-out infinite}@keyframes gp-pulse{0%,to{opacity:1}50%{opacity:.45}}.gp-form{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:var(--spacing-lg);display:flex;flex-direction:column;gap:var(--spacing-md)}.gp-form-row{display:grid;grid-template-columns:1fr auto auto;gap:var(--spacing-sm);align-items:end}@media(max-width:600px){.gp-form-row{grid-template-columns:1fr}}.gp-field{display:flex;flex-direction:column;gap:5px}.gp-field--type{min-width:140px}.gp-field--port{min-width:90px}.gp-label{font-size:.78rem;font-weight:600;text-transform:uppercase;letter-spacing:.07em;color:var(--color-text-muted)}.gp-input,.gp-select{background:var(--color-surface-light);border:1px solid var(--color-border);border-radius:var(--radius-sm);color:var(--color-text);padding:8px 10px;font-size:.9rem;width:100%;outline:none;transition:border-color .15s}.gp-input:focus,.gp-select:focus{border-color:var(--color-primary);box-shadow:0 0 0 3px color-mix(in srgb,var(--color-primary) 18%,transparent)}.gp-input--port{width:90px}.gp-countries-header{display:flex;align-items:center;justify-content:space-between;gap:var(--spacing-sm);flex-wrap:wrap}.gp-countries-actions{display:flex;align-items:center;gap:6px;font-size:.8rem}.gp-link-btn{background:none;border:none;color:var(--color-primary);cursor:pointer;font-size:.8rem;padding:2px 4px;border-radius:var(--radius-sm);transition:background .12s}.gp-link-btn:hover:not(:disabled){background:var(--color-surface-light)}.gp-link-btn:disabled{opacity:.4;cursor:default}.gp-sep{color:var(--color-border-hover)}.gp-selected-count{font-size:.78rem;color:var(--color-text-muted);font-family:JetBrains Mono,monospace;background:var(--color-surface-light);border:1px solid var(--color-border);border-radius:var(--radius-sm);padding:1px 7px}.gp-loading,.gp-empty{font-size:.85rem;color:var(--color-text-muted);padding:var(--spacing-md);text-align:center;border:1px dashed var(--color-border);border-radius:var(--radius)}.gp-countries-grid{display:flex;flex-wrap:wrap;gap:6px}.gp-country-chip{display:inline-flex;align-items:center;gap:5px;background:var(--color-surface-light);border:1px solid var(--color-border);border-radius:var(--radius-sm);padding:4px 9px;font-size:.8rem;color:var(--color-text-muted);cursor:pointer;transition:background .12s,border-color .12s,color .12s;white-space:nowrap}.gp-country-chip:hover:not(:disabled):not(.disabled){border-color:var(--color-border-hover);color:var(--color-text)}.gp-country-chip--selected{background:color-mix(in srgb,var(--color-primary) 14%,transparent);border-color:var(--color-primary);color:var(--color-text)}.gp-country-flag{font-size:1.1em}.gp-flag-img{display:inline-block;border-radius:2px;vertical-align:middle;flex-shrink:0}.gp-country-code{font-weight:600;font-size:.78rem;letter-spacing:.04em}.gp-http-code{cursor:help;border-bottom:1px dotted var(--color-text-muted)}.gp-country-dot{font-size:.7rem;background:var(--color-surface-mid);border-radius:99px;padding:0 5px;color:var(--color-text-muted);min-width:18px;text-align:center}.gp-country-chip--selected .gp-country-dot{background:color-mix(in srgb,var(--color-primary) 22%,transparent)}.gp-country-https{font-size:.65rem;color:var(--color-success);opacity:.85;letter-spacing:-.02em}.gp-form-error{font-size:.85rem;color:var(--color-error);padding:6px 10px;background:color-mix(in srgb,var(--color-error) 10%,transparent);border:1px solid color-mix(in srgb,var(--color-error) 30%,transparent);border-radius:var(--radius-sm)}.gp-run-btn{display:flex;align-items:center;justify-content:center;gap:var(--spacing-sm);background:var(--color-primary);color:var(--color-bg);border:none;border-radius:var(--radius);padding:10px 28px;font-size:.92rem;font-weight:700;cursor:pointer;align-self:flex-start;transition:background .15s,opacity .15s}.gp-run-btn:hover:not(:disabled){background:var(--color-primary-dim)}.gp-run-btn:disabled{opacity:.45;cursor:default}.gp-spinner{display:inline-block;width:14px;height:14px;border:2px solid rgba(0,0,0,.2);border-top-color:currentColor;border-radius:50%;animation:gp-spin .7s linear infinite}@keyframes gp-spin{to{transform:rotate(360deg)}}.gp-disclaimer{font-size:.82rem;color:var(--color-text-muted);background:color-mix(in srgb,var(--color-warning) 8%,var(--color-surface));border:1px solid color-mix(in srgb,var(--color-warning) 25%,transparent);border-radius:var(--radius);padding:10px 14px;line-height:1.5}.gp-results{display:flex;flex-direction:column;gap:var(--spacing-md)}.gp-results-title{display:flex;align-items:center;gap:var(--spacing-sm);font-size:1rem;font-weight:700;color:var(--color-text)}.gp-results-count{font-size:.78rem;font-weight:600;background:var(--color-surface-light);border:1px solid var(--color-border);border-radius:99px;padding:1px 9px;color:var(--color-text-muted);font-family:JetBrains Mono,monospace}.gp-table-wrap{overflow-x:auto;border-radius:var(--radius-lg);border:1px solid var(--color-border)}.gp-table{width:100%;border-collapse:collapse;font-size:.85rem}.gp-table thead tr{background:var(--color-surface-mid);border-bottom:1px solid var(--color-border)}.gp-table thead th{padding:10px 14px;text-align:left;font-size:.72rem;font-weight:700;text-transform:uppercase;letter-spacing:.07em;color:var(--color-text-muted);white-space:nowrap}.gp-row{background:var(--color-surface);border-bottom:1px solid var(--color-border);transition:background .1s}.gp-row:last-child{border-bottom:none}.gp-row:hover:not(:disabled):not(.disabled){background:var(--color-surface-light)}.gp-row--expandable{cursor:pointer}.gp-row td{padding:10px 14px;vertical-align:middle}@keyframes fadeInUp{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}@keyframes fadeInDown{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes glowPulse{0%,to{box-shadow:0 0 12px #d2dcec2e}50%{box-shadow:0 0 24px #d2dcec52}}@keyframes slideInLeft{0%{opacity:0;transform:translate(-16px)}to{opacity:1;transform:translate(0)}}@keyframes slideInRight{0%{opacity:0;transform:translate(16px)}to{opacity:1;transform:translate(0)}}.welcome-hero{animation:fadeInUp .6s ease-out}.welcome-hero-content{background:linear-gradient(135deg,#171b22cc,#1d232d99);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);transition:all .3s cubic-bezier(.4,0,.2,1)}.welcome-hero-content:hover:not(:disabled):not(.disabled){border-color:var(--color-primary);box-shadow:0 0 24px #d2dcec1f,inset 0 1px #d2dcec0d;transform:translateY(-2px)}.welcome-badge{animation:fadeInDown .5s ease-out .1s both}.welcome-title{animation:fadeInUp .6s ease-out .2s both;background:linear-gradient(135deg,#dce4f2,#a8c5ff);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.welcome-lead{animation:fadeInUp .6s ease-out .3s both}.welcome-pill{animation:fadeInUp .6s ease-out;border:1px solid var(--color-border);background:linear-gradient(135deg,#171b2280,#272e3a4d);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);transition:all .25s cubic-bezier(.4,0,.2,1)}.welcome-pill:nth-child(1){animation-delay:.4s}.welcome-pill:nth-child(2){animation-delay:.5s}.welcome-pill:nth-child(3){animation-delay:.6s}.welcome-pill:hover:not(:disabled):not(.disabled){border-color:var(--color-primary);background:linear-gradient(135deg,#272e3acc,#2d344199);box-shadow:0 8px 24px #d2dcec1f;transform:translateY(-4px)}.config-panel,.portal-dropdown-menu,.test-result-card,[class*=panel]{border:1px solid var(--color-border);transition:all .25s cubic-bezier(.4,0,.2,1)}.config-panel{background:linear-gradient(135deg,#171b2299,#1d232d66);box-shadow:0 4px 12px #0003}.config-panel:hover:not(:disabled):not(.disabled){border-color:var(--color-primary);box-shadow:0 8px 24px #d2dcec14}button[class*=btn],.form-input:not([type=text]):not([type=email]):not([type=password]):not([type=number]){transition:all .2s cubic-bezier(.4,0,.2,1);position:relative}.portal-nav-btn,button[class*=submit],button[class*=action]{border-color:var(--color-primary);transition:all .2s ease-out}.portal-nav-btn:hover:not(:disabled):not(.disabled){box-shadow:0 0 16px #d2dcec26;transform:translateY(-1px)}h1,h2{transition:transform .3s cubic-bezier(.4,0,.2,1)}[class*=tool],[class*=card]{border:1px solid var(--color-border);transition:all .25s cubic-bezier(.4,0,.2,1);border-radius:var(--radius)}[class*=tool]:hover,[class*=card]:hover{border-color:color-mix(in srgb,var(--color-primary) 60%,transparent);box-shadow:0 12px 32px #d2dcec1a;transform:translateY(-4px)}.form-input:focus-within,.form-input:focus{box-shadow:0 0 0 3px color-mix(in srgb,var(--color-primary) 22%,transparent),inset 0 1px 2px #d2dcec0d}[class*=badge],[class*=status]{transition:all .2s ease-out}.gp-badge--success{box-shadow:0 0 12px #57c48933}.gp-badge--success:hover:not(:disabled):not(.disabled){box-shadow:0 0 20px #57c48959}.portal-page,.workspace-container{animation:fadeIn .3s ease-out}@keyframes shimmer{0%{background-position:-1000px 0}to{background-position:1000px 0}}.loading-skeleton{animation:shimmer 2s infinite;background:linear-gradient(to right,var(--color-surface-light) 0%,var(--color-surface) 50%,var(--color-surface-light) 100%);background-size:1000px 100%}@media(max-width:768px){.welcome-hero{grid-template-columns:1fr}.welcome-title{font-size:1.25rem}.welcome-pill{padding:12px}h1,h2{font-size:clamp(1.25rem,5vw,1.75rem)}}[data-theme=dark]{color-scheme:dark}[data-theme=dark] .welcome-hero-content{background:linear-gradient(135deg,#171b22e6,#1d232db3)}[data-theme=light] h1,[data-theme=light] h2{background:linear-gradient(135deg,#3857c4,#2a42a8);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}[data-theme=light] .welcome-hero-content{background:linear-gradient(135deg,#fff,#f8fafb);border-color:#e0e7f1}[data-theme=light] .welcome-hero-content:hover:not(:disabled):not(.disabled){border-color:#3857c4;box-shadow:0 8px 24px #3857c41a}[data-theme=light] .welcome-title{background:linear-gradient(135deg,#3857c4,#2a42a8);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}[data-theme=light] .welcome-pill{background:linear-gradient(135deg,#f8fafb,#eef2f9);border-color:#e0e7f1}[data-theme=light] .welcome-pill:hover:not(:disabled):not(.disabled){border-color:#3857c4;box-shadow:0 8px 24px #3857c414}[data-theme=light] .hiw-card{background:linear-gradient(135deg,#fff,#f8fafb);border-color:#e0e7f1}[data-theme=light] .hiw-card:hover:not(:disabled):not(.disabled){border-color:#3857c4;box-shadow:0 8px 24px #3857c414}[data-theme=light] .hiw-step{background:transparent;border-color:#e0e7f1}[data-theme=light] .hiw-step:hover:not(:disabled):not(.disabled){background:linear-gradient(135deg,#f8fafb,#eef2f9);border-color:#3857c4}[data-theme=light] .hiw-metric-chip{background:linear-gradient(135deg,#f8fafb,#eef2f9);border-color:#e0e7f1}[data-theme=light] .hiw-metric-chip:hover:not(:disabled):not(.disabled){border-color:#3857c4;box-shadow:0 4px 12px #3857c41a}[data-theme=light] .portal-nav-btn{background:transparent;border-color:#e0e7f1;color:#111318}[data-theme=light] .config-panel{background:linear-gradient(135deg,#fff,#f8fafb);border-color:#e0e7f1}[data-theme=light] .config-panel:hover:not(:disabled):not(.disabled){border-color:#3857c4;box-shadow:0 8px 24px #3857c414}[data-theme=light] .gp-country-chip{background:linear-gradient(135deg,#f8fafb,#eef2f9);border-color:#e0e7f1}[data-theme=light] .gp-country-chip:hover:not(:disabled):not(.disabled){border-color:#3857c4;box-shadow:0 6px 16px #3857c41a}[data-theme=light] .gp-country-chip--selected{background:linear-gradient(135deg,#3857c414,#2a42a80a);border-color:#3857c4}[data-theme=light] .portal-dropdown-menu{background:linear-gradient(135deg,#fff,#f8fafb);border:1px solid #e0e7f1;box-shadow:0 12px 28px #3857c41f}[data-theme=light] .portal-dropdown-item{color:#111318;transition:all .15s ease-out}[data-theme=light] .portal-dropdown-item:hover:not(.disabled){background:#f3f6fa;border-color:#e0e7f1}[data-theme=light] .portal-dropdown-item.active{border-color:#3857c4;background:linear-gradient(135deg,#3857c41a,#2a42a80d);color:#2a42a8;font-weight:600}[data-theme=light] .portal-dropdown-item.disabled{opacity:.5;color:#9ca3af}[data-theme=light] .portal-subtitle{color:#6b7280}[data-theme=light] .portal-title{color:#111318}[data-theme=light] .portal-caret{color:#6b7280}[data-theme=light] .portal-nav-btn{color:#111318;border-color:#e0e7f1}[data-theme=light] .portal-nav-btn:hover:not(:disabled):not(.disabled){border-color:#3857c4;background:linear-gradient(135deg,#f3f6fa,#eef2f9);color:#2a42a8}.hiw-root{animation:fadeIn .4s ease-out}.hiw-hero,.hiw-section{animation:fadeInUp .6s ease-out}.hiw-card{animation:fadeInUp .5s ease-out;background:linear-gradient(135deg,#171b2280,#272e3a4d);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);transition:all .25s cubic-bezier(.4,0,.2,1)}.hiw-card:nth-child(1){animation-delay:.3s}.hiw-card:nth-child(2){animation-delay:.4s}.hiw-card:hover:not(:disabled):not(.disabled){border-color:var(--color-primary);box-shadow:0 8px 24px #d2dcec14;transform:translateY(-3px)}.hiw-step{animation:slideInLeft .5s ease-out;transition:all .2s ease-out}.hiw-step:nth-child(1){animation-delay:.2s}.hiw-step:nth-child(2){animation-delay:.3s}.hiw-step:nth-child(3){animation-delay:.4s}.hiw-step:nth-child(4){animation-delay:.5s}.hiw-step:hover:not(:disabled):not(.disabled){border-color:var(--color-primary);background:linear-gradient(135deg,#272e3a80,#2d34414d);box-shadow:0 4px 16px #d2dcec14;transform:translate(4px)}.hiw-metric-chip{animation:fadeInUp .5s ease-out;background:linear-gradient(135deg,#171b2299,#272e3a66);border-color:var(--color-border);transition:all .2s ease-out}.hiw-metric-chip:hover:not(:disabled):not(.disabled){border-color:var(--color-primary);box-shadow:0 4px 12px #d2dcec1a;transform:translateY(-2px)}.hiw-section-num{animation:fadeInDown .5s ease-out}.hiw-hero-title{background:linear-gradient(135deg,#dce4f2,#a8c5ff);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;animation:fadeInUp .6s ease-out .15s both}.hiw-hero-lead{animation:fadeInUp .6s ease-out .3s both}.gp-root{animation:fadeIn .4s ease-out}.gp-country-chip{transition:all .2s cubic-bezier(.4,0,.2,1);background:linear-gradient(135deg,#171b2299,#272e3a66)}.gp-country-chip:hover:not(:disabled):not(.disabled){box-shadow:0 6px 16px #d2dcec1f;transform:translateY(-2px)}.gp-country-chip--selected{background:linear-gradient(135deg,color-mix(in srgb,var(--color-primary) 18%,transparent),color-mix(in srgb,var(--color-primary) 10%,transparent))}.gp-form{animation:fadeInUp .5s ease-out .1s both}.gp-field{animation:fadeInUp .5s ease-out}.gp-field:nth-of-type(1){animation-delay:.15s}.gp-field:nth-of-type(2){animation-delay:.25s}.gp-field:nth-of-type(3){animation-delay:.35s}.gp-row:hover:not(:disabled):not(.disabled){box-shadow:0 2px 8px #d2dcec14}.email-hero,.domain-hero{animation:fadeInUp .6s ease-out;background:linear-gradient(135deg,#171b22cc,#1d232d99);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.email-hero:hover,.domain-hero:hover{border-color:var(--color-primary);box-shadow:0 8px 24px #d2dcec1a}@media(prefers-reduced-motion:reduce){*{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}.gp-cell-country{display:flex;align-items:center;gap:7px;white-space:nowrap}.gp-flag{font-size:1.3em}.gp-country-name{font-weight:500;color:var(--color-text)}.gp-country-code2{font-size:.72rem;color:var(--color-text-muted);font-family:JetBrains Mono,monospace}.gp-cell-ip{font-family:JetBrains Mono,monospace;font-size:.8rem;color:var(--color-text-muted)}.gp-cell-code,.gp-cell-latency{font-family:JetBrains Mono,monospace;font-size:.82rem;color:var(--color-text-muted);white-space:nowrap}.gp-cell-status{white-space:nowrap}.gp-cell-proxy{display:flex;align-items:center;gap:6px;white-space:nowrap}.gp-badge{display:inline-block;padding:2px 8px;border-radius:var(--radius-sm);font-size:.7rem;font-weight:700;letter-spacing:.06em;font-family:JetBrains Mono,monospace;text-transform:uppercase;cursor:default}.gp-badge--tooltip{cursor:help}.gp-badge--success{background:#57c48924;color:var(--color-success);border:1px solid rgba(87,196,137,.3)}.gp-badge--blocked{background:#e06b8224;color:var(--color-error);border:1px solid rgba(224,107,130,.3)}.gp-badge--redirect{background:#6366f124;color:#a5b4fc;border:1px solid rgba(99,102,241,.3)}.gp-badge--timeout{background:#d7a05a24;color:var(--color-warning);border:1px solid rgba(215,160,90,.3)}.gp-badge--tls{background:#fbbf241f;color:#fbbf24;border:1px solid rgba(251,191,36,.28)}.gp-badge--dns{background:#a855f71f;color:#c084fc;border:1px solid rgba(168,85,247,.28)}.gp-badge--proxy-err{background:#64748b24;color:var(--color-text-muted);border:1px solid var(--color-border)}.gp-badge--no-proxy{background:var(--color-surface-mid);color:var(--color-text-muted);border:1px solid var(--color-border);opacity:.7}.gp-badge--error{background:#e06b821a;color:var(--color-error);border:1px solid rgba(224,107,130,.22)}.ike-root{max-width:860px;margin:0 auto;padding:0 0 48px;display:flex;flex-direction:column;gap:20px}.ike-form{display:flex;flex-direction:column;gap:12px;background:var(--color-surface-mid);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:20px}.ike-form-row{display:flex;gap:12px;align-items:flex-end}.ike-field{display:flex;flex-direction:column;gap:6px}.ike-field--target{flex:1}.ike-label{font-size:.75rem;font-weight:600;color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.06em}.ike-input{height:38px;padding:0 12px;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);color:var(--color-text);font-size:.9rem;font-family:JetBrains Mono,monospace;outline:none;transition:border-color .15s}.ike-input:focus{border-color:var(--color-accent)}.ike-run-btn{height:38px;padding:0 20px;background:var(--color-accent);color:#fff;border:none;border-radius:var(--radius-md);font-size:.88rem;font-weight:600;cursor:pointer;white-space:nowrap;display:flex;align-items:center;gap:6px;transition:opacity .15s;flex-shrink:0}.ike-run-btn:disabled{opacity:.5;cursor:default}.ike-run-btn:not(:disabled):hover{opacity:.88}.ike-info-row{display:flex;align-items:center;gap:6px;flex-wrap:wrap}.ike-info-chip{font-size:.72rem;color:var(--color-text-muted);background:var(--color-surface);border:1px solid var(--color-border);border-radius:999px;padding:2px 10px}.ike-info-sep{color:var(--color-border);font-size:.8rem}.ike-error{color:var(--color-error);font-size:.85rem;padding:8px 12px;background:#e06b8214;border:1px solid rgba(224,107,130,.2);border-radius:var(--radius-md)}.ike-source-banner{display:flex;align-items:center;gap:7px;padding:10px 16px;background:var(--color-surface-mid);border:1px solid var(--color-border);border-radius:var(--radius-md);font-size:.82rem;color:var(--color-text-muted);flex-wrap:wrap}.ike-source-label{margin-right:2px}.ike-source-sep{color:var(--color-border)}.ike-source-ip{font-family:JetBrains Mono,monospace;font-size:.8rem;color:var(--color-text)}.ike-source-target{color:var(--color-text-muted)}.ike-cards{display:flex;gap:16px;flex-wrap:wrap}.ike-card{flex:1;min-width:240px;padding:22px 24px;border-radius:var(--radius-lg);border:1px solid var(--color-border);background:var(--color-surface-mid);display:flex;flex-direction:column;gap:8px}.ike-card-header{display:flex;align-items:baseline;gap:10px;flex-wrap:wrap}.ike-card-port{font-family:JetBrains Mono,monospace;font-size:1.15rem;font-weight:700;color:var(--color-text)}.ike-card-protocol-label{font-size:.72rem;color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.07em}.ike-card-latency{margin-left:auto;font-family:JetBrains Mono,monospace;font-size:.8rem;color:var(--color-text-muted)}.ike-card-status{font-size:.95rem;font-weight:600;padding:2px 0}.ike-card-desc{font-size:.8rem;color:var(--color-text-muted);line-height:1.5}.ike-card-vendor{display:flex;align-items:center;gap:6px;font-size:.8rem;color:var(--color-text-muted);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-sm);padding:4px 10px;align-self:flex-start}.ike-vendor-icon{font-size:.85rem}.ike-card-details{font-size:.73rem;color:var(--color-text-muted);opacity:.7;font-family:JetBrains Mono,monospace}.ike-card--ike2_active,.ike-card--nat_t_active{border-color:#57c48966;background:#57c4890a}.ike-card--ike1_active{border-color:#d7a05a66;background:#d7a05a0a}.ike-card--ike2_cookie{border-color:#6366f166;background:#6366f10a}.ike-card--silent_drop{border-color:#64748b4d}.ike-card--port_closed{border-color:#e06b8266;background:#e06b820a}.ike-card--dns_error,.ike-card--error{border-color:#fbbf2459;background:#fbbf240a}.ike-status--ike2_active,.ike-status--nat_t_active{color:var(--color-success)}.ike-status--ike1_active{color:var(--color-warning)}.ike-status--ike2_cookie{color:#a5b4fc}.ike-status--silent_drop{color:var(--color-text-muted)}.ike-status--port_closed{color:var(--color-error)}.ike-status--dns_error,.ike-status--unknown_response,.ike-status--error{color:#fbbf24}.ike-legend{background:var(--color-surface-mid);border:1px solid var(--color-border);border-radius:var(--radius-md);padding:14px 18px}.ike-legend-title{font-size:.72rem;font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:var(--color-text-muted);margin-bottom:10px}.ike-legend-grid{display:flex;flex-wrap:wrap;gap:8px 24px}.ike-legend-item{display:flex;align-items:center;gap:6px;font-size:.8rem;color:var(--color-text-muted)}.ike-legend-dot{font-size:.7rem}.ike-map-wrap{border-radius:var(--radius-lg);overflow:hidden;border:1px solid rgba(239,68,68,.25);background:#0d0f14;margin-bottom:20px}.ike-map-canvas{height:280px;width:100%}.ike-map-canvas .leaflet-container{background:#0d1117!important}.ike-map-canvas .leaflet-layer{filter:invert(1) hue-rotate(180deg)}.ike-map-legend{display:flex;align-items:center;gap:12px;padding:10px 16px;background:#00000073;font-size:.82rem;flex-wrap:wrap;border-top:1px solid rgba(255,255,255,.06)}.ike-map-legend__src,.ike-map-legend__tgt{display:flex;align-items:center;gap:6px}.ike-map-legend__dot{width:10px;height:10px;border-radius:50%;flex-shrink:0}.ike-map-legend__ip{color:var(--color-text-muted);font-size:.75rem;font-family:monospace}.ike-map-legend__arrow{color:#ef4444;font-weight:700;font-size:1rem;flex-shrink:0}.ike-map-marker{position:relative;display:flex;flex-direction:column;align-items:center;transform:translate(-50%,-50%);pointer-events:none}.ike-map-marker__dot{width:12px;height:12px;border-radius:50%;background:var(--mc, #ef4444);border:2px solid rgba(255,255,255,.9);box-shadow:0 0 8px var(--mc, #ef4444);position:relative;z-index:2}.ike-map-marker__pulse{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:28px;height:28px;border-radius:50%;background:var(--mc, #ef4444);opacity:0;animation:ike-marker-pulse 2.2s ease-out infinite;z-index:1}@keyframes ike-marker-pulse{0%{transform:translate(-50%,-50%) scale(.4);opacity:.7}to{transform:translate(-50%,-50%) scale(2.6);opacity:0}}.ike-map-marker__label{margin-top:4px;background:#000000bf;color:#fff;font-size:.72rem;padding:2px 7px;border-radius:4px;white-space:nowrap;border:1px solid rgba(255,255,255,.15);z-index:3}.ike-nat-badge{margin-top:10px;padding:7px 12px;border-radius:6px;font-size:.82rem;font-weight:500}.ike-nat-badge--yes{background:#fbbf241a;border:1px solid rgba(251,191,36,.35);color:#fbbf24}.ike-nat-badge--no{background:#22c55e14;border:1px solid rgba(34,197,94,.3);color:#4ade80}.ike-aggr-card{border-radius:var(--radius-lg);padding:18px 20px;margin-bottom:16px;display:flex;flex-direction:column;gap:12px}.ike-aggr-card--hash_captured{background:#ef444412;border:1px solid rgba(239,68,68,.35)}.ike-aggr-card--no_hash{background:#fbbf240f;border:1px solid rgba(251,191,36,.3)}.ike-aggr-card--aggressive_rejected{background:#6366f10f;border:1px solid rgba(99,102,241,.25)}.ike-aggr-title{font-size:.97rem;font-weight:700;color:var(--color-text)}.ike-aggr-desc{font-size:.84rem;color:var(--color-text-muted);line-height:1.55}.ike-aggr-field{display:flex;flex-direction:column;gap:4px}.ike-aggr-field-label{font-size:.75rem;font-weight:600;color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.04em}.ike-aggr-hash{font-family:Fira Mono,JetBrains Mono,monospace;font-size:.78rem;background:#00000059;border:1px solid rgba(255,255,255,.08);border-radius:4px;padding:6px 10px;word-break:break-all;color:#f87171;-webkit-user-select:all;user-select:all}.ike-aggr-vendor{font-size:.83rem;color:var(--color-text-muted)}.ike-aggr-howto{display:flex;flex-direction:column;gap:6px;padding:12px;background:#0000004d;border-radius:6px;border:1px solid rgba(255,255,255,.07);font-size:.82rem}.ike-aggr-cmd{font-family:Fira Mono,JetBrains Mono,monospace;font-size:.78rem;background:#0006;border-radius:4px;padding:6px 10px;word-break:break-all;color:#a3e635;-webkit-user-select:all;user-select:all}.ike-enum-bar{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap;padding:14px 18px;background:#6366f10f;border:1px solid rgba(99,102,241,.22);border-radius:var(--radius-lg)}.ike-enum-bar-left{display:flex;flex-direction:column;gap:3px}.ike-enum-bar-label{font-size:.88rem;font-weight:600;color:var(--color-text)}.ike-enum-bar-note{font-size:.75rem;color:var(--color-text-muted)}.ike-enum-bar-btns{display:flex;gap:8px;flex-wrap:wrap}.ike-enum-btn{display:flex;align-items:center;gap:6px;padding:7px 16px;background:#6366f126;border:1px solid rgba(99,102,241,.35);border-radius:var(--radius-md);color:#a5b4fc;font-size:.85rem;font-weight:600;cursor:pointer;transition:background .15s}.ike-enum-btn:hover:not(:disabled){background:#6366f140}.ike-enum-btn:disabled{opacity:.5;cursor:default}.ike-enum-results{display:flex;flex-direction:column;gap:16px;border-top:1px solid var(--color-border);padding-top:20px}.ike-enum-results-header{display:flex;flex-direction:column;gap:4px}.ike-enum-results-title{font-size:1rem;font-weight:700;color:var(--color-text);margin:0}.ike-enum-results-note{font-size:.78rem;color:var(--color-text-muted)}.ike-enum-legend{display:flex;flex-wrap:wrap;gap:8px 20px;padding:10px 14px;background:var(--color-surface-mid);border:1px solid var(--color-border);border-radius:var(--radius-md)}.ike-enum-legend-item{display:flex;align-items:center;gap:8px;font-size:.78rem}.ike-enum-legend-desc{color:var(--color-text-muted)}.ike-enum-tables{display:flex;gap:16px;flex-wrap:wrap;align-items:flex-start}.ike-enum-section{flex:1;min-width:220px;background:var(--color-surface-mid);border:1px solid var(--color-border);border-radius:var(--radius-lg);overflow:hidden}.ike-enum-section-header{display:flex;align-items:center;justify-content:space-between;padding:10px 14px;border-bottom:1px solid var(--color-border);background:var(--color-surface)}.ike-enum-section-title{font-size:.8rem;font-weight:700;text-transform:uppercase;letter-spacing:.07em;color:var(--color-text-muted)}.ike-enum-section-count{font-size:.75rem;color:var(--color-text-muted);font-family:JetBrains Mono,monospace}.ike-enum-none{font-size:.82rem;color:var(--color-text-muted);padding:8px 0 4px;font-style:italic}.ike-enum-table{width:100%;border-collapse:collapse}.ike-enum-row{border-bottom:1px solid var(--color-border)}.ike-enum-row:last-child{border-bottom:none}.ike-enum-row--accepted{background:#57c48908}.ike-enum-row--dh_supported{background:#d7a05a08}.ike-enum-row--rejected,.ike-enum-row--timeout,.ike-enum-row--error{opacity:.7}.ike-enum-name{padding:7px 14px;font-size:.82rem;color:var(--color-text);font-family:JetBrains Mono,monospace}.ike-enum-status{padding:7px 14px;text-align:right;white-space:nowrap}.ike-enum-badge{display:inline-block;font-size:.72rem;font-weight:700;padding:2px 8px;border-radius:999px;border:1px solid transparent}.ike-enum-badge--accepted{background:#57c48926;color:var(--color-success);border-color:#57c4894d}.ike-enum-badge--rejected{background:#e06b821a;color:var(--color-error);border-color:#e06b8233}.ike-enum-badge--dh_supported{background:#d7a05a1f;color:var(--color-warning);border-color:#d7a05a40}.ike-enum-badge--cookie{background:#6366f11f;color:#a5b4fc;border-color:#6366f140}.ike-enum-badge--timeout{background:var(--color-surface);color:var(--color-text-muted);border-color:var(--color-border)}.ike-enum-badge--error{background:#fbbf2414;color:#fbbf24;border-color:#fbbf2433}.ike-auth-bar{background:#ef44440f;border-color:#ef444438}.ike-auth-btn{display:flex;align-items:center;gap:6px;padding:7px 16px;background:#ef44441f;border:1px solid rgba(239,68,68,.3);border-radius:var(--radius-md);color:#fca5a5;font-size:.85rem;font-weight:600;cursor:pointer;transition:background .15s}.ike-auth-btn:hover:not(:disabled){background:#ef444438}.ike-auth-btn:disabled{opacity:.5;cursor:default}.ike-auth-result{border:1px solid var(--color-border);border-radius:var(--radius-lg);overflow:hidden}.ike-auth-result-header{display:flex;align-items:center;gap:10px;padding:12px 18px}.ike-auth-icon{font-size:1.1rem}.ike-auth-label{font-size:.95rem;font-weight:700;flex:1}.ike-auth-latency{font-size:.8rem;color:var(--color-text-muted);font-family:monospace}.ike-auth-port{font-size:.8rem;color:var(--color-text-muted)}.ike-auth-status--auth_failed{background:#ef44441f;color:#fca5a5}.ike-auth-status--response_received,.ike-auth-status--auth_response{background:#d7a05a1f;color:#fbbf24}.ike-auth-status--timeout{background:var(--color-surface-mid);color:var(--color-text-muted)}.ike-auth-status--proposal_rejected,.ike-auth-status--ke_unsupported{background:#fbbf2414;color:#fbbf24}.ike-auth-status--error{background:#ef44440f;color:var(--color-text-muted)}.ike-auth-desc{padding:10px 18px;font-size:.83rem;color:var(--color-text-muted);border-top:1px solid var(--color-border)}.ike-auth-detail{padding:6px 18px 10px;font-size:.8rem;color:var(--color-text-muted);font-style:italic}.ike-auth-howto{padding:12px 18px 14px;border-top:1px solid var(--color-border);background:#57c4890a;font-size:.82rem;color:var(--color-text-muted)}.ike-auth-howto strong{display:block;margin-bottom:6px;color:var(--color-text);font-size:.83rem}.ike-auth-howto ul{margin:0 0 8px 18px;display:flex;flex-direction:column;gap:3px}.ike-auth-howto code{font-family:JetBrains Mono,monospace;font-size:.78rem;background:var(--color-surface);padding:1px 4px;border-radius:3px}.ike-auth-source{font-size:.76rem;color:var(--color-text-muted)}.ike-custom-auth-section{border:1px solid var(--color-border);border-radius:var(--radius-lg);overflow:hidden}.ike-custom-auth-toggle{width:100%;display:flex;align-items:center;gap:8px;padding:12px 18px;background:var(--color-surface-mid);border:none;cursor:pointer;font-size:.87rem;font-weight:600;color:var(--color-text);text-align:left;transition:background .15s}.ike-custom-auth-toggle:hover{background:var(--color-surface)}.ike-custom-auth-form{padding:16px 18px;display:flex;flex-direction:column;gap:14px;border-top:1px solid var(--color-border)}.ike-custom-auth-note{font-size:.77rem;color:var(--color-text-muted);background:#6366f10f;border:1px solid rgba(99,102,241,.15);border-radius:var(--radius-sm);padding:6px 12px}.ike-custom-auth-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}@media(max-width:640px){.ike-custom-auth-grid{grid-template-columns:1fr}}.ike-custom-field{display:flex;flex-direction:column;gap:4px}.ike-custom-field--wide,.ike-custom-field--id{grid-column:1 / -1}.ike-custom-label{font-size:.78rem;font-weight:600;color:var(--color-text-muted)}.ike-custom-optional{font-weight:400;opacity:.7}.ike-custom-id-row{display:flex;gap:6px}.ike-custom-select{padding:7px 10px;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);color:var(--color-text);font-size:.84rem}.ike-custom-select--type{width:90px;flex-shrink:0}.ike-custom-input{flex:1;padding:7px 10px;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);color:var(--color-text);font-size:.84rem}.ike-custom-input:focus,.ike-custom-select:focus{outline:none;border-color:#6366f180}.ike-custom-run-btn{align-self:flex-start;display:flex;align-items:center;gap:6px;padding:8px 20px;background:#6366f126;border:1px solid rgba(99,102,241,.35);border-radius:var(--radius-md);color:#a5b4fc;font-size:.87rem;font-weight:700;cursor:pointer;transition:background .15s}.ike-custom-run-btn:hover:not(:disabled){background:#6366f140}.ike-custom-run-btn:disabled{opacity:.5;cursor:default}.ike-custom-result{border-radius:var(--radius-md);overflow:hidden;border:1px solid var(--color-border)}.ike-custom-result-header{display:flex;align-items:center;justify-content:space-between;padding:10px 14px;font-size:.87rem}.ike-auth-status--auth_ok{background:#57c4891f;color:#57c489}.gp-ike-hint{display:flex;align-items:center;gap:8px;padding:10px 14px;background:#6366f114;border:1px solid rgba(99,102,241,.2);border-radius:var(--radius-md);font-size:.82rem;color:var(--color-text-muted);margin-bottom:4px}.gp-ike-hint-icon{font-size:1rem;flex-shrink:0}.gp-ike-source-banner{display:flex;align-items:center;gap:6px;padding:8px 14px;background:var(--color-surface-mid);border:1px solid var(--color-border);border-radius:var(--radius-md);font-size:.82rem;color:var(--color-text-muted);margin-bottom:16px}.gp-ike-source-label{color:var(--color-text-muted);margin-right:2px}.gp-ike-source-sep{color:var(--color-border);margin:0 2px}.gp-ike-source-ip{font-family:JetBrains Mono,monospace;font-size:.8rem;color:var(--color-text)}.gp-ike-results{margin-top:20px}.gp-ike-cards{display:flex;gap:16px;flex-wrap:wrap}.gp-ike-card{flex:1;min-width:200px;padding:20px 24px;border-radius:var(--radius-lg);border:1px solid var(--color-border);background:var(--color-surface-mid);display:flex;flex-direction:column;gap:6px}.gp-ike-card-port{font-family:JetBrains Mono,monospace;font-size:1.1rem;font-weight:700;color:var(--color-text)}.gp-ike-card-label{font-size:.75rem;color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.06em;margin-bottom:4px}.gp-ike-card-status{font-size:.92rem;font-weight:600;padding:4px 0}.gp-ike-card-latency{font-family:JetBrains Mono,monospace;font-size:.82rem;color:var(--color-text-muted)}.gp-ike-card-vendor{font-size:.8rem;color:var(--color-text-muted);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-sm);padding:2px 8px;align-self:flex-start}.gp-ike-card-details{font-size:.75rem;color:var(--color-text-muted);opacity:.75}.gp-ike-card--ike2_active,.gp-ike-card--nat_t_active{border-color:#57c48959;background:#57c4890d}.gp-ike-card--ike1_active{border-color:#d7a05a59;background:#d7a05a0d}.gp-ike-card--ike2_cookie{border-color:#6366f159;background:#6366f10d}.gp-ike-card--silent_drop{border-color:#64748b59}.gp-ike-card--port_closed{border-color:#e06b8259;background:#e06b820a}.gp-ike-card--dns_error,.gp-ike-card--error{border-color:#fbbf244d;background:#fbbf240a}.gp-ike-status--ike2_active,.gp-ike-status--nat_t_active{color:var(--color-success)}.gp-ike-status--ike1_active{color:var(--color-warning)}.gp-ike-status--ike2_cookie{color:#a5b4fc}.gp-ike-status--silent_drop{color:var(--color-text-muted)}.gp-ike-status--port_closed{color:var(--color-error)}.gp-ike-status--dns_error,.gp-ike-status--unknown_response,.gp-ike-status--error{color:#fbbf24}.gp-proxy-badge{font-size:.65rem;font-weight:700;font-family:JetBrains Mono,monospace;background:var(--color-surface-mid);border:1px solid var(--color-border);border-radius:var(--radius-sm);padding:1px 6px;color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.04em}.gp-expand-icon{font-size:.65rem;color:var(--color-text-muted);opacity:.6}.gp-row-detail td{background:var(--color-surface-mid);padding:10px 14px 10px 32px}.gp-detail-box{display:flex;flex-direction:column;gap:5px}.gp-detail-line{display:flex;align-items:flex-start;gap:10px;font-size:.82rem}.gp-detail-label{color:var(--color-text-muted);white-space:nowrap;min-width:90px;font-weight:600}.gp-detail-value{font-family:JetBrains Mono,monospace;color:var(--color-text);word-break:break-all}.gp-detail-value--error{color:var(--color-error)}.gp-status-guide{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:var(--spacing-lg);display:flex;flex-direction:column;gap:var(--spacing-sm)}.gp-status-guide-title{font-size:.78rem;font-weight:700;text-transform:uppercase;letter-spacing:.07em;color:var(--color-text-muted);margin-bottom:4px}.gp-status-row{display:grid;grid-template-columns:110px 1fr;gap:var(--spacing-sm);align-items:start;padding:8px 0;border-bottom:1px solid var(--color-border)}.gp-status-row:last-child{border-bottom:none}.gp-status-row-desc{font-size:.83rem;color:var(--color-text-muted);line-height:1.5}.gp-status-row-desc strong{color:var(--color-text);display:block;margin-bottom:2px}@media(max-width:500px){.gp-status-row{grid-template-columns:1fr}}.admin-cf-card{display:flex;flex-direction:column;gap:var(--spacing-md);background:linear-gradient(180deg,#141922f5,#0e121afa);border:1px solid rgba(118,183,255,.12);border-radius:14px;padding:var(--spacing-md)}.admin-exec-card{display:flex;flex-direction:column;gap:var(--spacing-md);background:radial-gradient(circle at top right,rgba(65,105,225,.16),transparent 35%),linear-gradient(180deg,#141922f5,#0e121afa);border:1px solid rgba(118,183,255,.16);border-radius:14px;padding:var(--spacing-md)}.admin-exec-head{display:flex;justify-content:space-between;align-items:flex-start;gap:var(--spacing-md);flex-wrap:wrap}.admin-exec-head h3{margin:0 0 4px;color:#f1f5f9;font-size:1.05rem}.admin-exec-head p{margin:0;color:var(--color-text-muted);font-size:.9rem}.admin-exec-badge{padding:8px 12px;border-radius:999px;border:1px solid rgba(118,183,255,.2);background:#0f172a99;color:#a5b4fc;font-size:.78rem;font-weight:700;letter-spacing:.05em;text-transform:uppercase}.admin-exec-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:var(--spacing-md)}.admin-exec-metric{padding:14px 16px;border-radius:12px;border:1px solid rgba(118,183,255,.12);background:#090e16b8;display:flex;flex-direction:column;gap:4px}.admin-exec-label{font-size:.72rem;text-transform:uppercase;letter-spacing:.08em;color:#8ea4c8}.admin-exec-metric strong{font-size:1.35rem;line-height:1.1;color:#f8fafc}.admin-exec-metric small{color:#7f8ea8;font-size:.78rem}.admin-revenue-card{display:flex;flex-direction:column;gap:var(--spacing-md);background:radial-gradient(circle at top left,rgba(212,175,55,.12),transparent 32%),linear-gradient(180deg,#141922f5,#0e121afa);border:1px solid rgba(244,185,66,.16);border-radius:14px;padding:var(--spacing-md)}.admin-revenue-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:var(--spacing-md)}.admin-revenue-panel{padding:14px 16px;border-radius:12px;border:1px solid rgba(118,183,255,.12);background:#090e16b8;display:flex;flex-direction:column;gap:12px}.admin-plan-mix{display:flex;flex-direction:column;gap:10px}.admin-plan-bar{display:grid;grid-template-columns:86px 1fr auto;gap:10px;align-items:center}.admin-plan-bar-label{color:#dbe4f3;font-size:.84rem;font-weight:700}.admin-plan-bar-track{height:10px;border-radius:999px;background:#ffffff0f;overflow:hidden}.admin-plan-bar-fill{height:100%;border-radius:inherit}.admin-plan-bar-fill.free{background:linear-gradient(90deg,#57c489,#8fe0b0)}.admin-plan-bar-fill.pro{background:linear-gradient(90deg,#ff7a7a,#ffb066)}.admin-plan-bar-fill.enterprise{background:linear-gradient(90deg,#6fb9ff,#8f8bff)}.admin-quality-grid{display:grid;grid-template-columns:1fr;gap:10px}.admin-quality-metric{padding:12px;border-radius:10px;background:#ffffff08;border:1px solid rgba(118,183,255,.08);display:flex;flex-direction:column;gap:4px}.admin-quality-metric span{color:#8ea4c8;font-size:.74rem;text-transform:uppercase;letter-spacing:.08em}.admin-quality-metric strong{color:#f8fafc;font-size:1.15rem}.admin-quality-metric small{color:#7f8ea8;font-size:.78rem}.admin-mini-table{display:flex;flex-direction:column;gap:6px}.admin-mini-row{display:grid;grid-template-columns:1.2fr 1fr 1fr;gap:10px;padding:10px 12px;border-radius:10px;background:#ffffff08;color:#dbe4f3;font-size:.85rem}.admin-mini-row span:last-child,.admin-mini-row span:nth-child(2){text-align:right}.admin-mini-head{background:#76b7ff14;color:#8ea4c8;text-transform:uppercase;letter-spacing:.06em;font-size:.72rem;font-weight:700}.admin-mini-empty{padding:14px 12px;border-radius:10px;background:#ffffff08;color:var(--color-text-muted);font-size:.85rem}@media(max-width:700px){.admin-plan-bar,.admin-mini-row{grid-template-columns:1fr}.admin-mini-row span:last-child,.admin-mini-row span:nth-child(2){text-align:left}}.admin-cf-head{display:flex;justify-content:space-between;align-items:flex-start;gap:var(--spacing-md);flex-wrap:wrap}.admin-cf-head h3{margin:0 0 4px;color:#dbeafe;font-size:1.05rem}.admin-cf-head p{margin:0;color:var(--color-text-muted);font-size:.9rem}.admin-cf-controls{display:flex;gap:var(--spacing-sm);align-items:center;flex-wrap:wrap}.admin-cf-range{min-width:150px}.admin-cf-disabled{padding:12px 14px;border-radius:12px;border:1px dashed rgba(148,163,184,.26);background:#0f172a8c;color:var(--color-text-secondary)}.admin-cf-kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:var(--spacing-md)}.admin-cf-kpi{padding:14px 16px;border-radius:12px;border:1px solid rgba(118,183,255,.12);background:#090e16b8;display:flex;flex-direction:column;gap:4px}.admin-cf-kpi-value{font-size:1.45rem;line-height:1.1;font-weight:800;color:#f8fafc}.admin-cf-kpi-label{font-size:.74rem;text-transform:uppercase;letter-spacing:.08em;color:#8ea4c8}.admin-cf-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--spacing-md)}.admin-cf-panel,.admin-cf-country-card{padding:14px 16px;border-radius:12px;border:1px solid rgba(118,183,255,.12);background:#090e16b8}.admin-cf-panel-head{display:flex;justify-content:space-between;align-items:center;gap:var(--spacing-sm);margin-bottom:10px}.admin-cf-panel-head h4{margin:0;font-size:.95rem;color:#e2e8f0}.admin-cf-panel-head span{color:#8ea4c8;font-size:.8rem}.admin-cf-chart{display:flex;flex-direction:column;gap:8px}.admin-cf-chart svg{width:100%;height:140px;display:block;border-radius:10px;background:linear-gradient(180deg,#ffffff05,#ffffff01),repeating-linear-gradient(to right,rgba(148,163,184,.08) 0,rgba(148,163,184,.08) 1px,transparent 1px,transparent 25%),repeating-linear-gradient(to top,rgba(148,163,184,.06) 0,rgba(148,163,184,.06) 1px,transparent 1px,transparent 33%);padding:6px;box-sizing:border-box}.admin-cf-chart-axis{display:flex;justify-content:space-between;gap:10px;color:#94a3b8;font-size:.74rem}.admin-cf-country-table{display:flex;flex-direction:column;gap:8px}.admin-cf-country-header,.admin-cf-country-row{display:grid;grid-template-columns:minmax(160px,1.4fr) repeat(3,minmax(90px,1fr));gap:12px;align-items:center}.admin-cf-country-header{color:#8ea4c8;font-size:.73rem;text-transform:uppercase;letter-spacing:.08em;padding-bottom:4px}.admin-cf-country-row{padding:10px 12px;border-radius:10px;border:1px solid rgba(255,255,255,.04);background:#ffffff05;color:#e5edf8}.admin-cf-country-row span:nth-child(n+2),.admin-cf-country-header span:nth-child(n+2){text-align:right}.admin-cf-footnote{margin-top:10px;color:#7f8ea8;font-size:.76rem}@media(max-width:980px){.admin-cf-grid{grid-template-columns:1fr}.admin-cf-country-header,.admin-cf-country-row{grid-template-columns:minmax(120px,1.2fr) repeat(3,minmax(70px,1fr));gap:8px;font-size:.8rem}}@media(max-width:720px){.admin-exec-badge{width:100%;text-align:center}.admin-cf-controls{width:100%}.admin-cf-controls>*{width:100%}.admin-cf-country-header{display:none}.admin-cf-country-row{grid-template-columns:1fr;gap:4px}.admin-cf-country-row span:nth-child(n+2){text-align:left}}.landing-page{display:flex;flex-direction:column;min-height:100vh}.landing-hero{background:linear-gradient(160deg,var(--color-surface) 0%,var(--color-bg) 100%);border-bottom:1px solid var(--color-border);padding:72px 24px 64px;text-align:center}.landing-hero-inner{max-width:640px;margin:0 auto}.landing-hero-title{font-family:Orbitron,sans-serif;font-size:clamp(2.4rem,6vw,4rem);font-weight:900;letter-spacing:.1em;color:var(--color-text);margin-bottom:16px}.landing-hero-subtitle{font-size:1.1rem;color:var(--color-text-muted);margin-bottom:32px;line-height:1.6}.landing-hero-cta{font-size:1rem;padding:12px 32px;border-radius:var(--radius);background:var(--color-primary);color:var(--color-bg);font-weight:700;border:none;cursor:pointer}[data-theme=dark] .landing-hero-cta{color:#111318}.landing-tools-section{flex:1;max-width:1100px;margin:48px auto;padding:0 24px;width:100%}.landing-tools-title{font-size:1.35rem;font-weight:700;color:var(--color-text);margin-bottom:32px}.landing-category-block{margin-bottom:40px}.landing-category-header{display:flex;align-items:center;gap:10px;margin-bottom:16px;padding-bottom:8px;border-bottom:1px solid var(--color-border)}.landing-category-icon{font-size:1.2rem}.landing-category-label{font-size:.85rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--color-text-muted)}.landing-tools-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:16px}.landing-footer{border-top:1px solid var(--color-border);padding:24px;display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:12px}.landing-footer-copy{font-size:.82rem;color:var(--color-text-muted)}.landing-footer-links{display:flex;gap:16px}.tool-card{display:flex;align-items:center;gap:14px;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:16px;cursor:pointer;transition:border-color .18s ease}.tool-card:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px}.tool-card-icon{font-size:1.8rem;flex-shrink:0;line-height:1}.tool-card-icon--large{font-size:2.4rem}.tool-card-body{flex:1;min-width:0}.tool-card-name{font-size:.92rem;font-weight:700;color:var(--color-text);margin-bottom:4px}.tool-card-desc{font-size:.8rem;color:var(--color-text-muted);line-height:1.45}.tool-card-btn{flex-shrink:0}.tool-badge{display:inline-block;margin-top:6px;padding:2px 7px;border-radius:4px;font-size:.68rem;font-weight:700;letter-spacing:.06em}.tool-badge--new{background:var(--color-success);color:#fff}.tool-badge--beta{background:var(--color-warning);color:#111}.tool-badge--pro{background:var(--color-primary);color:#111}.tool-index-page{display:flex;flex-direction:column}.tool-index-content{padding:24px;max-width:1100px;width:100%;margin:0 auto}.tool-index-category{margin-bottom:40px}.tool-index-category-header{display:flex;align-items:center;gap:10px;margin-bottom:16px;padding-bottom:8px;border-bottom:1px solid var(--color-border)}.tool-index-category-icon{font-size:1.2rem}.tool-index-category-label{font-size:.85rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--color-text-muted)}.tool-index-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:16px}.tool-card--index{align-items:flex-start}.suggest-tool-page{display:flex;flex-direction:column}.suggest-tool-inner{max-width:660px;margin:0 auto;padding:24px;width:100%}.suggest-reward-banner{display:flex;align-items:center;gap:12px;background:color-mix(in srgb,var(--color-success) 12%,var(--color-surface));border:1px solid color-mix(in srgb,var(--color-success) 35%,var(--color-border));border-radius:var(--radius-lg);padding:14px 18px;margin-bottom:28px;font-size:.9rem;color:var(--color-text);font-weight:500;line-height:1.5}.suggest-reward-icon{font-size:1.4rem;flex-shrink:0}.suggest-form{display:flex;flex-direction:column;gap:20px}.suggest-field{display:flex;flex-direction:column;gap:6px}.suggest-label{font-size:.85rem;font-weight:600;color:var(--color-text-muted);letter-spacing:.02em}.suggest-required{color:var(--color-error)}.suggest-input,.suggest-textarea,.suggest-select{width:100%;padding:9px 12px;border-radius:var(--radius);border:1px solid var(--color-border);background:var(--color-surface-mid);color:var(--color-text);font-family:inherit;font-size:.9rem;outline:none}.suggest-input:focus,.suggest-textarea:focus,.suggest-select:focus{border-color:var(--color-primary);box-shadow:0 0 0 3px color-mix(in srgb,var(--color-primary) 18%,transparent)}.suggest-textarea{resize:vertical;line-height:1.55}.suggest-select{appearance:none;background-image:linear-gradient(45deg,transparent 50%,var(--color-text-muted) 50%),linear-gradient(135deg,var(--color-text-muted) 50%,transparent 50%);background-position:calc(100% - 16px) calc(50% - 3px),calc(100% - 11px) calc(50% - 3px);background-size:5px 5px,5px 5px;background-repeat:no-repeat;padding-right:30px}.suggest-actions{display:flex;justify-content:flex-end;padding-top:8px}.suggest-error-msg{background:color-mix(in srgb,var(--color-error) 12%,var(--color-surface));border:1px solid color-mix(in srgb,var(--color-error) 35%,var(--color-border));border-radius:var(--radius);padding:10px 14px;font-size:.86rem;color:var(--color-error)}.suggest-success{text-align:center;padding:48px 24px}.suggest-success-icon{font-size:3rem;margin-bottom:16px}.suggest-success-title{font-size:1.3rem;font-weight:700;color:var(--color-success);margin-bottom:12px}.suggest-success-msg{font-size:.95rem;color:var(--color-text-muted);margin-bottom:24px;line-height:1.6}.my-suggestions-section{margin-top:32px;border-top:1px solid var(--color-border);padding-top:24px}.my-suggestions-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px}.my-suggestions-title{font-size:1rem;font-weight:700;color:var(--color-text);margin:0}.my-suggestions-empty{color:var(--color-text-muted);font-size:.9rem;text-align:center;padding:24px 0}.my-suggestions-list{display:flex;flex-direction:column;gap:10px}.my-suggestion-card{background:var(--color-surface-alt, var(--color-surface));border:1px solid var(--color-border);border-radius:var(--radius);padding:12px 16px;cursor:pointer;transition:border-color .15s}.my-suggestion-card:hover{border-color:var(--color-primary)}.my-suggestion-card--deleted{opacity:.7;border-color:#9ca3af59;background:color-mix(in srgb,var(--color-surface-alt, var(--color-surface)) 82%,#6b7280 18%)}.my-suggestion-card--deleted .my-suggestion-name,.my-suggestion-card--deleted .my-suggestion-detail strong{color:color-mix(in srgb,var(--color-text) 72%,#9ca3af 28%)}.my-suggestion-row{display:flex;align-items:center;justify-content:space-between;gap:12px}.my-suggestion-name{font-weight:600;font-size:.93rem;color:var(--color-text);flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.my-suggestion-status{font-size:.8rem;font-weight:600;border:1px solid;border-radius:999px;padding:2px 10px;white-space:nowrap;flex-shrink:0}.my-suggestion-status--deleted{color:#9ca3af;border-color:#9ca3af8c;background:#6b72801f}.my-suggestion-meta{font-size:.78rem;color:var(--color-text-muted);margin-top:4px}.my-suggestion-detail{margin-top:12px;padding-top:12px;border-top:1px solid var(--color-border);display:flex;flex-direction:column;gap:6px;font-size:.88rem;color:var(--color-text-muted);line-height:1.5}.my-suggestion-detail strong{color:var(--color-text)}.my-suggestion-deletion-note{color:#cbd5e1;font-size:.84rem;margin-bottom:.25rem}.my-suggestion-implemented{color:#ff9800!important;font-weight:600;font-size:.9rem!important}@media(max-width:640px){.landing-tools-grid,.tool-index-grid{grid-template-columns:1fr}.landing-hero{padding:48px 16px 40px}.landing-footer{flex-direction:column;align-items:flex-start}.suggest-tool-inner{padding:16px}}.breadcrumb{display:flex;align-items:center;gap:6px;padding:6px var(--spacing-lg);font-size:.8rem;color:var(--color-text-muted);background:transparent;flex-shrink:0}.breadcrumb-link{background:none;border:none;padding:0;color:var(--color-text-muted);font-size:.8rem;cursor:pointer;font-family:inherit}.breadcrumb-sep{color:var(--color-text-muted);opacity:.5;font-size:.9rem;line-height:1}.breadcrumb-current{color:var(--color-text);font-size:.8rem;font-weight:500}.btn-guide{min-width:28px;width:28px;height:28px;padding:0;border-radius:50%;font-size:.85rem;font-weight:700;display:inline-flex;align-items:center;justify-content:center;background:var(--color-surface-mid);border:1px solid var(--color-border);color:var(--color-text-muted);cursor:pointer;flex-shrink:0}.pricing-page{max-width:960px;margin:0 auto;padding:0 var(--spacing-md) var(--spacing-lg)}.pricing-cards{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--spacing-lg);margin-bottom:var(--spacing-lg)}@media(max-width:720px){.pricing-cards{grid-template-columns:1fr}}.pricing-card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:var(--spacing-lg);display:flex;flex-direction:column;gap:var(--spacing-md)}.pricing-card--pro{border-color:#3857c4;box-shadow:0 0 0 1px #3857c4}.pricing-card--enterprise{border-color:#b08a2a;box-shadow:0 0 0 1px #b08a2a}.pricing-card-header{display:flex;flex-direction:column;gap:var(--spacing-sm)}.pricing-badge{display:inline-block;padding:3px 10px;border-radius:var(--radius-sm);font-size:.7rem;font-weight:800;letter-spacing:.1em;width:fit-content}.pricing-badge--free{background:var(--color-surface-light);color:var(--color-text-muted)}.pricing-badge--pro{background:#3857c426;color:#7aa0ff}.pricing-badge--enterprise{background:#b08a2a26;color:#d4a843}[data-theme=light] .pricing-badge--pro{color:#3857c4}[data-theme=light] .pricing-badge--enterprise{color:#8c6a10}.pricing-price{font-size:1.15rem;font-weight:700;color:var(--color-text)}.pricing-features{list-style:none;padding:0;margin:0;flex:1;display:flex;flex-direction:column;gap:8px}.pricing-feature-row{display:flex;align-items:center;justify-content:space-between;gap:var(--spacing-sm);font-size:.85rem;border-bottom:1px solid var(--color-border);padding-bottom:6px}.pricing-feature-label{color:var(--color-text-muted);flex:1}.pricing-check{color:var(--color-success);font-weight:700;font-size:1rem;flex-shrink:0}.pricing-cross{color:var(--color-text-muted);opacity:.4;font-size:.9rem;flex-shrink:0}.pricing-feature-val{color:var(--color-text);font-weight:500;font-size:.8rem;flex-shrink:0}.pricing-cta-wrap{margin-top:auto}.pricing-cta-btn{width:100%;padding:9px 16px;border-radius:var(--radius);font-size:.9rem;font-weight:600;cursor:pointer;text-align:center;display:block;text-decoration:none;border:none;font-family:inherit}.pricing-cta-btn--free{background:var(--color-surface-light);color:var(--color-text);border:1px solid var(--color-border)}.pricing-cta-btn--contact{background:var(--color-primary);color:var(--color-bg)}.pricing-contact-note{text-align:center;font-size:.85rem;color:var(--color-text-muted);margin-top:var(--spacing-md)}.pricing-contact-link{color:var(--color-primary);text-decoration:none}.changelog-page{max-width:760px;margin:0 auto;padding:0 var(--spacing-md) var(--spacing-lg)}.changelog-timeline{display:flex;flex-direction:column;gap:0;padding-left:12px;border-left:2px solid var(--color-border);margin-left:8px}.changelog-entry{position:relative;padding:0 0 var(--spacing-lg) var(--spacing-lg)}.changelog-marker{position:absolute;left:-9px;top:5px;width:14px;height:14px;border-radius:50%;background:var(--color-primary);border:2px solid var(--color-bg);flex-shrink:0}.changelog-content{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:var(--spacing-md)}.changelog-version-row{display:flex;align-items:baseline;gap:var(--spacing-sm);margin-bottom:var(--spacing-sm)}.changelog-version{font-size:1rem;font-weight:800;color:var(--color-text);font-family:JetBrains Mono,monospace}.changelog-date{font-size:.8rem;color:var(--color-text-muted)}.changelog-changes{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:6px}.changelog-change-row{display:flex;align-items:flex-start;gap:8px;font-size:.875rem;line-height:1.5}.changelog-tag{display:inline-block;padding:1px 7px;border-radius:4px;font-size:.7rem;font-weight:700;letter-spacing:.05em;flex-shrink:0;margin-top:2px;font-family:JetBrains Mono,monospace}.changelog-tag--feat{background:#57c48926;color:#57c489}.changelog-tag--fix{background:#d7a05a26;color:#d7a05a}.changelog-tag--style{background:#a78bfa26;color:#a78bfa}.changelog-tag--i18n{background:#60a5fa26;color:#60a5fa}[data-theme=light] .changelog-tag--feat{background:#10b9811f;color:#059669}[data-theme=light] .changelog-tag--fix{background:#f59e0b1f;color:#d97706}[data-theme=light] .changelog-tag--style{background:#8b5cf61f;color:#7c3aed}[data-theme=light] .changelog-tag--i18n{background:#3b82f61f;color:#2563eb}.changelog-change-text{color:var(--color-text-muted);flex:1}.admin-suggestions{margin-top:2rem;background:var(--color-surface);border:1px solid var(--color-border);border-radius:12px;padding:1.5rem;position:relative}.admin-suggestions-header{margin-bottom:1rem}.admin-suggestions-title-row{display:flex;align-items:center;justify-content:space-between;margin-bottom:1rem}.admin-suggestions-title-row h3{margin:0;font-size:1.1rem;font-weight:600;color:var(--color-text)}.suggestion-card{background:var(--color-surface-elevated, rgba(255,255,255,.03));border:1px solid var(--color-border);border-radius:8px;margin-bottom:.5rem;overflow:hidden;transition:border-color .15s ease}.suggestion-card:hover{border-color:var(--color-border-hover, rgba(255,255,255,.15))}.suggestion-card.expanded{border-color:var(--color-primary, #6366f1)}.suggestion-priority-icon{font-size:1rem;margin-right:.4rem;flex-shrink:0}.suggestion-status-badge{display:inline-flex;align-items:center;padding:.2rem .6rem;border-radius:999px;font-size:.7rem;font-weight:600;letter-spacing:.04em;text-transform:uppercase}.suggestion-status-badge.pending{background:#9ca3af26;color:#9ca3af}.suggestion-status-badge.reviewing{background:#3b82f626;color:#60a5fa}.suggestion-status-badge.accepted{background:#10b98126;color:#34d399}.suggestion-status-badge.rejected{background:#ef444426;color:#f87171}.suggestion-status-badge.implemented{background:#fbbf2426;color:#fbbf24}.suggestion-details{padding:1rem 1.25rem;border-top:1px solid var(--color-border);background:#0000001f}[data-theme=light] .suggestion-details{background:#00000008}[data-theme=light] .suggestion-status-badge.pending{background:#6b72801f;color:#4b5563}[data-theme=light] .suggestion-status-badge.reviewing{background:#2563eb1f;color:#2563eb}[data-theme=light] .suggestion-status-badge.accepted{background:#0596691f;color:#059669}[data-theme=light] .suggestion-status-badge.rejected{background:#dc26261f;color:#dc2626}[data-theme=light] .suggestion-status-badge.implemented{background:#d977061f;color:#d97706}.blog-page{max-width:1200px;margin:0 auto;padding:0 0 40px}.blog-header{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:32px;flex-wrap:wrap}.blog-page-title{font-size:1.8rem;font-weight:800;margin:0 0 6px;display:flex;align-items:center;gap:10px}.blog-page-icon{font-size:1.6rem}.blog-page-subtitle{color:var(--color-text-secondary);font-size:.9rem;margin:0}.blog-admin-actions{display:flex;align-items:center;gap:10px;flex-shrink:0}.blog-gen-msg{font-size:.8rem;color:var(--color-text-secondary);max-width:260px}.blog-featured{position:relative;border-radius:16px;overflow:hidden;cursor:pointer;margin-bottom:28px;border:1px solid var(--color-border);background:var(--color-surface);transition:transform .2s,box-shadow .2s}.blog-featured:hover{transform:translateY(-3px);box-shadow:0 8px 32px #00000040}.blog-featured-accent{position:absolute;inset:0;pointer-events:none;z-index:0}.blog-featured-inner{position:relative;z-index:1;padding:32px 36px}.blog-featured-top{display:flex;align-items:center;gap:14px;margin-bottom:16px;flex-wrap:wrap}.blog-featured-emoji{font-size:2.8rem;line-height:1;filter:drop-shadow(0 2px 8px rgba(0,0,0,.3))}.blog-featured-badges{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.blog-featured-new{font-size:.7rem;font-weight:800;letter-spacing:.08em;color:#4c9be8;background:#4c9be822;border:1px solid #4c9be844;border-radius:20px;padding:3px 10px;text-transform:uppercase}.blog-featured-title{font-size:1.55rem;font-weight:800;margin:0 0 10px;line-height:1.25;color:var(--color-text)}.blog-featured-excerpt{font-size:.95rem;color:var(--color-text-secondary);margin:0 0 20px;line-height:1.6;max-width:780px}.blog-featured-footer{display:flex;align-items:center;gap:18px;flex-wrap:wrap}.blog-featured-date,.blog-featured-readtime{font-size:.8rem;color:var(--color-text-secondary)}.blog-featured-cta{font-size:.9rem;font-weight:700;margin-left:auto}.blog-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:20px;margin-bottom:32px}.blog-card{position:relative;background:var(--color-surface);border:1px solid var(--color-border);border-radius:14px;overflow:hidden;cursor:pointer;transition:transform .18s,box-shadow .18s,border-color .18s;display:flex;flex-direction:column}.blog-card:hover{transform:translateY(-4px);box-shadow:0 8px 28px #00000038;border-color:var(--accent, #4c9be8)}.blog-card-accent-bar{height:3px;width:100%;flex-shrink:0}.blog-card-content{padding:18px 20px 16px;display:flex;flex-direction:column;flex:1}.blog-card-header{display:flex;align-items:center;gap:12px;margin-bottom:12px}.blog-card-emoji-circle{width:44px;height:44px;border-radius:12px;display:flex;align-items:center;justify-content:center;font-size:1.5rem;flex-shrink:0}.blog-card-meta{display:flex;flex-direction:column;gap:2px}.blog-card-date{font-size:.72rem;color:var(--color-text-secondary)}.blog-card-readtime{font-size:.7rem;color:var(--color-text-secondary);opacity:.7}.blog-card-title{font-size:.98rem;font-weight:700;margin:0 0 8px;line-height:1.35;color:var(--color-text);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.blog-card-excerpt{font-size:.82rem;color:var(--color-text-secondary);margin:0 0 14px;line-height:1.55;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden;flex:1}.blog-card-footer{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-top:auto}.blog-card-tags{display:flex;gap:6px;flex-wrap:wrap}.blog-card-arrow{font-size:1.1rem;font-weight:700;transition:transform .15s;flex-shrink:0}.blog-card:hover .blog-card-arrow{transform:translate(3px)}.blog-tag{font-size:.68rem;font-weight:600;padding:2px 8px;border-radius:20px;border:1px solid;text-transform:uppercase;letter-spacing:.04em;white-space:nowrap}.blog-loading,.blog-empty,.blog-error{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;padding:60px 20px;color:var(--color-text-secondary);font-size:.95rem}.blog-empty-icon{font-size:3rem}.blog-pagination{display:flex;align-items:center;justify-content:center;gap:14px;padding:16px 0}.blog-page-info{font-size:.85rem;color:var(--color-text-secondary)}.blog-reader-overlay{position:fixed;inset:0;background:#0009;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:1000;display:flex;align-items:flex-start;justify-content:center;padding:20px;overflow-y:auto}.blog-reader{background:var(--color-surface);border:1px solid var(--color-border);border-radius:16px;max-width:800px;width:100%;padding:32px 40px;position:relative;margin:auto}.blog-reader-header{display:flex;justify-content:flex-end;gap:8px;margin-bottom:20px}.blog-reader-close{background:var(--color-bg);border:1px solid var(--color-border);border-radius:8px;color:var(--color-text);padding:6px 12px;cursor:pointer;font-size:.85rem}.blog-reader-delete{background:#e0525222;border:1px solid #e0525244;border-radius:8px;color:#e05252;padding:6px 12px;cursor:pointer;font-size:.85rem}.blog-reader-hero{display:flex;align-items:center;gap:14px;padding-top:16px;margin-bottom:20px;flex-wrap:wrap}.blog-reader-emoji{font-size:2.5rem}.blog-reader-meta-row{display:flex;gap:14px;align-items:center}.blog-reader-date,.blog-reader-readtime{font-size:.82rem;color:var(--color-text-secondary)}.blog-reader-tags{display:flex;gap:6px;flex-wrap:wrap;margin-left:auto}.blog-reader-title{font-size:1.75rem;font-weight:800;margin:0 0 12px;line-height:1.2}.blog-reader-excerpt{font-size:1rem;color:var(--color-text-secondary);margin:0 0 20px;line-height:1.6;font-style:italic}.blog-reader-content{line-height:1.75}.blog-h1{font-size:1.5rem;font-weight:800;margin:28px 0 12px}.blog-h2{font-size:1.2rem;font-weight:700;margin:24px 0 10px;border-bottom:1px solid var(--color-border);padding-bottom:6px}.blog-h3{font-size:1rem;font-weight:700;margin:20px 0 8px}.blog-paragraph{margin:0 0 14px;font-size:.95rem;line-height:1.75}.blog-list{margin:8px 0 14px 20px}.blog-list li{margin-bottom:6px;font-size:.95rem;line-height:1.6}.blog-code-block{background:var(--color-bg);border:1px solid var(--color-border);border-radius:8px;padding:14px 16px;overflow-x:auto;font-size:.82rem;margin:12px 0}.blog-inline-code{background:var(--color-bg);border:1px solid var(--color-border);border-radius:4px;padding:1px 5px;font-size:.85em}.blog-hr{border:none;border-top:1px solid var(--color-border);margin:24px 0}.blog-link{color:var(--color-primary);text-decoration:underline}.blog-reader-sources{margin-top:28px;padding-top:16px;border-top:1px solid var(--color-border);font-size:.82rem;color:var(--color-text-secondary)}.blog-reader-sources ul{margin:8px 0 0 18px}.blog-reader-sources li{margin-bottom:4px;word-break:break-all}@media(max-width:700px){.blog-featured-inner{padding:20px}.blog-featured-title{font-size:1.2rem}.blog-grid{grid-template-columns:1fr}.blog-reader{padding:20px 16px}.blog-reader-title{font-size:1.25rem}.blog-reader-tags{margin-left:0}}.sn-page{max-width:860px;margin:0 auto;padding:20px 16px 60px;display:flex;flex-direction:column;gap:32px}.sn-section{background:var(--color-surface);border:1px solid var(--color-border);border-radius:12px;padding:24px}.sn-section-title{font-size:1.1rem;font-weight:700;margin:0 0 6px;color:var(--color-text-primary)}.sn-section-desc{font-size:.85rem;color:var(--color-text-secondary);margin:0 0 18px}.sn-tip-icon-inline{display:inline-flex;align-items:center;justify-content:center;width:16px;height:16px;border-radius:50%;background:#6366f126;color:#818cf8;font-size:.7rem;font-weight:700;cursor:default}.sn-input-row{display:flex;gap:12px;flex-wrap:wrap;align-items:flex-end;margin-bottom:16px}.sn-field{display:flex;flex-direction:column;gap:5px;flex:1;min-width:140px}.sn-field--btn{flex:0 0 auto}.sn-label{font-size:.82rem;font-weight:600;color:var(--color-text-secondary);display:flex;align-items:center;gap:4px}.sn-input{background:var(--color-surface-2);border:1px solid var(--color-border);border-radius:7px;padding:8px 12px;color:var(--color-text);font-size:.9rem;font-family:monospace;outline:none;transition:border-color .15s}.sn-input:focus{border-color:#6366f1}.sn-input--error{border-color:#ef4444!important}.sn-calc-btn{padding:8px 20px;white-space:nowrap}.sn-error{color:#f87171;font-size:.85rem;margin-bottom:10px}.sn-tip{position:relative;display:inline-flex;align-items:center}.sn-tip-icon{display:inline-flex;align-items:center;justify-content:center;width:16px;height:16px;border-radius:50%;background:#6366f126;color:#818cf8;font-size:.68rem;font-weight:700;cursor:help;margin-left:3px;-webkit-user-select:none;user-select:none}.sn-tip-bubble{position:absolute;bottom:calc(100% + 6px);left:50%;transform:translate(-50%);background:var(--color-surface-2);border:1px solid var(--color-border);border-radius:8px;padding:8px 12px;font-size:.78rem;color:var(--color-text);line-height:1.45;max-width:300px;min-width:200px;white-space:normal;z-index:200;pointer-events:none;box-shadow:0 6px 20px #00000059}.sn-result-wrap{margin-top:6px}.sn-result-table{width:100%;border-collapse:collapse;font-size:.88rem}.sn-result-row td{padding:7px 10px;border-bottom:1px solid rgba(255,255,255,.04)}[data-theme=light] .sn-result-row td{border-bottom-color:#0000000d}.sn-result-row:hover td{background:#6366f10a}.sn-result-label{color:var(--color-text-secondary);white-space:nowrap;font-weight:500;width:200px}.sn-result-value{display:flex;align-items:center;gap:6px}.sn-result-val-text{font-family:monospace;color:var(--color-text-primary);font-size:.85rem;word-break:break-all}.sn-result-divider td{padding:2px 0;border:none}.sn-copy-btn{background:none;border:1px solid var(--color-border);border-radius:4px;color:var(--color-text-secondary);font-size:.75rem;padding:1px 5px;cursor:pointer;opacity:.6;transition:opacity .15s}.sn-copy-btn:hover{opacity:1}.sn-binary-visual{margin-top:14px}.sn-binary-bar{display:flex;height:24px;border-radius:6px;overflow:hidden;font-size:.7rem;font-weight:600}.sn-binary-net{background:#6366f159;color:#a5b4fc;display:flex;align-items:center;justify-content:center;overflow:hidden;white-space:nowrap;padding:0 6px;min-width:30px}.sn-binary-host{background:#22c55e33;color:#86efac;display:flex;align-items:center;justify-content:center;overflow:hidden;white-space:nowrap;padding:0 6px;min-width:30px}.sn-overlap-inputs{display:flex;flex-direction:column;gap:7px;margin-bottom:12px}.sn-overlap-input-row{display:flex;align-items:center;gap:8px}.sn-overlap-idx{font-size:.78rem;color:var(--color-text-secondary);width:18px;text-align:right;flex-shrink:0}.sn-overlap-input{flex:1;max-width:320px}.sn-remove-btn{background:none;border:1px solid var(--color-border);border-radius:5px;color:var(--color-text-secondary);width:24px;height:24px;cursor:pointer;font-size:.8rem;display:flex;align-items:center;justify-content:center}.sn-remove-btn:hover{border-color:#ef4444;color:#ef4444}.sn-overlap-actions{display:flex;gap:8px;margin-bottom:16px;flex-wrap:wrap}.sn-paste-area{border:2px dashed var(--color-border);border-radius:10px;padding:20px;display:flex;flex-direction:column;align-items:center;gap:5px;cursor:pointer;color:var(--color-text-secondary);font-size:.85rem;transition:border-color .2s,background .2s;margin-bottom:10px}.sn-paste-area:hover,.sn-paste-area:focus{border-color:#6366f1;background:#6366f10a;outline:none}.sn-paste-area--analyzing{border-color:#6366f1;background:#6366f10f}.sn-paste-icon{font-size:1.4rem}.sn-paste-sub{font-size:.75rem;opacity:.6}.sn-image-msg{font-size:.83rem;padding:6px 10px;border-radius:6px;margin-bottom:12px}.sn-image-msg--ok{background:#22c55e1a;color:#86efac;border:1px solid rgba(34,197,94,.2)}.sn-image-msg--err{background:#ef44441a;color:#fca5a5;border:1px solid rgba(239,68,68,.2)}.sn-overlap-results{margin-top:10px}.sn-overlap-banner{padding:10px 14px;border-radius:8px;font-size:.88rem;font-weight:600;margin-bottom:12px}.sn-overlap-banner--warn{background:#eab3081f;color:#fcd34d;border:1px solid rgba(234,179,8,.25)}.sn-overlap-banner--ok{background:#22c55e1a;color:#86efac;border:1px solid rgba(34,197,94,.2)}.sn-overlap-list{display:flex;flex-direction:column;gap:6px;margin-bottom:16px}.sn-overlap-item{display:flex;align-items:center;gap:10px;padding:8px 12px;border-radius:8px;font-size:.83rem;flex-wrap:wrap}.sn-overlap-item--ok{background:#22c55e12;border:1px solid rgba(34,197,94,.15)}.sn-overlap-item--conflict{background:#eab30812;border:1px solid rgba(234,179,8,.2)}.sn-overlap-item--invalid{background:#ef444412;border:1px solid rgba(239,68,68,.15);color:var(--color-text-secondary);font-style:italic}.sn-overlap-item-badge{font-size:1rem}.sn-overlap-item-cidr{font-family:monospace;font-weight:700;color:var(--color-text-primary)}.sn-overlap-item-range{font-family:monospace;color:var(--color-text-secondary);font-size:.8rem}.sn-overlap-item-hosts{color:var(--color-text-secondary);font-size:.78rem}.sn-overlap-item-conflict{color:#fbbf24;font-size:.78rem;font-weight:600}.sn-matrix-wrap{overflow-x:auto;margin-top:4px}.sn-matrix-label{font-size:.78rem;color:var(--color-text-secondary);margin-bottom:6px;font-weight:600}.sn-matrix{border-collapse:collapse;font-size:.78rem}.sn-matrix th,.sn-matrix td{border:1px solid var(--color-border);padding:5px 10px}.sn-matrix-th,.sn-matrix-row-hd{font-family:monospace;background:var(--color-surface-2);white-space:nowrap}.sn-matrix-cell{text-align:center;white-space:nowrap}.sn-matrix-cell--self{color:var(--color-text-secondary)}.sn-matrix-cell--yes{background:#eab30826;color:#fcd34d;font-weight:700}.sn-matrix-cell--no{background:#22c55e14;color:#86efac}.sn-matrix-cell--na{color:var(--color-text-secondary);font-style:italic}@media(max-width:600px){.sn-input-row{flex-direction:column}.sn-result-label{width:140px;font-size:.78rem}.sn-result-val-text{font-size:.78rem}}.dns-toolkit{max-width:900px;margin:0 auto;padding:0 0 40px}.dns-form{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);padding:20px;margin-bottom:24px}.dns-form-row{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.dns-input{flex:1;min-width:200px;padding:9px 14px;background:var(--color-surface-mid);border:1px solid var(--color-border);border-radius:var(--radius-sm);color:var(--color-text);font-size:.95rem}.dns-input:focus{outline:none;border-color:var(--color-primary)}.dns-select-wrap{position:relative}.dns-select{padding:9px 28px 9px 14px;background:var(--color-surface-mid);border:1px solid var(--color-border);border-radius:var(--radius-sm);color:var(--color-text);font-size:.9rem;cursor:pointer;appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6' viewBox='0 0 10 6'%3E%3Cpath d='M0 0l5 6 5-6z' fill='%23888'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 10px center}.dns-select:focus{outline:none;border-color:var(--color-primary)}.dns-hint{margin-top:12px;padding:10px 14px;background:var(--color-surface-mid);border-radius:var(--radius-sm);font-size:.83rem;color:var(--color-text-secondary);display:flex;gap:10px;align-items:flex-start;line-height:1.5;border-left:3px solid var(--color-primary)}.dns-results{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);padding:20px}.dns-meta{display:flex;flex-wrap:wrap;gap:16px;margin-bottom:20px;padding-bottom:16px;border-bottom:1px solid var(--color-border);align-items:center}.dns-meta-item{display:flex;align-items:center;gap:8px}.dns-meta-label{font-size:.78rem;color:var(--color-text-secondary);text-transform:uppercase;letter-spacing:.05em}.dns-meta-value{font-size:.9rem;font-weight:500;color:var(--color-text)}.dns-status-badge{font-size:.82rem;font-weight:700;padding:3px 10px;border-radius:20px;cursor:help}.dns-flag{font-size:.82rem;padding:3px 10px;border-radius:20px;cursor:help}.dns-flag-ad{background:#27ae6026;color:#27ae60;border:1px solid rgba(39,174,96,.3)}.dns-flag-tc{background:#e0a55226;color:#e0a052;border:1px solid rgba(224,165,82,.3)}.dns-section{margin-top:20px}.dns-section-title{font-size:.78rem;text-transform:uppercase;letter-spacing:.08em;color:var(--color-text-secondary);margin-bottom:10px;font-weight:600}.dns-table-wrap{overflow-x:auto}.dns-table{width:100%;border-collapse:collapse;font-size:.88rem}.dns-table th{text-align:left;padding:8px 12px;background:var(--color-surface-mid);font-size:.77rem;font-weight:600;color:var(--color-text-secondary);text-transform:uppercase;letter-spacing:.05em;border-bottom:1px solid var(--color-border);white-space:nowrap}.dns-table td{padding:9px 12px;border-bottom:1px solid var(--color-border);vertical-align:top}.dns-table tr:last-child td{border-bottom:none}.dns-table tr:hover td{background:var(--color-surface-mid)}.dns-cell-name{font-family:var(--font-mono, monospace);font-size:.85rem;color:var(--color-text-secondary);white-space:nowrap}.dns-cell-data{font-family:var(--font-mono, monospace);font-size:.85rem;word-break:break-all}.dns-type-badge{display:inline-block;font-size:.75rem;font-weight:700;padding:2px 8px;border-radius:4px;background:#4c9be826;color:#4c9be8;border:1px solid rgba(76,155,232,.3);white-space:nowrap;cursor:help}.dns-tooltip-wrap{position:relative;cursor:help}.dns-tooltip-icon{font-size:.7rem;color:var(--color-text-secondary);margin-left:4px;opacity:.7;vertical-align:middle}.dns-nxdomain{padding:14px 16px;background:#e052521a;border:1px solid rgba(224,82,82,.3);border-radius:var(--radius-sm);color:#e05252;font-size:.9rem;margin-bottom:16px}.dns-empty{padding:20px;text-align:center;color:var(--color-text-secondary);font-size:.9rem}.dns-error{padding:14px 16px;background:#e052521a;border:1px solid rgba(224,82,82,.3);border-radius:var(--radius-sm);color:#e05252;font-size:.9rem;margin-bottom:16px;display:flex;align-items:center;flex-wrap:wrap;gap:8px}@media(max-width:600px){.dns-form-row{flex-direction:column}.dns-input,.dns-select{width:100%}}.tool-page{max-width:860px;margin:0 auto;padding:0 var(--spacing-md) var(--spacing-lg)}.tool-page .tool-card{flex-direction:column;align-items:stretch;cursor:default}.tool-input{flex:1;min-width:180px;padding:9px 13px;border-radius:var(--radius);border:1px solid var(--color-border);background:var(--color-surface-light);color:var(--color-text);font-size:.95rem;outline:none;transition:border-color .2s,box-shadow .2s}.tool-input::placeholder{color:var(--color-text-muted)}.tool-input:focus{border-color:var(--color-primary);box-shadow:0 0 0 3px #648cdc26}[data-theme=light] .tool-input{background:#fff;border-color:var(--color-border)}.hh-checker{max-width:860px}.hh-form{display:flex;gap:8px;margin-top:16px;margin-bottom:18px;flex-wrap:wrap}.hh-input{flex:1;min-width:220px;padding:9px 13px;border-radius:8px;border:1px solid var(--border);background:var(--input-bg);color:var(--text);font-size:.95rem;outline:none;transition:border-color .2s}.hh-input:focus{border-color:var(--accent)}.hh-error{background:#e052521a;border:1px solid rgba(224,82,82,.35);border-radius:8px;padding:10px 14px;margin-bottom:16px;font-size:.9rem;color:#e05252;display:flex;align-items:center;gap:8px;flex-wrap:wrap}.hh-summary{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;background:var(--card-bg);border-radius:10px;padding:14px 18px;margin-bottom:14px}.hh-summary-grade{display:flex;align-items:center;gap:14px}.hh-summary-label{font-size:.78rem;opacity:.6;text-transform:uppercase;letter-spacing:.05em;margin-bottom:2px}.hh-summary-score{font-size:.95rem;font-weight:600}.hh-summary-meta{display:flex;gap:8px;flex-wrap:wrap}.hh-meta-pill{font-size:.82rem;background:var(--badge-bg, rgba(128,128,128,.12));border-radius:20px;padding:3px 10px;white-space:nowrap;max-width:240px;overflow:hidden;text-overflow:ellipsis}.hh-grade-badge{display:inline-block;padding:4px 10px;border-radius:7px;font-weight:700;font-size:.9rem;letter-spacing:.02em}.hh-grade-large{font-size:1.7rem;padding:6px 16px;border-radius:10px}.hh-overall-bar{display:flex;align-items:center;gap:10px;margin-bottom:18px}.hh-overall-bar-bg{flex:1;height:10px;background:var(--border);border-radius:6px;overflow:hidden}.hh-overall-bar-fill{height:100%;border-radius:6px;transition:width .5s ease}.hh-headers-list{display:flex;flex-direction:column;gap:8px;margin-bottom:24px}.hh-header-card{background:var(--card-bg);border-radius:9px;overflow:hidden;border-left:3px solid transparent;transition:box-shadow .15s}.hh-header-card:hover{box-shadow:0 2px 12px #0000001f}.hh-header-card-top{display:flex;align-items:center;justify-content:space-between;padding:10px 14px;cursor:pointer;-webkit-user-select:none;user-select:none;gap:8px}.hh-header-card-top:focus{outline:2px solid var(--accent);outline-offset:-2px}.hh-header-card-left{display:flex;align-items:center;gap:8px;flex:1;min-width:0}.hh-header-name{font-weight:600;font-size:.9rem;font-family:monospace;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.hh-pill{font-size:.72rem;padding:2px 8px;border-radius:20px;font-weight:600;white-space:nowrap}.hh-pill-present{background:#27ae6026;color:#27ae60}.hh-pill-missing{background:#e052521f;color:#e05252}.hh-header-card-right{display:flex;align-items:center;gap:10px;flex-shrink:0}.hh-expand-icon{font-size:.7rem;opacity:.5}.hh-score-bar-wrap{display:flex;align-items:center;gap:6px;cursor:default}.hh-score-bar-bg{width:64px;height:6px;background:var(--border);border-radius:4px;overflow:hidden}.hh-score-bar-fill{height:100%;border-radius:4px}.hh-score-bar-label{font-size:.75rem;opacity:.6;white-space:nowrap}.hh-header-detail{padding:0 14px 14px;border-top:1px solid var(--border);display:flex;flex-direction:column;gap:10px}.hh-header-value{display:flex;flex-direction:column;gap:4px;margin-top:10px}.hh-detail-label{font-size:.78rem;font-weight:600;opacity:.55;text-transform:uppercase;letter-spacing:.04em;margin-bottom:2px}.hh-code{font-family:monospace;font-size:.82rem;background:var(--code-bg, rgba(128,128,128,.1));padding:6px 10px;border-radius:6px;word-break:break-all;display:block}.hh-description p,.hh-recommendation p{margin:0;font-size:.88rem;line-height:1.55;opacity:.85}.hh-raw-section{margin-top:8px}.hh-raw-title{font-size:.9rem;font-weight:600;opacity:.7;margin:0 0 8px;text-transform:uppercase;letter-spacing:.05em}.hh-raw-table-wrap{overflow-x:auto;border-radius:8px;border:1px solid var(--border)}.hh-raw-table{width:100%;border-collapse:collapse;font-size:.83rem}.hh-raw-table th{text-align:left;padding:8px 12px;background:var(--table-head-bg, rgba(128,128,128,.08));font-weight:600;opacity:.75;border-bottom:1px solid var(--border)}.hh-raw-table td{padding:7px 12px;border-bottom:1px solid var(--border);vertical-align:top}.hh-raw-table tr:last-child td{border-bottom:none}.hh-raw-name{font-family:monospace;font-weight:600;white-space:nowrap;color:var(--accent)}.hh-raw-value code{font-family:monospace;font-size:.82rem;word-break:break-all}@media(max-width:600px){.hh-form{flex-direction:column}.hh-input{width:100%}.hh-header-card-top{flex-wrap:wrap}.hh-score-bar-bg{width:44px}}.ct-checker{max-width:1000px;margin:0 auto}.ct-form{display:flex;gap:8px;flex-wrap:wrap;align-items:center;margin-bottom:18px}.ct-input{flex:1;min-width:220px;padding:9px 13px;border-radius:8px;border:1px solid var(--border);background:var(--input-bg);color:var(--text);font-size:.95rem;outline:none;transition:border-color .2s}.ct-input:focus{border-color:var(--accent)}.ct-checkbox-label{display:flex;align-items:center;gap:6px;font-size:.88rem;white-space:nowrap;cursor:pointer;-webkit-user-select:none;user-select:none}.ct-error{background:#e052521a;border:1px solid rgba(224,82,82,.35);border-radius:8px;padding:10px 14px;margin-bottom:16px;font-size:.9rem;color:#e05252}.ct-summary{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:6px;margin-bottom:12px}.ct-summary-count{font-size:.95rem}.ct-powered{font-size:.78rem;opacity:.5}.ct-table-wrap{overflow-x:auto;border-radius:10px;border:1px solid var(--border);margin-bottom:14px}.ct-table{width:100%;border-collapse:collapse;font-size:.85rem}.ct-table th{text-align:left;padding:9px 12px;background:var(--table-head-bg, rgba(128,128,128,.08));font-weight:600;white-space:nowrap;border-bottom:1px solid var(--border);cursor:default}.ct-table td{padding:8px 12px;border-bottom:1px solid var(--border);vertical-align:top}.ct-table tr:last-child td{border-bottom:none}.ct-table tr.ct-row-expired{opacity:.55}.ct-table tr.ct-row-warn{background:#ffba000a}.ct-mono{font-family:monospace;font-size:.82rem}.ct-nowrap{white-space:nowrap}.ct-dim{opacity:.45;font-style:italic}.ct-expiry-cell{display:flex;align-items:center;gap:6px;flex-wrap:wrap}.ct-cn{font-family:monospace;font-size:.82rem;word-break:break-all}.ct-sans-list{display:flex;flex-direction:column;gap:3px;max-width:280px}.ct-san-item{font-family:monospace;font-size:.78rem;word-break:break-all}.ct-expand-btn{background:none;border:none;padding:0;font-size:.78rem;color:var(--accent);cursor:pointer;text-align:left;opacity:.8}.ct-expand-btn:hover{opacity:1;text-decoration:underline}.ct-issuer{font-size:.83rem;word-break:break-word}.ct-badge{display:inline-block;padding:2px 8px;border-radius:20px;font-size:.72rem;font-weight:600;white-space:nowrap}.ct-badge-expired{background:#e0525226;color:#e05252}.ct-badge-warn{background:#ffba002e;color:#c97b00}.ct-badge-ok{background:#27ae6026;color:#27ae60}.ct-tooltip-wrap{cursor:help;border-bottom:1px dotted currentColor}.ct-pagination{display:flex;align-items:center;justify-content:center;gap:12px;font-size:.9rem;margin-top:4px}@media(max-width:700px){.ct-form{flex-direction:column;align-items:stretch}.ct-input{width:100%}.ct-sans-list{max-width:160px}}.pcap-builder{max-width:860px;margin:0 auto}.pcap-section{background:var(--card-bg);border:1px solid var(--color-border);border-radius:10px;padding:18px 20px;margin-bottom:14px}.pcap-section-title{font-size:.78rem;font-weight:700;text-transform:uppercase;letter-spacing:.07em;opacity:.55;margin-bottom:14px}.pcap-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:12px 18px}.pcap-field{display:flex;flex-direction:column;gap:5px}.pcap-label{font-size:.82rem;font-weight:600;opacity:.75;cursor:default;white-space:nowrap}.pcap-tt{border-bottom:1px dotted currentColor;cursor:help}.pcap-input{padding:7px 10px;border-radius:7px;border:1px solid var(--border);background:var(--input-bg);color:var(--text);font-size:.88rem;outline:none;transition:border-color .2s;width:100%;box-sizing:border-box}.pcap-input:focus{border-color:var(--accent)}.pcap-input-sm{margin-top:4px}.pcap-input-wide{grid-column:span 2}.pcap-select{padding:7px 10px;border-radius:7px;border:1px solid var(--border);background:var(--input-bg);color:var(--text);font-size:.88rem;outline:none;cursor:pointer;width:100%}.pcap-toggle{width:36px;height:28px;border-radius:6px;border:1px solid var(--border);background:var(--input-bg);color:var(--text);font-size:.82rem;cursor:pointer;transition:background .15s,color .15s;display:flex;align-items:center;justify-content:center}.pcap-toggle-on{background:var(--accent);color:#fff;border-color:var(--accent)}.pcap-results{background:var(--card-bg);border-radius:10px;padding:20px 22px;border:1px solid rgba(100,140,220,.18)}.pcap-results-title{font-size:1rem;font-weight:700;margin-bottom:16px;color:var(--color-text)}.pcap-note{font-size:.83rem;opacity:.65;margin-bottom:14px}.pcap-cmd-block{margin-bottom:18px;border-radius:8px;overflow:hidden;border:1px solid var(--border)}.pcap-cmd-header{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:8px 12px;background:#648cdc12;border-bottom:1px solid var(--border)}.pcap-cmd-label{font-size:.78rem;font-weight:700;opacity:.8;text-transform:uppercase;letter-spacing:.06em;color:var(--color-primary)}.pcap-copy-btn{padding:4px 12px;border-radius:6px;border:1px solid var(--border);background:var(--input-bg);color:var(--text);font-size:.78rem;cursor:pointer;transition:background .15s;white-space:nowrap}.pcap-copy-btn:hover{background:var(--accent);color:#fff;border-color:var(--accent)}.pcap-cmd-code{background:#0a0e1480;padding:12px 16px;font-family:Fira Mono,Consolas,monospace;font-size:.88rem;word-break:break-all;white-space:pre-wrap;margin:0;line-height:1.7;color:#c5d8ff}@media(max-width:600px){.pcap-grid{grid-template-columns:1fr}.pcap-input-wide{grid-column:span 1}}.bgp-glass{max-width:960px;margin:0 auto}.bgp-form{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:18px}.bgp-input{flex:1;min-width:260px;padding:9px 13px;border-radius:8px;border:1px solid var(--border);background:var(--input-bg);color:var(--text);font-size:.95rem;outline:none;transition:border-color .2s;cursor:text}.bgp-input:focus{border-color:var(--accent)}.bgp-tt{border-bottom:1px dotted currentColor;cursor:help}.bgp-error{background:#e052521a;border:1px solid rgba(224,82,82,.35);border-radius:8px;padding:10px 14px;margin-bottom:16px;font-size:.9rem;color:#e05252}.bgp-summary-card{background:var(--card-bg);border-radius:10px;padding:16px 20px;margin-bottom:14px}.bgp-info-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:14px}.bgp-info-item{display:flex;flex-direction:column;gap:4px}.bgp-info-label{font-size:.78rem;font-weight:600;opacity:.55;text-transform:uppercase;letter-spacing:.04em;cursor:default}.bgp-info-value{font-size:.9rem;word-break:break-all}.bgp-mono{font-family:monospace}.bgp-badge{display:inline-block;padding:2px 9px;border-radius:20px;font-size:.78rem;font-weight:700;width:fit-content}.bgp-badge-ok{background:#27ae6026;color:#27ae60}.bgp-badge-no{background:#b4b4b426;color:#888}.bgp-badge-sm{font-size:.68rem;font-weight:600;padding:1px 6px;border-radius:12px}.bgp-section{background:var(--card-bg);border-radius:10px;padding:16px 18px;margin-bottom:14px}.bgp-section-title{font-size:.78rem;font-weight:700;text-transform:uppercase;letter-spacing:.06em;opacity:.55;margin-bottom:12px}.bgp-table-wrap{overflow-x:auto;border-radius:8px;border:1px solid var(--border)}.bgp-table{width:100%;border-collapse:collapse;font-size:.82rem}.bgp-table th{text-align:left;padding:8px 10px;background:var(--table-head-bg, rgba(128,128,128,.08));font-weight:600;white-space:nowrap;border-bottom:1px solid var(--border);cursor:default}.bgp-table td{padding:7px 10px;border-bottom:1px solid var(--border);vertical-align:top}.bgp-table tr:last-child td{border-bottom:none}.bgp-nowrap{white-space:nowrap}.bgp-dim{opacity:.5;font-size:.8rem}.bgp-aspath{max-width:260px}.bgp-aspath code{word-break:break-all}.bgp-no-data{opacity:.5;font-style:italic;padding:8px 0}.bgp-prefixes-grid{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:10px}.bgp-prefix-chip{display:flex;align-items:center;gap:6px;background:var(--input-bg);border:1px solid var(--border);border-radius:7px;padding:4px 10px;cursor:default}.bgp-prefix-inactive{opacity:.45}.bgp-expand-btn{background:none;border:none;color:var(--accent);font-size:.85rem;cursor:pointer;padding:0;margin-top:4px}.bgp-expand-btn:hover{text-decoration:underline}.bgp-powered{font-size:.77rem;opacity:.4;text-align:right;margin-top:6px}@media(max-width:600px){.bgp-form{flex-direction:column}.bgp-input{width:100%}.bgp-info-grid{grid-template-columns:1fr 1fr}}.st-container{max-width:680px;margin:0 auto}.st-policy{font-size:.78rem;opacity:.5;background:var(--card-bg);border-radius:8px;padding:8px 12px;margin-bottom:18px;line-height:1.5}.st-controls{display:flex;align-items:center;gap:14px;margin-bottom:20px;flex-wrap:wrap}.st-start-btn{min-width:140px;padding:11px 24px;font-size:1rem;font-weight:700;border-radius:10px}.st-status{font-size:.88rem;opacity:.65}.st-server-row{display:flex;align-items:center;gap:8px;margin-bottom:20px;font-size:.88rem}.st-server-label{font-weight:600;opacity:.6;border-bottom:1px dotted currentColor;cursor:help;white-space:nowrap}.st-server-name{font-family:monospace;font-size:.85rem;opacity:.8}.st-tt{border-bottom:1px dotted currentColor;cursor:help}.st-gauges{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:16px;margin-bottom:20px}.st-gauge-col{display:flex;flex-direction:column;align-items:center;background:var(--card-bg);border-radius:12px;padding:18px 14px 14px}.st-col-label{font-size:.78rem;font-weight:700;text-transform:uppercase;letter-spacing:.06em;opacity:.6;margin-bottom:10px;cursor:help}.st-gauge{display:flex;flex-direction:column;align-items:center;gap:2px}.st-gauge-value{font-size:2.4rem;font-weight:800;line-height:1;font-variant-numeric:tabular-nums}.st-gauge-unit{font-size:.82rem;font-weight:600;opacity:.55;letter-spacing:.04em}.st-gauge-label{font-size:.72rem;opacity:.35}.st-graph{margin-top:12px;border-radius:6px;opacity:.85;max-width:100%;height:auto}.st-powered{font-size:.75rem;opacity:.35;text-align:center;margin-top:4px}@media(max-width:520px){.st-gauges{grid-template-columns:1fr 1fr}.st-gauge-value{font-size:1.8rem}}.ftp-wrap{max-width:820px;margin:0 auto;padding:8px 0}.ftp-wrap h2{font-size:1.35rem;font-weight:700;margin:0 0 6px}.ftp-subtitle{font-size:.83rem;opacity:.55;margin-bottom:18px}.ftp-form{display:flex;flex-direction:column;gap:10px}.ftp-row{display:flex;gap:10px;flex-wrap:wrap;align-items:flex-end}.ftp-field{display:flex;flex-direction:column;gap:4px;flex:1 1 160px}.ftp-field label{font-size:.76rem;opacity:.6;font-weight:600}.ftp-field input,.ftp-field select{padding:6px 10px;border-radius:6px;border:1px solid rgba(255,255,255,.12);background:#ffffff12;color:inherit;font-size:.88rem}.ftp-field input:focus,.ftp-field select:focus{outline:2px solid #4fa8e8;border-color:transparent}.ftp-passive-toggle{display:flex;align-items:center;gap:8px}.ftp-passive-toggle label{font-size:.82rem;opacity:.7;cursor:pointer}.ftp-passive-toggle input[type=checkbox]{width:16px;height:16px;cursor:pointer;accent-color:#4fa8e8}.ftp-submit{padding:8px 22px;border-radius:8px;font-size:.9rem;font-weight:600;background:#4fa8e8;color:#fff;border:none;cursor:pointer;transition:opacity .15s;align-self:flex-start}.ftp-submit:disabled{opacity:.5;cursor:default}.ftp-submit:hover:not(:disabled){opacity:.85}.ftp-error{padding:10px 14px;background:#ef444426;border-radius:8px;border-left:3px solid #ef4444;font-size:.86rem;margin-top:12px}.ftp-results{margin-top:22px;display:flex;flex-direction:column;gap:16px}.ftp-status-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:10px}.ftp-status-card{background:#ffffff0f;border-radius:10px;padding:12px 14px;border:1px solid rgba(255,255,255,.08);display:flex;flex-direction:column;gap:4px}.ftp-status-card-label{font-size:.72rem;opacity:.5;font-weight:600;text-transform:uppercase;letter-spacing:.04em}.ftp-status-ok{color:#4ade80;font-weight:700;font-size:.95rem}.ftp-status-fail{color:#f87171;font-weight:700;font-size:.95rem}.ftp-status-ms{font-size:.78rem;opacity:.55;margin-top:2px}.ftp-info-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:10px}.ftp-info-item{background:#ffffff0a;border-radius:8px;padding:10px 12px}.ftp-info-label{font-size:.72rem;opacity:.5;font-weight:600;text-transform:uppercase;letter-spacing:.03em;margin-bottom:4px}.ftp-info-value{font-size:.85rem;font-family:monospace;opacity:.85;word-break:break-all}.ftp-feat{display:flex;flex-wrap:wrap;gap:6px;margin-top:4px}.ftp-feat-chip{background:#4fa8e82e;color:#4fa8e8;border-radius:12px;padding:2px 9px;font-size:.75rem;font-weight:600;font-family:monospace;border:1px solid rgba(79,168,232,.3)}.ftp-entries-table{width:100%;border-collapse:collapse;font-size:.84rem}.ftp-entries-table th{text-align:left;padding:6px 10px;font-size:.72rem;font-weight:600;opacity:.5;text-transform:uppercase;letter-spacing:.04em;border-bottom:1px solid rgba(255,255,255,.08)}.ftp-entries-table td{padding:7px 10px;border-bottom:1px solid rgba(255,255,255,.05);vertical-align:middle}.ftp-entries-table tr:last-child td{border-bottom:none}.ftp-entries-table tr:hover td{background:#ffffff0a}.ftp-entry-name{font-family:monospace}.ftp-entry-dir{opacity:.7}.ftp-entry-size{font-family:monospace;opacity:.65;white-space:nowrap}.ftp-entry-mod{font-size:.78rem;opacity:.5;white-space:nowrap}.ftp-section-title{font-size:.78rem;font-weight:700;opacity:.5;text-transform:uppercase;letter-spacing:.05em;margin-bottom:8px}@media(max-width:520px){.ftp-row{flex-direction:column}.ftp-field{flex:1 1 100%}}.lf-wrap{max-width:860px;margin:0 auto;padding:8px 0}.lf-wrap h2{font-size:1.35rem;font-weight:700;margin:0 0 6px}.lf-subtitle{font-size:.83rem;opacity:.55;margin-bottom:16px}.lf-toolbar{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:10px;margin-bottom:4px}.lf-tabs{display:flex;gap:6px;flex-wrap:wrap}.lf-tab{padding:5px 12px;border-radius:16px;font-size:.82rem;font-weight:600;cursor:pointer;background:#ffffff12;border:1px solid rgba(255,255,255,.1);color:inherit;transition:all .15s}.lf-tab:hover{background:#ffffff1f}.lf-tab-active{background:#4fa8e833;border-color:#4fa8e880;color:#4fa8e8}.lf-count{margin-left:5px;background:#ffffff1f;border-radius:8px;padding:0 5px;font-size:.72rem;font-weight:700}.lf-toolbar-right{display:flex;align-items:center;gap:8px}.lf-last-updated{font-size:.75rem;opacity:.45}.lf-refresh-btn{background:#ffffff14;border:1px solid rgba(255,255,255,.1);border-radius:6px;color:inherit;cursor:pointer;padding:4px 10px;font-size:1rem;transition:opacity .15s}.lf-refresh-btn:hover:not(:disabled){opacity:.7}.lf-refresh-btn:disabled{opacity:.4;cursor:default}.lf-auto-note{font-size:.72rem;opacity:.35;margin-bottom:14px}.lf-loading{padding:32px;text-align:center;opacity:.5;font-size:.9rem}.lf-error{padding:10px 14px;background:#ef44441f;border-left:3px solid #ef4444;border-radius:8px;font-size:.85rem;margin-bottom:12px;display:flex;gap:10px;align-items:center}.lf-retry-btn{background:#ef444433;border:1px solid rgba(239,68,68,.4);color:#f87171;border-radius:5px;cursor:pointer;padding:3px 10px;font-size:.8rem}.lf-empty{padding:24px;text-align:center;opacity:.45;font-size:.9rem}.lf-feed{display:flex;flex-direction:column;gap:10px}.lf-card{background:#ffffff0d;border:1px solid rgba(255,255,255,.08);border-radius:10px;padding:12px 14px;display:flex;flex-direction:column;gap:6px;transition:background .15s}.lf-card:hover{background:#ffffff14}.lf-card-header{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap}.lf-source-badge{font-size:.72rem;font-weight:700;padding:2px 8px;border-radius:10px;border:1px solid;text-transform:uppercase;letter-spacing:.04em}.lf-time{font-size:.75rem;opacity:.45;white-space:nowrap}.lf-title{font-size:.95rem;font-weight:600;line-height:1.4;text-decoration:none;color:inherit;display:block}a.lf-title:hover{text-decoration:underline;color:#4fa8e8}.lf-title-plain{margin:0}.lf-body{font-size:.83rem;opacity:.7;line-height:1.55;margin:0;white-space:pre-wrap}.lf-expand{background:none;border:none;color:#4fa8e8;cursor:pointer;font-size:.78rem;padding:0 2px}.lf-tags{display:flex;flex-wrap:wrap;gap:5px}.lf-tag{font-size:.72rem;padding:1px 7px;border-radius:10px;background:#6364ff26;color:#8485ff;border:1px solid rgba(99,100,255,.25)}.lf-card-footer{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:8px;margin-top:2px}.lf-author{font-size:.76rem;opacity:.5}.lf-meta{display:flex;align-items:center;gap:10px}.lf-stat{font-size:.76rem;opacity:.55}.lf-open-link{font-size:.76rem;font-weight:600;color:#4fa8e8;text-decoration:none;opacity:.8}.lf-open-link:hover{opacity:1;text-decoration:underline}@media(max-width:520px){.lf-toolbar{flex-direction:column;align-items:flex-start}}.export-buttons-row{display:flex;gap:8px;flex-wrap:wrap;align-items:center;margin-top:12px}.powered-by-link{font-size:.72rem;color:var(--color-text-muted);text-decoration:none;margin-left:auto;opacity:.7;transition:opacity .15s,color .15s}.powered-by-link:hover{opacity:1;color:var(--color-primary)}[data-theme=light] .powered-by-link{color:var(--color-primary);opacity:.8;font-weight:500}[data-theme=light] .powered-by-link:hover{opacity:1}.export-btn-wrap{display:inline-flex;flex-direction:column;gap:4px}.export-btn{padding:6px 14px;border-radius:7px;font-size:.82rem;font-weight:600;cursor:pointer;background:#ffffff14;border:1px solid rgba(255,255,255,.15);color:inherit;transition:all .15s;white-space:nowrap}.export-btn:hover:not(:disabled){background:#ffffff24;border-color:#ffffff4d}.export-btn:disabled{opacity:.45;cursor:default}.export-btn-error{font-size:.72rem;color:#f87171}.mon-wrap{max-width:900px;margin:0 auto;padding:8px 0}.mon-header{display:flex;justify-content:space-between;align-items:flex-start;flex-wrap:wrap;gap:12px;margin-bottom:16px}.mon-header h2{font-size:1.35rem;font-weight:700;margin:0 0 4px}.mon-subtitle{font-size:.83rem;opacity:.55;margin:0}.mon-btn{padding:6px 13px;border-radius:7px;font-size:.83rem;font-weight:600;cursor:pointer;background:#ffffff14;border:1px solid rgba(255,255,255,.13);color:inherit;transition:all .15s}.mon-btn:hover:not(:disabled){background:#ffffff24}.mon-btn:disabled{opacity:.45;cursor:default}.mon-btn-primary{background:#4fa8e833;border-color:#4fa8e866;color:#4fa8e8}.mon-btn-primary:hover:not(:disabled){background:#4fa8e84d}.mon-btn-danger{color:#f87171;border-color:#f871714d}.mon-btn-danger:hover{background:#f871711a}.mon-btn-sm{padding:4px 9px;font-size:.78rem}.mon-add-form{background:#ffffff0d;border:1px solid rgba(255,255,255,.1);border-radius:10px;padding:16px;margin-bottom:16px}.mon-form-row{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:10px}.mon-field{display:flex;flex-direction:column;gap:4px;flex:1 1 160px}.mon-field-grow{flex:2 1 220px}.mon-field-sm{flex:0 1 110px}.mon-field label{font-size:.74rem;opacity:.55;font-weight:600}.mon-field input,.mon-field select{padding:6px 10px;border-radius:6px;border:1px solid rgba(255,255,255,.12);background:#ffffff12;color:inherit;font-size:.87rem}.mon-field input:focus,.mon-field select:focus{outline:2px solid #4fa8e8}.mon-form-actions{display:flex;gap:8px;margin-top:4px}.mon-error{padding:8px 12px;background:#f871711f;border-left:3px solid #f87171;border-radius:6px;font-size:.84rem;margin-bottom:10px}.mon-loading{padding:24px;text-align:center;opacity:.45}.mon-empty{padding:24px;text-align:center;opacity:.45;font-size:.9rem}.mon-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:12px}.mon-card{background:#ffffff0d;border:1px solid rgba(255,255,255,.09);border-radius:10px;padding:12px 14px;display:flex;flex-direction:column;gap:8px}.mon-card-disabled{opacity:.6}.mon-card-top{display:flex;justify-content:space-between;align-items:flex-start}.mon-card-left{display:flex;align-items:center;gap:8px}.mon-type-icon{font-size:1.3rem}.mon-card-name{font-weight:600;font-size:.9rem}.mon-card-target{font-size:.76rem;opacity:.5;font-family:monospace}.mon-card-status{display:flex;align-items:center;gap:5px}.mon-status-dot{width:9px;height:9px;border-radius:50%;flex-shrink:0}.mon-status-text{font-size:.78rem;font-weight:700}.mon-card-meta{display:flex;gap:8px;flex-wrap:wrap;align-items:center}.mon-meta-item{font-size:.74rem;opacity:.55}.mon-meta-fail{color:#f87171;opacity:1}.mon-status-badge{font-size:.68rem;font-weight:700;padding:1px 7px;border-radius:8px;text-transform:uppercase;letter-spacing:.04em}.mon-status-badge-on{background:#4ade8026;color:#4ade80;border:1px solid rgba(74,222,128,.3)}.mon-status-badge-off{background:#ffffff12;color:#888;border:1px solid rgba(255,255,255,.1)}.mon-card-msg{font-size:.76rem;opacity:.55;font-family:monospace;background:#0003;border-radius:5px;padding:4px 8px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.mon-card-actions{display:flex;gap:6px;flex-wrap:wrap;border-top:1px solid rgba(255,255,255,.07);padding-top:8px}.mon-drawer{position:fixed;right:0;top:60px;height:calc(100vh - 60px);width:340px;max-width:90vw;background:var(--color-bg, #0f1117);border-left:1px solid rgba(255,255,255,.1);z-index:1000;display:flex;flex-direction:column;box-shadow:-4px 0 24px #0006}.mon-drawer-header{display:flex;justify-content:space-between;align-items:center;padding:14px 16px;border-bottom:1px solid rgba(255,255,255,.08);font-weight:600}.mon-drawer-close{background:none;border:none;color:inherit;cursor:pointer;opacity:.6;font-size:.85rem}.mon-events{padding:10px 14px;display:flex;flex-direction:column;gap:8px;overflow-y:auto;flex:1}.mon-event-row{display:flex;align-items:center;gap:8px;font-size:.82rem;padding:5px 0;border-bottom:1px solid var(--color-border)}.mon-event-row:last-child{border-bottom:none}.mon-event-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0}.mon-event-msg{flex:1;opacity:.85}.mon-event-times{display:flex;flex-direction:column;align-items:flex-end;gap:1px}.mon-event-time{font-size:.72rem;opacity:.5;white-space:nowrap}.mon-event-ts{font-size:.68rem;opacity:.38;white-space:nowrap;font-family:monospace}@media(max-width:520px){.mon-grid{grid-template-columns:1fr}.mon-form-row{flex-direction:column}}.prop-checker{max-width:860px}.prop-table-wrap{overflow-x:auto;border-radius:var(--radius-lg);border:1px solid var(--color-border)}.prop-table{width:100%;border-collapse:collapse;font-size:.88rem}.prop-table th{background:var(--color-surface-mid);color:var(--color-text-muted);text-transform:uppercase;font-size:.72rem;letter-spacing:.05em;padding:10px 14px;text-align:left;font-weight:600;border-bottom:1px solid var(--color-border)}.prop-table td{padding:11px 14px;border-bottom:1px solid var(--color-border);vertical-align:top}.prop-table tr:last-child td{border-bottom:none}.prop-table tbody tr:hover{background:var(--color-surface-mid)}.prop-row-warn td{background:#d7a05a0d}[data-theme=light] .prop-table th{background:var(--color-surface-mid)}[data-theme=light] .prop-table tbody tr:hover{background:var(--color-surface-light)}.adwall-overlay{position:fixed;inset:0;z-index:9999;background:#000000bf;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;padding:1rem}.adwall-modal{background:var(--color-surface-mid);border:1px solid var(--color-border);border-radius:16px;padding:2rem;max-width:420px;width:100%;text-align:center;display:flex;flex-direction:column;align-items:center;gap:1.25rem}.adwall-icon{font-size:2rem}.adwall-title{font-size:1.2rem;font-weight:700;margin:0}.adwall-sub{font-size:.88rem;color:var(--color-text-muted);margin:0}.adwall-progress{display:flex;align-items:center;gap:.5rem}.adwall-step{font-size:.78rem;font-weight:600;padding:3px 10px;border-radius:20px;background:var(--color-surface-light);color:var(--color-text-muted);border:1px solid var(--color-border)}.adwall-step.active{background:var(--color-primary);color:#fff;border-color:var(--color-primary)}.adwall-step.done{background:#22c55e;color:#fff;border-color:#22c55e}.adwall-step-line{flex:1;height:1px;background:var(--color-border)}.adwall-ad-slot{min-height:250px;display:flex;align-items:center;justify-content:center}.adwall-btn{width:100%;padding:.75rem;border-radius:8px;background:var(--color-primary);color:#fff;border:none;font-size:.95rem;font-weight:600;cursor:pointer;transition:opacity .2s}.adwall-btn:disabled{opacity:.5;cursor:not-allowed}.adwall-upgrade-btn{width:100%;padding:.65rem;border-radius:8px;background:transparent;color:var(--color-text-muted);border:1px solid var(--color-border);font-size:.85rem;cursor:pointer;transition:border-color .2s,color .2s}.adwall-upgrade-btn:hover{border-color:var(--color-primary);color:var(--color-primary)}.export-tier-gate{display:inline-flex;align-items:center;gap:.4rem;padding:6px 14px;border-radius:6px;background:var(--color-surface-light);color:var(--color-text-muted);font-size:.82rem;border:1px solid var(--color-border);cursor:default;opacity:.65}.tier-badge{font-size:.7rem;background:#6366f1;color:#fff;padding:1px 6px;border-radius:10px;font-weight:600}.har-drop{border:2px dashed var(--color-border);border-radius:var(--radius-lg);padding:2.5rem 1.5rem;background:var(--color-surface);cursor:pointer;transition:border-color .2s,background .2s}.har-drop-active,.har-drop:hover{border-color:var(--color-primary);background:var(--color-surface-mid)}.har-kpi-row{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:.75rem}.har-kpi{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);padding:.75rem 1rem;text-align:center}.har-kpi-value{font-size:1.4rem;font-weight:700;line-height:1.2;margin-bottom:.25rem}.har-kpi-label{font-size:.72rem;color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.04em}.har-table{width:100%;border-collapse:collapse;font-size:.82rem}.har-table th{text-align:left;padding:4px 8px;color:var(--color-text-muted);font-weight:600;font-size:.72rem;border-bottom:1px solid var(--color-border)}.har-table td{padding:4px 8px;border-bottom:1px solid var(--color-border)}.har-table tr:last-child td{border-bottom:none}.har-wf-legend{display:flex;gap:1rem;flex-wrap:wrap;margin-bottom:.5rem;font-size:.72rem;color:var(--color-text-muted)}.har-wf-legend-item{display:flex;align-items:center;gap:4px}.har-wf-legend-item span{display:inline-block;width:10px;height:10px;border-radius:2px}.har-wf-container{max-height:420px;overflow-y:auto;border:1px solid var(--color-border);border-radius:var(--radius)}.har-wf-row{display:grid;grid-template-columns:240px 1fr;align-items:center;min-height:24px;border-bottom:1px solid var(--color-border);font-size:.72rem}.har-wf-row:last-child{border-bottom:none}.har-wf-url{display:flex;align-items:center;gap:4px;padding:0 6px;overflow:hidden;border-right:1px solid var(--color-border);height:100%;color:var(--color-text-muted)}.har-wf-bar-wrap{position:relative;height:24px;display:flex;align-items:center}.har-wf-total{position:absolute;right:6px;font-size:.68rem;color:var(--color-text-muted);pointer-events:none}.har-bar-wrap{height:6px;background:var(--color-surface-light);border-radius:3px;overflow:hidden}.har-bar-fill{height:100%;background:var(--color-primary);border-radius:3px;transition:width .3s}.har-ai-result{margin-top:1rem;padding:1rem;background:var(--color-surface-mid);border-radius:var(--radius);border:1px solid var(--color-border);font-size:.85rem;line-height:1.65;white-space:pre-wrap}.har-tabs{display:flex;gap:2px;border-bottom:2px solid var(--color-border);margin-bottom:0;flex-wrap:wrap}.har-tab{background:none;border:none;padding:.5rem 1rem;font-size:.85rem;color:var(--color-text-muted);cursor:pointer;border-bottom:2px solid transparent;margin-bottom:-2px;transition:color .15s,border-color .15s;display:flex;align-items:center;gap:5px}.har-tab:hover{color:var(--color-text)}.har-tab-active{color:var(--color-primary);border-bottom-color:var(--color-primary);font-weight:600}.har-tab-badge{background:var(--color-primary);color:#fff;font-size:.65rem;font-weight:700;padding:1px 5px;border-radius:10px;min-width:16px;text-align:center}.har-tab-content{padding:1.25rem 0}.har-wf-row-highlight{background:#f902}.har-finding-card{border-left:3px solid var(--color-border);background:var(--color-surface);border-radius:var(--radius);overflow:hidden;border:1px solid var(--color-border);border-left-width:3px}.har-finding-header{display:flex;align-items:center;gap:.5rem;padding:.6rem .75rem;-webkit-user-select:none;user-select:none}.har-finding-header:hover{background:var(--color-surface-mid)}.har-finding-body{padding:.75rem;border-top:1px solid var(--color-border);display:flex;flex-direction:column;gap:.6rem;font-size:.84rem;line-height:1.6}.har-finding-section{display:flex;flex-direction:column;gap:2px}.har-finding-label{font-size:.65rem;font-weight:700;letter-spacing:.06em;color:var(--color-text-muted);text-transform:uppercase}@media(max-width:640px){.har-wf-row{grid-template-columns:120px 1fr}.har-kpi-row{grid-template-columns:repeat(2,1fr)}.har-finding-header{flex-wrap:wrap}}.spam-verdict-card{padding:1.25rem}.spam-gauge{position:relative;height:12px;background:linear-gradient(to right,#4c8,#f5c518,#f90,#e55);border-radius:6px;margin:0 auto .5rem;max-width:400px;overflow:visible}.spam-gauge-fill{position:absolute;inset:0;background:var(--color-surface);border-radius:0 6px 6px 0;opacity:.55;transition:width .6s ease}.spam-gauge-needle{position:absolute;top:-5px;width:0;height:0;border-left:5px solid transparent;border-right:5px solid transparent;border-bottom:10px solid #e55;transform:translate(-50%);transition:left .6s ease}.spam-grid-2{display:grid;grid-template-columns:1fr 1fr;gap:0 1rem}@media(max-width:600px){.spam-grid-2{grid-template-columns:1fr}}.spam-flags-grid{display:flex;flex-direction:column;gap:.4rem}.spam-flag{display:flex;justify-content:space-between;align-items:center;padding:.35rem .6rem;border-radius:5px;background:var(--color-surface-mid);font-size:.8rem;border:1px solid transparent}.spam-flag-bad{border-color:#e5520033;background:#e5520010}.ike-disconn-panel{background:#0d0f14;border:1px solid rgba(239,68,68,.3);border-radius:10px;padding:20px 24px;margin-top:24px}.ike-disconn-header{display:flex;align-items:flex-start;gap:14px;margin-bottom:16px}.ike-disconn-icon{font-size:1.6rem;line-height:1;margin-top:2px}.ike-disconn-title{font-size:1rem;font-weight:700;color:#f1f5f9;margin:0 0 4px}.ike-disconn-desc{font-size:.82rem;color:#94a3b8;margin:0;line-height:1.5}.ike-disconn-cipher-preview{display:flex;align-items:center;flex-wrap:wrap;gap:6px;background:#ffffff0a;border:1px solid rgba(255,255,255,.08);border-radius:6px;padding:8px 12px;margin-bottom:16px;font-size:.8rem;color:#94a3b8}.ike-disconn-cipher-label{color:#64748b;margin-right:2px}.ike-disconn-cipher-preview code{background:#3b82f61f;color:#93c5fd;padding:1px 6px;border-radius:4px;font-size:.78rem}.ike-disconn-port-tag{margin-left:8px;background:#ef44441f;color:#f87171;padding:1px 6px;border-radius:4px;font-size:.78rem}.ike-disconn-form{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-bottom:16px}@media(max-width:600px){.ike-disconn-form{grid-template-columns:1fr}}.ike-disconn-btn{display:inline-flex;align-items:center;gap:8px;background:linear-gradient(135deg,#b91c1c,#dc2626);color:#fff;border:none;border-radius:8px;padding:10px 22px;font-size:.9rem;font-weight:600;cursor:pointer;transition:opacity .15s,transform .1s}.ike-disconn-btn:hover:not(:disabled){opacity:.88;transform:translateY(-1px)}.ike-disconn-btn:disabled{opacity:.5;cursor:not-allowed}.ike-disconn-result{margin-top:14px;padding:10px 14px;border-radius:8px;font-size:.85rem;line-height:1.5}.ike-disconn-result--ok{background:#22c55e1a;border:1px solid rgba(34,197,94,.25);color:#86efac}.ike-disconn-result--err{background:#ef44441a;border:1px solid rgba(239,68,68,.25);color:#fca5a5}.ike-disconn-stage{opacity:.7;font-size:.8rem}
