fix(esp32): captive portal header limit, styling, MAC-derived id, reliable SSID scan