.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("./media/layers-55W3Q4RM.png");width:36px;height:36px}.leaflet-retina .leaflet-control-layers-toggle{background-image:url("./media/layers-2x-TBM42ERR.png");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("./media/marker-icon-2V3QKKVC.png")}.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{--s-font: "Chakra Petch", system-ui, sans-serif;--s-font-mono: ui-monospace, "Cascadia Mono", Consolas, monospace;--s-w-body: 500;--s-w-ui: 600;--s-w-strong: 700;--s-track-caps: .08em;--s-track-ui: .02em;--s-cut: 7px;--s-cut-sm: 5px;--s-cut-in: .5858px;--s-edge: 1px;--s-radius: 3px;--s-radius-panel: 6px;--s-radius-chip: 3px;--s-radius-pill: 999px;--s-control-h: 32px;--s-control-h-sm: 26px;--s-row-h: 36px;--s-nav-h: 32px;--s-rail-w: 224px;--s-space-1: 4px;--s-space-2: 8px;--s-space-3: 12px;--s-space-4: 16px;--s-space-5: 20px;--s-space-6: 24px;--s-space-8: 32px;--s-t-fast: .14s;--s-t-base: .2s;--s-t-slow: .28s;--s-t-press: 60ms;--s-e-out: cubic-bezier(.2, 0, 0, 1);--s-e-in: cubic-bezier(.4, 0, 1, 1);--s-e-std: cubic-bezier(.2, 0, .2, 1);--s-fs-sm: .75rem;--s-fs-base: .8125rem;--s-fs-md: .875rem;--s-fs-lg: .9375rem;--s-fs-xl: 1rem;--s-fs-2xl: 1.25rem;--s-fs-3xl: 1.375rem;--s-fs-4xl: 1.5rem;--s-fs-5xl: 1.875rem}html{color-scheme:dark;--s-bg: #111315;--s-rail: #0C0E10;--s-surface: #181B1E;--s-surface-2: #1E2226;--s-raised: #22262B;--s-sunken: #0F1113;--s-hover: #21262B;--s-selected: #14303F;--s-scrim: rgba(0,0,0,.6);--s-line: #2A2F35;--s-line-2: #3A4047;--s-control: #6C757F;--s-text: #E9ECEF;--s-text-2: #C6CCD2;--s-muted: #A3ABB3;--s-faint: #8C959E;--s-disabled: #5E666F;--s-placeholder: #8C959E;--s-label: #C6CCD2;--s-th: #C6CCD2;--s-nav: #C6CCD2;--s-nav-section: #8C959E;--s-accent: #32C5FF;--s-accent-hover: #6AD5FF;--s-accent-text: #4FCDFF;--s-accent-tint: #0F2C3A;--s-accent-line: #1F7096;--s-on-accent: #04131B;--s-focus: #32C5FF;--s-nav-active-bg: #13303E;--s-nav-active-text: #FFFFFF;--s-btn-fill: #1E2226;--s-btn-fill-hover: #262B31;--s-btn-edge: #6C757F;--s-btn-text: #E9ECEF;--s-ok: #43D691;--s-ok-tint: #132A1F;--s-ok-line: #2B7A54;--s-ok-solid: #2FBF7A;--s-on-ok: #06140D;--s-warn: #F2B640;--s-warn-tint: #2E2511;--s-warn-line: #8A6A25;--s-warn-solid: #F2B640;--s-on-warn: #1A1200;--s-danger: #FF7A7A;--s-danger-tint: #341B1C;--s-danger-line: #8E3A3B;--s-danger-solid: #FF6B6B;--s-on-danger: #1E0606;--s-info: #4FCDFF;--s-info-tint: #0F2C3A;--s-info-line: #1F7096;--s-info-solid: #32C5FF;--s-on-info: #04131B;--s-neutral-tint: #23282D;--s-neutral-line: #454C54;--s-chart-1: #1E9FD6;--s-chart-2: #E06A2C;--s-chart-3: #16A271;--s-chart-4: #BB850C;--s-chart-5: #D4528F;--s-chart-6: #3F9A2A;--s-chart-7: #8676EC;--s-chart-8: #E35050;--s-chart-9: #8C959E;--s-chart-10: #5E666F;--s-chart-grid: #2A2F35;--s-chart-axis: #A3ABB3;--s-shadow-1: 0 1px 2px rgba(0,0,0,.35);--s-shadow-2: 0 12px 32px rgba(0,0,0,.55), 0 1px 3px rgba(0,0,0,.4);--s-track-bg: #363C43;--s-seg-on-bg: #14303F;--s-seg-on-text: #6AD5FF;--s-btn-glow: drop-shadow(0 0 6px rgba(50,197,255,.28))}html.theme-light{color-scheme:light;--s-bg: #E6E9ED;--s-rail: #F4F5F7;--s-surface: #FFFFFF;--s-surface-2: #F2F4F6;--s-raised: #FFFFFF;--s-sunken: #FFFFFF;--s-hover: #EEF1F4;--s-selected: #E2EFF7;--s-scrim: rgba(20,26,32,.42);--s-line: #DCE0E5;--s-line-2: #C3CAD2;--s-control: #79828D;--s-text: #11161B;--s-text-2: #2E363F;--s-muted: #4A535D;--s-faint: #5C6570;--s-disabled: #9AA2AB;--s-placeholder: #5F6873;--s-label: #2E363F;--s-th: #2E363F;--s-nav: #2A3139;--s-nav-section: #56606A;--s-accent: #0A6E9F;--s-accent-hover: #085B84;--s-accent-text: #08648F;--s-accent-tint: #E1EFF7;--s-accent-line: #6FAFD0;--s-on-accent: #FFFFFF;--s-focus: #0A6E9F;--s-nav-active-bg: #E1EFF7;--s-nav-active-text: #0B1015;--s-btn-fill: #FFFFFF;--s-btn-fill-hover: #F2F5F8;--s-btn-edge: #79828D;--s-btn-text: #151B21;--s-ok: #0E7340;--s-ok-tint: #E2F3E9;--s-ok-line: #73BC94;--s-ok-solid: #13834A;--s-on-ok: #FFFFFF;--s-warn: #8A4E00;--s-warn-tint: #FBEDD5;--s-warn-line: #D6A256;--s-warn-solid: #A35F00;--s-on-warn: #FFFFFF;--s-danger: #AE2222;--s-danger-tint: #FBE3E3;--s-danger-line: #DE9696;--s-danger-solid: #C42B2B;--s-on-danger: #FFFFFF;--s-info: #08648F;--s-info-tint: #E1EFF7;--s-info-line: #6FAFD0;--s-info-solid: #0A6E9F;--s-on-info: #FFFFFF;--s-neutral-tint: #EEF0F3;--s-neutral-line: #BCC3CB;--s-chart-1: #0B84B8;--s-chart-2: #E0602A;--s-chart-3: #13946A;--s-chart-4: #B57A00;--s-chart-5: #D2558F;--s-chart-6: #2F7D1F;--s-chart-7: #5A48C0;--s-chart-8: #D83B3B;--s-chart-9: #6B7480;--s-chart-10: #9AA2AB;--s-chart-grid: #E3E7EB;--s-chart-axis: #4A535D;--s-shadow-1: 0 1px 2px rgba(17,22,27,.06);--s-shadow-2: 0 10px 28px rgba(17,22,27,.18), 0 1px 3px rgba(17,22,27,.1);--s-track-bg: #D3D8DE;--s-seg-on-bg: #0A6E9F;--s-seg-on-text: #FFFFFF;--s-btn-glow: none}html{--s-cat-isp: var(--s-chart-1);--s-cat-gateway: var(--s-chart-2);--s-cat-vpn: var(--s-chart-8);--s-cat-tor: var(--s-chart-7);--s-cat-hosting: var(--s-chart-4);--s-cat-private: var(--s-chart-9);--s-cat-unknown: var(--s-chart-10);--s-map-path: var(--s-text-2);--s-map-tiles-filter: invert(1) hue-rotate(180deg) brightness(.92) contrast(.88) saturate(.3);--s-heat-0: var(--s-track-bg);--s-heat-1: var(--s-accent-line);--s-heat-2: var(--s-accent);--s-night: var(--s-chart-7)}html.theme-light{--s-map-tiles-filter: none}*,*:before,*:after{box-sizing:border-box}html{font-size:16px}body{margin:0;background:var(--s-bg);color:var(--s-text);font-family:var(--s-font);font-size:var(--s-fs-base);font-weight:var(--s-w-body);line-height:1.45;-webkit-font-smoothing:antialiased;font-variant-numeric:tabular-nums}a{color:var(--s-accent-text);text-underline-offset:2px}a:hover{color:var(--s-accent-hover)}h1,h2,h3{margin:0;font-family:var(--s-font);font-weight:var(--s-w-ui);color:var(--s-text)}h1{font-size:var(--s-fs-2xl);letter-spacing:.005em;line-height:1.2}h2{font-size:var(--s-fs-lg)}h3{font-size:var(--s-fs-md)}b,strong{font-weight:var(--s-w-strong)}code,.mono{font-family:var(--s-font-mono);font-size:max(12px,.92em);font-weight:500}button,input,select,textarea{font:inherit;color:inherit}::selection{background:var(--s-accent-tint);color:var(--s-text)}:focus-visible{outline:2px solid var(--s-focus);outline-offset:2px}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--s-line-2);border-radius:5px;border:2px solid var(--s-bg)}::-webkit-scrollbar-thumb:hover{background:var(--s-control)}.page-head{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;margin-bottom:18px;flex-wrap:wrap}.page-head .sub{color:var(--s-muted);font-size:var(--s-fs-sm);margin-top:4px}.page-head .actions{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.btn.back,.page-head .back{margin-bottom:8px}.page-head h1 .badge{margin-left:8px;vertical-align:middle}.eyebrow{color:var(--s-muted);font-family:var(--s-font);font-size:var(--s-fs-sm);font-weight:var(--s-w-ui);letter-spacing:var(--s-track-caps);text-transform:uppercase}.muted{color:var(--s-muted)}.faint{color:var(--s-faint)}.ok{color:var(--s-ok)}.warn{color:var(--s-warn)}.error{color:var(--s-danger)}.accent{color:var(--s-accent-text)}.num{font-variant-numeric:tabular-nums}.right{text-align:right}.nowrap{white-space:nowrap}.grid{display:grid;gap:12px}.grid.cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.grid.cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.grid.cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.grid.kpis{grid-template-columns:repeat(auto-fit,minmax(170px,1fr))}@media(max-width:1100px){.grid.cols-3,.grid.cols-4{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:720px){.grid.cols-2,.grid.cols-3,.grid.cols-4{grid-template-columns:1fr}}.stack{display:flex;flex-direction:column;gap:12px}.row{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.spacer{flex:1}.panel{border:1px solid var(--s-line-2);background:var(--s-surface);border-radius:var(--s-radius-panel);box-shadow:var(--s-shadow-1)}.panel__head{display:flex;align-items:center;justify-content:space-between;gap:10px;min-height:40px;padding:8px 14px;border-bottom:1px solid var(--s-line);background:var(--s-surface-2);border-radius:calc(var(--s-radius-panel) - 1px) calc(var(--s-radius-panel) - 1px) 0 0}.panel__head h2{font-size:var(--s-fs-sm);letter-spacing:var(--s-track-caps);text-transform:uppercase;color:var(--s-label);font-weight:var(--s-w-strong)}.panel__body{padding:14px}.panel__body.tight{padding:0}.tbl-wrap{overflow-x:auto}table.tbl{width:100%;border-collapse:collapse;font-size:var(--s-fs-sm)}.tbl th{text-align:left;padding:8px 10px;background:var(--s-surface-2);color:var(--s-th);font-size:var(--s-fs-sm);letter-spacing:var(--s-track-caps);text-transform:uppercase;font-weight:var(--s-w-strong);white-space:nowrap;border-bottom:1px solid var(--s-line-2)}.tbl td{padding:8px 10px;border-bottom:1px solid var(--s-line);vertical-align:middle}.tbl tr:last-child td{border-bottom:0}.tbl tbody tr{transition:background-color var(--s-t-fast) var(--s-e-out)}.tbl tr:hover td{background:var(--s-hover)}.tbl tr.clickable,.tbl th.clickable{cursor:pointer}.tbl th.clickable:hover{color:var(--s-text)}.tbl tr.clickable:focus-visible{outline:2px solid var(--s-focus);outline-offset:-2px}.tbl tr.selected td,.tbl tr[aria-selected=true] td{background:var(--s-selected)}.tbl td.num,.tbl th.num{text-align:right;font-variant-numeric:tabular-nums}h1,h2,h3,.eyebrow,.panel__head h2,.tbl th,.badge,.field>span,.nav__item,.tabs button,.seg button,.stat__head,.stat__value,.brand__text{font-family:var(--s-font)}.btn{--btn-edge: var(--s-btn-edge);--btn-fill: var(--s-btn-fill);--btn-edge-w: var(--s-edge);position:relative;isolation:isolate;display:inline-flex;align-items:center;gap:7px;min-height:var(--s-control-h);padding:7px 15px 7px 13px;border:0;cursor:pointer;text-decoration:none;white-space:nowrap;line-height:1.2;font-family:var(--s-font);font-size:var(--s-fs-sm);font-weight:var(--s-w-ui);letter-spacing:var(--s-track-ui);color:var(--s-btn-text);background:var(--btn-edge);clip-path:polygon(var(--s-cut) 0,100% 0,100% calc(100% - var(--s-cut)),calc(100% - var(--s-cut)) 100%,0 100%,0 var(--s-cut));transition:background-color var(--s-t-fast) var(--s-e-out),color var(--s-t-fast) var(--s-e-out),filter var(--s-t-fast) var(--s-e-out),transform var(--s-t-press)}.btn:before{content:"";position:absolute;inset:var(--btn-edge-w);z-index:-1;background:var(--btn-fill);clip-path:polygon(calc(var(--s-cut) - var(--s-cut-in)) 0,100% 0,100% calc(100% - var(--s-cut) + var(--s-cut-in)),calc(100% - var(--s-cut) + var(--s-cut-in)) 100%,0 100%,0 calc(var(--s-cut) - var(--s-cut-in)));transition:background-color var(--s-t-fast) var(--s-e-out)}.btn>*{position:relative;z-index:1}a.btn,a.btn:hover{color:var(--s-btn-text)}.btn:hover:not(:disabled){--btn-edge: var(--s-accent);--btn-fill: var(--s-btn-fill-hover);color:var(--s-text);filter:var(--s-btn-glow)}.btn:active:not(:disabled){transform:translateY(1px)}.btn:focus-visible{outline:0;--btn-edge: var(--s-focus);--btn-edge-w: 2px}.btn:disabled{opacity:.5;cursor:not-allowed}.btn.btn-primary{--btn-edge: var(--s-accent);--btn-fill: var(--s-accent);color:var(--s-on-accent);font-weight:var(--s-w-strong)}.btn.btn-primary:hover:not(:disabled){--btn-edge: var(--s-accent-hover);--btn-fill: var(--s-accent-hover);color:var(--s-on-accent)}.btn.btn-primary:focus-visible{--btn-edge: var(--s-text);--btn-edge-w: 2px}a.btn.btn-primary,a.btn.btn-primary:hover{color:var(--s-on-accent)}.btn.btn-danger{--btn-edge: var(--s-danger);color:var(--s-danger)}.btn.btn-danger:hover:not(:disabled){--btn-edge: var(--s-danger);--btn-fill: var(--s-danger-tint);color:var(--s-danger);filter:none}.btn.btn-sm{--s-cut: var(--s-cut-sm);min-height:var(--s-control-h-sm);padding:4px 10px 4px 9px;font-size:var(--s-fs-sm);gap:5px}.btn.btn-icon{--s-cut: var(--s-cut-sm);width:30px;height:30px;min-height:30px;padding:0;justify-content:center;color:var(--s-text-2)}.btn.btn-icon:hover:not(:disabled){color:var(--s-text)}.btn.wide{width:100%;justify-content:center}.btn .spinner{width:12px;height:12px;border-width:1.5px}.input,.select,textarea.input{width:100%;min-height:var(--s-control-h);padding:6px 10px;border-radius:var(--s-radius);border:1px solid var(--s-control);background:var(--s-sunken);color:var(--s-text);font:inherit;font-size:var(--s-fs-sm);font-weight:var(--s-w-body);transition:border-color var(--s-t-fast) var(--s-e-out),box-shadow var(--s-t-fast) var(--s-e-out)}textarea.input{min-height:64px}.input:hover:not(:disabled),.select:hover:not(:disabled){border-color:var(--s-text-2)}.input:focus,.select:focus,textarea.input:focus{outline:none;border-color:var(--s-focus);box-shadow:0 0 0 1px var(--s-focus)}.input::placeholder{color:var(--s-placeholder);opacity:1}.input:disabled,.select:disabled{color:var(--s-muted);background:var(--s-surface-2);border-color:var(--s-line-2);cursor:not-allowed}.select option{background:var(--s-raised);color:var(--s-text)}.field{display:flex;flex-direction:column;gap:5px;font-size:var(--s-fs-sm);color:var(--s-label);letter-spacing:var(--s-track-caps);text-transform:uppercase}.field>span{font-weight:var(--s-w-strong)}.field .input,.field .select,.field textarea{text-transform:none;letter-spacing:0}small{font-size:var(--s-fs-sm)}.field small,.field .hint{font-size:var(--s-fs-sm);text-transform:none;letter-spacing:0;font-weight:var(--s-w-body)}.tabs{display:flex;gap:2px;border-bottom:1px solid var(--s-line-2);margin-bottom:14px;overflow-x:auto;overflow-y:hidden;scrollbar-width:none}.tabs::-webkit-scrollbar{display:none}.tabs button{position:relative;padding:9px 14px;border:0;background:transparent;color:var(--s-muted);font-size:var(--s-fs-base);font-weight:var(--s-w-ui);letter-spacing:var(--s-track-ui);cursor:pointer;white-space:nowrap;transition:color var(--s-t-fast) var(--s-e-out)}.tabs button:after{content:"";position:absolute;left:8px;right:8px;bottom:-1px;height:2px;background:var(--s-accent);transform:scaleX(0);transition:transform var(--s-t-base) var(--s-e-out)}.tabs button:hover,.tabs button.active{color:var(--s-text)}.tabs button.active:after{transform:scaleX(1)}.seg{display:inline-flex;border:1px solid var(--s-control);border-radius:var(--s-radius);overflow:hidden;background:var(--s-sunken)}.seg button{padding:5px 11px;border:0;background:transparent;color:var(--s-text-2);font-size:var(--s-fs-sm);font-weight:var(--s-w-ui);letter-spacing:var(--s-track-ui);cursor:pointer;display:inline-flex;align-items:center;gap:4px;transition:background-color var(--s-t-fast) var(--s-e-out),color var(--s-t-fast) var(--s-e-out)}.seg button+button{border-left:1px solid var(--s-line-2)}.seg button:hover:not(.active){background:var(--s-hover);color:var(--s-text)}.seg button.active{background:var(--s-seg-on-bg);color:var(--s-seg-on-text)}.seg button.active .faint,.seg button.active .muted{color:inherit}input[type=radio],input[type=checkbox]{accent-color:var(--s-accent);width:14px;height:14px}details>summary{list-style:none}details>summary::-webkit-details-marker{display:none}.badge{display:inline-flex;align-items:center;gap:4px;padding:1px 7px;border-radius:var(--s-radius-chip);font-size:var(--s-fs-sm);font-weight:var(--s-w-strong);letter-spacing:.06em;text-transform:uppercase;line-height:1.55;border:1px solid var(--s-neutral-line);background:var(--s-neutral-tint);color:var(--s-text-2);white-space:nowrap;text-decoration:none}.badge.ok{border-color:var(--s-ok-line);color:var(--s-ok);background:var(--s-ok-tint)}.badge.warn{border-color:var(--s-warn-line);color:var(--s-warn);background:var(--s-warn-tint)}.badge.error{border-color:var(--s-danger-line);color:var(--s-danger);background:var(--s-danger-tint)}.badge.accent{border-color:var(--s-accent-line);color:var(--s-accent-text);background:var(--s-accent-tint)}.bar{height:6px;border-radius:3px;background:var(--s-track-bg);overflow:hidden}.bar>i{display:block;height:100%;background:var(--s-accent);border-radius:3px;transition:width var(--s-t-slow) var(--s-e-out)}.bar.warn>i{background:var(--s-warn-solid)}.bar.error>i{background:var(--s-danger-solid)}.empty{padding:26px;text-align:center;color:var(--s-muted);font-size:var(--s-fs-sm)}.spinner{width:18px;height:18px;border:2px solid var(--s-line-2);border-top-color:var(--s-accent);border-radius:50%;animation:spin .8s linear infinite;display:inline-block}@keyframes spin{to{transform:rotate(360deg)}}@keyframes pop-in{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:none}}.notice{display:flex;align-items:flex-start;gap:8px;padding:10px 12px;border-radius:var(--s-radius-panel);font-size:var(--s-fs-sm);border:1px solid var(--s-neutral-line);border-left-width:3px;background:var(--s-neutral-tint);color:var(--s-text-2)}.notice.warn{border-color:var(--s-warn-line);border-left-color:var(--s-warn-solid);background:var(--s-warn-tint);color:var(--s-warn)}.notice.error{border-color:var(--s-danger-line);border-left-color:var(--s-danger-solid);background:var(--s-danger-tint);color:var(--s-danger)}.notice.ok{border-color:var(--s-ok-line);border-left-color:var(--s-ok-solid);background:var(--s-ok-tint);color:var(--s-ok)}.notice.info{border-color:var(--s-info-line);border-left-color:var(--s-info-solid);background:var(--s-info-tint);color:var(--s-text)}pre.json{margin:0;padding:10px;background:var(--s-surface-2);border:1px solid var(--s-line);border-radius:var(--s-radius-panel);font-family:var(--s-font-mono);font-size:var(--s-fs-sm);overflow-x:auto;color:var(--s-text-2);white-space:pre-wrap;word-break:break-word}.kv{display:grid;grid-template-columns:max-content 1fr;gap:4px 14px;font-size:var(--s-fs-sm);margin:0}.kv dt{color:var(--s-muted)}.kv dd{margin:0;color:var(--s-text)}.stat{border:1px solid var(--s-line-2);background:var(--s-surface);border-radius:var(--s-radius-panel);padding:11px 14px 12px;min-width:0;box-shadow:var(--s-shadow-1)}.stat__head{display:flex;align-items:center;gap:6px;color:var(--s-label);font-weight:var(--s-w-strong);font-size:var(--s-fs-sm);letter-spacing:var(--s-track-caps);text-transform:uppercase}.stat__value{font-size:var(--s-fs-4xl);font-weight:var(--s-w-strong);color:var(--s-text);margin-top:6px;font-variant-numeric:tabular-nums;line-height:1.1}.stat__hint{color:var(--s-muted);font-size:var(--s-fs-sm);margin-top:4px}.stat.tone-ok .stat__value{color:var(--s-ok)}.stat.tone-warn .stat__value{color:var(--s-warn)}.stat.tone-error .stat__value{color:var(--s-danger)}.stat.tone-accent .stat__value{color:var(--s-accent-text)}.ui-toggle{width:38px;height:20px;border-radius:var(--s-radius);border:1px solid var(--s-control);background:var(--s-sunken);position:relative;cursor:pointer;padding:0;transition:background-color var(--s-t-fast),border-color var(--s-t-fast);flex:none;box-sizing:border-box}.ui-toggle:focus-visible{outline:2px solid var(--s-focus);outline-offset:2px}.ui-toggle .knob{position:absolute;top:50%;left:3px;width:12px;height:12px;margin-top:-6px;border-radius:2px;background:var(--s-muted);transition:transform var(--s-t-base) var(--s-e-out),background-color var(--s-t-fast)}.ui-toggle.on{background:var(--s-accent);border-color:var(--s-accent)}.ui-toggle.on .knob{transform:translate(18px);background:var(--s-on-accent)}.ui-toggle:disabled{opacity:.45;cursor:not-allowed}.st-ok{--st: var(--s-ok);--st-solid: var(--s-ok-solid);--st-dim: var(--s-ok-tint);--st-line: var(--s-ok-line)}.st-warn{--st: var(--s-warn);--st-solid: var(--s-warn-solid);--st-dim: var(--s-warn-tint);--st-line: var(--s-warn-line)}.st-critical{--st: var(--s-danger);--st-solid: var(--s-danger-solid);--st-dim: var(--s-danger-tint);--st-line: var(--s-danger-line)}.st-unknown{--st: var(--s-muted);--st-solid: var(--s-faint);--st-dim: var(--s-neutral-tint);--st-line: var(--s-neutral-line)}.st-info{--st: var(--s-info);--st-solid: var(--s-info-solid);--st-dim: var(--s-info-tint);--st-line: var(--s-info-line)}.dot{display:inline-block;flex:none;width:9px;height:9px;border-radius:50%;background:var(--st-solid, var(--s-faint))}.dot.st-critical{animation:dot-pulse 1.6s ease-in-out infinite}@keyframes dot-pulse{0%,to{box-shadow:0 0 0 0 var(--st-dim)}50%{box-shadow:0 0 0 4px var(--st-dim)}}.badge.st-ok,.badge.st-warn,.badge.st-critical,.badge.st-unknown,.badge.st-info{border-color:var(--st-line);color:var(--st);background:var(--st-dim)}.st-text{color:var(--st)}.dotted{display:inline-flex;align-items:center;gap:6px}.chip{display:inline-flex;align-items:center;gap:4px;padding:1px 7px;border:1px solid var(--s-line-2);border-radius:var(--s-radius-chip);background:var(--s-surface);font-family:var(--s-font);font-size:var(--s-fs-sm);font-weight:var(--s-w-ui);letter-spacing:.02em;color:var(--s-text-2);white-space:nowrap;line-height:1.5}.chip.accent{border-color:var(--s-accent-line);background:var(--s-accent-tint);color:var(--s-accent-text)}.chip.st-ok,.chip.st-warn,.chip.st-critical,.chip.st-info{border-color:var(--st-line);background:var(--st-dim);color:var(--st)}.meter{position:relative;height:6px;border-radius:3px;background:var(--s-track-bg);min-width:36px}.meter>i{position:absolute;inset:0 auto 0 0;width:var(--v, 0%);border-radius:3px;background:var(--st-solid, var(--s-accent));transition:width var(--s-t-slow) var(--s-e-out)}.meter.st-ok>i{background:var(--s-accent)}.meter:before,.meter:after{content:"";position:absolute;top:-2px;bottom:-2px;width:2px}.meter:before{left:var(--warn, 70%);background:var(--s-warn-solid)}.meter:after{left:var(--crit, 85%);background:var(--s-danger-solid)}.skel{display:block;height:12px;border-radius:var(--s-radius);background:linear-gradient(90deg,var(--s-line) 0%,var(--s-line-2) 50%,var(--s-line) 100%);background-size:200% 100%;animation:skel 1.4s ease-in-out infinite}@keyframes skel{0%{background-position:100% 0}to{background-position:-100% 0}}.notice.slim{padding:6px 10px;align-items:center}.notice .btn{margin-left:auto}.popover{position:fixed;z-index:81;width:min(320px,calc(100vw - 16px));padding:12px;display:flex;flex-direction:column;gap:10px;background:var(--s-raised);border:1px solid var(--s-line-2);border-radius:var(--s-radius-panel);box-shadow:var(--s-shadow-2);font-family:var(--s-font);font-size:var(--s-fs-sm);color:var(--s-text);animation:pop-in var(--s-t-base) var(--s-e-out)}.popover__title{font-family:var(--s-font);font-weight:var(--s-w-ui);font-size:var(--s-fs-md)}.popover__actions{display:flex;justify-content:flex-end;gap:6px}.popover-backdrop{position:fixed;inset:0;z-index:80}.tabs button:focus-visible,.seg button:focus-visible{outline:2px solid var(--s-focus);outline-offset:-2px}@media(prefers-reduced-motion:reduce){*{animation-duration:0s!important;transition-duration:0s!important}}:root{--s-banner-h: 30px}html.has-demo-banner{--s-offset: var(--s-banner-h)}html.has-demo-banner body{padding-top:var(--s-banner-h)}.demo-banner{position:fixed;top:0;left:0;right:0;z-index:95;height:var(--s-banner-h);display:flex;align-items:center;justify-content:center;padding:0 12px;background:var(--s-warn-tint);color:var(--s-warn);border-bottom:1px solid var(--s-warn-line);font-size:var(--s-fs-sm);font-weight:var(--s-w-strong);letter-spacing:var(--s-track-ui);text-align:center;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}.mono-ip{font-family:var(--s-font-mono);font-size:var(--s-fs-sm);white-space:nowrap}.link-btn{padding:0;border:0;background:none;color:var(--s-accent-text);font:inherit;cursor:pointer;text-decoration:underline;text-underline-offset:2px}.link-btn:hover{color:var(--s-accent-hover)}.page-head .meta{color:var(--s-muted);font-size:var(--s-fs-sm)}.toolbar{display:flex;flex-wrap:wrap;align-items:flex-end;gap:10px;margin-bottom:12px}.toolbar .field{min-width:150px}.toolbar .grow{flex:1 1 260px}.check{display:inline-flex;align-items:center;gap:7px;min-height:var(--s-control-h);color:var(--s-text-2);font-size:var(--s-fs-sm);cursor:pointer;white-space:nowrap}.count-line{color:var(--s-muted);font-size:var(--s-fs-sm);margin:0 0 8px}.tabs button .count{margin-left:6px;color:var(--s-faint);font-size:var(--s-fs-sm)}.tone-ok{--tn: var(--s-ok);--tn-solid: var(--s-ok-solid);--tn-tint: var(--s-ok-tint);--tn-line: var(--s-ok-line)}.tone-info{--tn: var(--s-text-2);--tn-solid: var(--s-faint);--tn-tint: var(--s-neutral-tint);--tn-line: var(--s-neutral-line)}.tone-warn{--tn: var(--s-warn);--tn-solid: var(--s-warn-solid);--tn-tint: var(--s-warn-tint);--tn-line: var(--s-warn-line)}.tone-critical{--tn: var(--s-danger);--tn-solid: var(--s-danger-solid);--tn-tint: var(--s-danger-tint);--tn-line: var(--s-danger-line)}.tone-dot{display:inline-block;flex:none;width:7px;height:7px;border-radius:50%;background:var(--tn-solid, var(--s-faint))}.chip.tone-ok,.chip.tone-info,.chip.tone-warn,.chip.tone-critical,.badge.tone-ok,.badge.tone-warn,.badge.tone-critical,.badge.tone-info{border-color:var(--tn-line);background:var(--tn-tint);color:var(--tn)}.cat-isp{--cat: var(--s-cat-isp)}.cat-gateway{--cat: var(--s-cat-gateway)}.cat-vpn{--cat: var(--s-cat-vpn)}.cat-tor{--cat: var(--s-cat-tor)}.cat-hosting{--cat: var(--s-cat-hosting)}.cat-private{--cat: var(--s-cat-private)}.cat-unknown{--cat: var(--s-cat-unknown)}.cat-dot{display:inline-block;flex:none;width:9px;height:9px;border-radius:50%;background:var(--cat, var(--s-cat-unknown))}.cat-badge{display:inline-flex;align-items:center;gap:6px;padding:1px 8px;border:1px solid var(--s-line-2);border-radius:var(--s-radius-chip);background:var(--s-surface);color:var(--s-text-2);font-size:var(--s-fs-sm);font-weight:var(--s-w-ui);white-space:nowrap;line-height:1.5}.cat-badge.hiding{color:var(--s-text);border-color:var(--s-control)}.leaflet-container{font-family:var(--s-font);font-size:var(--s-fs-sm);background:var(--s-sunken)}.leaflet-tile-pane{filter:var(--s-map-tiles-filter)}.leaflet-interactive.map-marker{fill:var(--cat, var(--s-cat-unknown));stroke:var(--s-surface)}.leaflet-interactive.map-marker:hover{stroke:var(--s-text)}.map-path{stroke:var(--s-map-path);fill:none}.leaflet-popup-content-wrapper,.leaflet-popup-tip{background:var(--s-raised);color:var(--s-text);box-shadow:var(--s-shadow-2)}.leaflet-popup-content-wrapper{border:1px solid var(--s-line-2);border-radius:var(--s-radius-panel)}.leaflet-popup-content{margin:10px 12px;font-size:var(--s-fs-sm);line-height:1.45}.leaflet-container a.leaflet-popup-close-button{color:var(--s-muted)}.leaflet-container a.leaflet-popup-close-button:hover{color:var(--s-text)}.leaflet-bar a,.leaflet-bar a:hover{background:var(--s-raised);color:var(--s-text);border-bottom-color:var(--s-line-2)}.leaflet-bar a:hover{background:var(--s-hover)}.leaflet-bar{border:1px solid var(--s-line-2)!important;box-shadow:var(--s-shadow-1)!important}.leaflet-container .leaflet-control-attribution{background:var(--s-surface);color:var(--s-muted);font-size:var(--s-fs-sm)}.leaflet-container .leaflet-control-attribution a{color:var(--s-accent-text)}.popup__title{font-weight:var(--s-w-strong);margin-bottom:6px}.popup__kv{display:grid;grid-template-columns:max-content 1fr;gap:2px 10px;margin:0}.popup__kv dt{color:var(--s-muted)}.popup__kv dd{margin:0;overflow-wrap:anywhere}.popup__links{display:flex;flex-direction:column;gap:2px;margin-top:6px}.popup__links a{color:var(--s-accent-text)}.tl{list-style:none;margin:0;padding:0}.tl__day{position:sticky;top:0;z-index:1;padding:8px 0 4px;background:var(--s-surface);color:var(--s-label);font-size:var(--s-fs-sm);font-weight:var(--s-w-strong);letter-spacing:var(--s-track-caps);text-transform:uppercase}.tl__item{position:relative;display:grid;grid-template-columns:112px minmax(0,1fr);gap:2px 12px;padding:6px 0 6px 18px}.tl__item:before{content:"";position:absolute;left:3px;top:0;bottom:0;width:1px;background:var(--s-line-2)}.tl__item .tone-dot{position:absolute;left:0;top:12px;width:7px;height:7px;box-shadow:0 0 0 3px var(--s-surface)}.tl__time{color:var(--s-muted);font-size:var(--s-fs-sm);font-variant-numeric:tabular-nums;padding-top:1px;white-space:nowrap}.tl__end{display:block}.tl__text{color:var(--s-text);font-size:var(--s-fs-base);overflow-wrap:anywhere}.tl__meta{grid-column:2;display:flex;flex-wrap:wrap;gap:4px 10px;color:var(--s-muted);font-size:var(--s-fs-sm)}.tl__item.tone-warn .tl__text,.tl__item.tone-critical .tl__text{color:var(--tn)}@media(max-width:640px){.tl__item{grid-template-columns:minmax(0,1fr)}.tl__meta{grid-column:1}}@media(max-width:720px){.tbl.stackable thead{display:none}.tbl.stackable,.tbl.stackable tbody,.tbl.stackable tr,.tbl.stackable td{display:block;width:100%}.tbl.stackable tr{padding:8px 0;border-bottom:1px solid var(--s-line)}.tbl.stackable tr:last-child{border-bottom:0}.tbl.stackable td{display:flex;gap:10px;align-items:baseline;padding:3px 12px;border:0;text-align:left}.tbl.stackable td.num{text-align:left}.tbl.stackable td:before{content:attr(data-label);flex:0 0 96px;color:var(--s-muted);font-size:var(--s-fs-sm)}.tbl.stackable td[data-label=""]:before{display:none}}
