:root{--bg-primary: #0a0a0f;--bg-secondary: #12121a;--bg-tertiary: #1a1a24;--text-primary: #ffffff;--text-secondary: #a0a0b0;--text-muted: #606070;--accent-primary: #6366f1;--accent-secondary: #818cf8;--accent-success: #10b981;--accent-warning: #f59e0b;--accent-error: #ef4444;--border-color: #2a2a3a;--hover-bg: rgba(99, 102, 241, .1)}*{margin:0;padding:0;box-sizing:border-box}body{font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;background:var(--bg-primary);color:var(--text-primary);min-height:100vh}.app-layout{display:flex;min-height:100vh}.sidebar{width:240px;background:var(--bg-secondary);border-right:1px solid var(--border-color);display:flex;flex-direction:column;padding:1rem 0}.sidebar-header{padding:.5rem 1rem 1.5rem;border-bottom:1px solid var(--border-color);margin-bottom:1rem}.sidebar-header h1{font-size:1.25rem;font-weight:700;background:linear-gradient(135deg,var(--accent-primary),var(--accent-secondary));-webkit-background-clip:text;-webkit-text-fill-color:transparent}.sidebar-header span{font-size:.75rem;color:var(--text-muted)}.nav-links{display:flex;flex-direction:column;gap:.25rem;padding:0 .5rem}.nav-link{display:flex;align-items:center;gap:.75rem;padding:.75rem 1rem;color:var(--text-secondary);text-decoration:none;border-radius:.5rem;transition:all .2s}.nav-link:hover{background:var(--hover-bg);color:var(--text-primary)}.nav-link.active{background:var(--accent-primary);color:#fff}.main-content{flex:1;display:flex;flex-direction:column;overflow:hidden}.page-header{padding:1.5rem 2rem;border-bottom:1px solid var(--border-color);background:var(--bg-secondary)}.page-header h2{font-size:1.5rem;font-weight:600}.page-header p{color:var(--text-secondary);margin-top:.25rem}.page-content{flex:1;padding:1.5rem 2rem;overflow:auto}.card{background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:.75rem;padding:1.25rem;margin-bottom:1rem}.card-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1rem}.card-header h3{font-size:1rem;font-weight:600}.data-table{width:100%;border-collapse:collapse}.data-table th,.data-table td{padding:.75rem 1rem;text-align:left;border-bottom:1px solid var(--border-color)}.data-table th{color:var(--text-muted);font-weight:500;font-size:.875rem;text-transform:uppercase;letter-spacing:.05em}.data-table tr:hover{background:var(--hover-bg)}.data-table td{font-size:.875rem}.btn{display:inline-flex;align-items:center;gap:.5rem;padding:.5rem 1rem;border-radius:.5rem;font-size:.875rem;font-weight:500;cursor:pointer;transition:all .2s;border:none}.btn-primary:hover{background:var(--accent-secondary)}.btn-secondary{background:var(--bg-tertiary);color:var(--text-secondary);border:1px solid var(--border-color)}.btn-secondary:hover{background:var(--border-color);color:var(--text-primary)}.status-badge{display:inline-flex;align-items:center;gap:.25rem;padding:.25rem .5rem;border-radius:9999px;font-size:.75rem;font-weight:500}.status-badge.ok{background:#10b98133;color:var(--accent-success)}.status-badge.error{background:#ef444433;color:var(--accent-error)}.form-group{margin-bottom:1rem}.form-label{display:block;font-size:.875rem;font-weight:500;margin-bottom:.5rem;color:var(--text-secondary)}.form-input,.form-select,.form-textarea{width:100%;padding:.75rem;background:var(--bg-tertiary);border:1px solid var(--border-color);border-radius:.5rem;color:var(--text-primary);font-size:.875rem}.form-input:focus,.form-select:focus,.form-textarea:focus{outline:none;border-color:var(--accent-primary)}.form-textarea{min-height:100px;resize:vertical}.json-viewer{background:var(--bg-tertiary);border:1px solid var(--border-color);border-radius:.5rem;padding:1rem;font-family:Fira Code,Monaco,monospace;font-size:.8rem;overflow-x:auto;white-space:pre-wrap;word-break:break-word}.grid-2{display:grid;grid-template-columns:1fr 1fr;gap:1.5rem}.tool-list{display:flex;flex-direction:column;gap:.5rem;max-height:400px;overflow-y:auto}.tool-item{padding:.75rem 1rem;background:var(--bg-tertiary);border:1px solid var(--border-color);border-radius:.5rem;cursor:pointer;transition:all .2s}.tool-item:hover,.tool-item.selected{border-color:var(--accent-primary);background:var(--hover-bg)}.tool-item h4{font-size:.875rem;font-weight:600;margin-bottom:.25rem}.tool-item p{font-size:.75rem;color:var(--text-muted)}.tool-item .mcp-badge{font-size:.65rem;padding:.125rem .375rem;background:var(--accent-primary);color:#fff;border-radius:4px;margin-left:.5rem}.loading{display:flex;align-items:center;justify-content:center;padding:2rem;color:var(--text-muted)}.spinner{width:24px;height:24px;border:2px solid var(--border-color);border-top-color:var(--accent-primary);border-radius:50%;animation:spin 1s linear infinite;margin-right:.5rem}@keyframes spin{to{transform:rotate(360deg)}}.empty-state{text-align:center;padding:3rem;color:var(--text-muted)}.empty-state svg{width:48px;height:48px;margin-bottom:1rem;opacity:.5}.filters-bar{display:flex;gap:1rem;margin-bottom:1.5rem;flex-wrap:wrap}.filter-group{display:flex;flex-direction:column;gap:.25rem}.filter-group label{font-size:.75rem;color:var(--text-muted)}.filter-group input,.filter-group select{padding:.5rem .75rem;background:var(--bg-tertiary);border:1px solid var(--border-color);border-radius:.5rem;color:var(--text-primary);font-size:.875rem;min-width:150px}.graph-container{width:100%;height:calc(100vh - 150px);border:none;border-radius:.5rem}.mcp-status-panel{margin-top:auto;padding:.75rem;margin:1rem .5rem 0;background:var(--bg-tertiary);border:1px solid var(--border-color);border-radius:.5rem;font-size:.8rem}.mcp-status-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:.5rem}.mcp-status-title{display:flex;align-items:center;gap:.5rem;font-weight:600;color:var(--text-primary)}.mcp-refresh-btn{background:none;border:none;color:var(--text-muted);cursor:pointer;padding:.25rem;border-radius:4px;display:flex;align-items:center;justify-content:center}.mcp-refresh-btn:hover{background:var(--hover-bg);color:var(--text-primary)}.mcp-refresh-btn:disabled{opacity:.5;cursor:not-allowed}.mcp-refresh-btn .spinning{animation:spin 1s linear infinite}.mcp-status-loading{color:var(--text-muted);font-style:italic}.mcp-status-error{display:flex;align-items:center;gap:.5rem;color:var(--accent-error)}.mcp-status-content{display:flex;flex-direction:column;gap:.25rem}.mcp-status-row{display:flex;align-items:center;gap:.5rem;color:var(--text-secondary)}.mcp-status-row svg{flex-shrink:0;color:var(--text-muted)}.status-indicator{font-weight:500}.status-indicator.healthy{color:var(--accent-success)}.status-indicator.unhealthy{color:var(--accent-error)}.mcp-status-timestamp{margin-top:.25rem;font-size:.7rem;color:var(--text-muted)}.mcp-status-details{margin-top:.5rem;border-top:1px solid var(--border-color);padding-top:.5rem}.mcp-status-details summary{cursor:pointer;color:var(--text-muted);font-size:.7rem}.mcp-status-details summary:hover{color:var(--text-secondary)}.mcp-status-details pre{margin-top:.5rem;font-size:.65rem;background:var(--bg-secondary);padding:.5rem;border-radius:4px;overflow-x:auto;max-height:200px;overflow-y:auto;white-space:pre-wrap;word-break:break-word}.view-container{padding:1.5rem}.view-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1rem}.view-header h2{margin:0;font-size:1.5rem}.view-actions{display:flex;gap:.5rem}.btn{display:inline-flex;align-items:center;gap:.5rem;padding:.5rem 1rem;border:none;border-radius:6px;font-size:.875rem;font-weight:500;cursor:pointer;transition:all .2s}.btn:disabled{opacity:.5;cursor:not-allowed}.btn-primary{background:var(--accent-primary);color:#fff}.btn-primary:hover:not(:disabled){background:var(--accent-secondary)}.btn-secondary{background:var(--bg-tertiary);color:var(--text-primary);border:1px solid var(--border-color)}.btn-secondary:hover:not(:disabled){background:var(--hover-bg)}.btn-sm{padding:.35rem .75rem;font-size:.8rem}.alert{padding:.75rem 1rem;border-radius:6px}.alert-error{background:#ef44441a;border:1px solid var(--accent-error);color:var(--accent-error)}.muted{color:var(--text-muted)}.spinning{animation:spin 1s linear infinite}
