@font-face{font-family:Montserrat;font-style:normal;font-display:swap;font-weight:400;src:url("./assets/montserrat-cyrillic-ext-400-normal-HO4VTNEJ.woff2") format("woff2"),url("./assets/montserrat-cyrillic-ext-400-normal-HT7TEDSC.woff") format("woff");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Montserrat;font-style:normal;font-display:swap;font-weight:400;src:url("./assets/montserrat-cyrillic-400-normal-XGJIKDGX.woff2") format("woff2"),url("./assets/montserrat-cyrillic-400-normal-DHCSNJK6.woff") format("woff");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:Montserrat;font-style:normal;font-display:swap;font-weight:400;src:url("./assets/montserrat-vietnamese-400-normal-QP7HZWF2.woff2") format("woff2"),url("./assets/montserrat-vietnamese-400-normal-2H5IW37K.woff") format("woff");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Montserrat;font-style:normal;font-display:swap;font-weight:400;src:url("./assets/montserrat-latin-ext-400-normal-LBVJDFUC.woff2") format("woff2"),url("./assets/montserrat-latin-ext-400-normal-OTF6F7FB.woff") format("woff");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Montserrat;font-style:normal;font-display:swap;font-weight:400;src:url("./assets/montserrat-latin-400-normal-YBIMBXKC.woff2") format("woff2"),url("./assets/montserrat-latin-400-normal-4VXUWRG7.woff") format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Montserrat;font-style:normal;font-display:swap;font-weight:500;src:url("./assets/montserrat-cyrillic-ext-500-normal-W64LPA3B.woff2") format("woff2"),url("./assets/montserrat-cyrillic-ext-500-normal-HGPQQTM4.woff") format("woff");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Montserrat;font-style:normal;font-display:swap;font-weight:500;src:url("./assets/montserrat-cyrillic-500-normal-MJ3CG4HD.woff2") format("woff2"),url("./assets/montserrat-cyrillic-500-normal-Y457DSXQ.woff") format("woff");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:Montserrat;font-style:normal;font-display:swap;font-weight:500;src:url("./assets/montserrat-vietnamese-500-normal-TJAKXS6R.woff2") format("woff2"),url("./assets/montserrat-vietnamese-500-normal-3O3RJJCC.woff") format("woff");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Montserrat;font-style:normal;font-display:swap;font-weight:500;src:url("./assets/montserrat-latin-ext-500-normal-622MS7GP.woff2") format("woff2"),url("./assets/montserrat-latin-ext-500-normal-PQXJS6OG.woff") format("woff");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Montserrat;font-style:normal;font-display:swap;font-weight:500;src:url("./assets/montserrat-latin-500-normal-GBQ7LNXL.woff2") format("woff2"),url("./assets/montserrat-latin-500-normal-H3RE3HRH.woff") format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Montserrat;font-style:normal;font-display:swap;font-weight:600;src:url("./assets/montserrat-cyrillic-ext-600-normal-SLGSFZUF.woff2") format("woff2"),url("./assets/montserrat-cyrillic-ext-600-normal-TQF6X33D.woff") format("woff");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Montserrat;font-style:normal;font-display:swap;font-weight:600;src:url("./assets/montserrat-cyrillic-600-normal-2MDJZLP5.woff2") format("woff2"),url("./assets/montserrat-cyrillic-600-normal-TD5T4WKT.woff") format("woff");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:Montserrat;font-style:normal;font-display:swap;font-weight:600;src:url("./assets/montserrat-vietnamese-600-normal-A4HOD6JP.woff2") format("woff2"),url("./assets/montserrat-vietnamese-600-normal-UUAAPPUA.woff") format("woff");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Montserrat;font-style:normal;font-display:swap;font-weight:600;src:url("./assets/montserrat-latin-ext-600-normal-YKJKLIQP.woff2") format("woff2"),url("./assets/montserrat-latin-ext-600-normal-OIBVWC3P.woff") format("woff");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Montserrat;font-style:normal;font-display:swap;font-weight:600;src:url("./assets/montserrat-latin-600-normal-MBWN25T6.woff2") format("woff2"),url("./assets/montserrat-latin-600-normal-YCOA2D66.woff") format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Montserrat;font-style:normal;font-display:swap;font-weight:700;src:url("./assets/montserrat-cyrillic-ext-700-normal-TIETHLRZ.woff2") format("woff2"),url("./assets/montserrat-cyrillic-ext-700-normal-C42WKPKJ.woff") format("woff");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Montserrat;font-style:normal;font-display:swap;font-weight:700;src:url("./assets/montserrat-cyrillic-700-normal-FVV6CHER.woff2") format("woff2"),url("./assets/montserrat-cyrillic-700-normal-7H7I4SSG.woff") format("woff");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:Montserrat;font-style:normal;font-display:swap;font-weight:700;src:url("./assets/montserrat-vietnamese-700-normal-ZOFKDHOA.woff2") format("woff2"),url("./assets/montserrat-vietnamese-700-normal-DQUQF44I.woff") format("woff");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Montserrat;font-style:normal;font-display:swap;font-weight:700;src:url("./assets/montserrat-latin-ext-700-normal-WWNPLUW7.woff2") format("woff2"),url("./assets/montserrat-latin-ext-700-normal-I3FFVTRB.woff") format("woff");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Montserrat;font-style:normal;font-display:swap;font-weight:700;src:url("./assets/montserrat-latin-700-normal-2TPSQG6S.woff2") format("woff2"),url("./assets/montserrat-latin-700-normal-B647EJ6E.woff") format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Fira Mono;font-style:normal;font-display:swap;font-weight:400;src:url("./assets/fira-mono-cyrillic-ext-400-normal-EX7VARTS.woff2") format("woff2"),url("./assets/fira-mono-cyrillic-ext-400-normal-S62WTB4C.woff") format("woff");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Fira Mono;font-style:normal;font-display:swap;font-weight:400;src:url("./assets/fira-mono-cyrillic-400-normal-BLAGXRCE.woff2") format("woff2"),url("./assets/fira-mono-cyrillic-400-normal-KJ2KJ7OV.woff") format("woff");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:Fira Mono;font-style:normal;font-display:swap;font-weight:400;src:url("./assets/fira-mono-greek-ext-400-normal-DYEQIJH7.woff2") format("woff2"),url("./assets/fira-mono-greek-ext-400-normal-VDBODLQ7.woff") format("woff");unicode-range:U+1F00-1FFF}@font-face{font-family:Fira Mono;font-style:normal;font-display:swap;font-weight:400;src:url("./assets/fira-mono-greek-400-normal-COGHKMOA.woff2") format("woff2"),url("./assets/fira-mono-greek-400-normal-MEG6QXKL.woff") format("woff");unicode-range:U+0370-0377,U+037A-037F,U+0384-038A,U+038C,U+038E-03A1,U+03A3-03FF}@font-face{font-family:Fira Mono;font-style:normal;font-display:swap;font-weight:400;src:url("./assets/fira-mono-symbols2-400-normal-UITXT77Q.woff2") format("woff2"),url("./assets/fira-mono-symbols2-400-normal-NH7ODMWI.woff") format("woff");unicode-range:U+2000-2001,U+2004-2008,U+200A,U+23B8-23BD,U+2500-259F}@font-face{font-family:Fira Mono;font-style:normal;font-display:swap;font-weight:400;src:url("./assets/fira-mono-latin-ext-400-normal-DIKTZ5PW.woff2") format("woff2"),url("./assets/fira-mono-latin-ext-400-normal-H5NZ55UN.woff") format("woff");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Fira Mono;font-style:normal;font-display:swap;font-weight:400;src:url("./assets/fira-mono-latin-400-normal-NA3VLV7E.woff2") format("woff2"),url("./assets/fira-mono-latin-400-normal-DRU4SE3N.woff") format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{font-family:Montserrat,Arial,sans-serif;color:#edf1f3;background:#0b0e11;font-synthesis:none;color-scheme:dark;letter-spacing:0;--bg: #0b0e11;--surface: #13171b;--line: #282e33;--muted: #98a4ad;--green: #43d18d;--yellow: #efc66d;--red: #ff6681;--blue: #70b8ef}*{box-sizing:border-box;letter-spacing:0}body{margin:0;font-size:14px}button,input,select{font:inherit}button{cursor:pointer}button:disabled{opacity:.45;cursor:not-allowed}button:focus-visible,input:focus-visible,select:focus-visible,summary:focus-visible,[tabindex]:focus-visible{outline:2px solid var(--blue);outline-offset:3px}button{border:1px solid var(--line);background:#191e23;color:inherit;border-radius:5px}button:hover{background:#222a30}a{color:var(--blue)}[hidden]{display:none!important}svg.lucide{width:19px;height:19px;flex-shrink:0}h1,h2,h3,p{margin:0}h1{font-size:28px;font-weight:600}h2{font-size:16px;font-weight:600}h3{font-size:15px;margin:25px 0 14px}b,strong{font-weight:600}.muted,.empty{color:var(--muted)}.mono,.counts b,#total-users,.metric b{font-family:Fira Mono,monospace;font-variant-numeric:tabular-nums}.green,.online{color:var(--green)}.red,.offline{color:var(--red)}.yellow,.connecting,.degraded{color:var(--yellow)}.unknown,.disabled{color:var(--muted)}.icon{height:34px;width:34px;display:inline-flex;align-items:center;justify-content:center;background:transparent;border-color:transparent;flex-shrink:0}.small{font-size:12px;padding:7px 10px;display:inline-flex;align-items:center;gap:8px}.primary{background:#43d18d;color:#071910;border-color:#43d18d;padding:11px 18px;font-weight:600}.primary:hover{background:#68dfa5}.danger{color:var(--red)}.eyebrow{font-size:11px;color:var(--muted);font-weight:600;margin-bottom:10px}.dot{display:inline-block;background:currentColor;height:7px;width:7px;border-radius:50%;flex-shrink:0}.initial{padding:40px;text-align:center;color:var(--muted)}#app{display:grid;grid-template-columns:430px minmax(0,1fr);min-height:100dvh}.sidebar{height:100dvh;position:sticky;top:0;border-right:1px solid var(--line);background:#101418;display:flex;flex-direction:column;min-width:0}.side-header{display:flex;align-items:center;justify-content:space-between;padding:25px 20px 20px}.brand{display:flex;align-items:center;gap:10px}.brand>svg{color:var(--green);height:25px;width:25px}.brand div{display:flex;flex-direction:column;gap:2px}.brand strong{font-size:16px}.brand div span{font-size:12px;color:var(--muted)}.brand .dot{margin-left:3px}.side-header nav{display:flex;gap:1px}.counts{display:grid;grid-template-columns:repeat(3,1fr);padding:0 20px 18px;border-bottom:1px solid var(--line)}.counts div{display:flex;flex-direction:column;gap:7px}.counts span{font-size:12px;color:var(--muted)}.counts b{font-size:23px;font-weight:400}.side-sources{padding:15px 20px 10px;line-height:1.9;font-size:11px;color:var(--muted)}.list-heading{display:flex;justify-content:space-between;font-size:10px;color:#72808a;padding:12px 20px 10px}.node-list{overflow-y:auto;min-height:0;padding:0 9px 15px;scrollbar-width:thin;flex:1}.node{border:0;border-radius:3px;text-align:left;display:block;width:100%;padding:0 9px;background:transparent;min-height:37px}.node-line{min-height:37px;display:grid;grid-template-columns:22px minmax(0,1fr) 38px 45px 64px;align-items:center;gap:7px}.node-name{font-size:12px;font-weight:500;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.flag{font-size:16px}.users{font-size:12px;text-align:right}.state{font-size:10px;text-align:right;white-space:nowrap}.scan-cell{font-size:10px;text-align:right;font-family:Fira Mono,monospace}.badge{font-size:9px;border:1px solid #344348;padding:1px 3px;border-radius:3px;margin-left:5px;color:var(--blue)}.ru-start{margin-top:12px;border-top:1px solid var(--line);padding-top:8px}.node.country-active{background:#213137}.full .node{background:var(--surface);border:1px solid var(--line);border-radius:7px;margin-bottom:10px;padding:15px}.node-card-head{display:grid;grid-template-columns:30px minmax(0,1fr) auto;align-items:center;gap:10px}.node-card-head .flag{font-size:26px}.node-identity{display:grid;gap:5px;min-width:0}.node-card-head .node-name{font-size:13px;font-weight:600}.node-country{color:var(--muted);font-size:10px}.node-card-meta{display:grid;gap:7px;justify-items:end}.node-card-meta .users{display:flex;align-items:center;gap:5px}.node-card-meta .users svg{width:12px;height:12px;color:var(--muted)}.probe-report{margin-top:19px}.probe-verdict{display:flex;align-items:flex-start;gap:7px;font-size:11px;line-height:1.6;color:#c0ccd1}.probe-verdict svg{width:15px;height:15px;flex-shrink:0;margin-top:1px}.probe-report[data-tone=clear] .probe-verdict{color:#87d7b3}.probe-report[data-tone=warning] .probe-verdict{color:#f4bf73}.probe-report[data-tone=muted] .probe-verdict{color:var(--muted)}.probe-time{display:flex;align-items:flex-start;gap:7px;margin-top:5px;color:var(--muted);font-size:10px;line-height:1.6}.probe-time svg{width:13px;height:13px;flex-shrink:0;margin-top:1px}.probe-totals{display:flex;flex-wrap:wrap;justify-content:space-between;gap:7px;font-size:10px;margin:19px 0 13px;padding-bottom:11px;border-bottom:1px solid var(--line);color:var(--muted)}.probe-totals b{color:#d8e2e5;margin-left:4px;font-weight:400}.probe-rows{display:grid;gap:13px}.probe-row{--probe-color: #81929c;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:6px 8px;align-items:center;font-size:10px;color:#97a7b0}.probe-row.ok{--probe-color: #40c692}.probe-row.blocked{--probe-color: #ef8793}.probe-row.whitelist{--probe-color: #e6bb69}.probe-row.missing{--probe-color: #61717a}.probe-label{display:flex;align-items:center;gap:7px;color:var(--probe-color)}.probe-label svg{width:13px;height:13px;flex-shrink:0}.probe-row b{color:#e1e7eb;font-weight:400}.probe-row progress,.probe-running progress{grid-column:1 / -1;display:block;width:100%;height:4px;border:none;border-radius:2px;overflow:hidden;appearance:none;background:#2a333a;color:var(--probe-color, #79bbda)}.probe-row progress::-webkit-progress-bar,.probe-running progress::-webkit-progress-bar{background:#2a333a}.probe-row progress::-webkit-progress-value,.probe-running progress::-webkit-progress-value{background:var(--probe-color, #79bbda);border-radius:2px}.probe-row progress::-moz-progress-bar,.probe-running progress::-moz-progress-bar{background:var(--probe-color, #79bbda)}.probe-running{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px;margin-top:12px;color:#91c8df;font-size:10px}.probe-running>span:first-child{display:flex;align-items:center;gap:7px}.probe-running svg{width:12px;height:12px}.probe-running progress:not([value]){background:repeating-linear-gradient(110deg,#2a333a 0 8px,#56849b 8px 16px)}.probe-history{margin-top:21px}.probe-history-heading,.probe-history-labels{display:flex;flex-wrap:wrap;justify-content:space-between;gap:5px;font-size:9px;color:var(--muted)}.probe-history-heading{margin-bottom:8px}.probe-history-bars{display:grid;grid-template-columns:repeat(48,minmax(0,1fr));gap:2px;height:22px}.probe-history-bars span{border-radius:2px;background:#303a41}.probe-history-bars .clear{background:#36b586}.probe-history-bars .mixed{background:#759789}.probe-history-bars .yellow{background:#d6ac62}.probe-history-bars .red{background:#d57583}.probe-history-bars .partial-slot{background-image:linear-gradient(0deg,#303a41 50%,transparent 50%)}.probe-history-labels{margin-top:6px}.probe-empty{margin-top:17px;border-top:1px solid var(--line);padding-top:13px;color:var(--muted)}.probe-empty>span{display:flex;align-items:center;gap:7px;font-size:11px}.probe-empty svg{width:14px;height:14px}.probe-empty small{display:block;margin-top:7px;font-size:10px;line-height:1.6}.probe-mini{padding:0 0 6px 29px}.probe-mini[data-tone=muted]{filter:grayscale(1);opacity:.6}.probe-strip{width:100%;height:3px;display:block;border-radius:2px;overflow:hidden}.probe-track{fill:#29333a}.probe-fill.ok{fill:#36b586}.probe-fill.uncertain{fill:#83969f}.probe-fill.blocked{fill:#d57583}.probe-fill.whitelist{fill:#d6ac62}.probe-fill.missing{fill:#3e4c55}.node-check{font-size:10px;color:var(--muted);padding-bottom:4px}.side-footer{padding:14px 20px;border-top:1px solid var(--line);display:flex;justify-content:space-between;font-size:10px;color:#7b8891;gap:10px}.side-footer span:first-child{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}main{padding:35px 36px 18px;min-width:0;max-width:1600px;width:100%;margin:auto}.main-header{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:38px}.segmented{display:flex;border:1px solid var(--line);padding:3px;border-radius:6px;flex-shrink:0}.segmented button{border:0;background:transparent;color:var(--muted);padding:8px 11px;font-size:12px;min-width:100px}.segmented button[aria-pressed=true]{background:#283238;color:#f2f5f7}.overview{display:flex;align-items:center;justify-content:space-between;gap:25px;padding-bottom:28px}.overview .muted{font-size:13px}.total-line{display:flex;align-items:baseline;gap:16px;margin-top:10px;flex-wrap:wrap}#total-users{font-size:43px;font-weight:400;line-height:1.3}#total-note{font-size:11px;color:var(--muted)}.overview-meta{display:flex;flex-direction:column;gap:10px;color:var(--muted);font-size:11px;text-align:right}.band{border-top:1px solid var(--line);padding:25px 0}.section-heading{display:flex;justify-content:space-between;align-items:center;margin-bottom:18px;gap:12px}.section-heading .muted{font-size:11px}.empty{font-size:12px;line-height:1.8;padding:13px 0}.infrastructure{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}.infra{text-align:left;padding:13px;background:var(--surface)}.infra-title{display:flex;align-items:center;gap:10px;min-height:22px}.infra-title>svg{color:var(--muted)}.infra-title b{font-size:12px;overflow-wrap:anywhere}.infra-title .state{margin-left:auto}.infra-time{display:block;color:var(--muted);font-size:10px;margin-top:12px}.metric{display:grid;grid-template-columns:1fr auto;gap:7px;margin-top:10px;font-size:11px}.metric meter{grid-column:1/-1;width:100%;height:5px;accent-color:var(--green)}.warning{background:#201e17;color:#eac77d;border-left:2px solid #aa9051;padding:12px 14px;font-size:12px;line-height:1.75;border-radius:0;overflow-wrap:anywhere}#global-warning{margin-bottom:20px}.attention-row{border:0;border-bottom:1px solid #20262b;border-radius:0;background:transparent;display:grid;grid-template-columns:8px minmax(100px,1fr) minmax(0,1.7fr) 18px;width:100%;text-align:left;gap:12px;align-items:center;padding:14px 0;font-size:12px}.attention-row span:not(.dot){color:var(--muted);font-size:11px}.attention-row strong{overflow-wrap:anywhere}.event{display:grid;grid-template-columns:64px 7px minmax(0,1fr) 54px;gap:13px;align-items:start;padding:14px 5px;border-bottom:1px solid #1c2329;transition:background .18s,transform .18s}.event:hover{background:#13191e;transform:scale(1.008)}.event .dot{margin-top:5px}.event-time,.event time{color:#7b8891;font-size:10px}.event b{font-size:12px;overflow-wrap:anywhere}.event p{font-size:11px;color:var(--muted);line-height:1.65;margin-top:5px}.event time{text-align:right}.main-footer{display:flex;justify-content:space-between;gap:15px;color:#697883;font-size:10px;border-top:1px solid var(--line);padding-top:17px}.hint{display:inline-flex;align-items:center;justify-content:center;font-family:serif;font-size:11px;border:1px solid #657580;border-radius:50%;height:14px;width:14px;color:#9aa8b2;margin-left:6px}#map{width:100%;container-type:inline-size;--geo-tone: #86989e}.geo-tone-good{--geo-tone: #44d3a0}.geo-tone-warn{--geo-tone: #e8bd65}.geo-tone-bad{--geo-tone: #f47791}.geo-tone-relay{--geo-tone: #78bdf4}.geo-tone-unknown{--geo-tone: #93a5ae}.geo-tone-idle{--geo-tone: #63727a}.geo-summary{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:18px}#geo-stats{display:flex;gap:22px;align-items:center}#geo-stats>span{color:var(--muted);font-size:11px;white-space:nowrap}#geo-stats b{color:var(--text);font-family:Fira Mono,monospace;margin-right:4px;font-size:15px;font-weight:400}#geo-stats .geo-issues b{color:var(--yellow)}.geo-live{display:flex;gap:7px;align-items:center;font:10px Fira Mono,monospace;color:#7dbda8;white-space:nowrap}.geo-live .dot{width:5px;height:5px}.geo-live.stale{color:#8b9ba3}.geo-scene{background-color:#0e1417;background-image:linear-gradient(#b7d5dc06 1px,transparent 1px),linear-gradient(90deg,#b7d5dc06 1px,transparent 1px);background-size:46px 46px;border-block:1px solid #263137}.geo-viewport{position:relative;min-height:350px;overflow:hidden}.geo-routes{width:100%;height:100%;display:block;position:absolute;inset:0;pointer-events:none}.geo-route{transition:opacity .18s ease}.geo-line,.geo-packet{fill:none;stroke-linecap:round;vector-effect:non-scaling-stroke}.geo-line{stroke:var(--geo-tone);stroke-width:1;opacity:.3}.geo-line.inward{stroke:#8abfdd;opacity:.18}.geo-packet{opacity:0;stroke:var(--geo-tone);stroke-width:2.4;stroke-dasharray:80 420;animation:geo-flow-out var(--flow-duration, 7s) linear infinite;animation-delay:var(--flow-delay, 0s);animation-play-state:paused}.geo-packet.inward{stroke:#91cbea;stroke-width:1.7;stroke-dasharray:50 450;animation-name:geo-flow-in}.geo-route.is-flowing .geo-packet{opacity:.9;animation-play-state:running}.geo-route:not(.is-flowing) .geo-line{stroke-dasharray:4 7;opacity:.16}.geo-has-focus .geo-route:not(.geo-active){opacity:.22}.geo-route.geo-active .geo-line{opacity:.48}.geo-paused .geo-packet{animation-play-state:paused!important}@keyframes geo-flow-out{0%{stroke-dashoffset:1000}to{stroke-dashoffset:0}}@keyframes geo-flow-in{0%{stroke-dashoffset:0}to{stroke-dashoffset:1000}}.geo-pins{position:absolute;inset:0}.geo-pin{position:absolute;height:56px;display:grid;grid-template-columns:26px minmax(0,max-content) 29px;justify-content:start;gap:8px;padding:7px 2px;border:0;border-radius:4px;background:#0e1417e8;align-items:center;text-align:left;transition:background .18s,box-shadow .18s}.geo-pin:hover,.geo-pin.geo-active{background:#172226}.geo-pin:focus-visible{outline:1px solid var(--geo-tone);outline-offset:5px}.geo-pin:disabled{opacity:1;cursor:default}.geo-orbit-dot{width:26px;height:26px;display:grid;place-items:center;position:relative;color:var(--geo-tone)}.geo-orbit-dot:before{content:"";position:absolute;inset:1px;border:1px solid currentColor;border-radius:50%;opacity:.23}.geo-orbit-dot>i{width:10px;height:10px;border-radius:50%;background:currentColor;box-shadow:0 0 0 5px color-mix(in srgb,currentColor 9%,transparent)}.geo-pin.geo-active .geo-orbit-dot:before{opacity:.65}.geo-hub .geo-orbit-dot>i{width:12px;height:12px}.geo-hub .geo-orbit-dot:before{inset:-3px;opacity:.36}.geo-pin-label{display:grid;gap:5px;min-width:0}.geo-pin-label strong{font-size:13px;font-weight:600;overflow-wrap:anywhere;line-height:1.2;color:#eaf0f2}.geo-pin-label small{color:#83979f;font:9px Fira Mono,monospace;white-space:nowrap}.geo-pin-count{width:26px;height:26px;display:grid;place-items:center;border-radius:50%;background:color-mix(in srgb,var(--geo-tone) 16%,transparent);color:var(--geo-tone);font:12px Fira Mono,monospace}.geo-side-left{grid-template-columns:29px minmax(0,max-content) 26px;justify-content:end;text-align:right}.geo-side-left .geo-orbit-dot{grid-column:3;grid-row:1}.geo-side-left .geo-pin-label{grid-column:2;grid-row:1}.geo-side-left .geo-pin-count{grid-column:1;grid-row:1}.geo-hub{background:#122026;grid-template-columns:26px minmax(0,1fr) 29px;justify-content:stretch}.geo-hub .geo-pin-label strong{font-size:15px}.geo-scene-footer{padding:20px 24px 19px;display:grid;gap:24px}.geo-services{display:flex;flex-wrap:wrap;align-items:center;gap:12px 22px}.geo-services:empty{display:none}.geo-service-heading{width:100%;font:9px Fira Mono,monospace;color:#7e929d}.geo-service{display:inline-flex;gap:8px;align-items:center;color:#c7d1d7;font-size:11px;font-weight:600}.geo-legend{display:flex;flex-wrap:wrap;gap:10px 21px;color:#859aa6;font-size:10px}.geo-legend span{display:inline-flex;align-items:center;gap:7px}.geo-legend i,.geo-status-dot{display:inline-block;width:6px;height:6px;background:var(--geo-tone);border-radius:50%;flex:0 0 6px}.geo-empty{position:absolute;inset:0;display:grid;place-items:center;color:var(--muted);font-size:12px}.geo-details{border-bottom:1px solid var(--line);padding-bottom:8px}.geo-country-heading{min-height:60px;display:flex;gap:10px;align-items:center;padding:12px 4px}.geo-country-heading strong{font-size:13px;overflow-wrap:anywhere}.geo-detail-flag{font-size:18px}.geo-detail-total{color:var(--muted);font-size:10px}.geo-country-heading .geo-back{margin-left:auto;width:28px;height:28px;flex-shrink:0}.geo-country-heading .geo-back svg{width:16px;height:16px}.geo-country-body{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 16px;max-height:280px;overflow-y:auto;scrollbar-width:thin}.geo-node{display:grid;grid-template-columns:5px minmax(0,1fr) auto 12px;gap:10px;width:100%;padding:13px 4px;text-align:left;align-items:center;border:0;border-top:1px solid var(--line);border-radius:0;background:transparent}.geo-node b{display:block;font-size:11px;overflow-wrap:anywhere}.geo-node small{display:block;font-size:9px;color:var(--muted);margin-top:5px}.geo-node .mono{font-size:10px}.geo-node svg{width:12px;height:12px;color:#8aa0ab}.geo-compact .geo-pin{gap:5px;grid-template-columns:22px minmax(0,1fr);justify-content:stretch}.geo-compact .geo-side-left{grid-template-columns:minmax(0,1fr) 22px}.geo-compact .geo-side-left .geo-orbit-dot{grid-column:2}.geo-compact .geo-side-left .geo-pin-label{grid-column:1}.geo-compact .geo-pin-label strong{font-size:11px}.geo-compact .geo-pin-label small{font-size:8px}.geo-compact .geo-pin-count{position:absolute;left:3px;top:14px;width:21px;height:21px;font-size:10px}.geo-compact .geo-side-left .geo-pin-count{left:auto;right:3px}.geo-compact .geo-orbit-dot>i{visibility:hidden}.geo-compact .geo-orbit-dot{width:22px;height:22px}.geo-compact .geo-hub .geo-pin-label strong{font-size:14px}.geo-compact .geo-line{opacity:.14}@container (max-width: 420px){#geo-stats{gap:12px}#geo-stats b{font-size:13px}#geo-stats>span{font-size:9px}.geo-live{font-size:9px}.geo-scene-footer{padding:16px 12px}.geo-legend{font-size:9px;gap:12px}.geo-country-body{grid-template-columns:1fr}}@media(prefers-reduced-motion:reduce){.geo-packet{animation:none!important}.geo-route.is-flowing .geo-packet{opacity:.35;stroke-dasharray:5 100}.geo-route,.geo-pin{transition:none}}dialog{background:#13181d;color:var(--text);border:1px solid #354049;border-radius:8px;width:min(680px,calc(100% - 28px));max-height:90dvh;padding:0;box-shadow:0 20px 70px #0007}dialog::backdrop{background:#000a;backdrop-filter:blur(3px)}dialog>header{display:flex;justify-content:space-between;align-items:center;gap:12px;border-bottom:1px solid var(--line);padding:14px 20px;position:sticky;top:0;background:#13181d;z-index:1}dialog>header h2{overflow-wrap:anywhere}#modal-content{padding:22px;font-size:13px;line-height:1.65}dl{display:grid;grid-template-columns:150px minmax(0,1fr);gap:10px;margin:0}dt{color:var(--muted);font-size:12px}dd{margin:0;overflow-wrap:anywhere;font-size:12px}.copy-line{display:flex;align-items:center;justify-content:space-between}.history-bars{display:grid;grid-template-columns:repeat(48,minmax(0,1fr));gap:3px;margin:10px 0}.history-bars span{height:26px;border-radius:2px;background:#273139}.history-bars .online{background:#33936c}.history-bars .offline{background:#e66079}.history-bars .partial{opacity:.45}.probe-summary{display:flex;flex-wrap:wrap;gap:15px;margin:12px 0}.probes>div{display:grid;grid-template-columns:1fr 1fr 1fr;gap:10px;padding:8px 0;border-bottom:1px solid var(--line);font-size:11px;overflow-wrap:anywhere}summary{cursor:pointer;margin:14px 0;color:var(--blue)}form label{display:flex;flex-direction:column;gap:8px;margin:15px 0;font-size:12px;color:#bcc7cd}input,select{width:100%;background:#0e1317;border:1px solid #364149;color:var(--text);border-radius:5px;min-height:40px;padding:9px 11px;min-width:0}input[type=checkbox]{width:16px;height:16px;min-height:16px;accent-color:var(--green)}label.check{flex-direction:row;align-items:center;gap:10px}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:15px}.form-error{color:var(--red);font-size:12px;min-height:18px}.session-list>div,.user-list>div{display:flex;flex-direction:column;gap:6px;border-bottom:1px solid var(--line);padding:12px 0}.session-list span,.user-list span{font-size:11px;color:var(--muted);overflow-wrap:anywhere}.user-list button{margin-right:8px}.audit{color:var(--muted);font-size:11px;line-height:2}.login-panel{width:min(360px,calc(100% - 40px));margin:10dvh auto;padding:22px 0}.login-panel h1{font-size:32px;margin-bottom:28px}.login-panel .eyebrow{margin-top:23px}.brand-mark{color:var(--green)}.brand-mark svg{height:32px;width:32px}.login-panel .primary{width:100%;margin-top:10px}#toast{position:fixed;bottom:25px;left:50%;transform:translate(-50%);max-width:calc(100% - 30px);background:#25342e;color:#d8f1e4;border:1px solid #466757;border-radius:6px;padding:13px 20px;font-size:13px;z-index:10;box-shadow:0 8px 25px #0007}@media(min-width:1700px){main{padding:45px 65px 25px}}@media(max-width:1100px){#app{grid-template-columns:390px minmax(0,1fr)}main{padding:25px 23px}.main-header{align-items:flex-start;flex-direction:column;gap:20px;margin-bottom:28px}.infrastructure{grid-template-columns:1fr}.overview{align-items:flex-start;flex-direction:column;gap:16px}.overview-meta{text-align:left}.node-line{grid-template-columns:20px minmax(0,1fr) 32px 39px 60px;gap:5px}}@media(max-width:760px){#app{display:flex;flex-direction:column}.sidebar{height:auto;position:relative;border-right:0;border-bottom:1px solid var(--line)}.side-header{padding:20px}.side-sources{display:flex;justify-content:space-between;gap:10px;flex-wrap:wrap}.node-list{max-height:480px;padding:0 10px 10px}.side-footer{display:none}.list-heading{padding-top:8px}main{padding:28px 20px 20px}.main-header{flex-direction:row;align-items:center;gap:12px}h1{font-size:23px}.eyebrow{font-size:9px}.segmented button{min-width:0;padding:8px;font-size:10px}.total-line{gap:12px}#total-users{font-size:37px}.overview-meta{font-size:10px}.overview{flex-direction:row}.attention-row{grid-template-columns:7px 1fr 1.2fr 16px;gap:9px}.event{grid-template-columns:57px 7px minmax(0,1fr);gap:10px}.event time{display:none}.node-line{grid-template-columns:22px minmax(0,1fr) 38px 45px 64px;gap:7px}.node-name{font-size:12px}.history-bars{gap:2px}dialog dl{grid-template-columns:115px minmax(0,1fr)}#modal-content{padding:17px}.main-footer{font-size:9px}}@media(max-width:390px){.main-header{flex-direction:column;align-items:flex-start}.overview{flex-direction:column}.node-line{grid-template-columns:19px minmax(0,1fr) 32px 36px 53px;gap:4px}.node-name{font-size:11px}.state{font-size:9px}.side-header{padding:17px 15px}dl{grid-template-columns:1fr!important}.form-grid{grid-template-columns:1fr;gap:0}}main{margin:0 auto}:root{--text: #edf1f3}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important;scroll-behavior:auto!important}.event:hover{transform:none}}
