*{box-sizing:border-box;margin:0;padding:0}body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif}code{font-family:source-code-pro,Menlo,Monaco,Consolas,Courier New,monospace}#root{height:100vh;width:100vw}.cluster-map{align-items:center;border-left:1px solid #0003;cursor:default;display:flex;flex:1 1;height:100%;justify-content:center;position:relative}.cluster-map.dark{background:radial-gradient(circle at top,#0b0f26,#01040c);border-left:1px solid #ffffff14}.cluster-map.light{background:linear-gradient(135deg,#edf2ff,#f7f9ff);border-left:1px solid #00000014}.globe-wrapper{align-items:center;display:flex;height:100%;justify-content:center;overflow:hidden;padding:0;position:relative;width:100%}.cluster-map canvas,.globe-wrapper>*{height:100%!important;width:100%!important}.cluster-map canvas{display:block;margin:0 auto;max-height:100%;max-width:100%;object-fit:contain}.cluster-map.empty{align-items:center;color:#ffffffbf;display:flex;font-size:1rem;justify-content:center}.cluster-map.light.empty{color:#333}.globe-node{align-items:center;border:3px solid #fff;border-radius:50%;box-shadow:0 4px 14px #00000073;cursor:pointer;display:inline-flex;height:52px;justify-content:center;overflow:hidden;transition:transform .2s ease,border-color .2s ease,box-shadow .2s ease;width:52px}.globe-node.dark{background:#10101a}.globe-node.light{background:#fff}.globe-node img{height:100%;object-fit:cover;width:100%}.globe-node.selected{border-width:4px;box-shadow:0 0 20px #ffd54fe6;transform:scale(1.12)}.globe-node:focus-visible{outline:2px solid #ffd54f;outline-offset:4px}.globe-node.status-online{border-color:#4caf50}.globe-node.status-warning{border-color:#ff9800}.globe-node.status-offline{border-color:#9e9e9e}.node-info-card{-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);border-radius:6px;box-shadow:0 15px 35px #00000040;padding:.4rem;pointer-events:auto;position:absolute;z-index:5}.globe-wrapper .node-info-card--globe{align-items:stretch;bottom:2rem!important;display:flex;flex-direction:column;left:50%!important;max-height:60vh;overflow-y:auto;position:fixed!important;transform:translateX(-50%)!important;width:clamp(180px,15vw,240px)!important;z-index:1000!important}.node-info-card.dark{background:#050615d9;border:1px solid #ffffff14;color:#f8fbff}.node-info-card.light{background:#ffffffe6;border:1px solid #0000000d;color:#333}.node-info-card__header{align-items:flex-start;display:flex;gap:.25rem;justify-content:space-between;margin-bottom:.3rem}.node-info-card__header-right{align-items:center;display:flex;flex-shrink:0;gap:.5rem}.node-info-card__close{align-items:center;background:#0000;border:none;border-radius:3px;color:inherit;cursor:pointer;display:flex;font-size:1.1rem;height:18px;justify-content:center;line-height:1;opacity:.7;padding:.15rem;transition:background-color .2s ease,opacity .2s ease;width:18px}.node-info-card__close:hover{background-color:#0000001a;opacity:1}.node-info-card.dark .node-info-card__close:hover{background-color:#ffffff1a}.node-info-card__close:focus-visible{opacity:1;outline:2px solid currentColor;outline-offset:2px}.node-info-card__header h3{font-size:.7rem;font-weight:600;line-height:1.2;margin:0}.node-info-card__header p{font-size:.6rem;line-height:1.2;margin:.08rem 0 0;opacity:.8}.status-pill{border-radius:999px;font-size:.5rem;font-weight:600;letter-spacing:.05em;padding:.12rem .35rem;text-transform:uppercase}.status-pill.status-online{background:#4caf5026;color:#4caf50}.status-pill.status-warning{background:#ff98002e;color:#ff9800}.status-pill.status-offline{background:#9e9e9e33;color:#bdbdbd}.node-info-card__body{display:flex;flex-direction:column;flex-grow:0;flex-shrink:0;gap:.25rem}.info-row{align-items:center;display:flex;font-size:.6rem;gap:.25rem;justify-content:space-between;line-height:1.2}.info-row span{opacity:.75}.info-row code{background:#00000014;border-radius:2px;font-size:.55rem;padding:1px 3px;word-break:break-all}.node-info-card.dark .info-row code{background:#ffffff14;color:#f4f4f4}.metrics-grid{grid-gap:.2rem;display:grid;font-size:.55rem;gap:.2rem;grid-template-columns:repeat(3,minmax(0,1fr))}.metrics-grid span{display:block;opacity:.7}.metrics-grid strong{font-size:.6rem}@media (max-width:1100px){.globe-wrapper .node-info-card--globe{width:clamp(160px,20vw,220px)!important}}@media (max-width:900px){.node-info-card--flat,.node-info-card--globe{bottom:1rem!important;left:50%!important;margin:0;position:fixed!important;top:auto!important;transform:translateX(-50%)!important}}@media (max-width:700px){.node-info-card--flat,.node-info-card--globe{bottom:1rem!important;left:50%!important;max-height:calc(100vh - 2rem);max-width:360px;overflow-y:auto;position:fixed!important;right:auto!important;top:auto!important;transform:translateX(-50%)!important;width:calc(100vw - 2rem);z-index:1000}.node-info-card__header h3{overflow-wrap:break-word;word-break:break-word}}.flat-map{align-items:center;border-left:1px solid #0003;cursor:default;display:flex;flex:1 1;height:100%;justify-content:center;position:relative}.flat-map.dark{background:radial-gradient(circle at top,#0b0f26,#01040c);border-left:1px solid #ffffff14}.flat-map.light{background:linear-gradient(135deg,#edf2ff,#f7f9ff);border-left:1px solid #00000014}.flat-map-wrapper{align-items:center;display:flex;height:100%;justify-content:center;overflow:hidden;padding:0;position:relative;width:100%}.flat-map-svg{display:block;height:100%;width:100%}.flat-map.empty{align-items:center;color:#ffffffbf;display:flex;font-size:1rem;justify-content:center}.flat-map.light.empty{color:#333}.node-group{transition:transform .2s ease}.node-group.selected{transform:scale(1.12)}.connection-line{transition:opacity .2s ease,stroke-width .2s ease}.flat-map-wrapper .node-info-card--flat{width:clamp(180px,15vw,240px)!important}@media (max-width:1100px){.flat-map-wrapper .node-info-card--flat{width:clamp(160px,20vw,220px)!important}}.arc-tooltip{animation:tooltipFadeIn .15s ease-out;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-radius:8px;box-shadow:0 8px 24px #0000004d;font-size:.85rem;max-width:300px;min-width:200px;padding:.75rem}@keyframes tooltipFadeIn{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}.arc-tooltip.dark{background:#050615f2;border:1px solid #ffffff1f;color:#f8fbff}.arc-tooltip.light{background:#fffffff2;border:1px solid #0000001a;color:#333}.arc-tooltip__header{border-bottom:1px solid #ffffff1a;margin-bottom:.5rem;padding-bottom:.5rem}.arc-tooltip.dark .arc-tooltip__header{border-bottom-color:#ffffff1a}.arc-tooltip.light .arc-tooltip__header{border-bottom-color:#0000001a}.arc-tooltip__header strong{font-size:.9rem;font-weight:600}.arc-tooltip__body{display:flex;flex-direction:column;gap:.4rem}.arc-tooltip__row{align-items:center;display:flex;font-size:.8rem;gap:.75rem;justify-content:space-between}.arc-tooltip__row span{opacity:.75}.arc-tooltip__row strong{font-weight:600}.stats-panel{--sidebar-width:clamp(360px,32vw,440px);box-shadow:2px 0 8px #0000004d;display:flex;flex:0 0 var(--sidebar-width);flex-direction:column;gap:1.5rem;height:100%;max-width:var(--sidebar-width);min-width:var(--sidebar-width);overflow-x:hidden;overflow-y:auto;padding:1.5rem;position:relative;transition:transform .3s ease;width:var(--sidebar-width);z-index:1000}.stats-panel__close{align-items:center;background:#0000;border:none;border-radius:4px;color:inherit;cursor:pointer;display:none;display:flex;font-size:1.5rem;height:32px;justify-content:center;line-height:1;opacity:.7;padding:.25rem;position:absolute;right:1rem;top:1rem;transition:background-color .2s ease,opacity .2s ease;width:32px;z-index:10}.stats-panel__close:hover{background-color:#0000001a;opacity:1}.stats-panel.dark .stats-panel__close:hover{background-color:#ffffff1a}.stats-panel__close:focus-visible{opacity:1;outline:2px solid currentColor;outline-offset:2px}@media (max-width:1200px){.stats-panel{--sidebar-width:clamp(330px,38vw,380px)}}@media (max-width:900px){.stats-panel{--sidebar-width:310px}}@media (max-width:768px){.stats-panel{--sidebar-width:280px;height:100vh;left:0;position:fixed;top:0;transform:translateX(-100%);z-index:2000}.stats-panel.open{transform:translateX(0)}.stats-panel__close{display:flex}}@media (min-width:769px){.stats-panel{transform:translateX(0)!important}.stats-panel__close{display:none!important}}.stats-panel.dark::-webkit-scrollbar{width:8px}.stats-panel.dark::-webkit-scrollbar-track{background:#ffffff0d}.stats-panel.dark::-webkit-scrollbar-thumb{background:#fff3;border-radius:4px}.stats-panel.dark::-webkit-scrollbar-thumb:hover{background:#ffffff4d}.stats-panel.light::-webkit-scrollbar{width:8px}.stats-panel.light::-webkit-scrollbar-track{background:#f0f0f0}.stats-panel.light::-webkit-scrollbar-thumb{background:silver;border-radius:4px}.stats-panel.light::-webkit-scrollbar-thumb:hover{background:#a0a0a0}.stats-panel.dark{background:#1e1e1e;color:#e0e0e0}.stats-panel.light{background:#fff;color:#333}.stats-section{display:flex;flex-direction:column;gap:.75rem}.stats-panel.dark .stats-section h2{border-bottom:2px solid #ffffff1a;color:#fff}.stats-panel.light .stats-section h2{border-bottom:2px solid #f0f0f0;color:#333}.stats-section h2{font-size:1rem;font-weight:600;margin:0;padding-bottom:.5rem}.stat-card{align-items:center;background:linear-gradient(135deg,#667eea,#764ba2);border-radius:8px;color:#fff;display:flex;gap:1rem;padding:1rem}.stat-card.online{background:linear-gradient(135deg,#4caf50,#388e3c)}.stat-card.offline{background:linear-gradient(135deg,#f44336,#d32f2f)}.stat-icon{font-size:2rem}.stat-content{display:flex;flex-direction:column}.stat-value{font-size:1.8rem;font-weight:700}.stat-label{font-size:.85rem;opacity:.9}.metric-bar{display:flex;flex-direction:column;gap:.4rem}.stats-panel.dark .metric-label{color:#bbb}.stats-panel.light .metric-label{color:#666}.metric-label{display:flex;font-size:.9rem;font-weight:500;justify-content:space-between}.stats-panel.dark .metric-value{color:#fff}.stats-panel.light .metric-value{color:#333}.metric-value{font-weight:600}.stats-panel.dark .progress-bar{background:#ffffff1a}.stats-panel.light .progress-bar{background:#f0f0f0}.progress-bar{border-radius:5px;height:10px;overflow:hidden;width:100%}.progress-fill{border-radius:5px;height:100%;transition:width .3s ease}.progress-fill.cpu{background:linear-gradient(90deg,#667eea,#764ba2)}.progress-fill.memory{background:linear-gradient(90deg,#f093fb,#f5576c)}.progress-fill.disk{background:linear-gradient(90deg,#4facfe,#00f2fe)}.throughput-cards{grid-gap:.75rem;display:grid;gap:.75rem;grid-template-columns:repeat(2,minmax(0,1fr))}.throughput-card{border-radius:8px;color:#fff;display:flex;flex-direction:column;gap:.2rem;padding:.75rem}.throughput-card.upload{background:linear-gradient(135deg,#00c6ff,#0072ff)}.throughput-card.download{background:linear-gradient(135deg,#f7971e,#ffd200)}.throughput-label{font-size:.8rem;letter-spacing:.05em;text-transform:uppercase}.throughput-value{font-size:1.1rem;font-weight:600}.stats-panel.dark .provider-item{background:#ffffff0d}.stats-panel.light .provider-item{background:#f8f9fa}.provider-item{align-items:center;border-radius:6px;display:flex;font-size:.9rem;justify-content:space-between;padding:.6rem .8rem}.stats-panel.dark .provider-name{color:#e0e0e0}.stats-panel.light .provider-name{color:#555}.provider-name{font-weight:500;text-transform:capitalize}.provider-count{background:#667eea;border-radius:12px;color:#fff;font-size:.8rem;font-weight:600;padding:2px 10px}.stats-panel.dark .node-item{background:#ffffff0d;border-left:4px solid #555}.stats-panel.light .node-item{background:#f8f9fa;border-left:4px solid #ccc}.node-item{background-clip:padding-box;border:none;border-radius:6px;color:inherit;cursor:pointer;display:flex;flex-direction:column;font-size:.85rem;font:inherit;gap:.35rem;padding:.6rem .8rem;text-align:left;transition:transform .15s ease,box-shadow .15s ease,background .15s ease;width:100%}.node-item:focus-visible{outline:2px solid #667eea;outline-offset:2px}.node-item.active{box-shadow:0 6px 12px #0003;transform:translateX(4px)}.stats-panel.dark .node-item.active{background:#667eea33}.stats-panel.light .node-item.active{background:#667eea26}.node-item-header{align-items:center;display:flex;gap:.5rem;justify-content:space-between;min-width:0}.node-item.status-online{border-left-color:#4caf50}.node-item.status-warning{border-left-color:#ff9800}.node-item.status-offline{border-left-color:#f44336}.stats-panel.dark .node-name{color:#e0e0e0}.stats-panel.light .node-name{color:#333}.node-name{flex:1 1;font-weight:500;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.stats-panel.dark .node-status{color:#aaa}.stats-panel.light .node-status{color:#666}.node-status{font-size:.75rem;font-weight:600;text-transform:uppercase}.node-throughput{color:inherit;display:flex;font-size:.75rem;gap:.5rem;justify-content:space-between}.App{display:flex;flex-direction:column;height:100vh;width:100vw}.dark-mode .app-header{background:linear-gradient(135deg,#1a1a2e,#16213e);border-bottom:1px solid #ffffff1a;color:#fff}.light-mode .app-header{background:linear-gradient(135deg,#667eea,#764ba2);border-bottom:1px solid #fff3;color:#fff}.app-header{box-shadow:0 2px 8px #0000004d;padding:1rem 2rem;z-index:1000}@media (max-width:768px){.app-header{padding:.75rem 1rem}}.header-content{justify-content:space-between}.header-content,.header-left{align-items:center;display:flex;gap:1rem}.sidebar-toggle{background:#fff3;border:none;border-radius:8px;color:#fff;cursor:pointer;display:none;font-size:1.2rem;padding:.5rem 1rem;transition:all .3s ease}.sidebar-toggle:hover{background:#ffffff4d;transform:scale(1.1)}@media (max-width:768px){.sidebar-toggle{display:block}.header-left h1{font-size:1.2rem}}.app-header h1{font-size:1.5rem;font-weight:600;margin:0}.header-right{align-items:center;display:flex;gap:.75rem}.map-mode-toggle,.theme-toggle{align-items:center;background:#fff3;border:none;border-radius:8px;cursor:pointer;display:flex;font-size:1.2rem;justify-content:center;padding:.5rem 1rem;transition:all .3s ease}.map-mode-toggle:hover,.theme-toggle:hover{background:#ffffff4d;transform:scale(1.1)}.error-banner{background-color:#f44336;border-radius:4px;color:#fff;font-size:.9rem;margin-top:.5rem;padding:.5rem 1rem}.error-banner.info-banner{background-color:#2196f3}.app-content{display:flex;flex:1 1;overflow:hidden;position:relative}.sidebar-overlay{background:#00000080;bottom:0;display:none;left:0;opacity:0;pointer-events:none;position:fixed;right:0;top:0;transition:opacity .3s ease;z-index:1500}.sidebar-overlay.open{opacity:1;pointer-events:all}@media (max-width:768px){.sidebar-overlay{display:block}}.loading-container{align-items:center;background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;display:flex;flex-direction:column;height:100vh;justify-content:center}.loading-spinner{animation:spin 1s linear infinite;border:4px solid #ffffff4d;border-radius:50%;border-top-color:#fff;height:50px;margin-bottom:1rem;width:50px}@keyframes spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}
/*# sourceMappingURL=main.db935955.css.map*/