13. Custom Operator Logo Custom Operator Logo Custom operator logos are managed in /admin/resources under the custom operator logo section. 1. Naming and priority Allowed naming patterns: generic logo: OPERATOR.bmp or OPERATOR.png type-specific logo: OPERATOR-ICAOTYPE.bmp or OPERATOR-ICAOTYPE.png Runtime priority: type-specific logo is preferred, generic logo is fallback. Examples: DLH.png applies to all Lufthansa aircraft that resolve to DLH , DLH-A321.png applies only when the resolved operator is DLH and the aircraft ICAO type is A321 , if both files exist, DLH-A321.png wins for A321 aircraft and DLH.png remains the generic fallback. 2. Admin workflow In /admin/resources : enter the operator code, optionally enter the ICAO type for a type-specific logo, upload a .bmp or .png image, confirm downscale if the image has correct proportions but is larger than 85x20 , enable overwrite only when replacing an existing logo for the same key. The same page lists uploaded custom logos and allows deleting them. Deleting a custom logo removes the file, synchronizes metadata, and reloads resources immediately. 3. Validation rules file type must be .bmp or .png , file size limit is 2 MB , required aspect ratio is 17:4 , template size is 85x20 , if image has valid ratio but larger dimensions, explicit downscale confirmation is required, operator code accepts A-Z , 0-9 , @ , . , _ , + , - ( 2-40 chars), optional ICAO type accepts A-Z , 0-9 ( 2-12 chars). 4. Overwrite behavior if target logo already exists and overwrite=false , upload returns conflict, when saving one extension, counterpart extension for same key is removed to keep deterministic lookup. 5. Storage and metadata files are stored in Images/AirlineLogos , upload metadata is tracked in custom-operator-flags.json , after upload/delete, OperatorFlagsList.csv is synchronized, resource service is reloaded immediately. 6. Troubleshooting If the uploaded image is rejected, check aspect ratio first. Valid examples are 85x20 , 170x40 , and 255x60 . If the logo uploads but is not visible, verify the operator code used by the aircraft. Operator aliases can help callsign-derived codes resolve to expected carrier names, but logo lookup still needs matching operator/type metadata. If an older logo keeps appearing, clear browser cache and verify that the opposite extension was removed for the same key.