<ul><li>controller/quote/QuoteRequestController.php: Wrapped GeoIP Reader instantiation in try/catch with file_exists guard — was fatally crashing ALL requests when GeoLite2-City.mmdb is missing; added $myTimeZone ?? America/New_York fallback in convert_datetime()</li><li>platform/services/platform_services/js/custom_js.php: Fixed MarketInquiry form submitting to SubmitInquiryFromCatalog (expects existing QuoteItemID) — changed to AddInquiryFromCatalog which creates new inquiry from form fields</li><li>classes/platform_services/PlatformServicesModel.php:1404: Fixed Fatal count() on null — getActiveSiteAcctInfo() returns null when no matching record; added is_array() + !empty() guard</li><li>classes/quote/QuoteRequestModel.php:585: Fixed Warning array offset on null — getQuoteModuleID() returns null when module not found; added ?? null guard</li><li>classes/email/quote_email.class.php:42: Fixed Deprecated optional params before required — moved $template/$category to have default null/empty values</li><li>controller/shopping_cart/ShoppingCart.php:929: Fixed Deprecated optional params before required — added $customer=null default</li></ul>