Any idea why this shader returns white color instead of black?

Seems like data in vert programm is ignored. 0_o Any thoughts?

Shader "Custom/NewSurfaceShader" {
    Properties {
        _Color ("Color", Color) = (1,1,1,1)
        _MainTex ("Albedo (RGB)", 2D) = "white" {}
    }
    SubShader {
        Tags { "RenderType"="Opaque" }
        LOD 200
       
        CGPROGRAM
        #pragma surface surf Lambert vertex: vert 
        #pragma target 3.0

        sampler2D _MainTex;

        struct Input {
            float2 uv_MainTex;
            float3 da;
        };

        fixed4 _Color;

        void vert(inout appdata_full v, out Input o) {
            UNITY_INITIALIZE_OUTPUT(Input,o);
            o.da = 0;

        }

        void surf (Input IN, inout SurfaceOutput o) {
            fixed4 c = IN.da.x;
            o.Albedo = c.rgb;
            o.Alpha = c.a;
        }
        ENDCG
    }
    FallBack "Diffuse"
}

The space in the vertex declaration could be causing problems, i.e.

#pragma surface surf Lambert vertex:vert
//instead of
#pragma surface surf Lambert vertex: vert

You could also try;

o.da = float3 (0,0,0);
...
fixed4 c = fixed4 (IN.da.x, IN.da.x, IN.da.x, IN.da.x);

Hm, good idea about space, will check it at home. Thanks.