.topbar{background:var(--bg-surface);border-bottom:1px solid var(--border);flex-shrink:0;height:56px;justify-content:space-between;padding:0 24px}.topbar,.topbar-left{align-items:center;display:flex}.topbar-left{gap:24px}.brand{gap:10px}.brand,.brand-mark{align-items:center;display:flex}.brand-mark{background:var(--text-primary);border-radius:6px;color:var(--bg-base);font-size:14px;font-weight:600;height:28px;justify-content:center;width:28px}.brand-name{color:var(--text-primary);font-size:15px;font-weight:600}.theme-toggle{align-items:center;background:var(--bg-elevated);border:1px solid var(--border);border-radius:6px;color:var(--text-secondary);cursor:pointer;display:flex;font-family:inherit;font-size:12px;gap:8px;padding:6px 12px;transition:all .15s}.theme-toggle:hover{border-color:var(--border-strong);color:var(--text-primary)}.hamburger-btn{background:#0000;border:1px solid var(--border);border-radius:6px;color:var(--text-primary);cursor:pointer;display:none;font-size:18px;line-height:1;padding:8px}.hamburger-btn:hover{background:var(--bg-elevated)}@media (max-width:768px){.hamburger-btn{align-items:center;display:flex;justify-content:center}.topbar{padding:0 12px}.topbar-left{gap:12px}.brand-name{font-size:13px}.theme-toggle{font-size:11px;padding:6px 8px}}@media (max-width:480px){.brand-name{display:none}}.sidebar{background:var(--bg-surface);border-right:1px solid var(--border);display:flex;flex-direction:column;flex-shrink:0;overflow:hidden;position:relative;width:280px}.sidebar-overlay{background:#00000080;bottom:0;display:none;left:0;position:fixed;right:0;top:0;z-index:99}.sidebar-overlay.visible{display:block}.sidebar-close-btn{background:#0000;border:1px solid var(--border);border-radius:6px;color:var(--text-primary);cursor:pointer;display:none;font-size:16px;padding:6px 10px;position:absolute;right:12px;top:12px;z-index:10}.sidebar-section{border-bottom:1px solid var(--border);padding:16px}.sidebar-section-fill{border-bottom:none;display:flex;flex:1 1;flex-direction:column;min-height:0}.sidebar-title{color:var(--text-muted);font-size:11px;font-weight:600;letter-spacing:.5px;margin-bottom:12px;text-transform:uppercase}.network-stats{display:flex;flex-direction:column;gap:12px}.network-stat-label{color:var(--text-muted);font-size:11px;margin-bottom:4px}.network-stat-value{font-size:14px;font-weight:500}.progress-bar{background:var(--bg-elevated);border-radius:2px;height:4px;margin-top:6px;overflow:hidden}.progress-bar-fill{border-radius:2px;height:100%;transition:width .3s}.sidebar-tabs{display:flex;gap:4px;margin-bottom:12px}.sidebar-tab{background:var(--bg-surface);border:1px solid var(--border);border-radius:6px;color:var(--text-secondary);cursor:pointer;flex:1 1;font-family:inherit;font-size:12px;font-weight:500;padding:8px 12px;transition:all .15s}.sidebar-tab:hover{background:var(--bg-elevated);border-color:var(--border-strong)}.sidebar-tab.active{background:var(--text-primary);border-color:var(--text-primary);color:var(--bg-base)}.search-input{background:var(--bg-elevated);border:1px solid var(--border);border-radius:6px;color:var(--text-primary);font-family:inherit;font-size:12px;margin-bottom:12px;padding:8px 12px;width:100%}.search-input:focus{border-color:var(--accent-blue);outline:none}.search-input::placeholder{color:var(--text-muted)}.server-tree{flex:1 1;gap:4px;overflow-y:auto}.server-tree,.tree-group{display:flex;flex-direction:column}.tree-header{align-items:center;border-radius:6px;cursor:pointer;display:flex;gap:8px;padding:8px 10px;transition:background .15s;-webkit-user-select:none;user-select:none}.tree-header:hover{background:var(--bg-elevated)}.tree-chevron{align-items:center;color:var(--text-muted);display:flex;font-size:10px;height:16px;justify-content:center;transition:transform .2s;width:16px}.tree-chevron.open{transform:rotate(90deg)}.tree-label{color:var(--text-primary);flex:1 1;font-size:12px;font-weight:500}.tree-count{background:var(--bg-elevated);border-radius:4px;color:var(--text-muted);font-size:11px;padding:2px 6px}.tree-children{display:flex;flex-direction:column;gap:1px;overflow:hidden;padding-left:24px}.tree-children.collapsed{display:none}.tree-server{align-items:center;border-radius:5px;cursor:pointer;display:flex;gap:8px;padding:6px 10px;transition:background .15s}.tree-server.active,.tree-server:hover{background:var(--bg-elevated)}.tree-server.active{box-shadow:inset 3px 0 0 var(--accent-blue)}.tree-server-status{border-radius:50%;flex-shrink:0;height:6px;width:6px}.tree-server-status.online{background:var(--accent-green)}.tree-server-status.warning{background:var(--accent-amber)}.tree-server-status.restarting{animation:pulse 1s infinite;background:var(--accent-amber)}.tree-server-name{color:var(--text-primary);font-family:IBM Plex Mono,monospace;font-size:12px;font-weight:500}.tree-server-players{color:var(--text-muted);font-size:11px;margin-left:auto}.server-type-badge{border-radius:3px;font-size:10px;font-weight:600;padding:2px 6px;text-transform:uppercase}.global-list{display:flex;flex-direction:column;gap:2px}.global-item{align-items:center;border-radius:6px;cursor:pointer;display:flex;gap:10px;padding:12px;transition:background .15s}.global-item.active,.global-item:hover{background:var(--bg-elevated)}.global-item.active{box-shadow:inset 3px 0 0 var(--accent-blue)}.global-item-icon{align-items:center;border-radius:6px;display:flex;font-size:14px;height:32px;justify-content:center;width:32px}.global-item-icon.network{background:var(--type-idle-bg);color:var(--text-secondary)}.global-item-icon.orchestrator{background:var(--type-hns-bg);color:var(--type-hns-text)}.global-item-info{display:flex;flex-direction:column}.global-item-name{font-size:13px;font-weight:500}.global-item-desc{color:var(--text-muted);font-size:11px}@media (max-width:768px){.sidebar{bottom:0;box-shadow:4px 0 20px #0003;left:0;position:fixed;top:0;transform:translateX(-100%);transition:transform .3s ease;z-index:100}.sidebar.open{transform:translateX(0)}.sidebar-close-btn{display:block}}.stats-grid{grid-gap:16px;display:grid;flex-shrink:0;gap:16px;grid-template-columns:repeat(4,1fr)}.stat-card{background:var(--bg-surface);border:1px solid var(--border);border-radius:8px;padding:14px}.stat-card-label{color:var(--text-muted);font-size:11px;margin-bottom:4px}.stat-card-value{color:var(--text-primary);font-size:24px;font-weight:500}.stat-card-sub{color:var(--text-secondary);font-size:11px;margin-top:2px}@media (max-width:1200px){.stats-grid{grid-template-columns:repeat(2,1fr)}}@media (max-width:768px){.stats-grid{gap:8px;grid-template-columns:repeat(2,1fr)}.stat-card{padding:10px}.stat-card-value{font-size:18px}.stat-card-label,.stat-card-sub{font-size:10px}}@media (max-width:480px){.stats-grid{gap:6px;grid-template-columns:1fr 1fr}.stat-card{padding:8px}.stat-card-value{font-size:16px}}.console{display:flex;flex:1 1;flex-direction:column;min-height:0;overflow:hidden}.console-header{background:var(--bg-elevated);border-bottom:1px solid var(--border);color:var(--text-secondary);flex-shrink:0;font-size:12px;font-weight:600;padding:10px 16px}.console-body{background:var(--bg-console);display:flex;flex:1 1;flex-direction:column;min-height:0;overflow:hidden}.console-toolbar{align-items:center;border-bottom:1px solid #333;display:flex;flex-shrink:0;flex-wrap:wrap;gap:8px;padding:8px 12px}.console-filter-btn{background:#0000;border:1px solid #333;border-radius:4px;color:#888;cursor:pointer;font-family:IBM Plex Mono,monospace;font-size:11px;padding:4px 10px;transition:all .15s}.console-filter-btn:hover{border-color:#555;color:#aaa}.console-filter-btn.active{border-color:currentColor}.console-filter-btn.active.INFO{background:#60a5fa1a;border-color:#60a5fa;color:#60a5fa}.console-filter-btn.active.WARN{background:#fbbf241a;border-color:#fbbf24;color:#fbbf24}.console-filter-btn.active.ERROR{background:#f871711a;border-color:#f87171;color:#f87171}.console-filter-btn.active.DEBUG{background:#8888881a;border-color:#888;color:#888}.console-search{background:#111;border:1px solid #333;border-radius:4px;color:#fff;flex:1 1;font-family:IBM Plex Mono,monospace;font-size:11px;min-width:150px;padding:4px 10px}.console-search:focus{border-color:#555;outline:none}.console-search::placeholder{color:#555}.console-clear-btn{background:#0000;border:1px solid #333;border-radius:4px;color:#888;cursor:pointer;font-family:inherit;font-size:11px;padding:4px 10px}.console-clear-btn:hover{border-color:#f87171;color:#f87171}.console-logs-wrapper{flex:1 1;min-height:0;overflow:hidden;position:relative}.console-logs{font-family:IBM Plex Mono,monospace;font-size:12px;height:100%;line-height:1.7;overflow-y:auto;padding:12px}.console-logs::-webkit-scrollbar{width:8px}.console-logs::-webkit-scrollbar-track{background:#0000}.console-logs::-webkit-scrollbar-thumb{background:#333;border-radius:4px}.console-scroll-btn{background:#3b82f633;border:1px solid #3b82f6;border-radius:4px;bottom:12px;color:#60a5fa;cursor:pointer;font-family:IBM Plex Mono,monospace;font-size:11px;font-weight:500;padding:6px 12px;position:absolute;right:20px;transition:all .15s;z-index:10}.console-scroll-btn:hover{background:#3b82f64d;border-color:#60a5fa}.log-line{display:flex;gap:8px}.log-time{color:#666;flex-shrink:0}.log-level{flex-shrink:0;min-width:80px}.log-level.INFO{color:#60a5fa}.log-level.WARN{color:#fbbf24}.log-level.ERROR{color:#f87171}.log-level.DEBUG{color:#666}.log-msg{color:#d4d4d4}.log-msg mark{background:#854d0e;border-radius:2px;color:#fef3c7;padding:0 2px}.console-badge{background:#3b82f626;border:1px solid #3b82f666;border-radius:4px;color:#60a5fa;display:inline;font-size:11px;font-weight:500;margin:0 2px;padding:1px 6px}.console-player{color:#fbbf24;cursor:pointer;font-weight:600;text-decoration:underline;-webkit-text-decoration-style:solid;text-decoration-style:solid;text-decoration-thickness:1px;text-underline-offset:2px;transition:all .15s}.console-player:hover{color:#fcd34d;-webkit-text-decoration-color:#fcd34d;text-decoration-color:#fcd34d}.player-hover-card{background:#1a1a1a;border:1px solid #333;border-radius:6px;box-shadow:0 4px 12px #00000080;font-family:IBM Plex Mono,monospace;font-size:11px;min-width:200px;padding:10px 12px;pointer-events:auto;z-index:1000}.player-hover-row{align-items:center;display:flex;gap:8px;margin-bottom:6px}.player-hover-row:last-child{margin-bottom:0}.player-hover-label{color:#888;font-weight:500;min-width:45px}.player-hover-value{color:#d4d4d4;flex:1 1;word-break:break-all}.player-hover-copy{background:#0000;border:1px solid #333;border-radius:3px;color:#888;cursor:pointer;flex-shrink:0;font-size:12px;padding:2px 6px;transition:all .15s}.player-hover-copy:hover{background:#60a5fa1a;border-color:#60a5fa;color:#60a5fa}.console-empty{color:#666;padding:20px;text-align:center}.console-input-form{align-items:center;background:#111;border-top:1px solid #333;display:flex;flex-shrink:0;padding:8px 12px}.console-prompt{color:#16a34a;font-size:13px;font-weight:600;margin-right:8px}.console-input,.console-prompt{font-family:IBM Plex Mono,monospace}.console-input{background:#0000;border:none;color:#fff;flex:1 1;font-size:12px;padding:6px 0}.console-input:focus{outline:none}.console-input::placeholder{color:#444}@media (max-width:768px){.console-toolbar{gap:6px;padding:6px 8px}.console-filter-btn{font-size:10px;padding:3px 6px}.console-scroll-btn{font-size:10px;padding:4px 8px}}.graph-card{background:var(--bg-elevated);border-radius:8px;padding:12px}.graph-title{color:var(--text-muted);font-size:11px;font-weight:600;margin-bottom:8px;text-transform:uppercase}.graph-container{height:150px}.network-graph-card{background:var(--bg-elevated);border-radius:8px;padding:16px}.network-graph-title{color:var(--text-secondary);font-size:12px;font-weight:600;margin-bottom:12px}.network-graph-container{height:180px}.server-detail{display:flex;flex:1 1;flex-direction:column;min-height:0;overflow:hidden}.server-detail-header{align-items:center;border-bottom:1px solid var(--border);display:flex;flex-shrink:0;justify-content:space-between;padding:16px}.server-detail-title{align-items:center;display:flex;gap:12px}.server-detail-name{font-family:IBM Plex Mono,monospace;font-size:18px;font-weight:600}.server-status{border-radius:50%;flex-shrink:0;height:8px;width:8px}.server-status.online{background:var(--accent-green)}.server-ram-info{color:var(--text-muted);font-size:12px;margin-left:8px}.panel-tabs{border-bottom:1px solid var(--border);display:flex;flex-shrink:0;gap:0}.panel-tab{background:#0000;border:none;border-bottom:2px solid #0000;color:var(--text-muted);cursor:pointer;font-family:inherit;font-size:12px;font-weight:500;margin-bottom:-1px;padding:10px 20px;transition:all .15s}.panel-tab:hover{color:var(--text-primary)}.panel-tab.active{border-bottom-color:var(--accent-blue);color:var(--accent-blue)}.panel-content{display:flex;flex:1 1;flex-direction:column;min-height:0;overflow:hidden}.server-stats-grid{grid-gap:1px;background:var(--border);border-bottom:1px solid var(--border);display:grid;flex-shrink:0;gap:1px;grid-template-columns:repeat(4,1fr)}.server-stat-cell{background:var(--bg-surface);padding:12px 16px;text-align:center}.server-stat-value{font-size:18px;font-weight:500}.server-stat-value.good{color:var(--accent-green)}.server-stat-value.warning{color:var(--accent-amber)}.server-stat-value.danger{color:var(--accent-red)}.server-stat-label{color:var(--text-muted);font-size:10px;margin-top:2px;text-transform:uppercase}.graphs-section{display:flex;flex:1 1;flex-direction:column;gap:16px;min-height:0;overflow-y:auto;padding:16px}.graph-row{grid-gap:16px;display:grid;gap:16px;grid-template-columns:1fr 1fr}@media (max-width:1200px){.graph-row{grid-template-columns:1fr}}@media (max-width:768px){.server-stats-grid{grid-template-columns:repeat(2,1fr)}.panel-tabs{overflow-x:auto}.panel-tab{padding:8px 14px;white-space:nowrap}.server-detail-header{padding:12px}.server-detail-name{font-size:14px}}.network-stats-panel{display:flex;flex:1 1;flex-direction:column;min-height:0;overflow:hidden}.network-stats-header{align-items:center;border-bottom:1px solid var(--border);display:flex;flex-shrink:0;gap:12px;padding:16px}.network-stats-icon{align-items:center;background:var(--type-idle-bg);border-radius:8px;color:var(--text-secondary);display:flex;font-size:18px;height:40px;justify-content:center;width:40px}.network-stats-info h2{font-size:18px;font-weight:600;margin:0}.network-stats-info p{color:var(--text-muted);font-size:12px;margin:2px 0 0}.network-graphs{flex:1 1;overflow-y:auto;padding:20px}.network-graphs-grid{grid-gap:20px;display:grid;gap:20px;grid-template-columns:repeat(2,1fr)}@media (max-width:1200px){.network-graphs-grid{grid-template-columns:1fr}}.orchestrator-panel{display:flex;flex:1 1;flex-direction:column;min-height:0;overflow:hidden}.orchestrator-header{align-items:center;border-bottom:1px solid var(--border);display:flex;flex-shrink:0;gap:12px;padding:16px}.orchestrator-icon{align-items:center;background:var(--type-hns-bg);border-radius:8px;color:var(--type-hns-text);display:flex;font-size:18px;height:40px;justify-content:center;width:40px}.orchestrator-info h2{font-size:18px;font-weight:600;margin:0}.orchestrator-info p{color:var(--text-muted);font-size:12px;margin:2px 0 0}.orchestrator-console-wrapper{display:flex;flex:1 1;flex-direction:column;min-height:0;overflow:hidden}*{box-sizing:border-box;margin:0;padding:0}:root{--bg-base:#fafafa;--bg-surface:#fff;--bg-elevated:#f5f5f5;--bg-console:#1a1a1a;--text-primary:#171717;--text-secondary:#525252;--text-muted:#a3a3a3;--border:#e5e5e5;--border-strong:#d4d4d4;--accent-blue:#2563eb;--accent-green:#16a34a;--accent-amber:#d97706;--accent-red:#dc2626;--accent-purple:#7c3aed;--type-idle-bg:#f5f5f5;--type-idle-text:#737373;--type-lobby-bg:#dbeafe;--type-lobby-text:#1d4ed8;--type-hns-bg:#f3e8ff;--type-hns-text:#7c3aed;--console-input-bg:#111;--chart-grid:#e5e5e5}.dark{--bg-base:#09090b;--bg-surface:#18181b;--bg-elevated:#27272a;--bg-console:#09090b;--text-primary:#fafafa;--text-secondary:#a1a1aa;--text-muted:#71717a;--border:#27272a;--border-strong:#3f3f46;--type-idle-bg:#27272a;--type-idle-text:#a1a1aa;--type-lobby-bg:#1e3a5f;--type-lobby-text:#93c5fd;--type-hns-bg:#3b0764;--type-hns-text:#d8b4fe;--console-input-bg:#18181b;--chart-grid:#27272a}body{background:#fafafa;background:var(--bg-base);color:#171717;color:var(--text-primary);font-family:IBM Plex Sans,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;line-height:1.5}::-webkit-scrollbar{height:8px;width:8px}::-webkit-scrollbar-track{background:#0000}::-webkit-scrollbar-thumb{background:#d4d4d4;background:var(--border-strong);border-radius:4px}::-webkit-scrollbar-thumb:hover{background:#a3a3a3;background:var(--text-muted)}.mono{font-family:IBM Plex Mono,monospace}@keyframes pulse{0%,to{opacity:1}50%{opacity:.4}}@keyframes spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}.app{background:var(--bg-base);color:var(--text-primary);display:flex;flex-direction:column;height:100vh;min-height:100vh;overflow:hidden}.layout,.main{display:flex;flex:1 1;overflow:hidden}.main{flex-direction:column;gap:20px;min-width:0;padding:20px}.content-area{flex:1 1}.content-area,.panel{display:flex;flex-direction:column;min-height:0;overflow:hidden}.panel{background:var(--bg-surface);border:1px solid var(--border);border-radius:8px;flex:1 1}.empty-state{align-items:center;color:var(--text-muted);display:flex;flex:1 1;flex-direction:column;gap:8px;justify-content:center}.empty-state-icon{font-size:32px;opacity:.3}.empty-state-text{font-size:13px}@media (max-width:768px){.main{gap:12px;padding:12px}}
/*# sourceMappingURL=main.f26cf73f.css.map*/