## 1. Backend Logic (IP Discovery) - [x] 1.1 Implement a function in `backend/docker.js` to get the host's local IP addresses and subnets. - [x] 1.2 Modify `listContainers` in `backend/docker.js` to: - Get all container IP addresses. - Determine `preferredLocalUrl` by matching container IPs with host subnets. - Compile a list of `accessibleUrls` for each service. - Return `traefikUrl`, `preferredLocalUrl`, and `accessibleUrls` in the service object. ## 2. Frontend Styling - [x] 2.1 Refine `ServiceCard.css` for improved typography and spacing. - [x] 2.2 Update `App.css` for a more professional color palette and responsive design. ## 3. Frontend Logic (Service Card Display) - [x] 3.1 Modify `ServiceCard.js` to prioritize `traefikUrl`, then `preferredLocalUrl` for the main clickable card. - [x] 3.2 If neither `traefikUrl` nor `preferredLocalUrl` is present, display `accessibleUrls` as a list of individual clickable links within the card. - [x] 3.3 Ensure all new links open in a new tab.